FAE工程师您好,我在使用STM32H750XB搭载了SDRAM存储器。在CubeIDE中如何定义一个数组指定到SDRAM中,我在.ld文件中定义了方法section(".malloc"),如下:- .malloc :, D8 T9 Y6 {- U* j, H( Z! q
- {. ]+ a8 j6 l6 Y! \
- . = ALIGN(4);
4 d4 \% P( b1 a0 f - __MALLOC_SYMBOLS = .; /* create a global symbol at ccmram start */
# f0 ]" V2 z/ R' ~0 S( b - *(.malloc)
8 f" }' \+ v$ ?! E" C; E - *(.malloc*)
( Y, Y( U% v, s/ f. u4 t; w - __MALLOC_SYMBOLS = .; /* create a global symbol at ccmram end */
& @. G4 A/ z. l2 h" m% s - . = ALIGN(4);; R; j8 n- `9 z" i. e8 w
-
$ B5 ^' I) p/ c. A; N - } >MALLOC
复制代码- MEMORY
. U/ @9 S1 r0 D5 _' T - {0 H6 r8 q% @# n
- DTCMRAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K
. S; U# d u7 | _ Z4 H - ITCMRAM (xrw) : ORIGIN = 0x00000000, LENGTH = 64K
0 }% a% ^, a5 {5 R D - RAM_D1 (xrw) : ORIGIN = 0x24000000, LENGTH = 512K& o ^3 M" U* f7 k& P4 w
- RAM_D2 (xrw) : ORIGIN = 0x30000000, LENGTH = 288K+ \( U j- {. W& X' ?
- RAM_D3 (xrw) : ORIGIN = 0x38000000, LENGTH = 64K3 t( T) @ L6 X- H3 _: S0 b* c
- FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 128K
) U% ]" o6 S* A# \ - MALLOC (xrw) : ORIGIN = 0xc0000000, LENGTH = 64M+ I: C C& a& {- b( S, h; J A& [
- }
复制代码 但是在程序中定义全局变量如下:- uint16_t testsram[25000] __attribute((section(".malloc")));
复制代码 此时程序编译不会报错,但是会产生一个很大的bin文件,像是把数组写到了bin文件中,这是不行的,请问如何实现将指定数组定义在SDRAM中呢。6 A* M0 W; c2 @
再者,如何编辑.ld文件实现分散加载,将程序下载到外部FLASH W25Q64当中呢,谢谢?
6 M D- u7 K4 N |
éè¿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 8 u; _$ A! \2 v) L6 M, D" a
然后在最后一个大括号前添加 6 u& j( b j% y. Z) @/ M4 f
.GUI_NUMBYTES_section : { *(.GUI_NUMBYTES_section) } >GUI_NUMBYTES_section 3 ~9 p) A, ?) [, P
在使用时定义长度、申请数组+ H3 k# r, @" _* T' c5 z
#define GUI_NUMBYTES (1024) * 1*300 // x KByte
U32 aMemory[GUI_NUMBYTES / 4] __attribute__((__section__(".GUI_NUMBYTES_section")));0 a0 |6 K5 h3 ]1 ~/ ?4 [0 H
下面是.ld文件" T; u4 ]( y+ d( O
& n8 {/ f" u2 W( \" N$ ?
STM32F429IGTX_FLASH.rar
2020-11-27 09:50 上传
点击文件名下载附件
2.27 KB, 下载次数: 6
还是不行,依然会生成一个很大的bin文件 Q' B9 l, ^. B4 p
要做在线升级
这样就可以不在bin文件中加入LMA了。
注意,第一次编译先不加NOLOAD,编译过了再加