CN110716721A - 兼容网口和串口的tms320c6748程序加载方法 - Google Patents
兼容网口和串口的tms320c6748程序加载方法 Download PDFInfo
- Publication number
- CN110716721A CN110716721A CN201910793852.3A CN201910793852A CN110716721A CN 110716721 A CN110716721 A CN 110716721A CN 201910793852 A CN201910793852 A CN 201910793852A CN 110716721 A CN110716721 A CN 110716721A
- Authority
- CN
- China
- Prior art keywords
- program
- flash
- user
- programming
- ubl
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000002194 synthesizing effect Effects 0.000 claims abstract description 4
- 230000006870 function Effects 0.000 claims description 18
- 238000000034 method Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 6
- 238000011068 loading method Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007711 solidification Methods 0.000 description 1
- 230000008023 solidification Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种兼容网口和串口的TMS320C6748程序加载方法,包括以下步骤:步骤1、编写用户引导程序UBL;步骤2、编写用户程序APP;步骤3、将步骤1的UBL程序和步骤2的用户程序APP进行文件的合成bin文件后烧入NOR Flash中;步骤4、使用步骤3中合并生成的bin文件进行网络或者串口烧写。本发明无需对产品进行拆装即可快速完成DSP程序更新,从而节省了大量时间。
Description
技术领域
本发明属于DSP程序加载技术领域,涉及DSP程序加载方法,尤其是一种脱离DSP仿真器,并兼容网口和串口的TMS320C6748程序加载方法。
背景技术
随着数字信号处理技术(DSP)的不断发展,TMS320C6748的应用越来越广泛,已逐步取代TMS320C6713成为低功耗高性能DSP芯片之首选。在以TMS320C6748为核心的应用系统中,系统完善和功能增强都面临软件更新的问题。这时,更新方法的简易和高效就显的特别重要。在基于DSP的系统中,软件更新通常需要借助仿真器将最新的程序下载到目标板上,然后将程序写入flash中,但在工程应用中,一旦系统组装为成品后,再对系统进行软件更新和维护时,传统的加载方式就显得十分不方便甚至不可能,而且采用传统方法不能解决程序代码的远程加载问题。另外,由于系统对外接口的变化,不同应用场景下可以进行程序加载的接口方式会有所不同,因此,需要一种更加灵活、高效、通用的程序加载方法。目前,网口和串口是比较常用的接口方式,因此如和研发一种兼容网口和串口的TMS320C6748程序加载方法成为本领域技术人员亟欲解决的技术问题。
发明内容
本发明的目的在于克服现有技术的不足,提出一种设计合理、通用性强。快速便捷且兼容网口和串口的TMS320C6748程序加载方法。
本发明解决其现实问题是采取以下技术方案实现的:
一种兼容网口和串口的TMS320C6748程序加载方法,包括以下步骤:
步骤1、编写用户引导程序UBL;
步骤2、编写用户程序APP;
步骤3、将步骤1的UBL程序和步骤2的用户程序APP进行文件的合成bin文件后烧入NOR Flash中;
步骤4、使用步骤3中合并生成的bin文件进行网络或者串口烧写。
而且,所述步骤1的采用AIS主模式下EMIF NOR Flash启动方式上电启动TMS320C6748的具体步骤包括:
(1)TMS320C6748的上电后,其内部Rom中的Bootloader程序开始执行,Bootloader程序捕获BOOTCFG寄存器中的值;
(2)在Bootloader捕获了Boot管脚配置以后,根据设置来选择AIS主模式下EMIFNOR Flash启动方式;
(3)在EMIF NOR Flash启动方式下,Rom Bootloader会执行以AIS文件格式存储在NOR Flash中的命令,将用户程序搬运到对应运行空间,最后跳转到用户程序的入口地址_c_int00,开始执行用户程序。
而且,所述步骤1的编写用户引导程序UBL的具体步骤包括:
(1)实现程序跳转功能:首先通过上电读取NOR Flash中固定地址中的标志,根据标志来判断是执行烧写程序加载功能还是跳转到用户APP执行,默认为跳转到用户APP;
(2)实现接收数据并固化功能:首先擦除Flash的相关Sector,再提示上位机输入待加载的bin文件,然后通过网口或串口接收数据进行处理并写入Flash;
(3)实现错误处理功能:首先对UBL进行备份,在擦除Flash之前先把原合成bin文件中的UBL复制到Flash固定段中,然后在接收固化的工程中实时判断bin文件帧头、帧尾以及校验和,如果有错则把UBL重新固化到Flash起始地址中,并置加载标志,如果没错则置跳转用户APP标志。
而且,所述步骤2的具体方法为:在用户程序APP中加入响应上位机命令对NORFlash中固定地址的写数或擦除的功能;
而且,所述步骤3的具体方法为:利用AISgen工具将步骤1中的UBL程序编译生成的out文件和步骤2中的APP程序编译生成的out文件转换合并成一个bin文件,借助仿真器将该bin文件烧入NOR Flash中。
而且,所述步骤4的具体步骤包括:
(1)系统上电后,读取flash中的标志位,若标志位为不烧写,则执行用户程序,否则执行烧写程序;若执行烧写程序,继续判定标志位是执行网络烧写还是串口烧写;
(2)若执行烧写程序,则首先进行硬件初始化,配置网口/串口;
(3)发送询问语句,询问是否进行烧写:若收到y,则继续烧写流程,否则退出并返回到用户程序;
(4)若继续烧写,则首先迁移UBL程序至flash的某扇区进行备份,然后擦除备份扇区之外的flash扇区。擦除完成后,发送语句,提示用户发送bin文件;
(5)网口/串口接收bin文件数据,完成后进行校验判定。若校验错误,利用备份的UBL程序重新固化UBL,置标志位为烧写状态,提示用户重启系统,重启烧写流程;若校验成功,则将bin文件写入flash,置标志位为非烧写状态,完成后提示用户烧写成功。
本发明的优点和有益效果:
本发明实现了无仿真器的条件下,兼容网口和串口对DSP芯片(TMS320C6748)进行程序加载,通用性强,且无需对产品进行拆装即可快速完成DSP程序更新,从而节省了大量时间。
附图说明
图1是本发明的系统结构框图;
图2是本发明的TMS320C6748上电启动流程图;
图3是本发明的AIS结构示意图;
图4是本发明的AIS命令结构示意图;
图5是本发明的AISgen工具界面图
图6是本发明的网口烧写辅助软件界面图;
图7是本发明的烧写流程图。
具体实施方式
以下结合附图对本发明实施例作进一步详述:
一种兼容网口和串口的TMS320C6748程序加载方法,其系统结构框图如图1所示,包括以下步骤:
步骤1、编写用户引导程序UBL(User Bootloader)
所述步骤1的采用AIS主模式下EMIF NOR Flash启动方式上电启动TMS320C6748的具体步骤包括:
(1)TMS320C6748的上电后,其内部Rom中的Bootloader程序开始执行,Bootloader程序捕获BOOTCFG寄存器中的值;
在本实施例中,BOOTCFG寄存器中的值是通过Boot管脚来实现的。
(1)在Bootloader捕获了Boot管脚配置以后,根据设置来选择AIS主模式下EMIFNOR Flash启动方式;
在本实施例中,启动方式从类型上主要分为3种模式:非AIS模式、AIS主模式、AIS从模式。本发明选择了AIS主模式下EMIF NOR Flash启动方式,具体上电过程如图2所示。
(3)在EMIF NOR Flash启动方式下,Rom Bootloader会执行以AIS文件格式存储在NOR Flash中的命令,将用户程序搬运到对应运行空间,最后跳转到用户程序的入口地址_c_int00,开始执行用户程序。
所述步骤1的编写用户引导程序UBL的软件设计要求用户引导程序具有程序跳转功能、接收数据并固化的功能,以及一定的错误处理能力,对因数据传输引起固化错误从而导致无法从flash启动的致命性错误进行补救。
所述步骤1的编写用户引导程序UBL的具体步骤,包括:
(1)实现程序跳转功能:首先通过上电读取NOR Flash中固定地址中的标志,根据标志来判断是执行烧写程序加载功能还是跳转到用户APP执行,默认为跳转到用户APP;
(2)实现接收数据并固化功能:首先擦除Flash的相关Sector,再提示上位机(网口烧写辅助软件或串口调试助手)输入待加载的bin文件(由UBL和用户APP合成),然后通过网口或串口接收数据进行处理并写入Flash;
(3)实现错误处理功能:首先对UBL进行备份,在擦除Flash之前先把原合成bin文件中的UBL复制到Flash固定段中,然后在接收固化的工程中实时判断bin文件帧头、帧尾以及校验和,如果有错则把UBL重新固化到Flash起始地址中,并置加载标志,如果没错则置跳转用户APP标志。
步骤2、编写用户程序APP;
所述步骤2的具体方法为:在用户程序APP中加入响应上位机命令对NOR Flash中固定地址的写数或擦除的功能,APP的运行空间为L2 RAM;
步骤3、将步骤1的UBL程序和步骤2的用户程序APP进行文件的合成后烧入NORFlash中;
所述步骤3的具体方法为:利用AISgen工具将步骤1中的UBL程序编译生成的out文件和步骤2中的APP程序编译生成的out文件转换合并成一个bin文件,借助仿真器将该bin文件烧入NOR Flash中。
在本实施例中,AIS文件格式是一种存储引导映象的格式。除了EMIF NOR FlashLegacy、EMIF NOR Flash Direct和HPI这三种引导方式,其他所有的引导方式都支持AIS文件格式。
AIS是一种二进制语言,以小端、32位格式进行存取。AIS结构如图3所示。AIS文件以魔术字(0x41504954)开始,包含一系列的AIS命令,按顺序由Rom Bootloader执行。AIS以Jump&Close(J&C)命令结束。每个AIS命令包含操作码、参数和数据(可选)组成。操作码和参数字宽为4个字节,数据的长度是4的倍数(以字节计算)。如果数据长度不是4的倍数,以0补充。AIS命令结构如图4所示。
在本实施例中,AIS文件产生是利用CCS5.5对工程文件编译后产生out文件,AISgen工具将out文件转换成bin(ais)文件。AISgen工具界面如图5所示,进行相应的配置后,在“DSP Application File”下拉框中选择out格式文件所在路径,在“AIS OutputFile”填写ais格式文件输出路径和名字。如果有多个out文件需要转换成一个bin格式文件,可以点击“DSP Application File”后面的加号进行添加,DSP上电默认执行第一个out文件对应的工程文件。
步骤4、使用步骤3中合并生成的bin文件进行网络或者串口烧写
如图7所示,所述步骤4的具体步骤包括:
(1)系统上电后,读取flash中的标志位,若标志位为不烧写,则执行用户程序,否则执行烧写程序;若执行烧写程序,继续判定标志位是执行网络烧写还是串口烧写;
(2)若执行烧写程序,则首先进行硬件初始化,配置网口/串口;
(3)发送询问语句,询问是否进行烧写:若收到y,则继续烧写流程,否则退出并返回到用户程序;
其中,网络接收询问语句并发送用户数据的软件如图6所示,串口接收软件为通用的串口调试助手。
(4)若继续烧写,则首先迁移UBL程序至flash的某扇区进行备份,然后擦除备份扇区之外的flash扇区。擦除完成后,发送语句,提示用户发送bin文件;
(5)网口/串口接收bin文件数据,完成后进行校验判定。若校验错误,利用备份的UBL程序重新固化UBL,置标志位为烧写状态,提示用户重启系统,重启烧写流程;若校验成功,则将bin文件写入flash,置标志位为非烧写状态,完成后提示用户烧写成功。
需要强调的是,本发明所述实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。
Claims (6)
1.一种兼容网口和串口的TMS320C6748程序加载方法,其特征在于:包括以下步骤:
步骤1、编写用户引导程序UBL;
步骤2、编写用户程序APP;
步骤3、将步骤1的UBL程序和步骤2的用户程序APP进行文件的合成bin文件后烧入NORFlash中;
步骤4、使用步骤3中合并生成的bin文件进行网络或者串口烧写。
2.根据权利要求1所述的一种兼容网口和串口的TMS320C6748程序加载方法,其特征在于:所述步骤1的采用AIS主模式下EMIF NOR Flash启动方式上电启动TMS320C6748的具体步骤包括:
(1)TMS320C6748的上电后,其内部Rom中的Bootloader程序开始执行,Bootloader程序捕获BOOTCFG寄存器中的值;
(2)在Bootloader捕获了Boot管脚配置以后,根据设置来选择AIS主模式下EMIF NORFlash启动方式;
(3)在EMIF NOR Flash启动方式下,Rom Bootloader会执行以AIS文件格式存储在NORFlash中的命令,将用户程序搬运到对应运行空间,最后跳转到用户程序的入口地址_c_int00,开始执行用户程序。
3.根据权利要求1所述的一种兼容网口和串口的TMS320C6748程序加载方法,其特征在于:所述步骤1的编写用户引导程序UBL的具体步骤包括:
(1)实现程序跳转功能:首先通过上电读取NOR Flash中固定地址中的标志,根据标志来判断是执行烧写程序加载功能还是跳转到用户APP执行,默认为跳转到用户APP;
(2)实现接收数据并固化功能:首先擦除Flash的相关Sector,再提示上位机输入待加载的bin文件,然后通过网口或串口接收数据进行处理并写入Flash;
(3)实现错误处理功能:首先对UBL进行备份,在擦除Flash之前先把原合成bin文件中的UBL复制到Flash固定段中,然后在接收固化的工程中实时判断bin文件帧头、帧尾以及校验和,如果有错则把UBL重新固化到Flash起始地址中,并置加载标志,如果没错则置跳转用户APP标志。
4.根据权利要求1所述的一种兼容网口和串口的TMS320C6748程序加载方法,其特征在于:所述步骤2的具体方法为:在用户程序APP中加入响应上位机命令对NOR Flash中固定地址的写数或擦除的功能。
5.根据权利要求1所述的一种兼容网口和串口的TMS320C6748程序加载方法,其特征在于:所述步骤3的具体方法为:利用AISgen工具将步骤1中的UBL程序编译生成的out文件和步骤2中的APP程序编译生成的out文件转换合并成一个bin文件,借助仿真器将该bin文件烧入NOR Flash中。
6.根据权利要求1所述的一种兼容网口和串口的TMS320C6748程序加载方法,其特征在于:所述步骤4的具体步骤包括:
(1)系统上电后,读取flash中的标志位,若标志位为不烧写,则执行用户程序,否则执行烧写程序;若执行烧写程序,继续判定标志位是执行网络烧写还是串口烧写;
(2)若执行烧写程序,则首先进行硬件初始化,配置网口/串口;
(3)发送询问语句,询问是否进行烧写:若收到y,则继续烧写流程,否则退出并返回到用户程序;
(4)若继续烧写,则首先迁移UBL程序至flash的某扇区进行备份,然后擦除备份扇区之外的flash扇区。擦除完成后,发送语句,提示用户发送bin文件;
(5)网口/串口接收bin文件数据,完成后进行校验判定。若校验错误,利用备份的UBL程序重新固化UBL,置标志位为烧写状态,提示用户重启系统,重启烧写流程;若校验成功,则将bin文件写入flash,置标志位为非烧写状态,完成后提示用户烧写成功。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910793852.3A CN110716721A (zh) | 2019-08-27 | 2019-08-27 | 兼容网口和串口的tms320c6748程序加载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910793852.3A CN110716721A (zh) | 2019-08-27 | 2019-08-27 | 兼容网口和串口的tms320c6748程序加载方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110716721A true CN110716721A (zh) | 2020-01-21 |
Family
ID=69209474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910793852.3A Pending CN110716721A (zh) | 2019-08-27 | 2019-08-27 | 兼容网口和串口的tms320c6748程序加载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110716721A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112114850A (zh) * | 2020-07-15 | 2020-12-22 | 北京航空航天大学杭州创新研究院 | 一种基于串口的stm32单片机片内和片外flash程序分散加载方法 |
CN112346746A (zh) * | 2020-10-30 | 2021-02-09 | 中国船舶重工集团公司第七0七研究所 | 一种基于串口高可靠性的tms32c6748程序烧录方法 |
CN112363950A (zh) * | 2020-11-30 | 2021-02-12 | 杭州海康汽车软件有限公司 | 应用程序的调试方法及装置 |
CN115550330A (zh) * | 2022-08-04 | 2022-12-30 | 湖南艾科诺维科技有限公司 | 一种基于网口远程更新dsp程序的方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102736938A (zh) * | 2012-06-18 | 2012-10-17 | 中国电子科技集团公司第十研究所 | Fpga配置程序的烧写方法 |
CN103902305A (zh) * | 2012-12-26 | 2014-07-02 | 中国航空工业集团公司第六三一研究所 | 基于ti dsp的软件远程加载与固化方法 |
WO2016188037A1 (zh) * | 2015-05-28 | 2016-12-01 | 深圳市中兴微电子技术有限公司 | 一种版本烧录方法、系统、终端及计算机存储介质 |
CN108108178A (zh) * | 2016-11-23 | 2018-06-01 | 北京遥感设备研究所 | 一种基于dsp的flash程序自更新方法 |
CN108182079A (zh) * | 2017-12-21 | 2018-06-19 | 中国船舶重工集团公司第七0七研究所 | 一种基于串口的tms320c6748程序加载方法 |
-
2019
- 2019-08-27 CN CN201910793852.3A patent/CN110716721A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102736938A (zh) * | 2012-06-18 | 2012-10-17 | 中国电子科技集团公司第十研究所 | Fpga配置程序的烧写方法 |
CN103902305A (zh) * | 2012-12-26 | 2014-07-02 | 中国航空工业集团公司第六三一研究所 | 基于ti dsp的软件远程加载与固化方法 |
WO2016188037A1 (zh) * | 2015-05-28 | 2016-12-01 | 深圳市中兴微电子技术有限公司 | 一种版本烧录方法、系统、终端及计算机存储介质 |
CN108108178A (zh) * | 2016-11-23 | 2018-06-01 | 北京遥感设备研究所 | 一种基于dsp的flash程序自更新方法 |
CN108182079A (zh) * | 2017-12-21 | 2018-06-19 | 中国船舶重工集团公司第七0七研究所 | 一种基于串口的tms320c6748程序加载方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112114850A (zh) * | 2020-07-15 | 2020-12-22 | 北京航空航天大学杭州创新研究院 | 一种基于串口的stm32单片机片内和片外flash程序分散加载方法 |
CN112114850B (zh) * | 2020-07-15 | 2023-03-10 | 北京航空航天大学杭州创新研究院 | 一种基于串口的stm32单片机片内和片外flash程序分散加载方法 |
CN112346746A (zh) * | 2020-10-30 | 2021-02-09 | 中国船舶重工集团公司第七0七研究所 | 一种基于串口高可靠性的tms32c6748程序烧录方法 |
CN112363950A (zh) * | 2020-11-30 | 2021-02-12 | 杭州海康汽车软件有限公司 | 应用程序的调试方法及装置 |
CN115550330A (zh) * | 2022-08-04 | 2022-12-30 | 湖南艾科诺维科技有限公司 | 一种基于网口远程更新dsp程序的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110716721A (zh) | 兼容网口和串口的tms320c6748程序加载方法 | |
CN101763279B (zh) | 一种BootLoader架构设计方法 | |
CN108182079B (zh) | 一种基于串口的tms320c6748程序加载方法 | |
WO2011000279A1 (zh) | 用于软件进行动态升级与控制的生成补丁方法及其装置 | |
CN111857776B (zh) | Dsp板卡类的应用程序的在线升级方法 | |
CN109634618B (zh) | 基于TMS320C674X处理器二级BootLoader串行加载自启动方法 | |
CN103514018A (zh) | 基于stm32f4控制器的程序远程下载的实现方法 | |
CN102880498A (zh) | 在安卓系统的装置上虚拟sd卡的方法 | |
CN112947977A (zh) | 一种软件在线升级方法及系统 | |
CN114691178B (zh) | 一种基于EtherCAT通讯驱动器的固件升级方法及装置 | |
CN104866324A (zh) | 一种便携操作系统构建方法及便携存储器 | |
CN101334737A (zh) | 一种嵌入式设备的启动或复位方法 | |
CN108052326B (zh) | 一种Xilinx FPGA支持Arduino IDE开发的实现方法 | |
CN109426511B (zh) | 软核更新方法和系统 | |
CN102298531B (zh) | 在嵌入式系统中对闪存文件系统进行升级的方法 | |
CN114816273B (zh) | 针对Norflash的自适应最优配置的方法、装置及介质 | |
CN111459468A (zh) | 高可靠性串口通讯的dsp程序在线升级系统和方法 | |
CN105204896A (zh) | 一种数字存储示波器的BootLoader设计方法 | |
CN111831314B (zh) | 一种针对不可写分区打补丁的方法与装置 | |
CN109062562A (zh) | Mcu固件程序的下载方法 | |
CN113190258A (zh) | 一种基于串口的八核dsp软件离线升级方法 | |
US20220100496A1 (en) | Tracking history of firmware program updates | |
CN111290765B (zh) | 一种固件快速烧录方法、系统及存储介质 | |
JP2007193505A (ja) | パーティション・サイズ可変ファームウェア組込装置とそのファームウェア更新方法 | |
CN108958795B (zh) | 一种嵌入式系统中BootLoader代码重利用方法和开发板 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200121 |