
相关阅读嵌入式https://blog.csdn.net/weixin_45791458/category_12768532.html?spm1001.2014.3001.5482Jlink/J-Flash是常见的烧录/调试工具本文将说明其烧录Flash的工作原理。按照烧录方式来分Jlink/J-flash可以分为直接烧录和间接烧录。直接烧录直接烧录一般用于外部SPI Flash使用J-Flash SPI指的是直接使用SPI协议对Flash进行烧录SPI接口可以复用JTAG接口的引脚如下图所示。在这种情况下甚至都不需要MCU的存在可以对SPI Flash进行单独的编程。间接烧录相对常用间接烧录指的是有MCU参与的烧录首先通过Jlink/J-Flash实现Flash编程需要额外的代码通常称为flash loader。该代码通过JTAG或SWD下载到目标系统的RAM中负责执行Flash的擦除和编程操作。这些编程算法因不同的Flash芯片而异并根据目标系统的字节序和Flash内存的组织方式进行调整。Flash 编程的两种数据供应方式1、数据下载到RAM数据通过JTAG或SWD下载到目标系统的RAM中然后设置CPU的指令指针启动CPU执行RAM中的flash loader代码。flash loader负责用Flash控制器将数据从RAM写入Flash。该过程可能需要重复执行直到所有数据都被编程到Flash中。2、通过DCC下载数据首先启动RAM中的flash loader代码然后flash loader通过DCC调试通信通道与主机通信使用Flash控制器传输数据到目标系统。数据被写入FlashCPU只需启动和停止一次。由于DCC的通信开销较低这种方式通常比将数据直接下载到RAM更快。优点与缺点直接烧录优点1、进行Flash编程时可以不关注MCU的型号以及其兼容性。2、进行Flash编程时无需额外的RAM空间存储Flash loader。直接烧录缺点1、进行Flash编程时需要额外的硬件连接。2、直接烧录无法与集成开发环境IDE集成使用。间接烧录优点1、支持通过集成开发环境IDE进行烧录方便集成到开发流程中。间接烧录缺点1、需要连接到MCU获得其支持。2、需要额外的RAM空间存储Flash loader。3、即使是同一块Flash针对不同的Flash控制器需要有不同的Flash loader算法。