查看: 1197|回复: 0

[经验] TI DSP的bootloader与在线升级

[复制链接]

该用户从未签到

发表于 2020-12-24 22:50:35 | 显示全部楼层 |阅读模式
分享到:

ti bootloader:SCI/SPI/CAN/I2C等特定的外设引脚,配合ti串口烧录工具(ti官网搜索controlSUITE下载安装,在ti目录下serial_flash_programmer.exe)通过PC cmd指令进行操作下载。
优点:可直接调用flashAPI(),不需额外的协议指令;
缺点:必须通过GPIO跳线使芯片进入对应的引导模式,比如CAN引导是一组电平组合,SCI引导是另外一种,而程序正常运行又是另外一种,它可以将整个芯片的所有flash擦除,然后实现编程。
7.jpg


IAP在线升级:是指用户自己开发一个bootloader驻留在芯片的flash区的某一个sector永远不被擦除,然后需要升级时,不需要进行跳线,而是可以直接通过通讯命令在应用程序层面进行处理,比如通过CAN,然后使机器停机,但MCU仍然正常运行的情况下,使程序跳转到bootloader运行,它可以把除了自己以外的所有flash擦除并编程,并在完成之后跳转回到应用程序继续运行。这个区别就在于不需要断电使MCU停止工作,而且不需要拆机跳线,因此在现场升级时非常方便。

IAP:在线应用程序烧写in application program,针对用户程序进行代码修改,需要自己写引导程序(bootloader固件);(可用作远程升级)

ISP:在线系统程序烧写in system program,更新时用户区代码停止工作,不需自己写引导程序;

ICP:在电路编程in circuit program,LPC芯片的编程方式。

IAP在线升级的重点:
固件层面有两个:一个bootloader固件,一个app固件;
其中bootloader固件为引导程序,必须放在单片机重新上电或者复位后的默认运行地址处;
app固件为用户程序,两个固件必须存放在不同的flash地址。

bootloader功能:
1.实现对app程序存储区域的数据清除,为写入新的app固件数据做准备;
2.接收CAN总线传输过来的的app固件数据,校验无误后写入app程序存储区域;
3.检测跳转标志位,有效则跳转到app程序开始处(main),无效则一直停留在bootloader程序等待;

app功能:
1.响应固件跳转命令,收到跳转命令后,跳转到bootloader下运行bootloader程序;
2.实现用户功能;

DSP上电程序运行流程:
8.jpg


DSP 一次引导流程(一般TI自带的BootLoader工具是在一次引导中完成,需要boot口高低电平配合):
9.jpg
DSP 二次引导流程:
10.jpg 11.jpg

bootloader关键技术点:

cmd文件中flash地址分配;
bin文件写入(注意bin文件写入的高低字节)
bin文件写入区域的限制,不要覆盖boot区域;
bootloader存在问题:
生成的bin文件比实际使用的区域更大;
生成的bin文件是从使用的开始sector一直到结束的sector。

12.jpg




回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条



手机版|小黑屋|与非网

GMT+8, 2024-11-26 21:00 , Processed in 0.109572 second(s), 16 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.