STMCU小助手
发布时间:2025-11-17 09:54
|
意法半导体公司【简称ST】为STM32用户提供了免费的编译工具软件STM32CubeIDE,时不时有人咨询基于该环境下的指定存储话题,这里专门聊聊该内容,重点介绍如何实现针对变量、函数、文件、常量的指定存储的实现方法,以供参考。 一、指定变量的RAM存放地址 先修改STM32CubeIDE的相关连接文件如下:【后面都会用到下面配置】
在链接文件中增加section:
或者这样也行:
当然,对于变量的指定存储,不调整链接文件,直接给定地址借助指针的方式也是可以的。比方像下面这样,不过要注意你指定使用的内存空间是安全的,别跟其它堆栈区冲突了。
二、指定函数的存放地址 下面尝试将名为MX_I2C1_INIT()的函数存放在指定位置。
三、指定文件的存放地址 下面尝试将名为adc.c和gpio.c的目标文件存放在指定位置。
四、指定常量的存放地址
当然,如果在section那里再指定地址的做法也可以:
看到这里,有人或许好奇链接脚本中的keep关键字,如果不要会怎么样呢? 这里使用 我们不妨验证下。基于上面的配置,将keep拿掉,同时代码中对定义的常量不做任何引用或使用。我们可以发现定义的常量段被丢弃了,即没有在预定的地址为其安排存储空间。
最后提醒下,我们做段定义时有时可能会遇到地址不合适的问题,我们可以适当调整地址数据,不要跟默认栈空间冲突了。还有,自定义段在链接脚本中的位置有时会涉及到有效性问题,具体设计时可以灵活调整段定义在脚本文件中的前后位置。 OK,今天的分享就到这里,下次再聊~! 文章出处:茶话MCU |
实战经验 | 使用STM32CubeIDE开发上位机工具
【教程】STM32CubeIDE for Visual Studio Code 安装
解锁STM32开发新体验,STM32CubeIDE for VS Code全解析(附实操视频)
速看!STM32CubeIDE for Visual Studio Code预发布版全面整合至正式版,完成重大升级
速看!STM32CubeIDE for Visual Studio Code预发布版全面整合至正式版,完成重大升级
【评论有奖】STM32CubeIDE 2.0版本要来了
STM32CubeIDE 实用技巧之条件断点的妙用
实战经验 | STM32N6平台STM32CubeIDE下printfIO重定向到SWV-ITM
【NUCLEO-WBA65RI评测】Home Assistant 物联网心率计
经验分享 | STM32CubeIDE 实用技巧之如何生成静态库并添加到工程
微信公众号
手机版