FAE工程师您好,我在使用STM32H750XB搭载了SDRAM存储器。在CubeIDE中如何定义一个数组指定到SDRAM中,我在.ld文件中定义了方法section(".malloc"),如下:- .malloc :' W8 w3 @5 N1 j; [5 L/ @
- {7 ? G3 M% Q5 `2 H/ k
- . = ALIGN(4);
7 W6 L' D" @" \' N* }; V. J - __MALLOC_SYMBOLS = .; /* create a global symbol at ccmram start */# J" z9 |" e* a' G; S5 z9 m
- *(.malloc)- n9 y/ g1 t- H1 @2 s1 r" F1 k, K5 v
- *(.malloc*)
, U3 U& M ?4 O( q+ J/ A6 n - __MALLOC_SYMBOLS = .; /* create a global symbol at ccmram end */
0 w `9 {% T4 |/ `; R - . = ALIGN(4);$ n5 f: Y1 W" I* s' t
-
1 r/ Q7 P+ @: m: N) D# f5 t - } >MALLOC
复制代码- MEMORY
$ C4 L. I* w$ u1 o1 {8 c" m - {8 y1 J. G& j8 F' T" @0 x) T, S
- DTCMRAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K
* z) E9 r2 |! l9 ?, e/ r - ITCMRAM (xrw) : ORIGIN = 0x00000000, LENGTH = 64K6 p! C, S: e4 J/ N
- RAM_D1 (xrw) : ORIGIN = 0x24000000, LENGTH = 512K
Y' f# d# [% Y/ U0 B - RAM_D2 (xrw) : ORIGIN = 0x30000000, LENGTH = 288K$ ~! c% X! t5 T A9 w
- RAM_D3 (xrw) : ORIGIN = 0x38000000, LENGTH = 64K. M& E0 _" a( q/ u& i/ D7 N* X
- FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 128K( S0 J9 y6 U* ^+ `- @- G
- MALLOC (xrw) : ORIGIN = 0xc0000000, LENGTH = 64M, d! n7 I% D( c! Q- X' v1 |
- }
复制代码 但是在程序中定义全局变量如下:- uint16_t testsram[25000] __attribute((section(".malloc")));
复制代码 此时程序编译不会报错,但是会产生一个很大的bin文件,像是把数组写到了bin文件中,这是不行的,请问如何实现将指定数组定义在SDRAM中呢。' D7 c; ^% x& y$ z
再者,如何编辑.ld文件实现分散加载,将程序下载到外部FLASH W25Q64当中呢,谢谢?0 x/ Q& h8 ^9 E% \8 R3 H- K
|
éè¿STM32CubeMXå¶ä½å¤é¨Flashçç§å驱å¨.pdf
2020-11-26 13:52 上传
点击文件名下载附件
696.61 KB, 下载次数: 39
External_Loader-main.zip
2020-11-26 14:10 上传
点击文件名下载附件
30.46 KB, 下载次数: 18
非常感谢您,那么怎么样实现CubeIDE中定义变量指定在SDRAM中呢?
GUI_NUMBYTES_section (xrw) : ORIGIN = 0xc0600000, LENGTH = 8192K 3 p% M2 e( a& l! a2 l" f; M
然后在最后一个大括号前添加 * N7 Z: V6 V6 Z% Z% V
.GUI_NUMBYTES_section : { *(.GUI_NUMBYTES_section) } >GUI_NUMBYTES_section
在使用时定义长度、申请数组+ ]* W+ q; C, s) G/ ^
#define GUI_NUMBYTES (1024) * 1*300 // x KByte, P6 U4 A, w5 i3 P9 S8 m( P
U32 aMemory[GUI_NUMBYTES / 4] __attribute__((__section__(".GUI_NUMBYTES_section")));+ J3 w( [! W v7 Y0 G4 X
下面是.ld文件
$ f2 Z. q4 w @: C& s+ f; a
0 f* R( m5 ^! X
STM32F429IGTX_FLASH.rar
2020-11-27 09:50 上传
点击文件名下载附件
2.27 KB, 下载次数: 6
还是不行,依然会生成一个很大的bin文件: S0 x8 O% |6 D! g2 I* R7 [1 q
要做在线升级
这样就可以不在bin文件中加入LMA了。
注意,第一次编译先不加NOLOAD,编译过了再加