当前位置:首页 > 电源 > 数字电源
[导读]DSP 芯片的片上引导装载程序(Bootloader) 用于在系统上电时将用户程序从外部非易失性慢速存储器(如FLASH 等)或外部控制器(如ARM 等) 中装载到片内或者片外的高速存储器中高速运行[1]。DSP 芯片一般都提供多种引

DSP 芯片的片上引导装载程序(Bootloader) 用于在系统上电时将用户程序从外部非易失性慢速存储器(如FLASH 等)或外部控制器(如ARM 等) 中装载到片内或者片外的高速存储器中高速运行[1]。DSP 芯片一般都提供多种引导装载模式,如Host 引导装载、EMIF 引导装载、I2C 引导装载、Serial RapidIO 引导装载等。相比其它几种模式而言,I2C 引导装载具有体积小、功耗低、连接简单等优点。本文以TI 公司的DSP 芯片TMS320C6455[2](以下简称C6455)为例,详细介绍了I2C 引导装载模式的实现步骤,并构建了一个小系统验证引导装载的实现过程。1 C6455 的引导装载模式介绍

C6455 的引导装载模式由引导模式管脚BOOTMODE[3:0]决定。在DSP 复位时上述四个管脚的不同状态对应着不同的引导装载模式,具体如表1 所示。

对于主I2C 引导装载模式,DSP 作为I2C 总线上的主设备,在复位后引导装载程序会按照引导表的参数从外部I2C EEPROM 或者其它I2C 总线从设备读取数据到相应的目的地址完成引导过程。引导表指定了数据的目的地址和长度。

从I2C 引导装载与主I2C 引导装载类似,只是DSP 在复位后等待外部I2C 总线主设备按照引导表的参数将数据写入指定的地址。对于多DSP 的情况,可以用一个DSP 作为主设备,其它DSP 工作于从I2C 引导装载模式下。

本文使用主I2C 引导装载模式,构建的验证系统连接方式如图1 所示,使用的EEPROM 型号是Atmel 公司的AT24C1024B[3]。为了保证系统能够稳定的工作,SCL 和SDA 信号都需要接上拉电阻。

图 1 C6455 和EEPROM 的连接方式

为了直观地验证引导装载的结果,我们使用一个简单的DSP 程序,通过C6455 的通用输入输出管脚GPIO2 不断输出高低交替的信号驱动一个发光二极管闪烁,相应的DSP 程序代码如下:

main()

{

initial(); // 初始化DSP

for(;;) GPIO2_toggle();//GPIO2 高低变化

}

2 I2C 引导装载的流程[4]

如果在DSP 的复位过程中选择了主I2C 引导装载,也就是引导模式管脚BOOTMODE[3:0]配置为0101,那么DSP 的引导装载程序首先从外部I2C EEPROM 中读取128 个字节的引导参数。引导参数在EEPROM 中的起始偏移地址可由DSP 的配置管脚CFGGP[2:0]设定,即偏移地址为0x80×CFGGP[2:0],本文中CFGGP[2:0]是000 ,也就是引导参数的起始位置在EEPROM 的地址0 处。

引导装载程序根据读到的引导参数判断下一步该如何进行装载。引导参数表的主要内容如表2 所示,每一个参数占用两个字节,表中仅列出了主要的几个参数的定义。

Length 项指定了引导参数表的数据长度,固定为26 个字节。Checksum 项是所有26 个字节的校验和,如果是全0 表示不需要校验。Boot mode 项选择引导模式,本例中是0101, 主I2C 引导模式。[!--empirenews.page--]

如果引导参数表中的Option 选项为00, 表示在LSW 项中指定的地址是另外一个引导参数表的起始地址。如果Option 选项是01,那么LSW 项中指定的地址是引导表(也就是实际的DSP 程序)的起始地址;如果 Option 选项为10,那么LSW 项中指定的地址是引导配置表的起始地址。

引导装载程序在读取了引导参数后将热启动DSP, 然后根据读到的参数进行相应的操作。如果Option 选项指定下一步要装入的是引导配置表,那么引导装载程序会根据引导配置表中的内容配置相应的寄存器等,同时引导参数中的LSW 项和Option 项也会被更新。然后引导装载程序热启动DSP,根据更新后的LSW 项和Option 项进行下一步的引导配置或者引导参数设置。

如果Option 选项指定下一步要装入的是引导表,那么引导装载程序会根据引导表中的设置从EEPROM 中读取一定长度的数据到指定地址,然后DSP 跳转到程序的入口地址处(一般就是_c_int00 )开始执行。

LSW 项指定下一步需要装载的引导配置表或者引导表的起始地址,Next LSW 项则是在Option 项为10 时指定引导配置完成后下一个引导参数表的起始地址。

2.1 引导配置表的设置

为了在程序引导装载之前初始化一些必须的参数,需要用到引导配置表。例如在引导装载程序要把代码装载到DDR 存储器中执行的时候,就需要在引导装载之前配置一些DDR 的控制寄存器。

配置每一个寄存器(或者写一个存储器地址)需要3 个字(32bit) 的配置过程。第一个字指定了需要配置的寄存器的地址,第二个字指定了该寄存器中需要设置为1 的位,第三个字节指定了该寄存器中需要设置为0 的位。如果第二个字和第三个字有某些数据位同时有效,那么对应的数据位数据翻转。如果第二个字和第三个字同时为0,那么程序跳转到第一个字指定的地址执行。如果三个字全部为0,那么引导配置结束,表3 举出几个例子详细说明上述配置的过程。

