STMCU小助手
发布时间:2025-11-17 09:54
|
意法半导体公司【简称ST】为STM32用户提供了免费的编译工具软件STM32CubeIDE,时不时有人咨询基于该环境下的指定存储话题,这里专门聊聊该内容,重点介绍如何实现针对变量、函数、文件、常量的指定存储的实现方法,以供参考。 一、指定变量的RAM存放地址 先修改STM32CubeIDE的相关连接文件如下:【后面都会用到下面配置】
在链接文件中增加section:
或者这样也行:
当然,对于变量的指定存储,不调整链接文件,直接给定地址借助指针的方式也是可以的。比方像下面这样,不过要注意你指定使用的内存空间是安全的,别跟其它堆栈区冲突了。
二、指定函数的存放地址 下面尝试将名为MX_I2C1_INIT()的函数存放在指定位置。
三、指定文件的存放地址 下面尝试将名为adc.c和gpio.c的目标文件存放在指定位置。
四、指定常量的存放地址
当然,如果在section那里再指定地址的做法也可以:
看到这里,有人或许好奇链接脚本中的keep关键字,如果不要会怎么样呢? 这里使用 我们不妨验证下。基于上面的配置,将keep拿掉,同时代码中对定义的常量不做任何引用或使用。我们可以发现定义的常量段被丢弃了,即没有在预定的地址为其安排存储空间。
最后提醒下,我们做段定义时有时可能会遇到地址不合适的问题,我们可以适当调整地址数据,不要跟默认栈空间冲突了。还有,自定义段在链接脚本中的位置有时会涉及到有效性问题,具体设计时可以灵活调整段定义在脚本文件中的前后位置。 OK,今天的分享就到这里,下次再聊~! 文章出处:茶话MCU |
【STM32H5 评测】基础硬件加密与随机数性能 - STM32H5E5实测硬件AES加解密、HASH运算、TRNG真随机数输出速率与稳定性
【STM32H5 评测】NUCLEO-H5E5ZJ 使用 TrustZone 安全分区系统实践测试
【STM32H5 评测】CPU核心性能 - STM32H5E5跑 RTOS,观察任务切换速度、中断响应快慢
【STM32H5 评测】内存读写性能 - STM32H5E5实测Flash,SRAM读写速度,用DMA搬运大块数据
【NUCLEO-C562RE】OLED 显示
保姆级教程:CMake 工程导入 STM32CubeIDE 步骤
STM32CubeCLT 1.22.0新版本发布
【下载问题解决】关于ST官网下载软件问题解决
【STM32H735G-DK测评】lvgl移植
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
微信公众号
手机版