STM32F051 FLASH_ErasePage problem.

nesvacil@posys.cz nesvacil na posys.eu
Pátek Říjen 4 07:52:53 CEST 2013


Jen tak jednoduse, nemazete si vector table ? Je vector table premapovany na spravne adrese ?

Jirka
Dne 22. 9. 2013 21:19, Miroslav Mraz napsal(a):
> Po delší době - nikdo nic ?
> Problém jsem sice víceméně úspěšně obešel, ale pořád mě to tak nějak
> vadí. Sice chápu, že může být chybka v překladači, v knihovnách, bordel
> ve vektorech a co já vím co všechno, ale nemůžu to najít.
>
> Mrazík
>
> Miroslav Mraz píše v Út 17. 09. 2013 v 18:37 +0200:
>> Zdravím,
>> objevil jsem další záhadu, snad se najde nějaká dobrá duše, která pomůže
>> objasnit jí. Pro představu kousek kódu v main:
>> FLASH_Status fs = 0;
>> uprintf("begin program %d\r\n", simEeRead());
>> while (1) {
>> __WFI();
>> if (!gblUsart.flag) continue;
>> uprintf("pass %d\r\n", gFlashIndex);
>> FLASH_Unlock();
>> if (gblUsart.flag & 1) {
>> gFlashIndex = 0;
>> FLASH_ClearFlag (FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPERR);
>> uprintf("enter to erase 0x%x\r\n", (uint32_t) gBeginAddr);
>> Delay(100); // ms
>> fs = FLASH_ErasePage ((uint32_t) gBeginAddr);
>> uprintf("erase: %d\r\n", fs);
>> Delay(100);
>> }
>> if (gblUsart.flag & 2) {
>> fs = FLASH_ProgramWord ((uint32_t) gBeginAddr + 4*gFlashIndex, gFlashIndex);
>> uprintf("write: %d\r\n", fs);
>> }
>> gFlashIndex++;
>> gblUsart.flag = 0;
>> FLASH_Lock();
>> }
>> Volatilní proměnná gblUsart.flag se nastavuje v přerušení od usartu
>> (podle přijatého znaku), uprintf je neblokovaný (tzn. nečeká na
>> dokončení) výpis na usart v přerušení. Idea je taková, že budu do flash
>> zapisovat uint32 parametr (zde jen test), vždy na první volné místo
>> (0xFFFFFFFF) na stránce a pokud jí zaplním, tak jí smažu a začnu znovu.
>> Zápis není problém. Mazání ano. Pokud vynechám to Delay(100) před
>> FLASH_ErasePage, stránka se sice smaže, ale program zůstává viset (podle
>> openocd, kterému moc nevěřím) v obsluze přerušení usartu a už se z toho
>> nevyhrabe. Vypadá to tak, že pokud usart nestihne odvysílat všechny
>> znaky než se začne mazat stránka, zdechne. A marně si lámu hlavu proč.
>> Netušíte někdo ?
>>
>> Mrazík
>>
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
> _______________________________________________
> 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