2407数据和程序共用外部存储器问题,请教高手

zbk81023   2007-7-18 02:38 楼主
为节省成本,2407A数据和程序准备共用外部64K存储器,硬件电路接法:CS=PS×DS(低有效),地址线对应连接,那么数据和程序都可以访问0000-FFFF的外部空间,如何分配存储器空间呢?
    若数据空间占用0000-7FFF的前32k,程序空间占用后7FFF-FFFF的32k,那么程序都是从程序空间的0000来读取复位向量的,是不是就无法读取了?
    若与前面相反,那么2407内部的sram和dram又都配置在前32k空间,是不是就又和程序空间冲突了?
    关于存储器的配置一直不太清楚,请高手指点!

回复评论 (6)

是否可行

把DS接A15,其余A0-A14对应连接,这样前后32K就分开了,是否可行?
点赞  2007-7-18 03:04
      我用的一块开发板是这样的:外部程序空间,数据空间都是:8000h - 0FFFFh.
这样硬件连接上应该也是可以实现的。使用前先要烧一次  FLASH,把程序空间
0-03Fh的区域填满转移指令:
0000    B   0FF00h,*
0002    B   0FF02h,*
0004    B   0FF04H,*
......
而中断向量表放到0FF00-0FFFF处。这样,复位还时中断就先经过0-3F处的跳转表进程序中的中断向量表。片内的数据存储器照样可以使用。
点赞  2007-7-18 03:46

我也是以上思路

调试时程序和数据共用外部ram,完成后外部64K全部用做数据,程序放在内部flash,
但是在调试共用ram时,如何分配空间呢?
在。cmd中应该有一个page还是两个page呢?因为两个空间是相对独立的,我理解应该为两个page 0 和page 1,只不过每个page只有32k,不知道对不对?
因为板子还没有完成,无法验证,请高手指点!
点赞  2007-7-18 04:33
三个 page,干脆 COPY 一个实例供参考。(扩展RAM还没有用完)
MEMORY
{
PAGE 0: /* PROGRAM MEMORY */
     EX1_PM :ORIGIN=8800h , LENGTH=01000h /* 63.5K external RAM */
     B0_PM :ORIGIN=0FF00h, LENGTH=40h /* On
点赞  2007-7-18 07:13

I/o空间也要写到链接文件中?

所看的例子中好像没有写I/O空间的。
点赞  2007-7-18 08:24
  我这也是抄来的,一直用着,好像没啥问题。你这一说,我再去翻看一下,好多应用里确实没有 page2.且存疑吧!
点赞  2007-7-18 08:36
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复