MDK填充FLASH为0xFF

MDK填充FLASH为0xFF

参考

area 指定地址 https://blog.csdn.net/zyboy2000/article/details/6752170?utm_source=blogxgwz1

分散文件 http://www.keil.com/support/docs/3407.htm

汇编伪指令 https://blog.csdn.net/tinylaker/article/details/50673375

使用分散文件#

  1. Add the following linker switch to Project -> Options for target -> Linker -> Misc Controls:

    这里可以用hex形式表示

    Copy
    --pad=VALUE ;0xFF
  2. 更改加载文件,这个文件一般在输出目录下,后缀名为sct,取消默认的勾,启用这个加载文件并更改,添加一行,(END_ADR - START_ADR) 也就是FLASH大小

    Copy
    END_OF_BLOCK (END_ADR - START_ADR) FIXED EMPTY 0x0 {}
  3. 例子如下

    Copy
    ; ************************************************************* ; *** Scatter-Loading Description File generated by uVision *** ; ************************************************************* LR_IROM1 0x00000000 0x00020000 { ; load region size_region ER_IROM1 0x00000000 0x00020000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_IRAM1 0x20000000 UNINIT 0x00002000 { ; RW data .ANY (+RW +ZI) } END_OF_BLOCK 0x00020000 FIXED EMPTY 0x0 {} ;添加这一行,0x00020000就是FLASH大小 }

使用汇编文件#

Copy
AREA |.ARM.__at_0x0|, CODE, READONLY GBLA count ; declare local variable count SETA 1 ; you are not restricted to WHILE count <= 0 ; such simple conditions count SETA count+1 ; In this case, DCB 0xFF WEND

51汇编填充#

Copy
OVL.ASM 文件内容如下: START_ADDR EQU 22C0H //空 ROM 区的起始地址 CODE_NUM EQU 7488 //所填代码的个数 CSEG AT START_ADDR REPT CODE_NUM DB 0A5H ENDM END //指定地址 CSEG AT 0000H ORG 0000H

51 C填充#

  1. 新建C文件,比如BANK1.C,添加数组定义在CODE区, 比如10个字节的A5

    Copy
    unsigned char code abc[]={0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,};
  2. 在 User Segments 中填入此数组所在的 C 文件定义在所要指定地址的 CODE 区域中,这里写入10个字节的A5CODE区的BANK2的起始地址为0xEF00的区域)
    mark

posted @   zongzi10010  阅读(1385)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
点击右上角即可分享
微信分享提示
CONTENTS