基于TMSF240芯片的内部FLASH自测试方法

发布者:zuiquan最新更新时间:2014-02-17 来源: 电子发烧友关键字:TMSF240芯片  FLASH 手机看文章 扫描二维码
随时随地手机看文章

  飞控计算机CPU模块的处理器通常选用PowerPC或X86系列,CPU模块设计有专门的FLASH芯片,为保证飞控程序存放的正确无误,FLASH测试必不可少。而智能接口模块的处理器通常选用TMSF240、TMSF2812等,采用片内FLASH存放自己的程序。这部分FLASH的自测试常常被忽视,而这是飞控系统不能容忍的。本文介绍了一种基于TMSF240芯片内部FLASH的自测试方法。

  1 问题描述

  在CPU处理器无自带FLASH空间的情况下,我们选用市场上专用的FLASH芯片,通过硬件设计该FLASH芯片的每一个地址空间都是可以访问的,我们可以指定不同的区域存放不同的内容。FLASH芯片的自测试也有很多种方法,目前较普遍采用的是校验和的方法,即由专门的烧写工具(可以使用软件完成该工具)在烧写的过程中将校验和计算好直接放到指定的单元中,这个单元可以指定到烧程序时写不到的空闲空间,自测试时只需重新计算一遍校验和与该值进行比较即可。此种方法我们称之为方法一。

  而TMSF240内部自带FLASH存储空间,烧录过程对于用户来说较透明。我们不直接指定向某一具体的Flash空间写入数据,而是通过执行TI公司提供的批处理文件,经由闻亭仿真器连接目标机来完成烧录程序的过程,因此直接使用方法一我们无处存放校验和为使用方法一来测试芯片内部的FLASH我们必须解决校验和的存放问题。

  2 芯片内部FLASH自测试方法概述

  下面介绍的方法实现的是解决程序本身自测试程序本身烧到FLASH后保存的是否正确的问题。该方法不是将校验和直接写到FLASH中,而是在待烧录的程序中定义一个变量,该变量最终用于存放事先计算好的校验和,通过两次烧录实现芯片内部FLASH自测试功能的。必须巧妙地避开因改变程序本身而引起的程序校验和改变而导致自测试算法失效的问题。

  本方法需要事先将程序完全调试好烧录到FLASH中,然后才能读取FLASH内容计算校验和。此时将校验和值赋给事先定义好的变量,重新编译后得到最终的目标码,烧录到FLASH中。程序上电后自动运行,FLASH自测试程序在每次执行自测试功能时都将要测试的程序空间读出并计算校验和与该变量进行比较,比较结果一致则待测试FLASH空间正确,反之则表明FLASH空间有故障。

  由于变量赋值的改变会导致整个代码校验和的改变,因此该问题必须得到恰当的解决。第一次烧写的程序的算法如图1所示。

  

  以上步骤中第二步到第四步是此算法的实现重点,它属于代码的一部分,两次烧写要对其进行更改,详见第3节。第三步是本方法的关键所在,由于sum=0,所以经过“sum=sum+sum;”的运算后sum值还是0,并没有改变sum的值。而sum的初值0并没有对程序的真实校验和值做出贡献,这为第二次烧写的程序代码和计算做出铺垫。

  3 芯片内部FLASH自测试方法详述

  3.1 第一次烧写步骤

  第一次烧写过程如下:

  步骤1:将包含图1的代码编译后形成待烧录文件*.out;

  步骤2:将代码编译生成待烧录文件*.out,然后通过TI公司提供的批处理文件和仿真器将其烧入片内自带的FLASH中。

  3.2 第二次烧写步骤

  第二次烧写过程如下:

  步骤1:利用闻亭仿真器设置成烧录模式下代码调试模式,将硬件断点设置在FLASH自测试的函数入口处;

  步骤2:将程序连续运行至断点处后,单步调试计算出真正的代码和sum=XXX;

  步骤3:此时更改程序,将计算好的校验和写入程序中定义好的变量中,即将图1中第二步中sum=0更改为sum=XXX;

  步骤4:将代码重新编译生成待烧录文件*.out,然后通过TI公司提供的批处理文件和仿真器将其烧入片内自带的FLASH中。

  3.3 方法详细说明

  在第二次烧写过程中,图1所示的算法变成图2所示内容。

  

  由于原来的校验和为0,现在将其改为XXX,所以第二次固化的程序的校验和比第一次固化的程序的校验和增加了XXX。而第一次固化的校验和本应该为XXX,因此第二次固化程序的最终的校验和计算出来后应check sum为2XXX,图2中的第三步sum=sum+sum正好满足了上述要求,即sum=2XXX。因此第四步check sum=sum能正确反映自测试结果。

  需要补充说明一点,该算法是基于第一次烧录成功后重新加载第一次烧录的程序由DSP处理器自动计算校验和是正确的基础上的,这是由CPU的加减乘除和逻辑运算等自测试正确保证的,在上电时PUBIT里有该项自测试。

  4 结束语

  DSP已经广泛应用于飞控计算机智能接口模块中。虽然其具有很高的可靠性,但在飞控系统的使用中也必须进行测试。本文就DSP芯片内部自带FLASH提出了一种自测试方法,通过两次烧写FLASH将待测空间的校验和计算出来并计入RAM中事先定义好的变量中,重新编译后生成新的目标码校验和变成第一次校验和的2倍。这样利用sum=sum+sum巧妙地避过了两次校验和增加而引起程序的改动。此方法简单有效地解决了DSP芯片内部FLASH自测试问题,并已在机载设备,包括飞控计算机接口模块中得到应用,对提高机载设备的可测试性和可靠性有一定的作用,值得推广使用。

