CN108038067A - 一种通过串口进行dsp程序烧制的方法 - Google Patents

一种通过串口进行dsp程序烧制的方法 Download PDF

Info

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
Application number
CN201711447008.2A
Other languages
English (en)
Inventor
刘升
刘宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xi'an Qiwei Technology Co Ltd
Original Assignee
Xi'an Qiwei Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xi'an Qiwei Technology Co Ltd filed Critical Xi'an Qiwei Technology Co Ltd
Priority to CN201711447008.2A priority Critical patent/CN108038067A/zh
Publication of CN108038067A publication Critical patent/CN108038067A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming 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程序烧制的方法
技术领域
本发明属于信息技术领域,尤其涉及一种通过串口进行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。
CN201711447008.2A 2017-12-27 2017-12-27 一种通过串口进行dsp程序烧制的方法 Pending CN108038067A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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芯片在线升级方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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