当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]1 引言   随着数字信号处理技术的快速发展,DSP(数字信号处理器)越来越广泛地应用于各种数字信号处理系统中。最终开发的系统要想脱离仿真器运行,必须将程序代码存储在非易失性存储器中。Flash存储器

1 引言
随着数字信号处理技术的快速发展,DSP(数字信号处理器)越来越广泛地应用于各种数字信号处理系统中。最终开发的系统要想脱离仿真器运行,必须将程序代码存储在非易失性存储器中。Flash存储器以其大容量和可在线编程等特点已成为DSP系统的一个基本配置。如何将程序烧写进Flash,并在上电时加载到DSP内部的RAM是Flash在DSP系统中应用的两个基本技术问题。本文以基于TI公司的TMS320VC5509A和Atmel公司的AT49LV1024 Flash开发的系统为背景,详细介绍了系统引导相关的硬件设计、烧写软件设计以及自举引导和二次引导等实现方法。
2 TMS320VC5509A的自举引导
2.1 TMS320VC5509A的自举模式配置

TMS320VC5509A每次上电复位后,在执行完一系列初始化(配置堆栈寄存器、关闭中断、程序临时入口、符号扩展、兼容性配置)工作后,根据预先配置的自举模式,通过固化在ROM内的Bootloader程序进行程序引导。VC5509A的引导模式选择是通过4个模式选择引脚BOOTM[0:3]配置完成的。 BOOTM0~3引脚分别与GPIO1、2、3、0相连。在本系统设计中,采用EMIF(外部存储接口)并行引导模式(16位数据宽度),只需将BOOTM[3:0]设置成1011即可。
EMIF为外部存储接口,通过EMIF接口可以灵活地和各种同步或异步存储器件无缝连接。通过EMIF可以将VC5509A的存储空间扩展到128 Mbit(SDRAM),存储空间共被分为CE0~CE3四个段,每段占用不同的地址。在EMIF的并行引导模式中,ROM固化的Bootloader程序是以0x200000为首地址开始加载程序。0x200000即为CE1空间的首地址,所以Flash必须接在DSP的CE1空间上。在加载时。EMIF的CE1空间已经默认配置成异步静态随机存储器(SRAM)接口,并且在时序上采用了最差情况设置(即最慢访问速度),充分保证了时间裕量,使得程序代码顺利地加载到DSP的内存中。
2.2 TMS320VC5509A的引导表
Bootloader在引导程序时,程序代码是以引导表格形式加载的。TMS320VC55x的引导表结构中包括了用户程序的代码段和数据段以及相应段在内存中的指定存储位置,此外还包括了程序人口地址、部分寄存器的配置值、可编程延时时间等信息。TMS320VC55x系列DSP的引导表结构如表1所示。

其中,程序入口地址是引导表加载结束后,用户程序开始执行的地址;寄存器配置数目决定了后面有多少个寄存器需要配置;只有当延时标志为0xFFFF时,延时才被执行;延时长度决定了在寄存器配置后延时多少个CPU周期才进行下一个动作;段长度、段起始地址和数据则为用户程序中定义的各个段的内容,并且可以重复添加;最后以0x00000000(32个0)作为引导表的结束标志。

若要生成引导表,可用CCS最终编译生成的,out文件通过CCS自带的hex55.exe转换程序得到。将hex55.exe、.out文件、.0cmd文件放在同一个文件夹中,通过DOS命令调用hex55.exe。即可完成.out文件到hex格式的引导表文件的转化。.CMD文件用于提供引导表的相关配置信息,以下为一个.CMD文件的实例:



3 Flash的烧写和自举的实现
3.1 TMS320VC5509A和AT49LV1024的硬件没计
AT49LV1024是Atmel公司一款3 V供电系统的Flash存储器,16位位宽,容量为64 KB(16条地址线)。VC5509A(PGE封装)只有14条地址线,只能寻址16 KB的SRAM空间。要想寻址64 KB地址空间的话,Flash地址线的高两位则需要通过其他I/O线控制。在本系统中通过GPIO4和GPIO6与Flash的高两位地址相连实现,其连接示意图如图1所示。但是在Bootloader自举引导程序时,并不能控制GPIO引脚,也就是只能引导最大16 KB的程序。对于大于16 KB的程序,则需要进行二次引导。

3.2 二次引导技术
所谓二次引导,就是通过DSP内部ROM固化的Bootloader引导用户自行编写一个引导程序,其功能和ROM固化的Bootloader相同,再通过此引导程序加载系统最终运行的程序代码,并在加载结束后,把PC值置为新的程序入口地址。在用户编写的引导程序中控制GIPO4和GPIO6,即可实现64 KB地址空间寻址。具体实现框图如图2所示。

3.3 数据烧写程序设计
Flash的数据可直接读取,但对Flash的编程和擦除操作则需要通过一系列命令才能进行。AT49LV1024的写操作只能将1变成0,而0变成1必须通过擦除操作进行。所以每次写Flash之前必须进行片擦除,使存储单元值变成0xFFFF,才能进行编程。

