STM32的IAP

ARM烧录

  • ICP(In Circuit Programing)在电路编程
  • ISP(In System Programing)在系统编程
  • IAP(In applicating Programing)在应用编程
  • DAP(Debug Access Port)(调试访问端口)(DAP通常是指CMSIS-DAP)

三者的直观区别

ICP

使用对应厂家的软件以及仿真器都可以烧录程序,目前主流的有Jtag(Joint Test Action Group)以及SWD(Serial Wire Debug)接口。而ICP编程就是以SWD接口进行的。

执行ICP功能,仅需要3个引脚RESET、ICPDA、ICPCK。RESET用于进入或退出ICP模式,ICPDA为数据输入输出脚,ICPCK为编程时钟输入脚。用户需要在系统板上预留VDD、GND以及这三个脚。
在这里插入图片描述ICP是指“在电路编程”,PC上运行的软件“NuMicro ICP编程工具”透过SWD的端口更新晶片内部APROM、LDROM、数据闪存(DataFlash)和目标用户配置字(Config)芯片。

在这里插入图片描述ICP使用SWD接口进行烧录程序。常用的烧录工具为J-Link、ST-Link、Nu-Link;与之配套的烧录软件为J-Flash、NuMicro_ICP_Programming_Tool、st-link utility。

ISP(In System Programing)

ISP是指“在系统上编程”,目标芯片使用USB/UART/SPI/I²C/RS-485/CAN周边接口的LDROM引导代码去更新晶片内部APROM、数据闪存(DataFlash)和用户配置字(Config)。
在这里插入图片描述ISP是使用引导程序通过USB/UART等接口进行烧录的,首先就是需要有BoodLoad程序。最常见的烧录方式就是学习8051单片机时使用的STC-ISP烧录工具了。
在这里插入图片描述

IAP(In applicating Programing)

IAP就是通过软件实现在线电擦除和编程的方法。IAP技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将程序从一个存储体转向另一个。

IAP就是通过软件实现在线电擦除和编程的方法,没有使用任何工具,仅仅是通过软件的方法来更新Flash中的数据。

IAP实现

IAP技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将控制从一个存储体转向另一个。
IAP的实现更加灵活,通常可利用单片机的串行口接到计算机的RS232口,通过专门设计的固件程序来编程内部存储器。
具体在设计固件程序时编写两个项目代码,这两部分项目代码都同时烧录在User Flash中,当芯片上电后,首先是第一个项目代码开始运行,它作如下操作:
  1)检查是否需要对第二部分代码进行更新
  2)如果不需要更新则转到4)
  3)执行更新操作
  4)跳转到第二部分代码执行
第一部分代码必须通过其它手段,如JTAG或ISP烧入;第二部分代码可以使用第一部分代码IAP功能烧入,也可以和第一部分代码一道烧入,以后需要程序更新是再通过第一部分IAP代码更新。

在第二部分代码开始执行时,首先需要把CPU的中断向量表映像到自己的向量表,然后再执行其他的操作。

调试器(Debugger)

在这里插入图片描述
图片中的都是调试器(Debugger)。包括STLink、JLink、ULink、DAP等等。

  • 如果一个DAP遵循了CMSIS-DAP标准,他就可以支持所有Cortex-M内核的单片机,使用DAP最大的好处就是免驱动,不用下载驱动。但是STM32CubeIDE只支持STLink和JLink。
  • 在STM32单片机中,Cortex-M内核含有硬件调试模块,可以进行调试,不需要另外的、单独的仿真器。我们只需要使用仿真器将电脑和MCU连接起来,再配置一下相关的设置,就可以进行调试了。
  • Cortex-M内核含有硬件调试模块,该模块可以在取指(指令断点)或者访问数据(数据断点)时停止。内核停止时,可以查询内核的内部状态和系统的外部状态(外设的状态)。完成查询后,可以恢复程序的执行。

各种调试器的区别

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万码无虫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值