ARM GCC - jak vytvořit neinicializovanou proměnnou v SDRAM

Jan Smrz jan.smrz na email.cz
Pondělí Říjen 13 21:37:06 CEST 2014


Zkuste v linker scriptu toto:

.HeapMemSection (NOLOAD) :
   {
     *(.HeapMemSection*)
   } >SDRAM

J.S.


Dne 13.10.2014 18:22, Jaroslav Buchta napsal(a):
> Mám tuto definici:
>
> static volatile uint16_t SamplesBuf[3][100000]  __attribute__ 
> ((section (".HeapMemSection")));
>
> ld script:
> /* Specify the memory areas */
> MEMORY
> {
>   FLASH (rx)      : ORIGIN = 0x08000000, LENGTH = 2048K
>   RAM (xrw)       : ORIGIN = 0x20000000, LENGTH = 192K
>   MEMORY_B1 (rx)  : ORIGIN = 0x60000000, LENGTH = 0K
>   CCMRAM (rw)     : ORIGIN = 0x10000000, LENGTH = 64K
>   SDRAM (rw)      : ORIGIN = 0xC0280000, LENGTH = 5632K
> }
> ....
>   .HeapMemSection :
>   {
>     *(.HeapMemSection*)
>   } >SDRAM
>
>
> a ve výsledku to chce nacpat to pole i do Flash jako inicializovana data
>
>   text       data        bss        dec        hex    filename
>  127116     627171      46356     800643      c3783 
> bin/Debug/STM32F439-Test.elf
>
> skutecne je vysledny soubor .bin pres 3 GB.
>
> Uz mi to moc nemysli ani nehleda dneska, vysype to nekdo z rukavu?
>
> ---
> This email is free from viruses and malware because avast! Antivirus 
> protection is active.
> http://www.avast.com
>
> _______________________________________________
> 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