1967|0

1140

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

TI c6455 烧写概述 [复制链接]

以下介绍的是dsp c6455的一种烧写程序的方式。它是通过片内运行的程序,将待烧写的程序写入片外FLASH中。在DSP上电或复位后,执行EMIFA 8-bit ROM BOOT,从片外FLASH加载程序并运行。

6455的烧写过程涉及三部分的文件:

1.主程序文件:完成所需功能的那部分程序文件,包含main.c。编译后会被编译到.boot_load以后的段, 
主函数被编译到 .cinit段。 
2.搬运程序文件: 完成烧写后,6455上电或复位,会自动将片外flash的头1k字节搬运到片内SRAM, 
并开始运行。这1k字节内的程序,即搬运程序,需要将主程序,从片外FLASH搬运至片内SRAM,最后跳转到主程序运行。 
搬运程序文件由boot.c和boot.asm两部分组成,会被编译到.boot_load 段。 
3.烧写程序文件:它的作用是将被编译下载到片内SRAM后的主程序和搬运程序,烧写到片外FLASH中。 
需要另建一个工程

烧写过程: 
1.建一个工程pro1,包含主程序文件和搬运程序文件。编译通过后,将程序下载到6455内(只下载,不执行). 
查看debug/release目录下map文件,得到程序各段在片内SRAM中的位置。 
eg: 
.boot_load start:00800000 length:000000e0

.cinit start:009e0500 length:00000214

.switch start:009e0714 length:000000e8 
…… 
.csl_vect start:009f2c00 length:00000200

2.另建一个工程pro2,包含烧写程序文件。编写cmd文件,避开pro1已使用的片内SRAM的地址, 
分配烧写程序文件被编译后各段在片内SRAM中地址。在上例中,可以将烧写程序文件被编译后的各段, 
放在0x008000e0-0x009f0500之间的地址。编译下载并运行烧写程序,将之前片内SRAM中已被编译下载的 
0x00800000-0x008000e0和0x009e0500-0x009f2c00间pro1的程序,写入FLASH中,从而完成烧写的过程。 
烧写程序文件main.c中烧写的函数:

//烧写搬运程序 
boot_source= 0x00800000; 
boot_length=0x000000e0; 
for(i = 0; i < boot_length; i++) 
{

    WriteByte(i,*(unsigned char *)( boot_source+i));
    C6455_wait(200);



//烧写主程序 
pragram_source=0x009e0500; 
pragram_length=0x009f2c00 + 0x00000200 -0x009e0500 ; 
for(i = 0; i < pragram_length; i++) 
{

    WriteByte(i+0x400,*(unsigned char *)( pragram_source+i));
    C6455_wait(200);
}

总结:以上只是6455烧写的一种方式的大概过程,让读者有个初步印象,详细过程需要读者进一步探索。

 

 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表