您的位置 首页 知识

浅析TMS320F2812片内Flash在线烧写技能

TMS320F2812(以下简称F2812)是美国德州仪器公司(TI)新一代32位定点数字信号处理器(DSP),主要应用于逆变器控制、电机控制等领域,并拥有工作频率高达150 MHz的32位DSP内核

TMS320F2812(以下简称F2812)是美国德州仪器公司(TI)新一代32位定点数字信号处理器(DSP),首要运用于逆变器操控、电机操控等范畴,并具有作业频率高达150 MHz的32位DSP内核处理器,能够高效可靠地完结自适应操控和状况操控等。因而,TMS320F28X系列DSP已成为自动操控范畴的首选操控器材。F2812片内具有高达128 KBx16位的F1ash程序存储器,能够满意大多数程序存储需求。在研讨根据JTAG接口的两种常用Flash烧写技能(CCS插件烧写技能Flash281x_API函数库烧写技能)的基础上,提出了一种运用RS485与PC机的串行通讯完结Flash烧写的办法。

F2812片内Flash简介 TMS320F2812原理与开发
F2812带有128 KBxl6位的片内Flash存储器,分为4个8 KBxl6位和6个16 KBxl6位的扇区,用户能够独自擦除、编程和验证Flash的一个扇区而不会影响其他扇区,但不能用F1ash的一个扇区履行Flash的算法对其他扇区擦除或编程。F1ash还可映射到程序数据空间,因而它既可用于履行代码,也可存储数据信息。

TI代码发生东西所发生的方针文件是一种模块化文件格局逐个COFF格局,即.out文件。程序中的代码和数据在COFF格局文件中以段方式构成,不同的段寄存不同类型的内容.运用中经过编写连接器指令文件(.cmd)将这些段正确地分配到DSP的地址空间,DSP集成开发环境CCS经编译链接之后。生成.out文件和.map文件。.map文件详细描述了.cmd文件中界说的各段开端地址以及运用长度。而out文件为COFF格局,DSP能够辨认,但不能直接烧写到Flash,必须将.out文件转化为Flash能辨认的数据格局,即.hex的数据文件。运用CCS转化和.hex转化东西HEX2000进行转化。

根据JTAG的烧写技能

3.1 CCS插件烧写技能

运用烧写插件完结Flash的烧写无需数据转化,只需经进程序调试生成.out文件即可。因为调试阶段程序的.cmd文件寄存在F2812的RAM,而烧写阶段程序则寄存在Flash,即调试阶段程序的从头定位不能在CCS环境下运转,需求编写两个不同的.cmd文件。

3.2 Flash281x_API函数烧写技能

F1ash281x API函数库烧写技能是运用TI公司的编程算法.该算法界说杰出,操作简略,并且能够脱离烧写插件,真实完结在线烧写。

编程算法中函数界说如下:(1)擦除扇区的函数为Uintl6F1ash2812 Erase(SectorMask,FStatus),其间,SectorMask为擦除指定扇区;Fstatus为状况值,判别操作是否成功。(2)烧写程序到F1ash函数为Uintl6 Flash2812_Program(FlashAddr,BuffAddr,Length,FStatus),其间FlashAddr为程序在Flash中烧写的开端地址;BuffAddr为程序当时寄存在内存空间的首地址:Length为程序长度;Fstatus为状况值,判别操作是否成功。(3)校验烧写到Flash中的程序为Uintl6 Flash2812_Verifv(&FlashAddr,&BuffAddr,Length,&FStatus)。

Flash28x_API函数烧写进程如下:

(1)先将.hex格局数据下载到F2812的内存.在CCS环境下完结File→Data→Load,并寄存地址和数据长度两个参数,其间数据长度能够经过HEX转化为.map文件取得。

(2)编写根据Flash281x_API函数的烧写程序。先擦除相应的Flash扇区,经过Flash2812_Erase函数完结;将数据的开端地址和数据长度两个参数别离赋给FlashAddr和Length变量,然后调用Flash2812_Program函数开端烧写,最终调用Flash2812_Verify函数确认烧写是否成功。

Flash API与用户工程树立相关后,方针代码经过调用API函数,完结对Flash的擦除、烧写和校验等操作,Flash的密码保护值不全为0,不然Flash将被锁死导使无法解锁。

串口烧写FlaSh技能

根据JTAG的烧写技能必须在CCS环境下经过JTAG接口完结。尽管根据JTAG接口的两种烧写办法易于操作,便利调试,但常常受空间和传输间隔约束。比方一台DSP体系安装在杂乱、关闭的环境下,当程序需求更新或晋级时,运用JTAG接口难以完结Flash的在线烧写。而经过串口烧写技能选用“程序”烧写“程序”的办法则不受约束。前一个“程序”指已固化程序,用于完结串口烧写的机遇判别、数据接纳及烧写的详细施行等,该程序运用了Flash281x_API库编程算法;然后一个“程序”是用户的运用方针代码。

完结串口烧写技能软件分为PC机内用于数据发送的顶层软件和方针机内的底层软件。顶层软件可完结用户程序的解析等;而底层软件可完结由串口发送的数据烧写至Flash。F2812 DSP每次上电复位,先运转底层软件,判别是否需求从头烧写Flash。若需求,则将串口发送的方针代码烧写至F2812片内Flash指定扇区;不然将持续履行原有的用户方针代码。

4.1 顶层软件

顶层软件可完结用户程序的解析等作业。其用户程序为.oul文件,顶层软件首要完结.hex文件的解析,并将解析后的有用数据发送至方针DSP。.hex文件的安排格局严厉,只需提取数据在内存中的寄存地址和数据长度就能够依照要求将数据发送给方针DSP。假如用户程序很大而方针DSP的内存空间缺乏时,该进程还能够分段进行。顶层软件能够运用VC++或许LabVIEW等完结。

4.2 底层软件

底层软件用于完结将串口发来的数据烧写至Flash.涉及到用户程序的正确认位和复位后的发动进程,是整个软件设计的要点。底层软件首要完结以下功用:

(1)烧写程序搬移功用。因为F2812片上Flash不支持在其间一个扇区运转程序去擦除或烧写其他扇区,故完结接纳数据和烧写Flash作业的这部分程序需搬移至片内RAM或片外RAM上运转。完结程序搬移的函数为:

其间,SourceAddr为Flash中程序的开端地址,即源程序开端地址;SourceEndAddr为Flash中程序的完毕地址,即源程完毕序地址;DestAddr为搬移至内存的首地址。

(2)上电复位查询功用。上电复位后查询一个通用I/O端口的状况以确认是否需求烧写程序。这个通用I/O端口可由用户自行确认,但I/O端口占用后其特别功用便不可用,上电复位后保证其确认状况,不然会不间断烧写程序或许不能正确跳转到用户运用程序。

(3)接纳PC机发送的数据并保存到方针DSP内存。这是在串口接纳中止服务子程序中完结的,并确认用于数据保存的这部分内存未占用。

(4)接纳完毕后将内存中的数据烧写至指定Flash扇区,这由Flash28lx_APl库函数完结。图1为底层运用软件流程图。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/325196.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部