搜索
bottom↓
回复: 17

细说bootloader

[复制链接]

出0入0汤圆

发表于 2011-10-14 20:33:30 | 显示全部楼层 |阅读模式
提问:DSP跑起来为啥比单片机速度快?

有人说,因为使用了哈佛总线,指令流水线之类的,这是CPU的架构决定的, 是一方面。

还有一方面,就是利用高速DARAM装代码,这样能减少取指令时的延时。而我们熟悉的51,AVR等单片机,代码都在flash中存放,CPU可以很快,但速度瓶颈在flash读取上。这样导致单片机速度很难超过100MHz。

使用TI的DSP,可以通过JTAG直接将代码下载到芯片内部DARAM,运行。这是在前期仿真调试阶段。

而到产品发布阶段,用户需要板卡能脱机运行。这时需要将代码固化。

非易失存储器可以选择串行EEPROM,串行flash,并行flash,或者由另一块内置flash的单片机提供引导功能。代码以boot表或可执行程序方式放在非易失存储器中,上电后先运行相应bootloader,加载代码到DARAM中,加载完成后开始高速运行。

从启动速度(可以认为电脑开机速度)上考虑,串行存储器适合小型程序(<32KB)。如果代码比较大,还是不要用的好,否则会浪费太多时间。

TI的C55x可以支持SPI启动,使用一片AT25256或者IIC启动,用AT24256.相关电路可以参考TI官方电路。软件需要将CCS生成的.out转化为便于flash烧写的hex或bin文件。转换工具为hex55.exe,在CCS安装目录里面搜索就能找到。
使用命令行时,可能为

hex55.exe boot55x.cmd

该命令的参数为一个文件名,这个boot55x.cmd是一个命令文件,指定了hex55.exe需要完成哪些操作。内容可能如下:

-e _c_int00
-boot
-v5510:2
-serial8
-reg_config 0x1c00,0x2180
-delay 0x100
-b
-o mmc.bin
mmc.out


第一行:-e _c_int00表示引导完成后,程序将跳转到哪个位置。_c_int00用过TI DSP的都懂得,是主函数被调用前的初始化过程。
第二行:-boot表示生成boot表。boot表就说明你DSP不能直接运行这里面的内容,需要通过bootloader按一定格式搬移到目的地后才能运行。与之对应的是可执行代码,表示你DSP来我这跑吧,我这可以直接运行的,所以叫可执行程序,有点像PC上的.exe文件。
第三行:-v5510:2表示版本变化。不用管。第四行-serial8表示串行8bit方式。因为我们用串行引导,存储器位宽8bit。
第五行为寄存器配置。将PLLCON配置了一下。这样在boot过程中就可以将某些寄存器初始化,就不用主函数执行这些操作了。
第六行为bootloader运行完成后转移至目的地址前的延时。这是为了让CPU“歇口气”。
第七行:-b表示输出文件为二进制.bin文件。这是最直接,最节省空间的文件格式。
第八行:-o mmc.bin表示输出文件名为mmc.bin文件。
第九行:这行说了输入文件名,是CCS编译完后的.out文件。你一般只需要修改最后两行就行了。改成你编译完的文件名。



运行hex55.exe后,生成了bin文件,然后呢?

需要自己写个烧写程序,读取磁盘上的.bin文件,写入非易失存储器中。这里用的是YCL板子提供的烧写程序。打开工程,将你的bin文件放到工程目录,并修改工程代码中fopen里那个文件名为你的bin文件名即可。在你DSP上跑一下这个工程。大约7min就能烧写完毕。

点击此处下载 ourdev_684972S54MFR.rar(文件大小:330K) (原文件名:SourceCode25_SPI BOOTLOADER.rar)
点击此处下载 ourdev_684973N6939G.rar(文件大小:475K) (原文件名:自启动文件生成器.rar)

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

 楼主| 发表于 2011-10-14 20:41:09 | 显示全部楼层
C55x支持的引导方式非常丰富,见图

(原文件名:allbootmode.JPG)


顺便贴出本例用的电路图和配置


(原文件名:config.JPG)


(原文件名:bootloader.JPG)

出0入0汤圆

发表于 2011-10-14 20:49:18 | 显示全部楼层

出0入0汤圆

发表于 2011-10-14 20:49:31 | 显示全部楼层
mark bootloader

出0入0汤圆

发表于 2011-10-19 10:09:26 | 显示全部楼层
搜达斯内。。。

出0入0汤圆

发表于 2011-10-26 23:08:05 | 显示全部楼层
还是不算太懂,没有实践过。

出0入0汤圆

 楼主| 发表于 2011-10-28 17:08:44 | 显示全部楼层
过几天抽空将C6000上的bootloader拿来分享下

顶顶

出0入0汤圆

发表于 2011-10-28 18:15:01 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-10-28 18:38:52 | 显示全部楼层

出0入0汤圆

发表于 2011-11-22 15:39:43 | 显示全部楼层
good。

出0入0汤圆

发表于 2011-12-6 23:46:16 | 显示全部楼层
mark bootloader

出0入0汤圆

发表于 2011-12-7 09:55:35 | 显示全部楼层
受益了

出0入0汤圆

发表于 2011-12-7 12:22:44 | 显示全部楼层
mark 好文章

出0入10汤圆

发表于 2014-5-29 10:28:30 | 显示全部楼层
标记一下,说的很好!!!

出0入0汤圆

发表于 2014-6-30 17:35:21 | 显示全部楼层
mark     

出0入0汤圆

发表于 2014-8-1 11:22:54 | 显示全部楼层
这么好的呀

出0入0汤圆

发表于 2014-8-12 10:53:46 | 显示全部楼层
很不错的东西
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 21:31

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表