可以看出,虽然引导配置表一般只是在引导装载之前配置一些寄存器,但是对于一些很简短的程序,也可以使用引导配置表将程序直接装载到内部存储器中去运行。

在引导配置完成后就需要将引导表(也就是真正需要在DSP 中运行的用户程序)装载到指定地址。

2.2 引导表的生成

引导表包括DSP 程序的代码段、数据段、以及其它一些程序信息,如程序入口地址等。引导表可以根据COFF 文件格式由用户从CCS 工程文件(即*.out 文件)中提取,不过使用TI 提供的转换工具hex6x 更为方便。使用hex6x 生成引导表时需要设置一些参数,这些参数可以用配置文件的形式提供给hex6x 使用[5],一个典型的配置文件如下所示(本例中的配置文件名为led.cmd):

led.out ; 需要转换的文件-boot ; 生成引导表-a; ASCII 格式文件-e _c_int00 ; 程序入口-order L ; 小端模式-memwidth 32 ; 存储器数据宽度-romwidth 32 ; ROM 数据宽度-o led.hex ; 输出文件在DOS 的命令行输入hex6x led.cmd↙ ,就可以生成引导表文件led.hex, 实际的数据结构转换如图所示,可以看出,为了能够正确的进行程序的引导装载,引导表中加入了一些代码的长度、地址等信息。

不过这个引导表文件并不能直接写入EEPROM 中,还需要进一步的格式转换。

2.3 EEPROM 映像文件的生成

写入EEPROM 的映像文件由一个或者多个引导参数表、若干个引导配置表和一个引导表组成。引导表的数据按照包的形式存放,每一个数据包由数据长度、校验和以及程序数据组成,数据包的长度不能超过128 字节。把hex6x 生成的led.hex 文件分割成128 字节的数据包的过程可以使用TI 公司提供的相关工具软件来完成,也可以由用户根据上述格式进行转换。由引导参数表、引导配置表和引导表合成映像文件的过程也可以使用TI 公司提供的相关工具软件来完成。本文中使用的映像文件由一个引导参数表、一个引导配置表和一个引导表组成,在EEPROM 的存放位置如图3 所示。

3 测试结果及小结

使用编程器或者直接使用TI 公司的CCS 软件可以把上面生成的映像文件写入EEPROM。为了验证引导装载过程是否能够正确完成,可以给验证系统重新上电,看到发光二极管闪烁,说明引导装载成功。

创新观点:

本文提出的通过I2C 存储器实现TMS320C6455 的引导装载的方法能够简化系统的设计,缩短系统的开发时间。同时可以推广到TI 公司其它系列的DSP 芯片,具有广泛的应用价值。

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

(全球TMT2022年10月17日讯)日前,德勤中国旗下德勤管理咨询中国数据科学卓越中心所出品的"机器学习推荐算法"论文被第十三届IEEE 知识图谱国际会议(简称"ICKG")收录。ICKG是知识图谱研究领域的国际权威...

关键字: 机器学习 IC CK MULTI

私募股权投资机构Advent International与全球最大的家族企业之一Wilbur-Ellis宣布达成一项合并双方生命科学和特种化学品解决方案业务(分别为Caldic以及Conell)的协议,以创建业内的全球领...

关键字: IC INTERNATIONAL ADV

上海2022年10月17日 /美通社/ -- 日前,德勤中国迎来喜讯:旗下德勤管理咨询中国数据科学卓越中心所出品的"机器学习推荐算法"论文被第十三届IEEE 知识图谱国际会议(以下简称"IC...

关键字: 机器学习 IC CK FM

昨日(21日),华强北有朋友向芯榜爆料,说香港有600万的元器件货被抢劫,某家IC又要大涨了。

关键字: 华强北 IC 元器件

北京2022年10月13日 /美通社/ -- CE Innovation Capital ("CEiC") 宣布完成对东南亚最大开放金融API平台Ayoconnect的投资。本次公司B+轮融资额为13...

关键字: API NEC IC CE

这个无需多讲,目前芯片应用已经渗透到我们生活的方方面面,早晨上班骑的共享单车,到公司刷的IC卡,工作时偷偷地打游戏,手机卡了还要换更快的手机,可以说IC的市场需求一直都在。

关键字: 芯片 IC 共享单车

北京2022年10月12日 /美通社/ -- CE Innovation Capital ("CEiC") 近日宣布完成对美国人力SaaS平台Workstream的投资。此次公司B+轮融资金额为6千万...

关键字: SAAS STREAM WORKS IC

(全球TMT2022年10月12日讯)9月9日,国内时尚品牌VICUTU在北京大米视听文化传播有限公司的xR演播室进行了线上2022秋冬xR虚拟时装秀直播。本次时装秀场的LED显示屏完全采用视爵光旭专业xR产品搭建,背...

关键字: 显示屏 VI IC LED显示屏

深圳2022年10月11日 /美通社/ -- 9月9日,国内知名时尚品牌VICUTU在北京大米视听文化传播有限公司的xR演播室进行了线上2022秋冬xR虚拟时装秀直播。通过和罗马尼亚建筑设计师及艺术家Alexandru...

关键字: 显示屏 VI IC MIDDOT

HYM8563是一款低功耗CMOS实时时钟/日历芯片,由武汉昊昱公司设计生产。它提供一个可编程的时钟输出,一个中断输出和一个掉电检测器,所有的地址和数据都通过I2C总线接口串行传递。最大总线速度为400Kbits/s,每...

关键字: RTC HYM8563 I2C

数字电源

15504 篇文章

关注

发布文章

编辑精选

技术子站

关闭