多核DSP的BootLoader程序的实现
发布时间:2008/5/27 0:00:00 访问次数:548
dsp芯片的bootloader程序用于实现用户程序上电自举,它有多种工作方式。上电自举就是将用户存放在片外的非易失性、慢速的存储器中的程序装载到片内易失的、高速的存储空间中,以保证用户程序在dsp核内的高速运行。
多核dsp是指由多个独立的dsp子核集成的dsp芯片,且所有dsp子核共享一套片外总线。由于每个dsp子核内部都有其自身独立的掩模bootloader程序,当dsp芯片上电或复位时所有dsp子核都将自行启动自身独立的bootloader程序,实现用户程序的上电自举。所以,多核dsp的bootloader程序的实现方法与单核dsp的bootloader程序的实现方法有较大的差异。为此,本文立足于实践,以双核dsp- tms320vc5421的16位并行eprom的bootloader程序的工作方式为例,详细阐述了多核dsp的bootloader程序的实现方法。
1 bootloader程序简介
1.1 bootloader程序的四种工作方式
一般的dsp都采用常见的bootloader程序工作方式来实现用户程序的上电自举:
处理器通信口(主端口)hpi方式--通过dsp芯片与pc机或dsp芯片与其它dsp芯片之间的主机通信端口实现上电自举;
8位或16位并行eprom方式--通过dsp内核的dma通道实现上电自举;
8位或16位并行i/o方式--通过dsp芯片的片外并行i/o接口实现上电自举;
8位或16位串行口方式--通过dsp芯片的串行端口实现上电自举。
在以上四种工作方式中,最常用的是16位并行eprom方式。即在dsp芯片上电或复位时,通过dma通道将存储在核外eprom中的程序以16位形式存储到核内的程序空间中。
1.2 16位并行eprom方式的boot表
各种方式的bootloader程序都有其固定格式的boot表,用来实现用户程序的上电自举。16位并行eprom方式的boot表如表1所示。表中的第1表项存放bootloader程序工作方式控制字,用于dsp芯片上电或复位时确认该boot表是否为16位并行eprom工作方式的boot表。该表项内容为10aah,表示dsp内核认为该boot表是16位并行eprom工作方式的bootloader程序的boot表;否则dsp内核认为该boot表不是16位并行eprom的方式的boot表;第2表项存放dsp特殊寄存器swwsr在上电或复位时被赋予的初始化数值;第3表项存放dsp特殊寄存器bscr在上电或复位时被赋予的初始化数值;第4表项存放用户程序将要被存放在dsp核内程序空间的页地址;第5表项存放用户程序将要被存放到dsp核内程序空间的页内偏移地址;从第6表项开始依次存放用户程序第m段代码的长度n。用户程序第m段代码将要被存放到dsp核内程序空间的页地址,用户程序第m段代码将要被存放到dsp核内程序空间的页内偏移地址,用户程序第m段代码的第1个字,第2个字,……,第n个字;boot表的最后表项存放boot表结束字0000h,表示boot表到此结束。因此dsp内核要实现bootloader程序,在上电复位后首先要申请到片外数据、地址总线的控制权,然后再根据boot表完成用户程序上电自举过程。
1.3 16位并行eprom工作方式boot表的生成
所有bootloader程序所需的boot表的数据结构都是通过执行包含-v548参数的链接命令和hex500转换命令的程序形成的。在链接过程中确定用户程序和数据的存放地址,在hex500转换过程中定义bootloader程序的工作方式和用户程序执行的入口地址等。
为了生成16位并行eprom方式的boot表首先,在链接程序时必须设置-v548选项;然后使用ti公司dsp开发工具自带的hex500.exe文件,根据用户的coff格式的代码生成boot表中的相应内容。
hex500.exe可执行文件一般使用以下几种参数
(1)*.out :用户的coff格式的程序;
(2)-e :确定用户程序的入口点;
(3)-a :以ascii形式,根据用户的.out文件输出对应的hex文件;
(4) -boot实现用户程序的装载;
(5) -bootorg :确定生成哪种形式的boot表;
(6) -memwidth:确定引导方式的位数;
(7) -o *.hex:输出的hex文件的名称。
例如:
hex500 ti.out /根据ti.out文件生成boot表/
-e 0x4000 /用户程序的入口点为0x4000/ -a /以ascii形式输出hex文件/ -boot / 装载用户的程序ti.out/
-bootorg parallel
/生成并行eprom方式的boot表/ -memwidth 16 /生成16位的boot表/
-o ti.
dsp芯片的bootloader程序用于实现用户程序上电自举,它有多种工作方式。上电自举就是将用户存放在片外的非易失性、慢速的存储器中的程序装载到片内易失的、高速的存储空间中,以保证用户程序在dsp核内的高速运行。
多核dsp是指由多个独立的dsp子核集成的dsp芯片,且所有dsp子核共享一套片外总线。由于每个dsp子核内部都有其自身独立的掩模bootloader程序,当dsp芯片上电或复位时所有dsp子核都将自行启动自身独立的bootloader程序,实现用户程序的上电自举。所以,多核dsp的bootloader程序的实现方法与单核dsp的bootloader程序的实现方法有较大的差异。为此,本文立足于实践,以双核dsp- tms320vc5421的16位并行eprom的bootloader程序的工作方式为例,详细阐述了多核dsp的bootloader程序的实现方法。
1 bootloader程序简介
1.1 bootloader程序的四种工作方式
一般的dsp都采用常见的bootloader程序工作方式来实现用户程序的上电自举:
处理器通信口(主端口)hpi方式--通过dsp芯片与pc机或dsp芯片与其它dsp芯片之间的主机通信端口实现上电自举;
8位或16位并行eprom方式--通过dsp内核的dma通道实现上电自举;
8位或16位并行i/o方式--通过dsp芯片的片外并行i/o接口实现上电自举;
8位或16位串行口方式--通过dsp芯片的串行端口实现上电自举。
在以上四种工作方式中,最常用的是16位并行eprom方式。即在dsp芯片上电或复位时,通过dma通道将存储在核外eprom中的程序以16位形式存储到核内的程序空间中。
1.2 16位并行eprom方式的boot表
各种方式的bootloader程序都有其固定格式的boot表,用来实现用户程序的上电自举。16位并行eprom方式的boot表如表1所示。表中的第1表项存放bootloader程序工作方式控制字,用于dsp芯片上电或复位时确认该boot表是否为16位并行eprom工作方式的boot表。该表项内容为10aah,表示dsp内核认为该boot表是16位并行eprom工作方式的bootloader程序的boot表;否则dsp内核认为该boot表不是16位并行eprom的方式的boot表;第2表项存放dsp特殊寄存器swwsr在上电或复位时被赋予的初始化数值;第3表项存放dsp特殊寄存器bscr在上电或复位时被赋予的初始化数值;第4表项存放用户程序将要被存放在dsp核内程序空间的页地址;第5表项存放用户程序将要被存放到dsp核内程序空间的页内偏移地址;从第6表项开始依次存放用户程序第m段代码的长度n。用户程序第m段代码将要被存放到dsp核内程序空间的页地址,用户程序第m段代码将要被存放到dsp核内程序空间的页内偏移地址,用户程序第m段代码的第1个字,第2个字,……,第n个字;boot表的最后表项存放boot表结束字0000h,表示boot表到此结束。因此dsp内核要实现bootloader程序,在上电复位后首先要申请到片外数据、地址总线的控制权,然后再根据boot表完成用户程序上电自举过程。
1.3 16位并行eprom工作方式boot表的生成
所有bootloader程序所需的boot表的数据结构都是通过执行包含-v548参数的链接命令和hex500转换命令的程序形成的。在链接过程中确定用户程序和数据的存放地址,在hex500转换过程中定义bootloader程序的工作方式和用户程序执行的入口地址等。
为了生成16位并行eprom方式的boot表首先,在链接程序时必须设置-v548选项;然后使用ti公司dsp开发工具自带的hex500.exe文件,根据用户的coff格式的代码生成boot表中的相应内容。
hex500.exe可执行文件一般使用以下几种参数
(1)*.out :用户的coff格式的程序;
(2)-e :确定用户程序的入口点;
(3)-a :以ascii形式,根据用户的.out文件输出对应的hex文件;
(4) -boot实现用户程序的装载;
(5) -bootorg :确定生成哪种形式的boot表;
(6) -memwidth:确定引导方式的位数;
(7) -o *.hex:输出的hex文件的名称。
例如:
hex500 ti.out /根据ti.out文件生成boot表/
-e 0x4000 /用户程序的入口点为0x4000/ -a /以ascii形式输出hex文件/ -boot / 装载用户的程序ti.out/
-bootorg parallel
/生成并行eprom方式的boot表/ -memwidth 16 /生成16位的boot表/
-o ti.
热门点击
推荐技术资料
| |