硬件平台:DM6437EVM

调试工具:CCS3.3

DDR读写程序:

Uint32 memfill32( Uint32 start, Uint32 len, Uint32 val )

{

Uint32 i;

Uint32 end = start + len;

Uint32 errorcount = 0;

/* Write Pattern */

for ( i = start; i < end; i += 4 )

{

*( volatile Uint32* )i = val;

}

/* Read Pattern */

for ( i = start; i < end; i += 4 )

{

if ( *( volatile Uint32* )i != val )

{

errorcount++;

break;

}

}

return errorcount;

}

(volatile Uint32 *)i :将 i 强制转换成易变指针,指向start,start为DDR写入的首地址。

*(volatile Uint32 *)i :改写 i 指向地址中的值。

test:

Int16 ddr_test( )

{

ddr_base = 0x80000000;      // DDR memory

ddr_size = 0x00100000;      // 1 MB

if ( memfill32( ddr_base, ddr_size, 0xFFFFFFFF ) )

return 1;

if ( memfill32( ddr_base, ddr_size, 0xAAAAAAAA ) )

return 2;

if ( memfill32( ddr_base, ddr_size, 0x55555555 ) )

return 4;

if ( memfill32( ddr_base, ddr_size, 0x00000000 ) )

return 8;

return 0;

}

main.c:

void main( void )

{

/* Initialize BSL */

EVMDM6437_init( );

TEST_execute( ddr_test, "DDR", 1 );

printf( "\n***ALL Tests Passed***\n" );

}

测试完需要十秒左右的时间

Linux内核写ddr物理地址,DM6437-读写DDR测试过程相关推荐

  1. 复制linux内核,linux内核写时复制机制源代码解读

    作者简介 写时复制技术(一下简称COW)是linux内核比较重要的一种机制,我们都知道:父进程fork子进程的时候,子进程会和父进程会以只读的方式共享所有私有的可写页,当有一方将要写的时候会发生COW ...

  2. linux内核写文件flush,innodb_flush_method 与linux File I/O

    从实验角度比较了fdatasync,O_DSYNC和O_DIRECT在性能上的差异.本文将试图从Linux/Unix"文件I/O"(unbuffered I/O)的角度来解释inn ...

  3. 使用DDR MIG例程读写DDR演示

    1.建立工程,添加MIG IP核: 2.时钟频率: DDR3内部的工作时钟频率: 3. DDR3的控制DDR3 IP核的输入工作时钟 ,一般配置成200M HZ. 4.最后open ip exampl ...

  4. 【Linux内核】Linux内核介绍

    Linux学习内核思路 学习过程: Linux内核引导及如何初始化 进程管理.内存管理 内核引导及过程: CPU通电后,首先执行引导程序,引导程序把内核加载到**内存,**然后执行内核,内核初始化完成 ...

  5. 操作系统进程学习(Linux 内核学习笔记)

    操作系统进程学习(Linux 内核学习笔记) 进程优先级 并非所有进程都具有相同的重要性.除了大多数我们所熟悉的进程优先级之外,进程还有不同的关键度类别,以满足不同需求.首先进程比较粗糙的划分,进程可 ...

  6. Linux内核参数解释

    第1章 内核参数说明 1.1 内核参数列表 kernel.acct acct功能用于系统记录进程信息,正常结束的进程都会在该文件尾添加对应的信息.异常结束是指重启或其它致命的系统问题,不能够记录永不停 ...

  7. Linux内核之 内核同步

    一.同步介绍 1.临界区与竞争条件 所谓临界区(critical regions)就是访问和操作共享数据的代码段.为了避免在临界区中并发访问,编程者必须保证这些代码原子地执行--也就是说,代码在执行结 ...

  8. [网易云课堂]Linux内核分析(九)—— 课程总结

    付何山+原创作品转载请注明出处+<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000; 导读:本文分为两个部分 ...

  9. linux内核如何读写ddr,linux内核解压详解.doc

    linux内核解压详解 Description: /*?OldLinux论坛 -- 有关早期Linux内核代码发展的论坛. 9!%83gY* ?linux/arch/arm/boot/compress ...

最新文章

  1. 干货|神经网络及理解反向传播
  2. ASP.NET之父谈ASP.NET AJAX
  3. 关于Resin SSL支持的两个问题
  4. window把图片转成blob_将图片转成Base64,再将Base64转成Blob
  5. 最小生成树算法讨论(转)
  6. 【渝粤题库】陕西师范大学201721 数学教育学 作业(专升本)
  7. pyspark 修改python版本_python – Pyspark从日期到字符串更改列的类型
  8. java服务 重启_Shell脚本自动重启Java服务
  9. 数据--第51课 - 二叉排序树
  10. Python(十七)- Excel操作:xlsxwriter绘制图表
  11. 英语学习计划和方法 English learning plans and methods
  12. wiz为知笔记docker部署与数据迁移
  13. typescript基础
  14. 文件夹里面的文件批量改名字
  15. accept搭配用法_accept for的用法与搭配
  16. mysql 数据横向拼接_Mysql 合并结果接横向拼接字段
  17. 部署网页到华为云服务器,把网页部署到云服务器
  18. Linux编程技术总结
  19. 第 7 章 Database design E-R diagram
  20. 计算机LCG/PCG/MWC/XorShift等PRNG算法,以及V8中Math.random()、webkit中crypto等随机算法的实现

热门文章

  1. CCNA学习笔记——第一章:OSI 和 TCP/IP 模型
  2. win10电脑连接手机热点时所出现的问题。
  3. 使用UsbAsp给UNO烧写bootloader ATMEGA16U2、ATMEGA328P固件烧写教程
  4. 一个域名下面能搭建多个网站吗?
  5. 21.BOM的理解,常见的BOM对象你了解哪些?
  6. 如何提取ppt模板?
  7. 单片机c语言reti的用法,基于51单片机中断跳出指令“RETI”浅议
  8. [渝粤教育] 南通大学 智能建造风险源与安全控制 参考 资料
  9. 柱状图中xy轴怎么出现_『怎样设置excel图标的x、y轴』excel图表xy轴名称
  10. 数据集大小与模型性能的敏感性分析