Xilinx ZYNQ7020密集访问内存出错

您所在的位置:网站首页 内存出现错误 Xilinx ZYNQ7020密集访问内存出错

Xilinx ZYNQ7020密集访问内存出错

2023-08-13 08:33| 来源: 网络整理| 查看: 265

Xilinx ZYNQ7020密集访问内存出错问题

问题描述:

Xilinx ZYNQ7035和ZYNQ7020,没有跑linux系统,裸机和使用freertos如果频繁使用memset和memcpy会出现错误,以memcpy为例,现象是拷贝后的数据不对,无固定位置连续错32字节,这是这两款SOC的ARM核的缺陷,DCache的一行就是32字节,是由于内存高速访问情况下,Dcahce没有刷新导致的。

解决办法:

方法1:改变cache的缓存策略

/** * 改变缓存的策略, 密集访问内存时会出错,尤其使用函数memcpy memset, * 此bug是ARM芯片的, 在7020,7035中会出现 */ inline static void ChangeCachestrategy(void) { __asm__("MRC p15,0,r0,c15,c0,1\n" "ORR r0,r0,#0x00400000\n" "MCR p15,0,r0,c15,c0,1\n"); }

方法2:直接禁用dcache,不推荐此方法,cache本就是加速访问提高效率用的。

方法3:跑linux系统,项目上有原来的freertos改为使用linux后,此问题没有出现。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3