打印

发现一篇好**,可惜有点看不懂

[复制链接]
2588|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cruby|  楼主 | 2007-7-10 16:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天看到一篇文章,介绍了一种新的2407调试程序的方法,感觉不错,不过有几处地方看得不是很懂,还请各位指教
/*******************************************************
3   一种新的程序调试方法分析 
3.1 
程序调试前的准备工作 
与 TI 公司的其他系列的 DSP 芯片不同
TMS320LF2407必须从程序存贮器的 0000h单元读
取复位向量
所以在程序调试以前 要在 0000h 单
元写入复位向量 一般采用 TI 公司提供的
2407FLASH 烧写插件将一段中断向量表烧入片内  //1.具体怎么实现呢?
FLASH 的 0000h 单元 其格式如下  
        .sect     ".vectors" 
RESET   B     _c_int0 
INT1     B     PHANTOM 
INT2     B     PHANTOM 
INT3     B     PHANTOM   
INT4     B     PHANTOM   
INT5     B     PHANTOM 
┊ 
此时在命令文件 CMD 文件 中的程序起始
将上边的中断向量表烧入
地址应为0000h
FLASH 在 DSP 上电后 程序指针将指向_c_int0
所存放的地址 使存放在 RAM上的程序得以执行  

3.2 TMS320LF2407 程序调试的实现 
  首先 在硬件设计时将 2407 芯片的
MP/MC 引脚接地 使器件被配置为微控制器方式  //2.将MP/c#接地跟在SCSR2中设为0有什么区别吗?
片内 FLASH 可以被访问 器件从片内存贮器中读
取复位向量  
  程序中将 SCSR2 中的 BOOT EN 位设置为
1 禁止引导 ROM TMS320LF2407 片内 FLASH
程序存储器映射地址范围为 0000h 7FFFh 将
DON 和 PON 位分别配置为 0 1 使 SARAM 被映
射到片内程序空间 TMS320LF2407 上电复位后
BOOT EN 位设置为 1 DON 和 PON 位分别配置
为 1 1 如使用系统默认值也能完成本设计  
  命令文件 CMD 文件 中 将程序空间分
配到从 8000h 开始的 2K 空间 其格式如下  
-o example.out 
-stack 100 
example.obj 
-l rts2xx.lib 
MEMORY 
PAGE 0: VECS: origin=0x8000, length=0x0040 
  PVECS: origin=0x8044, length=0x0100 
  PROG: origin=0x8150, length=0x0680 
程序调试完后 将起始地址由 8000h 改为
0000h 就能将程序成功烧入 DSP 芯片内部的
FLASH 之中  
3.3  此方案要注意的问题及其解决方法 
方法对 TMS320LF2407 进行程序调试时 若
程序超出 2K 可将程序模块化 各模块分开调试
全部调试成功后再将其整理为一个文件 在编译器
中编译并生成 OBJ 文件 然后烧写到 FLASH 中进
如果单个模块超过 2K 可将模块中的部
行联调
分程序屏蔽
对模块中的各个功能进行调试  
4   结束语 
上述方案能实现没有片外扩展程序存储器情
以减少资源的浪费和电路设计的
况下的程序调试
难度 获得更高的效率  
***************************************************

我看不懂的是:
1.如何将中断向量烧到片内呢?是不是建一个asm文件,然后编译通过后就烧进去呢?不需要C语言源程序吗

2.文中提到将MP/MC#置0,这跟在软件中将其置0有什么区别呢?

相关帖子

沙发
cruby|  楼主 | 2007-7-10 17:23 | 只看该作者

上传一下整个文件

https://bbs.21ic.com/upfiles/img/20077/200771017212782.pdf

使用特权

评论回复
板凳
zhaoxinzxzx| | 2007-7-10 22:58 | 只看该作者

建议楼主多阅读一下手册

1.**中说的很明确了,是用TI提供的烧写插件完成的,CCS2.1以上版本都包含这个插件,在菜单Tools->On Chip Flash Programer

2.系统在复位时要检测MP/MC#这个引脚的状态,来决定从什么位置来执行程序,复位后,程序地址空间0x0000~0x7fff是在片内还是在片外由SCSR2.2这位决定。也就是说程序地址空间0x0000~0x7fff是在片内还是在片外在复位前由MP/MC#这个引脚决定,复位后由由SCSR2.2这位决定。

建议楼主多阅读一下手册http://focus.ti.com/lit/ug/spru357c/spru357c.pdf
这个问题在2-7页上就能找到说明

使用特权

评论回复
地板
li_mu| | 2007-7-10 23:12 | 只看该作者

这种方式是否对系统利用不充分啊

感觉如果不是对系统电路成本要求高,这么搞似乎没必要吧

使用特权

评论回复
5
cruby|  楼主 | 2007-7-11 11:48 | 只看该作者

不好意思,怎么烧呢?

/**********************************************************
1.**中说的很明确了,是用TI提供的烧写插件完成的,CCS2.1以上版本都包含这个插件,在菜单Tools->On Chip Flash Programer
**********************************************************/

利用插件烧我也知道,但是具体怎么实现呢?打开这个烧写插件后,得载入一个.out文件吧,这个文件是怎么生成呢,是自己写个asm文件,然后编译一下生成呢还是要用到一个c语言的源文件件呢?

另外,我觉得这样利用系统才充分,省了外扩Ram的麻烦,对于小程序来说非常适合

使用特权

评论回复
6
zhaoxinzxzx| | 2007-7-11 22:52 | 只看该作者

re:

建立一个生成.out文件的工程,编译后就能得到.out文件了,程序的源文件当然可以是C也可以是汇编了。如果你不知道怎么生成.out文件,可以打开一个CCS自带的例子程序,编译后就能够生成.out文件了。然后你可以看看它的工程是怎么设置的。

我也觉得没必要外扩RAM,大多数应用片内的FLASH足够了。

使用特权

评论回复
7
cruby|  楼主 | 2007-7-14 17:38 | 只看该作者

搞定

终于搞定,不用外扩RAM,不用每次烧程序,呵呵,感觉就是不一样

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

64

帖子

0

粉丝