关键字:TMSF240芯片  FLASH 引用地址:基于TMSF240芯片的内部FLASH自测试方法

上一篇:基于DSP 技术和CAN总线的多节点远程数据传输系统
下一篇:基于DSP的CPLD软件更新方案研究

推荐阅读最新更新时间:2024-05-02 22:58

Gartner:Flash、OLED屏幕恐缺货
在新兴市场对中阶智能机的需求拉升下,第二季全球智能型手机对终端用户销售量总计约3.7亿支,年成长6.7%,展望下半年,Gartner预言,闪存和OLED屏幕缺货将影响高端智能机供应,在各品牌上,看好三星今年销售量将增长,中国大陆品牌的强势则持续让智能机市场面临严峻挑战。  国际研究暨顾问机构Gartner表示,2017年第二季全球智能型手机对终端用户销售量总计约3.7亿支,较去年第二季成长6.7%,主要成长动能来自新兴市场对中价位(150-200美元)智能型手机需求上扬。  今年第二季所有类型的智能型手机销售量均较去年同期增长,但市场仍对零组件成本上扬与关键零组件供货受限有所忧虑,Gartner研究总监Anshul Gupta表示
[手机便携]
Flash存储器在TMS320C3x系统中的应用
摘要:以基于TMS320C32 DSP开发的故障录波装置为模型,介绍AMD公司的Flash存储器Am29F040的原理和应用;利用它操作过程实现断电后仍然可以将子程序保存在Flash存储器内的特性,结合TMS320C3x提出实现DSP系统上电后用户程序的自动引导的方法。 关键词:Flash存储器 TMS320C32 自动引导 Am29F040 引言 在对电力系统断路器的状态监测过程中,需要对故障数据进行保存,以便于查扑克;在则故障期间难免会出现停机的现象,因此,如何在断电的状态下保存数据,就成为一个关键问题。对于故障出现的监测装置必须满足两个基本的特性——实时性和快速性。这两种特性都需要以快速处理大量的数据信息为基础,所以
[应用]
Flash编程器的FPGA实现
1 引言 闪速存储器(FLASH Memory)以其集成度高、成本低、使用方便等许多优点,广泛应用于通讯设备、办公设备、家用电器、医疗设备等领域。利用其保存信息的非易失性和在线更新数据参数的特性,可将其作为具有一定灵活性的只读存储器(ROM)使用。 现在的数字电路应用系统设计中,经常遇到大容量的数据存储问题。Flash由于容量大、存储速度快、体积小、功耗低等诸多优点,而成为应用系统中数据存储器件的首选。由于在研制实时信号处理系统时,需要一块大容量的Flash来存储坐标变换的数据作查找表,因此面临一个如何对Flash进行编程,将数据写入Flash的问题。由于我们选用的Flash芯片为SST39SF010/020,是最
[工业控制]
<font color='red'>Flash</font>编程器的FPGA实现
ST7267单片机与SIM卡的接口设计
随着信息技术的不断发展,手机逐渐成为现代社会必不可少的工具。但是,一旦手机丢失,存在SIM卡内的资料也就丢失了,因而造成了很多不必要的麻烦。为了保存这些重要的资料,在电脑上做必要的备份显得十分重要了。本文利用ST7267单片机的GPIO端口,实现了对SIM卡的读写。 1 硬件电路的设计 1.1 ST7267单片机概述 ST7267具有USB2.O的硬件接口,大容量存储控制接口可以支持各种类型的NAND Flash。具有54 KB的ROM和4KB的RAM空间。 1.2 SIM卡接口电路 SIM卡引脚功能的定义如表1所列。 ST7267单片机与SIM卡的接口电路如图1所示。该电路主要由外围有源晶体Y2提供4
[单片机]
ST7267单片机与SIM卡的接口设计
单片机中的ROM,RAM和FLASH的作用
一、ROM,RAM和FLASH在单片中的作用 ROM——存储固化程序的(存放指令代码和一些固定数值,程序运行后不可改动) c文件及h文件中所有代码、全局变量、局部变量、’const’限定符定义的常量数据、startup.asm文件中的代码(类似ARM中的bootloader或者X86中的BIOS,一些低端的单片机是没有这个的)通通都存储在ROM中。 RAM——程序运行中数据的随机存取(掉电后数据消失) 整个程序中,所用到的需要被改写的量,都存储在RAM中,“被改变的量”包括全局变量、局部变量、堆栈段。 FLASH——存储用户程序和需要永久保存的数据。 例如:现在家用的电子式电度表,它的内核是一款单片机,该单片机的程序就是存放在
[单片机]
STM32之SPI_FLASH(实例)
本实例用的是STM32F103VET6平台,它有3个SPI接口(这里使用SPI1),各信号线连接到FLASH(型号:W25X16)的CS,CLK,DO,DIO线,以实现SPI通讯,对FLASH进行读写. (这里采用主模式,全双工通讯,通过查询发送数据寄存器和接收数据寄存器状态确保通讯正常) mian函数: 1#define sFLASH_ID 0xEF3015(前面加个1,免得变大) u32 DeviceID; u32 FlashID; int main(void) { /115200 8-N-1/ USART1_Config(); SPI_FLASH_Init(); DeviceID = SPI_FLASH_ReadDe
[单片机]
MSP430单片机对片内FLASH的读写操作程序范例
MSP430 单片机对片内 FLASH 的读写操作程序范例 // 参数: wAddr 为地址 , 范围 0x1000~0xFFFF void ReadFlash(U16 wAddr,U8 *bBuf,U8 bLen) { while (bLen--) *bBuf++=*(U8 *)wAddr++; return; } void WriteFlash(U16 wAddr,U8 *bBuf,U8 bLen) { U8 reg1,reg2; reg1=_BIC_SR(GIE); reg2=IE1;IE1=0; // 保护原来中断标志,并关闭有关中断。 // 写一个字节数据到指定 flash 地址 while (bLen--) { whi
[单片机]
瑞萨MCU年末停工9天 东芝Flash持续减产
    日经新闻报导,全球微控制器(MCU)龙头厂瑞萨电子(Renesas Electronics Corp.)于25日宣布,因欧洲及中国大陆景气减缓,导致MCU订单低迷,故旗下位于日本国内的9座半导体工厂将于今年的年末元旦假期期间停工3-10天,停工天数将比去年的2-7天还多。瑞萨表示,因大陆日系车销售不振,冲击MCU需求,故MCU主力生产据点「那珂工厂」将于元旦假期期间停工9天,停工天数将比去年多2天;生产类比晶片及电源控制晶片的滋贺工厂也将停工9天。 日经指出,受MCU订单低迷影响,富士通(Fujitsu)子公司富士通半导体(Fujitsu Semiconductor)位于福岛县会津若松市的工厂也将于今年元旦假期期间停工14天
[手机便携]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved