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