VC5509A二次引导问题
用仿真器调试没有问题(简单的程序)现在要通过EMIF下载到外部FLASH,有点晕了
看了网上的资料,要写个引导程序把.OUT文件写进FLASH
这个二次引导程序怎么写? 你需要做的是:
1. 编写一个可以读取 .out文件,并且可以擦写外部flash的 CCS工程A;
2. 采用仿真器加载CCS工程A,并运行;
3. 这个工程A 会读取你要写到外部flash的.out文件,然后写到外部flash中。
说白了,你要实现的就是一个能够写外部flash的程序…… 但是二次引导的意思,好像跟你说的还不一样,
不管怎么样,我说的方法可以实现你要的结果。 楼上,我明白你的意思了
先要建议烧写FLASH的工程
想了下
我的硬件结构DSP与FLASH之间有一CPLD,即:DSP<--->CPLD<--->FLASH
DSP上电后进入片内固化的bootload,但这个内部的操作不了CPLD
网上的截图,但资料不详细
http://cache.amobbs.com/bbs_upload782111/files_43/ourdev_662374GURZNY.png
(原文件名:截图00.png)
就是这个二次引导程序怎么写 网上的资料“TMS320VC55X系列DSP的FLASH引导方法”
是网页 可以贴上你的硬件图说话,现在不知道你的硬件结构具体是什么样子的,所以不好提供参考解决方案。
我也是略懂,说得不对还请谅解! 看你上面解释的话,你用的应该是QFP封装的5509A吧,这个封装的芯片地址线比较少,所以你想用CPLD来扩展地址线,
如果是BGA封装的芯片的话,应该就不存在这个问题。
其实QFP封装的那些地址线已经远远够你写二次引导程序了,
我没看你给的网页,我说一下我的大概思路:
二次引导的过程:
1. 内置boot启动,通过QFP原本的地址线加载并行flash中的 二次引导程序A,这个引导程序A 是需要你写的(下面介绍A要实现的功能), 在这个期间,CPLD的作用可以看作导线,地址线什么的虽然经过它,但是不在其中做什么处理;
2. 引导程序A 加载以后,要实现的功能就是,配置DSP的一些IO,让CPLD能够将扩展的地址线发挥作用,然后就能够从并行flash加载更大的用户代码到RAM中,当然,这个加载地址你就可以自己在引导程序A中定义了,只要不与A的代码地址冲突就OK了。
3. 跳转到加载的代码处开始执行用户代码。
不管怎么说,你还是把硬件图传一下吧,这样比较好分析。
上面说的如有错误,还请高人指正,以免误导。 原理图按层次图画,不好贴。
画个示意图
http://cache.amobbs.com/bbs_upload782111/files_43/ourdev_662984FTZ0G1.png
(原文件名:截图00.png) 按照你画的示意图,可以给你以下建议。
注:下文中“代码A”是指你最终的应用程序;“代码B”是指二次boot代码
分两种情况:
1. 如果代码A比较小,可以直接使用DSP的A13..A1,不用管CPLD扩展出来的那些地址线。
根据计算,这个只有8K word大小,够写一些小程序,这个时候在CPLD中将CE1与F_CE直接连通即可,然后就可以让DSP自带的boot去加载你的代码A。
2. 如果你的代码A比较大,就需要用代码B了。
代码B,其本质也是一段用户代码,只不过它的作用是配置你的DSP,让它能够将地址线扩展出来。
代码B需要具有以下的特点:
(1)代码量小,这个是为了DSP自带的boot 能够加载它。那么对照情况1可以知道,代码B的大小必须在8K word以内;
(2)代码B需要能够配置DSP,使得DSP在读取外部Flash的时候能够按照二次boot图操作;
为了解释简单,随手画了下面这个图,本图中未写RE和WE信号以及CPLD中需要相应配合的部分,如有不明确的地方,可以接着讨论。
http://cache.amobbs.com/bbs_upload782111/files_43/ourdev_663146JMZHGN.gif
(原文件名:二次boot.gif) 先灰常感谢楼上,呵呵
页:
[1]