您现在的位置:首页 > 案例分析案例分析

TMS320C6000系列二次Bootloader的设计与实现

发布时间:2018-01-02 10:38:28  来源:大电流电感厂家   查看:

其次,就是把生成的*.out文件首先使用CCS开发环境自带的工具Hex6x.exe把工程生成的*.out文件转化成hex格式,在DOS环境下指令为>Hex6x.exeboot.cmd。

最后根据Flash存储器芯片的要求把hex文件烧写到Flash存储器中指定的地址即可。本例采插件电感器用的AM29LV800BB- 70ecFlash存储器芯片,采用3.3 V供电,完全兼容JEDEC标准,并支持在系统编程,用户只需向其内部的命令寄存器写入命令序列即可实现部分擦除、全部擦除、数据写人等功能;同时可提供硬件和软件方法来检查Flash存储器的操作执行情况。首先需要对芯片进行擦除全部变为0xFFFF,然后再进行烧写。由于Flash存储器是以16位进行访问的,所以对Fl电感生产ash存储器而言其物理地址以16位为单位进行编址,而程序中使用的逻辑地址是以字节为单位进行编址的,二者之间的关系如下:逻辑地址=物理地址《1 ,所以程序中有地址偏移。下面给出烧写的程序。

2.jpg

2 带有中断向量表的二次Bootloader的实现

第1节介绍了一般的二次Bootload过程,但当需要boot带中断向量表的程序时,需要仔细考虑3个重要文件的编程,否则将会遇到意想不到的后果。

2.1 配置文件Ink2.cmd

Ink2.cmd有了细微差别,此时有中断向量表,所以在分配时要考虑vectors的分配空间。在配置文件中差异主要在Memory中,section的部分如下:

SECTIONS

5.jpg

MEMORY的差别具体如下:

a) 没有考虑中断向量表配置绕行电感器的部分程序:

6.jpg

b) 考虑中断向量表配置的部分程序:

7.jpg

.vectors为中断向量表,其有0x200的长度的数据,必须放在0x90000000的地址处,。boot_load紧接着放置。

2.2 中断向量表文件vec.asm

还有一个很重要的一点是图2中vec.asm文件的变化。在调试程序时,中断向量表开始会直接跳到c_int00处,但是待烧写的前1 kB数据,首先要进行EMIF设置和搬移过程,所以其指向要发生变化。

vecter.asm部分程序如下:

a) 原程序的vecter.asm部分程序:

8.jpg

b) 产生Bootload数据的程序的vecter.asm部分程序:

9.jpg

以上程序中,程序a)开始是指向c_int00,程序b)为指向_boot,即。boot_load()的人口。这是因为在1 kB的程序复制完成后,程序即开始执行。首先应执行二次boot程序,即入口点_boot,完成二次boot后,再执行正常的初始化C语言环境代码,进而跳转到用户main函数。此时生成的。out的文件,通过hex6x.exe转化成可烧写的数据。

2.3 转换数据的配置文件boot.cmd

通过hex6x.exe可以把boot.out文件转化成boot.hex形式,方便烧写到Flash存储器中。此时Boot.cmd的也要做相应的变化,把中断向量表的程序同。boot_load程序,程序段,数据段一样转化过来。

boot.cmd配置程序如下:

a) 没有考虑中断向量表的boot.cmd配置:

10.jpg

b) 考虑中断向量表boot.cmd配置:

11.jpg

以上程序中len可以根据实际程序的长度进行修改,如果用hex6x.exe boot.cmd进行转化,程序长度过短时,会产生警告提示。此时可以查看map文件,看看程序和数据占用的空间来定len的大小,只要len大于实际的程序长度即可。Romwidth根据所用的Flash存储器的位数来定,如果是8位的就写8,如果是16位的就换成16。以上程序中,程序b)与程序a) 不同的是加入了。vectors,使得生成的boot.hex文件中0x0000 0000地址就为vectors的程序。此时生成的*.hex的文件可以烧写到Flash中。

3 结束语

本文以TI公司高性能DSP TMS320C60大电流电感00系列芯片为例,介绍了从Flash存储器进行引导,带中断向量表的二次Bootloader的新途径,其中对Bootloader 的程序需要改写的三脚电感部分详细叙述了具体的差别,从而为TMS320C6000系列DSP的开发提供了一种新的思路。该方法简单可行,在TI公司提供的文档上,只要稍做修改就可以得到正确的结果,该方法已在实际工程中得到具体应用,系统性能稳定。一般情况下中断向量表的首地址都为0x0000 0000,如果中断向量表没有设在0x0000 0000地址时,要对boot_c671x_2.s62文件中ISTP进行设置,此时vectors就不需要放在1 kB的数据中,而是在1 kB的程序空间中指向vectors的初地址。 共模电感差模电感器平面变压器厂家 | 平面电感厂家

设计技术问答:FPGA设计的安全性考量Q1:FPGA设计与DSP设计相比,最大的不同之处在哪里? A1:这个问题要从多个角度看。它们都用于某个功能的硬件电路实现,但是它们的侧重点有所不同。这里涵盖的说一下。 1)内部资源 FPGA侧重于设

详解电动汽车传动系统原理、传动方式及拓扑构架随着现代汽车电子技术的发展,新能源汽车、电动汽车的出现无疑给整个行业注入了一股新鲜而且充满挑战性的血液。凭借可以减少很多废弃物、有害气体的排放,对整个社会的生活环境都有很大的改善效果,得到社会及国家的

[充电器]电工座驾充电器坏了!雅迪电车充电器坏了,症状是没有电压输出;经检测电源部分正常,有55V电压。 温度保护或者电流保护功能起作用了。 作为一名电工,我是自己修呢还是该自己修呢?问题是上面有个芯片sp210w没有资料,这个怎么破?  满意回复+10戈卫东 查看完整内容原理图描出来,分析它的功能。 。 。 。 。 。 。 +10戈卫东 查看完整内容太费事。 。 。 。

CopyRight2014
大电流电感 | 大功率电感 | 扁平线圈电感 注塑加工厂