当前位置:首页 > 电源 > 数字电源
[导读]基于TMS320F2812内部F1ash在线烧写技术,提出了一种串口烧写Flash技术。详细论述了烧写技术的实现步骤.给出了关键部分的程序代码。通过对比发现,基于JTAG接口烧写技术常用于调试阶段,而串口烧写技术能够应用于一些特殊场合,并能提高系统的可维护性。

1 引言
    TMS320F2812(以下简称F2812)是美国德州仪器公司(TI)新一代32位定点数字信号处理器(DSP),主要应用于逆变器控制、电机控制等领域,并拥有工作频率高达150 MHz的32位DSP内核处理器,可以高效可靠地实现自适应控制和状态控制等。因此,TMS320F28X系列DSP已成为自动控制领域的首选控制器件。F2812片内拥有高达128 KBx16位的F1ash程序存储器,可以满足大多数程序存储需要。在研究基于JTAG接口的两种常用Flash烧写技术(CCS插件烧写技术和Flash281x_API函数库烧写技术)的基础上,提出了一种利用RS485与PC机的串行通讯实现Flash烧写的方法。


2 F2812片内Flash简介
    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进行转换。

3 基于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将被锁死导使无法解锁。

4 串口烧写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库函数完成。图l为底层应用软件流程图。

4.3 底层软件的定位
   
电复位后,XMP/MC引脚为低电平.目标DSP处于计算机模式,CPU将从内部Boot Rom获得复位向量。复位向量指向Boot Rom并执行其内部的Bootloader程序,执行完毕后确定从内部Flash启动.程序指针跳转到Flash的Ox3F7FF6处.这个地址是同定的,因此底层软件程序必须烧写在以这个地址为起始地址的空间内,或者在0x3F7FF6烧写一条跳转指令,上电复位后通过跳转指令跳转到底层软件程序。
4.4 用户应用程序的定位
   
用户应用程序从main函数开始,但DSP首先必须调用_c_int00函数建立C语言的运行环境,主要包括:建立初始化系统堆栈,把.cinit段中的数据表拷贝到.bss段。对全局和静态变量初始化等。_c_int00执行结束后调用main函数开始运行用户应用程序。因此_c_int00函数的首地址才是整个程序的入口点。底层软件程序执行结束后应该调用_c_int00函数,而不是main函数,可用跳转指令实现,参考程序如下:

5 结语
    讨论的Flash三种在线烧写技术在实际工程中均得到实际运用。采用TMS320F2812作为控制器的数据采集系统.利用Flash在线烧写技术开发的试验程序,可以根据需求及时更新,有助于产品维护。为了工程技术人员在实际项目开发中根据工程阶段和现场环境选择合适的烧写方法,文中给出了关键部分程序。经过比较发现,基于JTAG口的烧写技术适用于研发调试阶段,而串口烧写Flash技术更适用于维护阶段.大大提高系统的可维护性和可扩展性,如在封闭和复杂环境下进行外场加载和控制时,该技术具有较好的实用价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

上海2024年4月17日 /美通社/ -- 在2024 F1中国站即将拉开帷幕之际,高端全合成润滑油品牌美孚1号今日举办了品牌50周年庆祝活动。三届F1年度车手总冠军马克斯•维斯塔潘也亲临现场,共同庆祝这一里程...

关键字: BSP 汽车制造 行业标准 产品系列

北京2024年4月17日 /美通社/ -- 2024年4月13日,由北京康盟慈善基金会主办的"县域诊疗,规范同行"——肿瘤诊疗学术巡讲项目首站在广州隆重召开。本次会议邀请全国多位肺癌领域专家和县域同道...

关键字: AI技术 医疗服务 BSP 互联网

海口2024年4月16日 /美通社/ -- 4月14日,在中法建交60周年之际,科学护肤先锋品牌Galenic法国科兰黎受邀入驻第四届中国国际消费品博览会(以下简称"消博会")法国馆。Galenic法...

关键字: NI IC BSP ACTIVE

上海2024年4月17日 /美通社/ -- 每年4月17日是世界血友病日。今年,世界血友病日以"认识出血性疾病,积极预防和治疗"为主题,呼吁关注所有出血性疾病,提升科学认知,提高规范化诊疗水平,让每一位出血性疾病患者享有...

关键字: VII 动力学 软件 BSP

伦敦2024年4月16日 /美通社/ -- ATFX宣布任命Siju Daniel为首席商务官。Siju在金融服务行业拥有丰富的经验和专业知识,曾在全球各地的高管职位上工作了19年以上。Siju之前担任FXCM首席商务官...

关键字: NI AN SI BSP

西班牙塞维利亚,2024年3月12日 — Teledyne Technologies旗下公司、全球成像解决方案创新者Teledyne e2v宣布扩展其Flash™ CMOS图像传感器系列,推出Flash 2K LSA,该...

关键字: 图像传感器 Flash 摄像机

在这篇文章中,小编将为大家带来JTAG接口与Flash的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: JTAG Flash

近日,第11届EEVIA年度中国硬科技媒体论坛暨产业链研创趋势展望研讨会在深圳召开,兆易创新Flash事业部产品市场经理张静在会上发布了主题为“持续开拓,兆易新一代存储产品助力行业创新”的演讲。

关键字: 兆易创新 Flash 闪存

常州2023年9月25日 /美通社/ -- 9月23日,由江苏省商务厅指导,世界中餐业联合会、常州市人民政府主办的"第三届中华节气菜大会暨首届江南美食节"在江苏常州开幕。文化和旅游部国际交流与合作局一...

关键字: BSP 可持续发展 大赛 质量控制
关闭
关闭