问:
1 ,对 AT90S8515 来说,外部 RAM 的地址肯定是从 0x0260 开始的?
2 ,我用 ICE200 仿真 8515 读写外部 RAM , RAM 大小为 32K Bytes, 地址映射到 0x0000-0x7fff, 用 PC7 做它的片选。把 SRE 置为 1 ,当我访问 0x0300 时 PC7 为低,这是对的,但当我不去访问 0x0000-0x7fff 地址空间时(例如进入死循环),问题出现了,此时 PC7 仍为低,按道理应为高的。这是阿 AVR 与 51 的不同,还是我弄错了。
答:
1 、对 AT90S8515 来说,外部 RAM 的地址肯定是从 0x0260 开始的。这是没问题的,访问 0x0000-0x025F 的地址为内部 RAM 。
2 、当你访问过 0x0300 , PC7 为低,当你不访问 0x0000-0x7FFF 时,由于没有一条把 PC7 置高的指令,所以 PC7 当然还为低了。不过这也不要紧,因为当你访问 0x0000-0x025F 的时候, RD 和 WR 是没有的,所以即使外部 RAM 被选中了,没不会产生读写。当你访问 0x0260-0x7FFF 的时候, RD 和 WR 就自动产生了。所以就是你把外部 RAM 的 CS 直接接地也是可以的
1 ,对 AT90S8515 来说,外部 RAM 的地址肯定是从 0x0260 开始的?
2 ,我用 ICE200 仿真 8515 读写外部 RAM , RAM 大小为 32K Bytes, 地址映射到 0x0000-0x7fff, 用 PC7 做它的片选。把 SRE 置为 1 ,当我访问 0x0300 时 PC7 为低,这是对的,但当我不去访问 0x0000-0x7fff 地址空间时(例如进入死循环),问题出现了,此时 PC7 仍为低,按道理应为高的。这是阿 AVR 与 51 的不同,还是我弄错了。
答:
1 、对 AT90S8515 来说,外部 RAM 的地址肯定是从 0x0260 开始的。这是没问题的,访问 0x0000-0x025F 的地址为内部 RAM 。
2 、当你访问过 0x0300 , PC7 为低,当你不访问 0x0000-0x7FFF 时,由于没有一条把 PC7 置高的指令,所以 PC7 当然还为低了。不过这也不要紧,因为当你访问 0x0000-0x025F 的时候, RD 和 WR 是没有的,所以即使外部 RAM 被选中了,没不会产生读写。当你访问 0x0260-0x7FFF 的时候, RD 和 WR 就自动产生了。所以就是你把外部 RAM 的 CS 直接接地也是可以的