This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你这里说道的配置为16位,或者是8位访问模式是指把GPMC_CONIFG1的13-12位,也就是DEVICESIZE这个bit配置为16或者8吗?
在配置为8位的时候,也就是说只有GPMC_AD0~GPMC_AD7是作为数据总线来输出的,高8位data是没有使能的。所以为啥会期待高8位的数据出来呢?
这个配置就决定了你的data line的bit width,并非是说只是决定了访问模式是8位,但是实际上是16位的宽度。
你好,刘工!
我的问题不是在配置为8位的时候,期待从GPMC_AD8~GPMC_AD15输出高8位。
TRM 7.1.3.3.8.2.2 Access Size Adaptation and Device Width
......System requests with data width greater than the external device data bus width are split into successive accesses according to both the external device data-bus width and little-endian data organization.
对于上面这句话我的试验中产生了一些疑问。
我贴的第一张图是设置为16位总线时的情况。一次iowrite32向总线写入一个32位的数据,被拆成了4次8位写操作,而不是2次16位写操作,这是什么原因?
我贴的第二张和第三张图是设置为8位总线时的情况。第二张图和第三张图的config1~config7的配置是一样的没改过。
在第二张图里,一次iowrite16向总线写一个16位的数据,被拆成2次8位写操作,但连续输出两次高字节,低字节不被输出。根据TRM我的理解它应该先一次8位写操作输出低字节,再一次8位访问输出高字节(当然是也在AD0~AD7输出),请问 这是什么原因?
在第三张图里,一次iowrite32向总线写入一个32位的数据,被拆成4次8位写操作,按顺序由低字节到高字节输出数据(都是在AD0~AD7输出)。第三张图里看到的符合我对TRM里那段话的理解,应该是正确的输出。