ARM 代码烧录

ARM 代码烧录

(一)ICP(In Circuit Programing)

1.在电路编程:通过 DAP(Debug Access Port)使用仿真器/烧录器串行方式下载程序

在这里插入图片描述


为方便烧录程序,将CPU固定在系统板中,引出 Debug Interface 下载程序

常用接口:JTAGSWD 接口 ——> JLINK 与 ST-LINK 仿真调试器

2.烧录过程:PC ——> 仿真器 ——> Debug Interface ——> MCU

(1)使用 仿真器 烧录程序到 主存储器

(2)系统复位,从主存储器开始执行用户代码


(二)ISP(In System Programing)

1.在系统编程:厂家自定义 ISP 程序(UART/USB 协议),直接使用 USB 编程

(1)ISP 程序 存放在某一存储器中

2.烧录过程:PC ——> USB ——> (系统内置 JTAG/SWD 接口)——> MCU

(1)使用 USB串口 将程序下载到 指定存储器

(2)系统复位,执行 ISP 程序,利用 UART/USB 协议解析 hex 地址,将代码写入到 主存储器

  • 特殊情况:系统内置 JTAG/SWD 接口,使用USB转接方式也属于 ISP 编程

(3)系统复位,然后从主存储器中开始执行用户代码

注意:厂商定义通讯协议下载程序可以有很多种,最常用的是 使用 USB 串口通信


(三)IAP(In Application Programing)

1.在应用编程:用户根据需要自定义 IAP 程序,在系统运行过程中更新程序

(1)与 ISP 不同的是,用户定义的 IAP程序是存放在主存储器中的

(2)IAP编程也是通过 ICP/ISP 方式下载到MCU中

2.烧录过程:ISP/ICP ——> MCU ——> IAP 程序 ——> Application 用户程序

(1)使用 ICP/ISP 方式烧录程序到 主存储器中,程序分为:IAP 程序 + Application 应用程序

(2)系统复位,执行主存储器中的 IAP程序,引导加载 将 Application 程序移到 指定地址

(3)系统根据 中断向量表 跳转执行 Application 程序

  • 不使用 IAP时,中断向量表默认位置在主存起始位置,应用程序的起始地址是默认的
  • 在 IAP 模式下,需要在 IAP 代码中重新设置中断向量表和应用程序的起始地址

3.IAP的常见应用是用来升级代码的,甚至远程升级代码

不使用 IAP 方式升级代码,会将原程序代码完全覆盖,可能造成不好的影响,且对用户不友好

(1)普通升级:利用外部存储介质存储升级代码,然后使用 IAP 程序将升级代码写到指定地址

(2)远程升级(OTA):利用网络协议远程升级固件代码

  • 使用 Dowlander 区暂存升级固态代码,然后 IAR 程序检查 该区域是否有代码升级,然后写入
  • 一些措施:加密检查、差分升级(补丁)、恢复分区、断点续传技术等等

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值