[PATCH 2/2] bsp/lm4f120: new BSP to support TI LM4F120 XL LaunchPad board

Karel Gardas karel.gardas at centrum.cz
Mon Aug 19 21:45:16 UTC 2013


On 08/19/13 10:40 PM, Eugeniy Meshcheryakov wrote:
> Hi,
>
>>     uint32_t rcc = syscon->rcc;
>> +  uint32_t rcc2 = syscon->rcc2;
>>
>>     rcc = (rcc&  ~SYSCONRCC_USESYSDIV) | SYSCONRCC_BYPASS;
>> +  rcc2 |= SYSCONRCC2_BYPASS2;
>> +
>> +  syscon->rcc = rcc;
>> +  syscon->rcc2 = rcc2;
>> +
>> +  rcc&= SYSCONRCC_MOSCDIS;
>>     syscon->rcc = rcc;
>> +  lm3s69xx_syscon_delay_3x_clocks(524288);
>>
>>     rcc = (rcc&  ~(SYSCONRCC_PWRDN | SYSCONRCC_XTAL_MSK | SYSCONRCC_OSCSRC_MSK))
>>         | SYSCONRCC_XTAL(LM3S69XX_XTAL_CONFIG) | SYSCONRCC_OSCSRC_MOSC;
>> -  syscon->rcc = rcc;
>> +  rcc2 = (rcc2&  ~(SYSCONRCC2_PWRDN2 | SYSCONRCC2_USERCC2 | SYSCONRCC2_OSCSRC2_MSK))
>> +      | SYSCONRCC2_USERCC2 | SYSCONRCC2_OSCSRC2_MSK;
>             ^^^^^^^^^^^^^^^^^^
> Here is one more problem. You are using RCC2 unconditionally, so I think
> you do not need most of the code that uses RCC here.

This was intentional since I've not been sure if your MCUs support RCC2. 
Now I see, they should... (i.e. being Fure and DustDevil classes)

> I think the problem
> you saw was because you were overwritting settings made to RCC by
> writing to RCC2 or other way around. Please use only RCC2 here, except
> maybe for bits that are in RCC but not in RCC2. But then be careful with
> cached values of registers. Especially you do not have to set clock
> divisor value in RCC.

OK, I'll try to rewrite this part.

Thanks for the review!
Karel




More information about the devel mailing list