打印

要对LF2407A做JTAG仿真一定需要外扩SRAM吗?

[复制链接]
1678|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
herozoujie|  楼主 | 2008-3-17 09:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
ainet| | 2008-3-17 14:17 | 只看该作者

-

数据和程序是由DS和PS共同控制的,与门连接,但是A15上是连了DS,也就是说低32K为程序存储区,高32K才用与数据存储区。

以上情况至少在我买的板子上是这样的。

使用特权

评论回复
板凳
snakeemail| | 2008-3-17 14:31 | 只看该作者

呵呵,51单片机没有学好

使用特权

评论回复
地板
herozoujie|  楼主 | 2008-3-18 09:25 | 只看该作者

最本质的问题是:

unsigned int *p=0x8000;
*p=0x1234;

这条指令执行时A0-A15是0x8000还是0x0000?

使用特权

评论回复
5
ainet| | 2008-3-18 15:37 | 只看该作者

一点愚见,一点疑惑

首先,扩展的64k*16中的区分地址和dsp的地址定义应该是不能做比较的,因为它是由dsp外部的地址线连接的硬件情况来决定的。

外部扩展的ram映射到data空间,所映射的地址是0x8000~0xffff,对该段地址操作将导致ds引脚发生变动,从而导致外部ram的a15为高。

所以地址线就是1--- ---- ---- ---- (如果仿真时是对程序存储空间进行操作,所以就不会导致ds发生变动,而是ps.
从而使得地址线是0--- ---- ---- ----

至于unsigned int *p=0x8000;
*p=0x1234;

个人认为,应该是对数据空间的0x8000地址进行写入操作。
0x8000为外部ram地址,所以ds变动,从而写入的数据为外部ram的0x8000(该地址由外部地址线路决定,与数据空间的ram地址是不可比较的)

但是有点疑惑的就是:

unsigned int *p=0x8000;
*p=0x1234;

应该操作的就是数据空间,程序空间应该如何操作呢,io空间又该如何操作呢?

 

使用特权

评论回复
6
herozoujie|  楼主 | 2008-3-19 12:58 | 只看该作者

同意

使用特权

评论回复
7
mr.king| | 2008-3-20 19:06 | 只看该作者

你不扩只能RAM仿真小程序,大了只好反复烧片,开发效率低

使用特权

评论回复
8
herozoujie|  楼主 | 2008-6-10 13:04 | 只看该作者

中断向量怎么定位?

2407的中断向量是不能重定位的,那如果我把程序定位到片外的SRAM中去了,要执行中断服务程序的话,中断向量表该分配到哪里?FLASH中的00H-3FH吗?这样要先烧写FLASH吧?能分配到片外SRAM中吗?

使用特权

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

本版积分规则

70

主题

152

帖子

0

粉丝