Zabava s C :-) / :-(

Pavel Hudecek edizon na seznam.cz
Čtvrtek Říjen 27 21:36:19 CEST 2016


Skutečná příčina byla nakonec jinde, v banálním přetečení indexu úplně 
jiného pole chvíli před tím. Ale protože jsem u toho hledání chyby měl 
návštěvu z vedení, která se do toho pletla, ...

Ale INT32_MAX tam nebylo, toho bych si všimnul:-)

PH

-----Původní zpráva----- 
From: Josef Štengl
Hausnumero kolem 2M může být INT32_MAX. To je divné.
Nebyl by assembler kolem dané řádky? Tedy jak se to přeloží. Ne, že bych 
věděl kde je problém, ale jsem zvědavý.


Dne 27.10.2016 v 20:37 Pavel Hudecek napsal(a):
> Mějme takto omylem napsaný řádek:
>
> iapCmd[4] = iapCmd[4] = SystemCoreClock / 1000;
>
> Přeložme v LPCXpresso, ...
>
> Před jeho provedením je v SystemCoreClock hodnota 48000000, potom nějaké 
> hausnumero okolo 2 miliard:-)
>
> Když se s tím zavolá IAP funkce LPC11U68 pro zápis EEPROM, zatuhne. Při 
> čtení to nevadí, ale když se po něm zavolá malloc,
> nastane HardFault:-) 



Další informace o konferenci Hw-list