bootloader+和内存地址映射相关

做单片机固件下载校验,过程中遇到的一些知识点整理;

1、Bootloader为什么要单独一个分区,不能放在APP头进行校验吗?不单独分区的bootloader是否可行?

        个人想法,bootloader作为一个独立分区烧写更能保障安全性,但不独立对bootloader进行分区也是可行的,把boot放进app的头并在每次启动时对备份、加载固件进行判断,并不会影响实际使用,毕竟目前我接触的bootloader的作用主要是初始化、校验固件、跳转至APP,分区不分区只是起到一个烧写隔离的作用。

2、代码存储地址和运行地址

        存储地址是代码编译的地址,是指令的存储位置,运行地址是代码编译完成后的实际地址,可以通过Map查看一些全局变量的偏移位置(这个是这些变量的实际地址),实际运行过程中,会将一些代码从Flash里加载到SRAM、DRAM中运行,这样做的好处一是速度更快,二是避免flash空间不够,如果程序是在flash里运行,则运行地址和加载地址是相同的。“如果程序是在ram里运行,但程序是存储在flash里,则运行地址指向ram,而加载地址是指向flash。”

3、Dump文件

        标准汇编文件 .s,中间汇编文件 .lst,完整汇编文件 .dump(完整的机器码)

4、在.S文件中用.space申请内存空间,才能让对应的片区在map文件中显示

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值