小猫爪:i.MX RT1050学习笔记2-下载
1 前言
在前面介绍的RT启动,我们已经详细的对其启动原理以及过程进行了简单的介绍,接下来我们再继续介绍一下RT的下载。
2 Flashloader和FLASH算法
有接触过MCU经验的人都知道下载程序无外乎有两种方法,以STM32为例,它可以支持通过仿真器的download形式将程序下载进去(SWD和JTAG),或者通过串口(UART)将程序烧录进去,但是不管是哪一种方式,其实在下载过程中都用到了一个工具程序,这个工具程序的作用就是接收用户Application数据然后将其搬运至存储器中,最后通过重启的方式最后启动APP。我们可以将其
2.1 FLASH算法
在IDE环境下,这个工具程序的名字一般叫FLASH算法,IDE会首先将相关的FLASH算法下载进芯片的RAM中,然后仿真器会调用FLASH算法中的函数实现flash的擦写操作,这里的FLASH算法其实就是一个特殊的Flashloader。关于FLASH算法的更多知识大家可以参考下面文章:
①小猫爪:嵌入式小知识09-KEIL/IAR FLASH算法
②小猫爪:i.MX RT1050学习笔记14-FlexSPI-FLASH使用2-IAR FLASH算法中的使用
③小猫爪:i.MX RT1050学习笔记15-FlexSPI-FLASH使用3-KEIL FLASH算法中的使用
2.2 Flashloader
在Serial Download模式下下载程序的时候,其实第一步就是先将Flashloader通过工具(sdphost)以及RT外部接口(USB或者UART)下载进RT的内部RAM中,将PC指针指向Flashloader的程序运行入口运行Flashloader,这时再接收image文件并将其下载进指定外部存储器中完成程序下载。RT系列的Flashloader,其程序包可在NXP官网上下载。
将Flashloader下载至RT的SRAM中的方式有一下几种:
①sdphost.exe
②J-Link Commander
③Ozone
(三种工具具体的使用方法大家可参考文章:痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(4)- Flashloader初体验)
3 下载方式
介绍完Flashloader后,相信大家对RT的下载过程已经有了一个大致的了解,接下来为大家介绍一下RT1050的几种常见的下载方式:
①通过IDE debug的形式
②通过sdphost+blhost(mfgtool)的形式(mfgtool其实就是blhost的封装形式,该种方法具体介绍大家可参考文章:痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(3)- Serial Downloader模式(sdphost/MfgTool)),我在文章《小猫爪:i.MX RT1050学习笔记18-安全启动2-elftosb和MfgTool的使用》中也讲述了使用MfgTool下载的过程,大家可以去参考以下。
③MCUBootUtility,该工具是NXP大牛自己开发的一键下载式的UI软件,其下载地址为:https://github.com/JayHeng/NXP-MCUBootUtility。其工具原理其实就是Serial Downloader下,调用sdphost+blhost的方式实现程序的下载,不过该工具非常方便,一定要试试。