我想请教一下如果我想对一个16位数据总线的外部静态存储设备进行读写,应该怎么设置SMC的CSR寄存器?我所访问的16位器件没有字节访问,我想进行半字的写访问,我的设置如下:AT91C_BASE_SMC2->SMC2_CSR[7]=0x0|0x01<<7|0x1<<8|1<<12|0x1<<13; 但是我进行写的时候发现每次写信号出现后有两次的地址输出,第二次是第一次地址加1的地址。这种情况好像字访问模式.
如果我想实现半字传输,该如何设置呢??
补充一下:我的电路A0地址不接,实际地址线为A1~A4。
上面第一张图里面出现的是两次读信号,而我只出现一次读信号,但却有两次的地址输出!!请问这是为什么?
还有当我用这个地址写数据时有数据输出 *((volatile unsigned int*)0x80000000)=0x00FF,
但用这个地址写数据时就没有数据输出 *((volatile unsigned int*)0x80000002)=0x0055
出现这种情况的原因有是什么??
希望各位兄弟姐妹帮帮我,我已经被这个困了好几天了,实在没办法了!!!!
http://bbs.cedn.cn/viewthread.php?tid=18476&extra=page%3D1 这是我在另一个论坛贴的帖子,里面有图可以看看
共2条
1/1 1 跳转至页
at91rm9200+vxworks的问题?? 请高手进来看

CPU应该提供了字节槽(Byte lane)控制线,每一个8位都有对应控制线。
如果你的16位静态存储设备没有字节槽控制线,那是进行不了以字节为单位的访问的,因为硬件上就没有相应实现。如果你的设备是可以缓存的(亦即读一次,写一次,读多次,写多次效果一样),那么可以采用读出再写入的方式实现字节为单位的写入。
*((volatile unsigned int*)0x80000000)=0x00FF,是应该有数据输出的。
*((volatile unsigned int*)0x80000002)=0x0055 是应该没有数据输出的,而且还可能发生数据异常,因为整型是4位的,向一个为不可被4整除的地址写入4位,CPU不知道怎么去发起总线传输,不知道到底如何驱动总线--本来就不好驱动,除非CPU聪明到通过多次总线操作完成这个操作。可是ARM不像x86那么聪明,可以帮我们发起多次传输再把数据拼起来,还放缓存里,快得很。有的书上叫这个叫这个叫自然对齐,大端(Big Endian)的CPU有自然对齐的要求,部分小端(Little endian)的CPU也有。
愚见。。。仅供参考。
如果你的16位静态存储设备没有字节槽控制线,那是进行不了以字节为单位的访问的,因为硬件上就没有相应实现。如果你的设备是可以缓存的(亦即读一次,写一次,读多次,写多次效果一样),那么可以采用读出再写入的方式实现字节为单位的写入。
*((volatile unsigned int*)0x80000000)=0x00FF,是应该有数据输出的。
*((volatile unsigned int*)0x80000002)=0x0055 是应该没有数据输出的,而且还可能发生数据异常,因为整型是4位的,向一个为不可被4整除的地址写入4位,CPU不知道怎么去发起总线传输,不知道到底如何驱动总线--本来就不好驱动,除非CPU聪明到通过多次总线操作完成这个操作。可是ARM不像x86那么聪明,可以帮我们发起多次传输再把数据拼起来,还放缓存里,快得很。有的书上叫这个叫这个叫自然对齐,大端(Big Endian)的CPU有自然对齐的要求,部分小端(Little endian)的CPU也有。
愚见。。。仅供参考。
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
分享开发笔记,赚取电动螺丝刀(便携轻巧与无刷电机两款可选) | |
看《关键跃升》,聊聊工作心法、动力、能力、沟通与协作,从五个方面深入交流你的工作心得 | |
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
我要给自己挣一部逻辑分析仪 | |
用知识换取送给亲朋的礼物,做个浪漫的开发者 | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 |
打赏帖 | |
---|---|
Buck电路工作在CCM模式下电感电流的计算公式是什么?被打赏5分 | |
buck电路工作原理被打赏5分 | |
基于MSPM0L1306的MODBUS-RTU协议通讯实验被打赏100分 | |
我想要一部加热台+多合一调试工具被打赏18分 | |
每周了解几个硬件知识+485硬件知识分享被打赏10分 | |
【换取手持数字示波器】树莓派PICO调试器官方固件本地化部署实践被打赏24分 | |
【换取手持数字示波器】分享一个KEIL无法识别CMSIS-DAP调试器的解决办法被打赏20分 | |
【换取手持数字示波器】分享一个自制的ArduinoNano扩展板底板被打赏23分 | |
【换取手持示波器】树莓派PICOW网页烟花被打赏18分 | |
【换取手持示波器】树莓派PICO逻辑分析仪被打赏16分 |