STMCU小助手
发布时间:2022-10-4 14:21
|
这里以STM32L4R5为例(官方出的DEMO板),将变量存储在指定的片内FLASH地址(0x081F8000)。, J! I: J" _3 U2 | 9 w" @4 d* s/ j6 F- L/ l# G5 | 一、MDK Keil软件操作! {. S8 g7 a) i! u6 N B8 m
如上图所示,采用上述方式,可以将version和version1分别存储在STM32单片机片内FLASH的0x081F8000和0x081F8010地址。 对于嵌入式系统或者单片机而言,通常会将一系列的配置文件存储在一个指定的区域(section)。也就是说,某种类型的变量存储在一个指定的区域内。在这里,就要修改STM32的链接文件了。, d; }. _+ h" g1 f - Y( x3 B' ]( W9 `- z& @ 下图为STM32的默认链接文件配置。
; N9 T4 m- @" n: V 修改Scatter File文件。添加下图中红框内的代码,该代码的含义是定义一个区域RW_IROM2(段属性为UNINIT_FIXED_LOC),该区域的起始地址为0x081F8000,大小为0x00008000。.ANY(UNINIT_FIXED_LOC)表示存储任何段属性为UNINIT_FIXED_LOC的数据。
7 `7 L1 H: m/ ` 取消1处的勾选,在2处选择自己修改过后的Scatter File。9 o8 J% U1 I' }+ Z+ E6 L, E$ K3 M
如此,在编程时,只需如此定义相应的数据类型。 * K$ h3 J9 a+ G' \1 Y8 D4 f
在编译通过后,查看.map文件,可以看到0x081f8000处存储了0x0000000c大小的数据,段属性为UNINIT_FIXED_LOC 6 [+ e. V7 O" c, f% E% d. v
$ h+ i. E) Y6 g; [, I& Y 二、IAR操作 在链接文件(.icf)中添加如下代码: f* D, v6 h4 }) X a9 z2 \6 N F/ \3 Z/ M
三、注意 该文是将变量存储在STM32片内FLASH中,故对变量进行操作时,需要按照片内FLASH的操作方式进行,即先解锁,然后修改,再加锁。 ———————————————— 版权声明:老谭_酸菜+ Q% g* a6 W$ V1 x6 j @ |
【经验分享】STM32语音识别的智能蓝牙音箱(源程序+原理图+PCB+设计说明书+PPT)
想找个ST芯片
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
技术手册stm32f1xx中的一个小问题
【经验分享】STM32 HAL库移植FreeModbus详细步骤
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
微信公众号
手机版