完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好:
本人使用的是6747芯片,CCS3.3工具,做了如下工作: 1、使用EDMA将EMIFA上接口的数据传输到SDRAM上(0xC0000000~0xC0001000); 2、传输完成后产生中断,在中断中处理接受到的数据。 3、在memory中读取数据,发现数据未更新,而将memory下面的 “L2 Cache" 等勾掉后,此时数据显示的是传输后的数据,应该是数据已经传到memory中,但是Cache中未更新; 4、欲使用memory中已经更新的数据,定义"volatile unsigned int * " 型指针指向上述memory(0xC0000000~0xC0001000)进行读取操作: unsigned int u4Data = (volatile unsigned int*)(0xC0000000); 碰到问题如下: 上述的u4Data读到的数据是EDMA传输更新前的数据,应该是Cache中的数据,而不是memory的值,即与"memory"中勾上“L2Cache”等是显示的数据一致。 不知我理解上有何误区,望乞指导。 |
|
相关推荐
2 个讨论
|
|
1. 你对现象的理解是正确的。
2. 但#4的方法对于问题的本身没有任何关系。加了volatile只是告知编译器要从memory取值,不要从寄存器取值,只与编译相关。与Cache本身没有关系,加了这条指令后,产生的汇编从绝对物理地址load数据,但Cache首先判断到这个地址已经在Cache里,会直接从Cache里将对应地址的值取出,除非这个地址不在Cache里,所以这里还是要做Cache invalid操作。 参考下面两编关于Cache的文档: www.ti.com/.../sprug82a www.ti.com/.../sprufk5a http://processors.wiki.ti.com/index.php/Main_Page Think Over Before Asking. http://www.catb.org/~esr/faqs/smart-questions.html#goal |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
340 浏览 1 评论
533 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
777 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
653 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1132 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
64浏览 29评论
169浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
255浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
205浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
60浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 04:06 , Processed in 0.635006 second(s), Total 68, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号