STMCU小助手
发布时间:2022-10-4 14:21
|
这里以STM32L4R5为例(官方出的DEMO板),将变量存储在指定的片内FLASH地址(0x081F8000)。 一、MDK Keil软件操作) \: K' F/ r$ R
如上图所示,采用上述方式,可以将version和version1分别存储在STM32单片机片内FLASH的0x081F8000和0x081F8010地址。 对于嵌入式系统或者单片机而言,通常会将一系列的配置文件存储在一个指定的区域(section)。也就是说,某种类型的变量存储在一个指定的区域内。在这里,就要修改STM32的链接文件了。7 o& `4 ^& s; H6 ?4 z: x# Z 下图为STM32的默认链接文件配置。& \( U6 \: {; a2 b3 }( B& K
修改Scatter File文件。添加下图中红框内的代码,该代码的含义是定义一个区域RW_IROM2(段属性为UNINIT_FIXED_LOC),该区域的起始地址为0x081F8000,大小为0x00008000。.ANY(UNINIT_FIXED_LOC)表示存储任何段属性为UNINIT_FIXED_LOC的数据。
) c e) t x7 V o) i, Z 取消1处的勾选,在2处选择自己修改过后的Scatter File。 . Y" h* ^4 N2 j
( {; p% z i8 M$ b3 A( E 如此,在编程时,只需如此定义相应的数据类型。 & H2 }8 _- U9 [$ d7 { v
在编译通过后,查看.map文件,可以看到0x081f8000处存储了0x0000000c大小的数据,段属性为UNINIT_FIXED_LOC , [/ o V6 x- p1 D
# P! {* z. q1 ^/ X$ o5 |/ D 二、IAR操作$ W. t+ L, V: W& d5 Z/ \7 C 在链接文件(.icf)中添加如下代码2 K4 f9 N& J3 G+ ~
三、注意 该文是将变量存储在STM32片内FLASH中,故对变量进行操作时,需要按照片内FLASH的操作方式进行,即先解锁,然后修改,再加锁。 ———————————————— r6 ?, o; L0 U9 v+ j9 {( _ 版权声明:老谭_酸菜 ' k8 D# b6 u" L$ u1 q D7 Q# `0 L# ]( s |
【经验分享】STM32语音识别的智能蓝牙音箱(源程序+原理图+PCB+设计说明书+PPT)
想找个ST芯片
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
技术手册stm32f1xx中的一个小问题
【经验分享】STM32 HAL库移植FreeModbus详细步骤
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
微信公众号
手机版