一次说清楚GD32的flash写入 及 IAP编程

文章介绍了IAP编程中的BLOCK0和BLOCK1的区别,BLOCK0为ROM(FLASH),BLOCK1为SRAM,并给出了各自的地址范围。此外,还讲解了如何使用MDK的fromelf.exe工具将.axf文件转换为.bin文件,用于固件更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         

 

 

 

 

 

 

 

  为避免麻烦:
            如下建议:
            写入的每个数据的类型最好强制转换为32位数据
            写入的参数的起始地址需要是某一页的起始地址,第二个参数的地址应该+4,这样直接指向下一个字,这样按字写入不易出错,也容易理解
            例如首地址为0x0800AC00,第第131155页首地址,下个数据的地址为0x0800AC04

—————————————————————分割线——————————————————

IAP编程

BLOCK0:  FLASH即为ROM,类似硬盘可掉电存储

BLOCK1:  SRAM为随机存储器,类似电脑内存条掉电不保存

BLOCK0:  FLASH即为ROM,             

地址范围:0x08000000 + 64K = 0X08000000+65536(字节)= 0x08010000

BLOCK1:  SRAM为随机存储器,       

地址范围:0x20000000 + 20K = 0X08000000+20481(字节)= 0x08005000

我们通过 MDK 自带的格式转换工具 fromelf.exe,来实现.axf 文件到.bin 文件的转换。该工具在 MDK 的安装目录\ARM\ARMCC\BIN 文件夹里面。

fromelf.exe 转换工具的语法格式为:fromelf [options] input_file。其中 options 有很多选项可 以设置。

我们通过在 MDK 点击 Options for Target→User 选项卡,在 After Build/Rebuild 栏, 勾选 Run #1,并写入:fromelf --bin --output "$L@L.bin" "#L",如图:
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.youkuaiyun.com/Damon_Sandy/article/details/130224183

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值