你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

CubeIDE下分散加载如何实现

[复制链接]
challenge 发布时间:2020-11-26 11:38
FAE工程师您好,我在使用STM32H750XB搭载了SDRAM存储器。在CubeIDE中如何定义一个数组指定到SDRAM中,我在.ld文件中定义了方法section(".malloc"),如下:
  1.    .malloc :, D8 T9 Y6 {- U* j, H( Z! q
  2.   {. ]+ a8 j6 l6 Y! \
  3.     . = ALIGN(4);
    4 d4 \% P( b1 a0 f
  4.     __MALLOC_SYMBOLS = .;       /* create a global symbol at ccmram start */
    # f0 ]" V2 z/ R' ~0 S( b
  5.     *(.malloc)
    8 f" }' \+ v$ ?! E" C; E
  6.     *(.malloc*)
    ( Y, Y( U% v, s/ f. u4 t; w
  7.     __MALLOC_SYMBOLS = .;       /* create a global symbol at ccmram end */
    & @. G4 A/ z. l2 h" m% s
  8.     . = ALIGN(4);; R; j8 n- `9 z" i. e8 w
  9.    
    $ B5 ^' I) p/ c. A; N
  10.   } >MALLOC
复制代码
  1. MEMORY
    . U/ @9 S1 r0 D5 _' T
  2. {0 H6 r8 q% @# n
  3.   DTCMRAM    (xrw)    : ORIGIN = 0x20000000,   LENGTH = 128K
    . S; U# d  u7 |  _  Z4 H
  4.   ITCMRAM    (xrw)    : ORIGIN = 0x00000000,   LENGTH = 64K
    0 }% a% ^, a5 {5 R  D
  5.   RAM_D1    (xrw)    : ORIGIN = 0x24000000,   LENGTH = 512K& o  ^3 M" U* f7 k& P4 w
  6.   RAM_D2    (xrw)    : ORIGIN = 0x30000000,   LENGTH = 288K+ \( U  j- {. W& X' ?
  7.   RAM_D3    (xrw)    : ORIGIN = 0x38000000,   LENGTH = 64K3 t( T) @  L6 X- H3 _: S0 b* c
  8.   FLASH    (rx)      : ORIGIN = 0x8000000,   LENGTH = 128K
    ) U% ]" o6 S* A# \
  9.   MALLOC   (xrw)     : ORIGIN = 0xc0000000,   LENGTH = 64M+ I: C  C& a& {- b( S, h; J  A& [
  10. }
复制代码
但是在程序中定义全局变量如下:
  1. uint16_t testsram[25000]  __attribute((section(".malloc")));
复制代码
此时程序编译不会报错,但是会产生一个很大的bin文件,像是把数组写到了bin文件中,这是不行的,请问如何实现将指定数组定义在SDRAM中呢。6 A* M0 W; c2 @
再者,如何编辑.ld文件实现分散加载,将程序下载到外部FLASH W25Q64当中呢,谢谢?
6 M  D- u7 K4 N
收藏 1 评论10 发布时间:2020-11-26 11:38

举报

10个回答
李康1202 回答时间:2020-11-26 14:09:20
这里是QSPI的加载过程,详细教程https://www.bilibili.com/video/B ... 8107792149691256998,如果用SPI总线的话需要自己仿写驱动,在CubePro里面有示例工程
官方示例工程.png

通过STM32CubeMX制作外部Flash的烧写驱动.pdf

下载

696.61 KB, 下载次数: 39

External_Loader-main.zip

下载

30.46 KB, 下载次数: 18

yzz163 回答时间:2020-11-26 14:12:32
不错的资料。谢谢。
李康1202 回答时间:2020-11-26 14:27:44
至于生成的文件你可以生成HEX文件,将生成BIN文件的命令勾选掉,
challenge 回答时间:2020-11-26 16:49:47
likang1202 发表于 2020-11-26 14:09  |) s9 J4 T% D( a8 v: L+ y( Q0 u
这里是QSPI的加载过程,详细教程https://www.bilibili.com/video/B ... 8107792149691256998,如果用SPI总线 ...

  i! k/ Z" n: }/ V' E9 k8 B1 \非常感谢您,那么怎么样实现CubeIDE中定义变量指定在SDRAM中呢?
李康1202 回答时间:2020-11-27 09:48:29
我是这样写的首先LD文件在MEMORY里面添加 9 U2 H! M* _1 o
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
2 I3 k- u8 b1 `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

6 V1 Y# I6 H+ I, i! G$ }: t+ O& n8 {/ f" u2 W( \" N$ ?

2 \2 [+ [# }9 B& Z. _/ L

STM32F429IGTX_FLASH.rar

下载

2.27 KB, 下载次数: 6

challenge 回答时间:2020-12-2 16:39:58
likang1202 发表于 2020-11-27 09:480 T' d2 x% W& }* k' b9 L
我是这样写的首先LD文件在MEMORY里面添加
' n, B# Q& e$ A& { GUI_NUMBYTES_section (xrw)  : ORIGIN = 0xc0600000, LENGTH = ...
9 E, g7 v$ C5 b& E
还是不行,依然会生成一个很大的bin文件  Q' B9 l, ^. B4 p
李康1202 回答时间:2020-12-3 09:45:35
bin文件大小应该会有3个G,没办法,最好生成hex文件;我理解的bin文件生成是这样的。bin文件的烧写地址是人为设定的,所以从0X08000000到0xC0000000这些地址全被填充数据了,所以说会有这么大的bin文件
challenge 回答时间:2020-12-5 19:54:39
likang1202 发表于 2020-12-3 09:45
/ J6 f7 h0 w. x" l5 qbin文件大小应该会有3个G,没办法,最好生成hex文件;我理解的bin文件生成是这样的。bin文件的烧写地址是人 ...

& q! {* w. T9 T要做在线升级
Dandjinh 回答时间:2020-12-5 21:22:56
  1. SECTION: (NOLOAD)2 b, W! B' F; q8 _1 _# \1 V
  2. {
    % e& H+ L  w7 V) F5 q* ~% n' ^' ~
  3.   .a1
      \; n0 f" {! i8 F  r1 C
  4.   ...
    ( f  u# E3 H) g% r( ]5 ~: |
  5. } > SDRAM
复制代码
3 U; l/ A! q1 \
这样就可以不在bin文件中加入LMA了。
; M/ N7 t. v- q. B' G注意,第一次编译先不加NOLOAD,编译过了再加
Kevin_G 回答时间:2020-12-13 09:55:35
资料很好

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版