擦除命令需要6个周期,操作命令如表2所示。
编程命令需要4个周期,操作命令如表3所示。

编程和擦除操作都需要一定周期的时间(AT49LV1024的单字编程时间是20μ8,整片擦除时间是10 s),用户可以通过查询标志数据线DQ6和DQ7确定编程或擦除是否完毕。当器件正处于编程或擦除状态时,连续读任意单元的值,DQ6的值将一直在0、1之间交替变化,当编程或擦除结束时,读DQ6则得到一个恒定值。本文即通过此方法判断操作是否结束。

根据Flash的编程和擦除命令,编写了相应的C语言程序,其中SetGPIO46Addr(Addr)子程序的作用是根据所传递的Addr值配置相应的GPIO4和GPIO6即高两位地址的值。
3.3.1 片擦除程序

3.3.2 单字编程程序

3.3.3 编程和擦除结束确认程序


3.4 程序的烧写实现
本系统在CCS仿真环境下对Flash进行在线编程。先建立一个Flash的烧写工程,并在工程中将要烧写进Flash的引导表文件通过CCS的LOADDATA功能直接加载进DSP的内存,根据加载的首地址和数据长度,在仿真环境下烧进Flash中。值得注意的是,程序加载的内存空间不能与Flash的烧写程序重叠,否则烧写失败。
需要补充的是,经hex55.exe文件转化后的hex格式的引导表文件是不能直接导入CCS中的。CCS只支持将特别规定的DAT格式文件通过LOADDATA导入内存,所以在导入之前必须先将引导表转化成DAT格式文件,这个工作可以由VC编写一个简单的C语言转化程序实现。
4 结束语
本文阐述了一种针对TMS320VC55x系列DSP简单有效的Flash烧写方法,并提出了程序自举引导的实现方法,包括大程序二次引导的实现方法。本文讨论的引导方法包括硬件设计及相关程序,已在笔者的实际开发CMOS图像采集项目中使用并成功运行。

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

前不久,新思科技已经正式对Ansys完成了整个收购。一家是IP和IC设计方面传统三强之一,一家是仿真与分析领域的老牌技术专家。双方的结合也是呼应整个技术潮流,为客户提供从硅片到系统的完整解决方案。而且,借助Ansys的强...

关键字: Synopsis 新思科技 Ansys 仿真 汽车 AI

阿联酋迪拜2025年8月26日 /美通社/ -- 纳斯达克上市公司Robo.ai Inc.今日正式宣布完成品牌焕新升级,并于8月26日正式启用全新纳斯达克股票代码"...

关键字: AI 人工智能 代码 智能科技

本文中,小编将对PLC予以介绍,如果你想对它的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。

关键字: PLC 编程

在下述的内容中,小编将会对PLC的相关消息予以报道,如果PLC是您想要了解的焦点之一,不妨和小编共同阅读这篇文章哦。

关键字: PLC 编程 模块化

随着在线会议、直播和游戏语音交流的普及,高质量的音频输入设备变得越来越重要。为此,边缘AI和智能音频专家XMOS携手其全球首家增值分销商飞腾云科技,利用其集边缘AI、DSP、MCU和灵活I/O于一颗芯片的xcore处理器...

关键字: AI DSP MCU

北京2025年8月13日 /美通社/ -- 近日,北京积算科技有限公司(以下简称"积算科技")推出一站式AlphaFold3在线算力服务,现已开放免费使用。其内置优化后的AlphaFold3模型,支持...

关键字: ALPHA 代码 图形化 蛋白质

2025年8月14日,致力于亚太地区市场的国际领先半导体元器件分销商---大联大控股宣布,其旗下诠鼎推出基于新突思(Synaptics)SL1680嵌入式处理器的AI疲劳驾驶检测方案。

关键字: AI 嵌入式处理器 Type-C

-Cognizant正在筹办全球最大规模的氛围编程活动,以提升数千名员工的AI素养 为抓住人工智能经济将创造的巨大机遇,Cognizant与Lovable、Windsurf、Cursor、Gemini Code Ass...

关键字: 编程 NI AN PI

北京2025年7月21日 /美通社/ -- 浪潮信息宣布元脑企智一体机已率先完成对Kimi K2 万亿参数大模型的适配支持,并实现单用户70 tokens/s的流畅输出速度,为企业客户高效部署应用大模型提供高处...

关键字: 模型 AGENT TOKEN 代码

多DSP集群的实时信号处理系统,通信拓扑的优化直接决定任务调度效率与系统吞吐量。RapidIO与SRIO作为嵌入式领域的主流互连协议,其带宽利用率差异与QoS配置策略对集群性能的影响尤为显著。以无线基站、雷达阵列等典型应...

关键字: DSP 通信拓扑优化
关闭