Ich möchte über 16kB Flash bei einem STM32F030F4 eine CRC laufen lassen. Bis 8kb gibt es keine Probleme.Das Problem: Sobald 8kB(<8192) überschritten werden, wird GPIOB->BRR|=GPIO_Pin_1; nicht mehr erreicht ??? uV 5.10 ST-LinkV2
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
|
Anzeige
|
CRC bis 8k Flash statt 16kbIch möchte über 16kB Flash bei einem STM32F030F4 eine CRC laufen lassen. Bis 8kb gibt es keine Probleme.Das Problem: Sobald 8kB(<8192) überschritten werden, wird GPIOB->BRR|=GPIO_Pin_1; nicht mehr erreicht ??? uV 5.10 ST-LinkV2
CRC_CalcBlockCRC() ist fehlerhaft? :) CRC_CalcBlockCRC() ist aus der std_Peripheral_Lib von ST :)
Gast
#3860249
Martin W. schrieb: > CRC_CalcBlockCRC() ist aus der std_Peripheral_Lib von ST :) Es soll tatsächlich schon gelegentlich vorgekommen sein, daß in C-Libs Fehler waren... Das mag für die C-Götzenanbeter und die Copy&Paste-Spasten völlig unmöglich scheinen, ist aber definitiv eine Tatsache. Wie wäre es denn, wenn du einfach mal in die Funktion reindebuggst und schaust, was die bei 8k+1 anders macht als bei 8k? Möglicherweise genügt es aber auch schon, einfach nur die Doku zur Funktion zu lesen. Vielleicht ist eine Beschränkung auf 8k ja sogar dokumentiert (wozu auch immer die nötig oder sinnvoll sein mag).
Gast
#3860255
> ... Copy&Paste-Spasten ...
Warum diese Beleidigung?
Es wird die HW-CRC auf dem STM32F030F4 angesprochen. Eine Limitierung auf 8kB ist dort nicht vorhanden.
Gast
#3860285
Wieviel Flash hat dein Controller denn? Die CRC Berechnung wird in uint32_t Häppchen gemacht. Wenn du 8192 eingibst wird über 32kB eine CRC gebildet.
Gast
#3860287
Martin W. schrieb: > Es wird die HW-CRC auf dem STM32F030F4 angesprochen. Eine Limitierung > auf 8kB ist dort nicht vorhanden. >
Was aber klar zu sehen ist, dass die Bufferlänge in Einheiten von 32bit angegeben wird. test_CRC=CRC_CalcBlockCRC(pFLASH,8192/sizeof(uint32_t)); sollte funktionieren Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|