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后,此问题没有出现。


Xilinx ZYNQ7020密集访问内存出错相关推荐

  1. delphi 内存出错

    delphi常见错误-Access violation at address 0041BED5 in module 'xxxx.exe'.Read of address 0 "Access ...

  2. 汇编语言随笔(5)-and、or指令,串传送指令movsb、访问内存单元的方式及实验4,5(向内存传送数据)

    and.or指令 and指令,逻辑与指令,按位进行与运算:or指令,逻辑或指令,按位进行或运算.       如:mov al,01100011B               and al,00111 ...

  3. OS / CPU是如何访问内存的?

    我们先来看一张图: 从图中可以清晰地看出,CPU.MMU.DDR 这三部分在硬件上是如何分布的.首先 CPU 在访问内存的时候都需要通过 MMU 把虚拟地址转化为物理地址,然后通过总线访问内存.MMU ...

  4. Java程序员需要掌握的计算机底层知识(一):CPU基本组成、指令乱序执行、合并写技术、非同一访问内存 NUMA

    一些书籍 读书的原则:不求甚解,观其大略 你如果进到庐山里头,二话不说,蹲下头来,弯下腰,就对着某棵树某棵小草猛研究而不是说先把庐山的整体脉络跟那研究清楚了,那么你的学习方法肯定效率巨低而且特别痛苦, ...

  5. java 四种内存_不可访问内存 Java四种引用包括强引用,软引用,弱引用,虚引用...

    小结: 1.不可访问内存是指一组没有任何可访问指针指向的由计算机程序进行动态分配的内存块. 2.垃圾收集器能决定是否一个对象还是可访问的:任何被确定不可访问的对象将会被释放. https://zh.w ...

  6. XAMPP:访问phpmyadmin出错的解决方案

    来源:http://www.ido321.com/1246.html XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建 XAMPP 软件站集成软件包,轻巧,用起来很方便.它提 ...

  7. linux c语言变量地址类型,C语言基础知识:访问内存地址的方法

    汇编语言寄存器间接寻址方法 #define GPJ0CON0xE0200240 ldr r0, =GPJ0CON //把地址值赋给寄存器r0,从后面的=可以看出用的是ldr伪指令,因为需要编译器来判断 ...

  8. 解决webstorm本地IP访问页面出错的问题,webstorm支持IP访问

    解决webstorm本地IP访问页面出错的问题,webstorm支持IP访问 参考文章: (1)解决webstorm本地IP访问页面出错的问题,webstorm支持IP访问 (2)https://ww ...

  9. 4.5.2 地址变换机构 4.5.3  访问内存的有效时间

    1. 基本的地址变换机构 进程在运行期间,需要对程序和数据的地址进行变换,即将用户地址空间中的逻辑地址变换为内存空间中的物理地址,由于它执行的频率非常高,每条指令的地址都需要进行变换,因此需要采用硬件 ...

最新文章

  1. Spring Batch在大型企业中的最佳实践
  2. Nautilus-Open-Terminal : 可随处打开终端的 Nautilus 插件
  3. Python生成随机五位数——模仿手机验证码
  4. Xml Document与 xml反序列化
  5. oracle中文乱码问题
  6. [css] 为什么要使用css sprites?
  7. tableau 实战练习数据源分享_小白入行数据分析师3年-工作内容复盘分享含代码(二)-数据库及Tableau篇介绍...
  8. 北美KubeCon新风,正把K8S魔力带向边缘计算
  9. MySql和Oracle数据库的区别?
  10. md函数MySQL_MySQL的常用SQL语句.md
  11. python-索引1909
  12. java抓取动态生成的网页
  13. 在线ASCII流程图编辑器工具
  14. 解决内网用户不能正常访问内部WEB服务器问题
  15. luogu1850 [NOIp2016]换教室 (floyd+dp)
  16. 将某一列转换为字符类型_还在为数据清洗抓狂?这里有一个简单实用的清洗代码集...
  17. Python爬虫滑块验证
  18. Win11改Win10右键菜单
  19. 如何搭建WordPress个人博客网站?
  20. Action大全和用法

热门文章

  1. ENC28J60学习笔记——第1部分
  2. 科达实战应用平台服务器ip,H3C ME5000与科达MCU KDV8000A级联的互通案例配置
  3. 基于视觉信息的网页分块算法(VIPS) - yysdsyl的专栏 - 博客频道 - CSDN.NET
  4. 2012站长论坛排行榜
  5. BZOJ1930: [Shoi2003]pacman 吃豆豆
  6. (笔记))oracle SCN 异常增长问题 以及 ORA-19706
  7. 账号共享风险大 恐泄漏用户信息
  8. Java塈百日而求新,念三番未发,其一
  9. Just to myself
  10. 计算机还原默认的配置,如何恢复IE浏览器的默认设置?如何还原IE浏览器的默认设置...