STM32F051 FLASH_ErasePage problem.

Miroslav Mraz mraz na seznam.cz
Pátek Říjen 4 22:29:29 CEST 2013


Zase tak úplně jasné to není. Teď jsem koukal, ten řádek

  | USART_FLAG_ORE | USART_FLAG_NE | USART_FLAG_PE;

má ty flagy sice blbě napsané, ale hodnotou to odpovídá jen povolení přijímače, vysílače a usartu celkově. Takže
chyby by přerušovat neměly. Možná tedy explicitně nulovat v přerušení nějaký ten flag, který by tam být neměl.

A pak, ta chyba nastane i když se kód vykonává z RAM. Jediné, co mi teď 
napadá je, že při vysílání usartu se používá v main() USART1->CR1 |=  
USART_FLAG_TXE;
což není atomické, takže se může zapsat do toho CR1 nesmysl a pak to 
může takhle divně přerušovat.

Mrazík

p.s. Režim slimák - to je hezký, taky jsem zažil.

On 10/04/2013 09:55 PM, Jan Waclawek wrote:
> Tak to je jasne. Za normalnych okolnosti chyby nenastali, ale pocas erase
> ak sa kod vykonava z flashky tak ten stall trva dost dlho na to, aby sa
> nejake byty stratili, t.j. nastane overflow error. Potom to uz z
> prerusenia nikdy nevylezie - na rozdiel od '51/AVR/(PIC?), kde taketo
> nieco s dost velkou pravdepodobnostou sposobilo pomerne lahko rozoznatelny
> "rezim slimak" (vzdy medzi za sebou nasledujucimi preruseniami sa vykona
> jedna instrukcia z "main"-u)... ;-)
>
> wek
>
>
>
> ----- Original Message ---------------
>
> Subject: Re: STM32F051 FLASH_ErasePage problem.
>     From: Miroslav Mraz <mraz na seznam.cz>
>     Date: Fri, 04 Oct 2013 21:36:57 +0200
>       To: HW-news <hw-list na list.hw.cz>
>
>> Koukám, že se k tomu nakonec dopracujeme. Podle openocd to vypadá, že se
>> to motá v obsluze toho USART1_IRQHandler(), což nakonec mùže být i tak,
>> že pøerušení chodí jedno za druhým. A teï koukám, že není povoleno jen
>> pøerušení od Rx a Tx, ale i nìjaké jiné. Už je pozdì, ale zítra na to
>> mrknu. V inicializaci je
>>    USART1->CR1 =   USART_FLAG_TXE | USART_FLAG_RXNE
>>                  | USART_FLAG_ORE | USART_FLAG_NE | USART_FLAG_PE;
>>
>> takže jsem asi pùvodnì chtìl obsluhovat i nìjaké chyby a pak jsem na to
>> zapomnìl. A protože to fungovalo, tak už to tak zùstalo. Vyhodíme ten
>> druhý øádek a uvidíme. Díky za nakopnutí.
>>
>> Mrazík
>>
>> On 10/04/2013 09:03 PM, Jan Waclawek wrote:
>>>> USART1_IRQHandlerKoneí to v poeru1ení od usartu
>>> Kde presne (najlepsie v mixe C a disasm)?
>>>
>>> wek
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>



Další informace o konferenci Hw-list