[其他ST产品] 百思不得其解的问题,关于STR710读取NORFLASH

[复制链接]
2574|5
 楼主| Liuyk_0321 发表于 2013-2-6 14:25 | 显示全部楼层 |阅读模式

1.JPG


CPU与NOR的连接关系如图所示,CPU A1 -> NOR A0。我的理解是CPU只能按16bit地址对齐的方式读取
NOR,即CPU发出一个地址(A0被丢掉),应该从NOR返回一个16位数据。但测试结果却不是这样,实际
CPU仍能从任意地址按字节读取NOR里的数据。测试代码如下,请明白人解释下,这究竟是为什么呢?

void test_rd_nor(void)
{
     char i;
     char *nor_addr = (char *)NOR_ADDR; //NOR_ADDR:0x60010000
     printf("\r\nNor Flash Content: ");
     for(i=0; i<20; i++)
     {
          printf("0x%02X ", *(nor_addr++));
     }
     printf("\r\n");
}
 楼主| Liuyk_0321 发表于 2013-2-19 16:22 | 显示全部楼层
怎么没有人回答呢?自己顶一下!
inurl 发表于 2013-2-21 09:48 | 显示全部楼层
本帖最后由 inurl 于 2013-2-21 09:54 编辑
Liuyk_0321 发表于 2013-2-19 16:22
怎么没有人回答呢?自己顶一下!

打个比方,NOR从0x00000000开始。
你用C访问,0x00000000和0x00000001得到的内容是一样的。。
CPU送出去的是以8bit为递增的起始地址,NOR只能响应以16bit为递增的地址

也不知道怎么给你解释,看你的悟性。


 楼主| Liuyk_0321 发表于 2013-2-23 11:35 | 显示全部楼层
感谢回复!!!
看来是悟性太低,还是参悟不了个中原因啊!!!
inurl 发表于 2013-2-24 13:19 | 显示全部楼层
Liuyk_0321 发表于 2013-2-23 11:35
感谢回复!!!
看来是悟性太低,还是参悟不了个中原因啊!!!

"实际 CPU仍能从任意地址按字节读取NOR里的数据"

读出来的不是任意地址
inurl 发表于 2013-2-24 13:21 | 显示全部楼层
你把keil打开,  debug的时候view-memory, 然后你观察,以char /short/int3种方式 查看一片内存 。 就能明白了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

66

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部