Další dotaz na STM32F050C4
Miroslav Mraz
mraz na seznam.cz
Úterý Prosinec 3 12:41:37 CET 2013
To vypadá, že je tam nějaká nekonzistence mezi startup kódem a linker
skriptem. Ve startupu musí být něco jako ResetIsr() z čehož je pak
voláno main(). V linker skriptu pak musí být definováno ENTRY(ResetIsr).
Takhle to vypadá, že se použil startovací kód z newlib, což pak vytvoří
ta divná data a bss. Docela bych se divil, že vám to takhle běží.
Mrazík
On 12/03/2013 11:17 AM, HUDA volny wrote:
> Omlouvám se, nestíhám.
> Teď jsem udělal znova několik pokusů a pořád je to stejné.
> Raději jsem si všechno psal, neb hlava je .... a zapomíná.
> Pokud se po nastavení déla nezměnila pokračoval jsem dál.
> Program jsem zredukoval na nastavení hodin na externí krystal,
> nastavení SysTick na 1 ms,nastavení dvou pinů, na kterých
> jsou ledky a smyčka ve které jedna ledka změní stav a počká
> se 300ms. Nic víc tam už není. Program je v jednom souboru
> a nepoužívá standardní knihovny. Je použita jediná proměnná
> uint32_t pro zpoždění.
>
> První délka je bez všech doporučených nastavení, optimize O0.
>
> Program size (bytes): 2364|
> Data size (bytes): 1092|
> BSS size (bytes): 288|
> ----------------|
> Total size (bytes): 3744 (R/W Memory: 1380)|
>
> 1 - newlib-nano (v linkeru Newlib Nano-branch)
> 2 - -fno-builtin (v kompileru)
> 3 - -ffunction-sections (v kompileru - Isolate each function in a
> section)
> -fdata-sections (v kompileru - Place data into its own section)
> - --gc-sections (v linkeru Remove unused sections)
> Program size (bytes): 1780|
> Data size (bytes): 1076|
> BSS size (bytes): 288|
> ----------------|
> Total size (bytes): 3144 (R/W Memory: 1364)|
>
> 4 - optimalizaci -Os
> Program size (bytes): 1224|
> Data size (bytes): 1076|
> BSS size (bytes): 288|
> ----------------|
> Total size (bytes): 2588 (R/W Memory: 1364)|
>
> 5 - -fshort-enums (v kompileru - Allocate to an enum type only
> as many bytes as it needs (short-enums))
> - -funsigned-bitfields (v kompileru - A bit field is unsigned)
> - -funsigned-char (v kompileru - Left the type char be unsigned)
>
> 6 - zmena StarUp a LD scriptu (startup_ARMCM0.S , gcc_arm.ld) nevim,
> zda program bezi
> Program size (bytes): 1504|
> Data size (bytes): 1064|
> BSS size (bytes): 4|
> ----------------|
> Total size (bytes): 2572 (R/W Memory: 1068)|
>
> 7 - Heap size - nastaveno 0x0010 predtim 0x0000
> 8 - listing nevypisuje zadny odkaz na impure..... blok, ani nekam do
> nej (aspon jsem to nenasel)
>
> HUDA
>
Další informace o konferenci Hw-list