CN108038067A - 一种通过串口进行dsp程序烧制的方法 - Google Patents
一种通过串口进行dsp程序烧制的方法 Download PDFInfo
- Publication number
- CN108038067A CN108038067A CN201711447008.2A CN201711447008A CN108038067A CN 108038067 A CN108038067 A CN 108038067A CN 201711447008 A CN201711447008 A CN 201711447008A CN 108038067 A CN108038067 A CN 108038067A
- Authority
- CN
- China
- Prior art keywords
- serial ports
- dsp
- user program
- carried out
- flash
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
一种通过串口进行DSP用户程序烧写的方法,属于信息技术领域,其特征在于包括如下步骤:(1)将DSP配置为从Flash启动;(2)将Flash划分为若干扇区,选取其中任一扇区固化Boot loader程序;(3)将上位机通过串口与DSP相连接进行数据通信;(4)执行固化在Flash中的Boot loader程序,及上位机传送的控制指令,直至用户程序数据烧写完成。只需要一个GPIO进行配置,提高了程序烧写的灵活性;使用RS422进行数据传输可增加传输距离和数据传输可靠性,满足外场程序更新需求。
Description
技术领域
本发明属于信息技术领域,尤其涉及一种通过串口进行DSP用户程序烧写的方法。
背景技术
TMS320F2812 DSP是一款高性能微控制器,被大量用于机载和弹上设备,能够实现复杂的控制算法。但是由于外场场地、空间等限制,DSP系统一般安装在复杂、封闭的环境,程序升级非常不便。
目前较多采用的为以下两种方式:一是利用CCS集成的Flash烧写插件进行程序烧写。该方法简单易行,可直接烧写编译后生成的.out文件,无需进行格式转化。但是通过CCS集成的Flash烧写插件烧写程序必须连接JTAG仿真器,常常受空间和传输距离限制,并不适合安装复杂、封闭的外场环境。二是通过F2812的SCI串口烧写;该方法配置F2812从SCI A启动,通过SD Flash软件烧写片内Flash。该方法是通过串口烧写无需连接JTAG仿真器,但是配置Boot loader需要4个GPIO Pin(GPIOF2、GPIOF3、GPIOF4、GPIOF12、),并且GPIOF4与SCITXDA复用,启动配置比较复杂。
发明内容
本发明旨在解决上述问题,提供一种配制简单、传输可靠的通过串口进行DSP用户程序烧写的方法。
本发明所述的通过串口进行DSP用户程序烧写的方法,包括如下步骤:
(1)将DSP配置为从Flash启动;
(2)将Flash划分为若干扇区,选取其中任一扇区固化Boot loader程序;其余扇区用于存放用户程序数据;
(3)将上位机通过串口与DSP相连接进行数据通信;通过串口与DSP通讯并发送用户程序数据;
(4)执行固化在Flash中的Boot loader程序,及上位机传送的控制指令,直至用户程序数据烧写完成。
本发明所述的通过串口进行DSP用户程序烧写的方法,步骤(3)所述串口为RS422。
本发明所述的通过串口进行DSP用户程序烧写的方法,步骤(1)所述DSP为TMS320F2812。
本发明所述的通过串口进行DSP用户程序烧写的方法,所述控制指令包括连接指令、擦除指令和传输指令。
根据权利要求4所述的通过串口进行DSP用户程序烧写的方法,传输指令采用小端传输模式,多字节数据传送时低字节在前,高字节在后;校验和保证该帧数据相加低8位为0。
本发明所述的通过串口进行DSP用户程序烧写的方法,只需要一个GPIO进行配置,提高了程序烧写的灵活性;使用RS422进行数据传输可增加传输距离和数据传输可靠性,满足外场程序更新需求。
附图说明
图1为本发明所述Boot loader程序流程示意图。
具体实施方式
下面结合附图及实施例对本发明所述通过串口进行DSP用户程序烧写的方法进行详细说明。
本实施例选用TMS320F2812,通过RS422进行用户程序的烧写,上位机采用PC机。
将Boot loader程序固化在片内Flash的FLASHA扇区,Boot loader程序的流程如图1所示;由于F1ash2812_API函数不能在Flash中运行去擦出、烧写其他扇区,因此需将该部分程序Copy至RAM执行,Boot loader程序CMD文件设计如下:
MEMORY
{
PAGE 0:
FLASHA : origin = 0x3F6000, length = 0x001F80
CSM_RSVD : origin = 0x3F7F80, length = 0x000076
BEGIN : origin = 0x3F7FF6, length = 0x000002
CSM_PWL : origin = 0x3F7FF8, length = 0x000008
ROM : origin = 0x3FF000, length = 0x000FC0
RESET : origin = 0x3FFFC0, length = 0x000002
VECTORS : origin = 0x3FFFC2, length = 0x00003E
PAGE 1:
RAMM0 : origin = 0x000000, length = 0x000400
RAMM1 : origin = 0x000400, length = 0x000400
RAML1 : origin = 0x009000, length = 0x001000
FLASHB : origin = 0x3F4000, length = 0x002000
RAMH0 : origin = 0x3F8000, length = 0x002000
}
SECTIONS
{
.cinit : > FLASHA PAGE = 0
.pinit : > FLASHA PAGE = 0
.text : > FLASHA PAGE = 0
Codestart : > BEGIN PAGE = 0
Flash28_API:
{
-lFlash2812_API_V210.lib(.econst)
-lFlash2812_API_V210.lib(.text)
}
LOAD = FLASHA,
RUN = RAML0,
LOAD_START(_Flash28_API_LoadStart),
LOAD_END(_Flash28_API_LoadEnd),
RUN_START(_Flash28_API_RunStart),
PAGE = 0
Ramfuncs : LOAD = FLASHA,
RUN = RAML0,
LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
PAGE = 0
Csmpasswds : > CSM_PWL PAGE = 0
csm_rsvd : > CSM_RSVD PAGE = 0
.stack : > RAMM0 PAGE = 1
.ebss : > RAML1 PAGE = 1
.esysmem : > RAMH0 PAGE = 1
.econst : > FLASHA PAGE = 0
.switch : > FLASHA PAGE = 0
.reset : > RESET, PAGE = 0, TYPE = DSECT
Vectors : > VECTORS PAGE = 0, TYPE = DSECT
}
程序入口为BEGIN,地址为Flash启动地址0x3F7FF6。
用户程序数据固化至在片内Flash的FLASHG扇区,用户程序入口为0x3E0000,用户程序CMD文件设计如下:
MEMORY
{
PAGE 0:
FLASHG : origin = 0x3E0002, length = 0x003FFE
CSM_RSVD : origin = 0x3F7F80, length = 0x000076
BEGIN : origin = 0x3E0000, length = 0x000002
CSM_PWL : origin = 0x3F7FF8, length = 0x000008
ROM : origin = 0x3FF000, length = 0x000FC0
RESET : origin = 0x3FFFC0, length = 0x000002
VECTORS : origin = 0x3FFFC2, length = 0x00003E
PAGE 1:
RAMM0 : origin = 0x000000, length = 0x000400
RAMM1 : origin = 0x000400, length = 0x000400
RAML1 : origin = 0x009000, length = 0x001000
FLASHB : origin = 0x3F4000, length = 0x002000
RAMH0 : origin = 0x3F8000, length = 0x002000
}
SECTIONS
{
.cinit : > FLASHG PAGE = 0
.pinit : > FLASHG PAGE = 0
.text : > FLASHG PAGE = 0
Codestart : > BEGIN PAGE = 0
Ramfuncs : LOAD = FLASHG,
RUN = RAML0,
LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
PAGE = 0
Csmpasswds : > CSM_PWL PAGE = 0
csm_rsvd : > CSM_RSVD PAGE = 0
.stack : > RAMM0 PAGE = 1
.ebss : > RAML1 PAGE = 1
.esysmem : > RAMH0 PAGE = 1
.econst : > FLASHG PAGE = 0
.switch : > FLASHG PAGE = 0
.reset : > RESET, PAGE = 0, TYPE = DSECT
Vectors : > VECTORS PAGE = 0, TYPE = DSECT
}
上位机使用hex2000将编译生成的.out文件转换为.hex文件,通过串口与下位机通讯并发送程序数据,命令如下:
hex2000.exe xxx.out
–x -map xxx_hex.map -o xxx.hex -memwidth 16 -romwidth 16
Hex文件使用Extended Tektronix Object Format文件格式(-x选项),具体格式分析如下:
%2A6E48003E23A61A0501FF761AF6077700FF690006
%: Header character
2A: Block length (minus the %)
6: Block type (Data)
E4: Checksum
8: Length of load address
003E23A6: Load address
1A0501FF761AF6077700FF690006: Object code
上位机的控制指令包括连接指令、擦除指令和传输指令,具体如下:
1)连接指令:上位机发送0x10,下位机回送0x1A。
2)擦除指令:上位机发送0xA5、0x5A,下位机回送0x2A表示擦除成功、0x25表示擦除失败。
3)传输指令:上位机发送数据格式如下表:
帧头1 | 帧头2 | 数据长度 | 烧写地址 | 数据 | 校验和 |
0xAA | 0x55 | 1字节 | 4字节 | N字节 | 1字节 |
数据长度为帧总长度;采用小端传输模式,多字节数据传送时低字节在前,高字节在后;校验和保证该帧数据相加低8位为0。
下位机回送0xAA表示烧写成功、0x35表示烧写失败、0x45表示校验错误。
使用这种串口烧写方法外部只需要1个GPIO进行配置,提高了程序烧写的灵活性;使用RS422进行数据传输可增加传输距离和数据传输可靠性,满足外场程序更新需求。
除本实施例所具例外,还可以根据需求更改Boot loader中对外接口模块,采用Can、SPI、USB、以太网、无线等接口进行程序数据传输。
Claims (5)
1.一种通过串口进行DSP用户程序烧写的方法,其特征在于包括如下步骤:
(1)将DSP配置为从Flash启动;
(2) 将Flash划分为若干扇区,选取其中任一扇区固化Boot loader程序;
(3)将上位机通过串口与DSP相连接进行数据通信;
(4)执行固化在Flash中的Boot loader程序,及上位机传送的控制指令,直至用户程序数据烧写完成。
2.根据权利要求1所述的通过串口进行DSP用户程序烧写的方法,其特征在于:步骤(3)所述串口为RS422。
3.根据权利要求2所述的通过串口进行DSP用户程序烧写的方法,其特征在于:步骤(1)所述DSP为TMS320F2812。
4.根据权利要求3所述的通过串口进行DSP用户程序烧写的方法,其特征在于:所述控制指令包括连接指令、擦除指令和传输指令。
5.根据权利要求4所述的通过串口进行DSP用户程序烧写的方法,其特征在于:传输指令采用小端传输模式,多字节数据传送时低字节在前,高字节在后;校验和保证该帧数据相加低8位为0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711447008.2A CN108038067A (zh) | 2017-12-27 | 2017-12-27 | 一种通过串口进行dsp程序烧制的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711447008.2A CN108038067A (zh) | 2017-12-27 | 2017-12-27 | 一种通过串口进行dsp程序烧制的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108038067A true CN108038067A (zh) | 2018-05-15 |
Family
ID=62097534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711447008.2A Pending CN108038067A (zh) | 2017-12-27 | 2017-12-27 | 一种通过串口进行dsp程序烧制的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108038067A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111104143A (zh) * | 2019-12-26 | 2020-05-05 | 北谷电子有限公司上海分公司 | 一种固件升级方法及升级装置 |
CN114217839A (zh) * | 2021-12-23 | 2022-03-22 | 贵州航天控制技术有限公司 | 一种用于dsp芯片的软件在线自更新方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530264A (zh) * | 2013-10-22 | 2014-01-22 | 贵州航天控制技术有限公司 | 一种dsp串行在线烧写装置 |
CN106445574A (zh) * | 2015-08-13 | 2017-02-22 | 徐川 | 一种用于实现dsp系统在线编程方法 |
CN106648803A (zh) * | 2016-12-30 | 2017-05-10 | 南京科远自动化集团股份有限公司 | 一种dsp芯片在线升级方法 |
-
2017
- 2017-12-27 CN CN201711447008.2A patent/CN108038067A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530264A (zh) * | 2013-10-22 | 2014-01-22 | 贵州航天控制技术有限公司 | 一种dsp串行在线烧写装置 |
CN106445574A (zh) * | 2015-08-13 | 2017-02-22 | 徐川 | 一种用于实现dsp系统在线编程方法 |
CN106648803A (zh) * | 2016-12-30 | 2017-05-10 | 南京科远自动化集团股份有限公司 | 一种dsp芯片在线升级方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111104143A (zh) * | 2019-12-26 | 2020-05-05 | 北谷电子有限公司上海分公司 | 一种固件升级方法及升级装置 |
CN111104143B (zh) * | 2019-12-26 | 2021-08-31 | 北谷电子有限公司上海分公司 | 一种固件升级方法及升级装置 |
CN114217839A (zh) * | 2021-12-23 | 2022-03-22 | 贵州航天控制技术有限公司 | 一种用于dsp芯片的软件在线自更新方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103777972B (zh) | 基于现场可编程门阵列的系统、配置方法以及升级方法 | |
CN108415717B (zh) | 一种zynq soc固件升级方法及升级装置 | |
CN105354070B (zh) | 一种通过i2c升级设备固件的方法 | |
CN105159731B (zh) | 一种fpga配置文件远程升级的装置 | |
CN102609222A (zh) | 基于命令描述符的闪存控制方法 | |
CN101783812A (zh) | 一种基于网络的fpga配置系统及配置方法 | |
CN102736938A (zh) | Fpga配置程序的烧写方法 | |
CN104133705B (zh) | 一种串口加载PowerPC系统引导文件的系统及方法 | |
CN100405325C (zh) | 一种嵌入式软件装载调试方法及其系统 | |
CN101454746A (zh) | 一种以多功能存储卡通讯的方法 | |
CN103514018A (zh) | 基于stm32f4控制器的程序远程下载的实现方法 | |
CN108038067A (zh) | 一种通过串口进行dsp程序烧制的方法 | |
CN108664264A (zh) | 一种基于cpu通过jtag方式远程更新fpga的装置和方法 | |
CN209560436U (zh) | 一种NVMe硬盘背板 | |
CN102750249B (zh) | 上位机与下位机通信的方法、装置及系统 | |
CN104461624A (zh) | 一种三维声波测井仪近探头测量模块的远程升级方法 | |
CN102426528A (zh) | 一种导航定位接收机内核程序在线更新方法 | |
CN101046789A (zh) | 一种数据传输方法、固件升级方法及总线下载器 | |
CN102346677A (zh) | Fpga程序的升级方法 | |
CN111506334A (zh) | 一种dsp芯片程序在线升级方法及系统 | |
CN104077166A (zh) | 基于fpga中ip核的epcs与epcq存储器在线升级方法 | |
CN111158731A (zh) | 一种基于cpld的网卡固件升级装置及方法 | |
CN108182079A (zh) | 一种基于串口的tms320c6748程序加载方法 | |
CN114138360B (zh) | DSP在Flash上的多核烧写启动方法及系统 | |
CN113238787B (zh) | 一种基于以太网的dsp局部在线升级方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180515 |