温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
TMS320F2833
tloader
在线
升级
方法
许化
电子技术应用 2023年 第49卷 第3期Embedded Technology嵌入式技术基于 TMS320F28335 的二次 Bootloader 在线升级方法许化,黎蕾,倪云龙,余国良(中国电子科技集团公司第五十八研究所,江苏 无锡 214072)摘 要:为避免 TMS320F28335 在程序升级过程中需要执行打开嵌入式设备、额外配置 GPIO 管脚电平或单独开发专用上位机软件的操作,提出了一种二次 Bootloader 方法来实现应用程序的在线升级。将 TMS320F28335 配置为Flash 启 动 模 式,通 过 预 烧 写 二 次 Bootloader 程 序,将 通 用 串 口 上 位 机 软 件 下 发 的 应 用 程 序 bin 文 件 存 储 在TMS320F28335 的外扩 SRAM 中,执行将应用程序烧写到片上 Flash 指定区域的操作,并跳转执行应用程序,实现应用程序的在线升级功能。实验结果表明,该方法有效可行,具有较强的通用性和可靠性。关键词:TMS320F28335;DSP;二次 Bootloader;在线升级;串口通信中图分类号:TP311 文献标志码:A DOI:10.16157/j.issn.0258-7998.223190中文引用格式:许化,黎蕾,倪云龙,等.基于 TMS320F28335 的二次 Bootloader 在线升级方法J.电子技术应用,2023,49(3):139-142.英文引用格式:Xu Hua,Li Lei,Ni Yunlong,et al.Online upgrade method of second bootloader based on TMS320F28335J.Application of Electronic Technique,2023,49(3):139-142.Online upgrade method of second bootloader based on TMS320F28335Xu Hua,Li Lei,Ni Yunlong,Yu Guoliang(NO.58 Research Institute of China Electronics Technology Group Corporation,Wuxi 214072,China)Abstract:To avoid the operations of opening embedded device,configuring GPIO pin voltage level,or developing the special upper computer software during the online upgrade process of application program for TMS320F28335,a second bootloader method was proposed.To realize the online upgrade function of application program,TMS320F28335 was configured as Flash boot mode,and the second bootloader was pre-burned.The application program binary file from general serial port upper computer software was stored in the external extended SRAM of TMS320F28335,and was downloaded to on-chip Flash.And then,the system jumps to execute the application program.The experimental results show that this method is effective and feasible,and it has strong universality and reliability.Key words:TMS320F28335;DSP;second bootloader;online upgrade;serial communication0 引言TMS320F28335 是 TI 公司生产的一款高性能的 32位浮点 DSP 处理器,该 DSP 处理器采用哈佛结构和流水线技术,其接口资源丰富,控制精度高,运算速度快,被广泛应用于嵌入式系统的各类领域12。在实际应用中,嵌入式设备在投入使用后,往往存在在线升级的需求,需要将待升级文件固化到非易失性存储器中3,便于应用程序的持续运行。TMS320F28335 DSP 处理器直接在片上集成了 256K16 bit 的 Flash 存储器4,十分适用于应用程序的固化升级。目前,TMS320F28335 将应用程序固化到片上 Flash主要有三种方式5:在电路编程(In Circuit Programing,ICP)、在系统编程(In System Programing,ISP)和在应用编程(In Application Programing,IAP)。其中,ICP 固化主要通过 TMS320F28335 的 JTAG 接口连接仿真器,并配合使用 TI 提供的 CCS 集成开发环境实现;ISP 固化主要通过配置 TMS320F28335 的 GPIO 管脚高低电平来改变启动模式,并利用出厂固化的 Bootloader 程序实现;IAP 固化通过定制的 Bootloader 程序实现。以上三种方式中,ICP 方式利用仿真器进行烧写,因此升级时必须打开嵌入式设备,这给升级过程带来极大不 便;ISP 方 式 需 要 通 过 人 工 接 线 来 额 外 配 置TMS320F28335 的 GPIO 管脚电平,升级完成后还需重新恢复 GPIO 管脚原状态,操作繁琐且存在一定的安全隐患;IAP 方 式 无 需 打 开 嵌 入 式 设 备,也 无 需 更 改TMS320F28335 的 Flash 启动模式,是一种便捷、安全的139Embedded Technology嵌入式技术www.ChinaAET.com固 化 方 法,但 传 统 的 IAP 方 式 需 要 针 对 定 制 的 Bootloader 程序编写专用的上位机软件,该专用上位机软件需求各异,且开发繁琐,无法形成统一标准。针对上述问题,提出了一种二次 Bootloader 在线升级方法,该方法属于 IAP 方式,无需打开嵌入式设备,无需额外配置 GPIO 管脚电平,且无需单独开发专用上位机软件,只需使用具备命令和文件发送功能的通用串口上位机软件即可,简单高效。1 引导过程分析Bootloader,也称引导程序,指 TMS320F28335 DSP处理器从上电复位到跳转至应用程序之前运行的一小段程序,用于对处理器进行必要的初始化和实现程序引导功能,其包括一次 Bootloader 和二次 Bootloader6。1.1 一次 Bootloader 引导一次 Bootloader 是 TMS320F28335 在出厂时就被固化 在 片 上 Boot ROM 区 间 的 程 序7,不 可 修 改,用 于TMS320F28335 在上电复位后,将程序从外部源搬移至内部存储器中执行。一次 Bootloader 的引导流程如图 1 所示。TMS320F28335 在 上 电 复 位 后,程 序 指 针 运 行 到 复 位 向 量 即0 x3FFFC0 地址处8,该地址存放着 InitBoot 函数的入口地址,执行完 InitBoot 函数后,将调用 SelectBootMode 函数,通 过 该 函 数 读 取 GPIO84、GPIO85、GPIO86 和GPIO87 引脚的高低电平状态,从而确定 TMS320F28335的引导模式。根据引导模式判断是否需要调用出厂固化 的 Bootloader 程 序,如 果 为 Flash、SARAM、OTP 和XINTF 引导模式,则退出引导,直接跳转到对应引导模式确认的入口地址处执行程序;如果为 SPI、SCI、I2C 和eCAN 等外设引导模式,则先调用对应外设的引导程序,并将对应外设接口处的源程序搬移到内部存储器执行,最后退出引导,执行入口地址处程序。1.2 二次 Bootloader 引导二次 Bootloader 是一种定制的 Bootloader 程序,需要根 据 升 级 策 略 进 行 重 新 开 发,其 作 用 是 在 一 次 Bootloader 的基础上,完成应用程序的在线升级功能。二次 Bootloader 的引导流程如图 2 所示。TMS320F28335 采用默认的片上 Flash 启动模式,在其上电复位后,首先执行一次 Bootloader 引导流程,但忽略一次 Bootloader引导流程中调用外设引导程序的步骤,直接退出一次引导,程序指针跳转到片上 Flash 的 0 x33FFF6 地址处9,该地址位于片上 Flash 的 BEGIN 区,二次 Bootloader程序的设计就从该地址处开始。BEGIN 区存放着一条指向 c_int00 的跳转指令,而 c_int00 是 C 程序的入口地址,用于初始化 C 运行环境10,然后跳转到二次 Bootloader程序的主函数,开始执行在线升级流程,最终通过串口通信将应用程序烧写到片上 Flash 指定区域,并引导执行应用程序,从而实现应用程序的在线升级功能。上述可知,本文仅使用一次 Bootloader 完成程序的跳转功能,不使用程序的搬移功能,而程序的搬移和最终的升级功能由二次 Bootloader 完成。2 在线升级功能实现应 用 程 序 在 线 升 级 的 整 体 步 骤 如 下:首先,通过CMD 文件分配二次 Bootloader 程序和应用程序所处的片上Flash空间,并将二次Bootloader程序通过仿真器预烧写到片上Flash区间;其次,使用CCS集成开发环境将应用程序的.out文件进行格式转换,生成应用程序bin文件;最后,使用通用的串口上位机软件下发升级命令和bin文件,执行二次Bootloader程序完成在线升级任务。图 1一次 Bootloader 引导流程图 2二次 Bootloader 引导流程140Embedded Technology嵌入式技术电子技术应用 2023年 第49卷 第3期2.1 片上 Flash 空间分配在线升级的核心思想是通过程序(二次 Bootloader程序)烧写程序(应用程序),这两个程序是相互独立的工程,被分别固化在 TMS320F28335 片上 Flash 的不同区间,为避免造成程序运行紊乱,需要对这两个程序所在的存储空间进行合理分配。TMS320F28335的片上Flash由8个32K16bit的扇区组成,用户可以对这几个扇区进行任意操作。片上Flash的空间分配,通过CMD文件完成11。CMD文件为链接命令配置文件,用于分配程序对应代码、数据和变量的存储空间。根据设计,片上Flash的空间分配如图3所示。应用程序被分配在片上Flash的BH扇区,二次Bootloader程序被分配在片上Flash的A扇区。其中,应用程序的BEGIN区位于片上Flash H扇区的0 x300000地址处,二次Bootloader程序的BEGIN区位于片上Flash A扇区的0 x33FFF6地址处。应用程序和 Bootloader 程序被分配在片上 Flash 的不同扇区,二者相互独立,不会造成程序运行紊乱。空间分配完成后,可以将完整的二次 Bootloader 程序通过仿真器固化到 TMS320F28335 片上 Flash 的 A 扇区。二次 Bootloader 程序的固化操作只需在安装嵌入式设备之前执行一次,之后