LPCxpresso+11U68: Jako poznat konec obsazene flash?

Pavel Hudecek edizon na seznam.cz
Neděle Srpen 14 12:31:48 CEST 2016


Ano, tenhle rozdíl stál na počátku mého dotazu. Od TI jsem byl zvyklý, že je 
tam takový malý konfigurační soubor, kde jsou definovány ty section. Tam 
bych si to našel, nebo dopsal. Ale u LPC není a v .map se vyznat je mnohem 
horší.

PH

-----Původní zpráva----- 
From: Josef Štengl
Tak jsem kecal. To je tak, když člověk pracuje s více překladači a kibicuje 
od věci. Jak jsem se díval tak GCC linker ne.
Tedy umí ale ne jednoduše jak jsem měl na mysli. Musí se přiřazovat objekty 
do jednotlivých sekcí. Opruz. Jedině si to
toho linkeru dopsat :-)

Například linker od TI to umí (jsem nevěděl, že je to specifikum), slučuje 
oblasti definované v bloku MEMORY za pomocí |
za > v SECTION. Ono se to hodí, například u architektury C28x (C2000), 
protože tam se paměť přidává u výkonnějších variant
rodiny zásadně dolů (adresově) pod předcházející paměť, pokud ne rovnou na 
jiné místo. Linker vám to pak rozhází tam kde
je volno.

Mimochodem je to taková kuriózní architektura, protože sizeof(char) == 
sizeof(short) == sizeof(int) = 1. To jest word je
16 bit (nejmenší adresovatelná jednotka paměti) a je to zároveň i byte. Nemá 
int8_t typ. Naučilo mě to používat least a
fast typy :-). Dále TI tvrdí že je to 32 bit procesor. Asi proto, že 
dolepili pár 32bitových registrů, ale operovat s 32
bitovým slovem na jednu instrukci moc neumí, tudíž ani čtení není atomické. 
Kam to skočí po resetu závisí na několika
podmínkách, mimo jiné i na tom, zda-li je připojený debugger. Člověk si 
užije spoustu zábavy :-).

Dne 13.8.2016 v 21:51 Petr Labaj napsal(a):
> Linker script pro GCC umí díru v sekci .text?
> To by bylo bezva.
>
> **************************
> Dne 13.8.2016 v 20:41 Josef Štengl napsal(a):
>> když bude větší FLASH za nějaký čas, tak se tento blok prostě přeskočí. 



Další informace o konferenci Hw-list