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

关于 STM32CubeIDE 链接脚本的小问题

[复制链接]
STMCU小助手 发布时间:2022-8-7 17:08
1. 概述5 l( d' z5 J" t* F9 T" {1 g
越来越多的客户在使用 STM32CubeIDE 作为集成开发工具。STM32CubeIDE 在编译代码的时候,用到了链接脚本。通常情况下,STM32CubeIDE 会自动生成默认的链接脚本。但是有些情况下,例如,用户程序需要定义一些特别的段来放置代码或者数据的时候,我们就需要修改链接脚本文件。3 j/ ^% P0 c5 Y' _
最近有客户在修改链接脚本后,编译没有出现问题。但是编译之后生成的 BIN 文件很大,导致无法烧录到 Flash 中。结合这个问题,本文详细分析一下它的原因以及解决办法。5 h. n) ~1 t3 T2 {7 X
2. 问题描述
+ @# n% f4 E( G3 m! W# W使用 STM32CubeIDE 创建工程的时候,在项目工程目录文件夹下生成后缀为 ld 的链接脚本文件,程序的编译和链接都会依赖链接脚本文件。如下图所示,STM32H743VIT6 的 RAM 空间被包含 6 块,每块 RAM 的起始地址是独立的,如果客户需要把指定特定的 RAM 区域放置数据或者代码的时候,需要手动修改链接脚本文件。
4 y6 M9 q" K; U( a, ], t; n1 q/ f/ ?3 A

& U* k" w5 m' Q! N8 T# C W~QNGZB3@FBC2N7PN$}(9~7.png
, m' T- [, e0 L/ R
3 G, E. k8 }: v4 Z5 z客户在使用 STM32H743VIT6 进行应用开发的时候,需要在 0x24000000 以及0x30000000 的 RAM 空间定义两个未初始化的数组。所以客户修改了 ld 链接脚本文件,添加两 个 SECTIONS 分别定位在 0x24000000 和 0x30000000 位置,同时在代码中使用__attribute__关键字指定数组在对应的 SECTIONS 中。
+ d$ o$ b: x' q& U依照客户的问题描述,我们首先修改链接脚本,添加两个 SECTIONS 分别为ram_at_0x24000000 和 ram_at_0x30000000,参考如下。
6 _& S. ?" F0 U# P
) r7 A, ]' I% x' }& T, x; n% l5 v
/ F, d7 `8 m# W
FD6X5VKVJ1N}A5E3NE0N~7M.png / x# \( I; A! }* H1 s
' |2 H9 [, [- A; b) ]
# K' e- D* Y1 ]! T% D
同时在源代码中添加两个数组,分别定位在添加的 SECTIONS 中,参考如下。
* E5 M  T7 x& S# f5 Z
  G9 L) V# X9 w& I! D

1 E. U7 L; y0 Y J69S(TN~Y(4CPKK{@SIDZK9.png " W5 ?5 m. o6 m( ?5 t
6 Y0 }: |) F. u  K& Q
( d  I/ Q& F  P# T# _. d0 B! [0 h5 X
编译修改之后的工程,是可以正常运行的,但是我们发现当把 ELF 目标文件转为 BIN 文件之后,产生的 BIN 文件非常的大。这就导致如果使用 BIN 文件进行下载的话,是无法下载成功的,因为 BIN 文件的大小以及超出了 Flash 的存储空间。由下图 BIN 文件属性我们可以看到 BIN文件的大小为 650M。 , k9 e5 _* F. b: P' I! e2 V6 X- s
0 v- p7 g4 z, j4 _' h
图4. BIN 文件大小
0 k  m' \# U' y7 P ]JBXR{O8R4(U4SO{SC53E8I.png : y- b$ y& e6 S9 z
! I. N- \3 H/ z9 I
那么是什么原因导致产生的 BIN 文件这么大呢?文件就出在 ld 链接脚本文件这里。
4 y$ f% \* p3 e9 M, d* c
3 ?7 O4 I+ ^! r7 q  {" _
, @; @& E% Y- S, c& K- N1 b: g0 ?% w* C) H' v2 E7 a) {. ?" d# M
1 M& K& b; c; B& R' J
完整版请查看:附件3 j1 T5 b0 {8 ]+ n0 _! a( S# {' e
( m2 B3 C( O+ J0 @
+ }/ _, E2 o  r% v. N- p' P5 B

. _1 d* Y! U2 f; y3 X' o' G

LAT1037_关于STM32CubeIDE链接脚本的小问题.pdf

下载

666.88 KB, 下载次数: 2

收藏 评论0 发布时间:2022-8-7 17:08

举报

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