ADI Blackfin DSP处理器-BF533的开发详解23:SDRAM内存的设计和自检(含源代码)

news2024/12/23 17:50:14

硬件准备**

ADSP-EDU-BF533:BF533开发板
AD-HP530ICE:ADI DSP仿真器

软件准备

Visual DSP++软件

硬件链接

在这里插入图片描述

功能介绍

ADSP-EDU-BF53x 板卡上采用的 SDRAM 型号为 MT48LC16M16A2,容量为 32Mbyte,采用 16Bit 模式连接ADSP-BF53x。通过配置 EBIU 的 SDRAM 控制寄存器对其进行初始化。

代码实现功能

代码实现了对 SDRAM 数据进行写入和读出遍历操作,并将读出的数据与写入的数据做比较,判断内存存储数据是否正常。

测试步骤

1. 将仿真器(ICE)与 ADSP-EDU-BF53x 开发板和计算机连接好。
2. 先给 ADSP-EDU-BF53x 开发板上电,再为仿真器(ICE)上电。
3. 运行 VisualDSP++ 5.0 软件,选择合适的 BF533 的 session 将仿真器与软件连接。
4. 加载 VisualDSP++ 5.0 工程文件 BF53x_SDRAM.dpj,编译并全速运行。

测试结果

如内存出错,在VisualDSP++ 5.0软件上打印出错数据与元数据值,如数据没有出错,完成读写遍历后打“SDRAM test END!”

在这里插入图片描述

在这里插入图片描述

SDRAM 中的测试数据。

程序源码

#include <cdefBF533.h>

void Set_PLL(unsigned int pmsel,unsigned int pssel)
{
unsigned int new_PLL_CTL;
*pPLL_DIV = pssel;
asm(“ssync;”);
new_PLL_CTL = (pmsel & 0x3f) << 9;
*pSIC_IWR |= 0xffffffff;
if (new_PLL_CTL != *pPLL_CTL)
{
*pPLL_CTL = new_PLL_CTL;
asm(“ssync;”);
asm(“idle;”);
}
}

void Init_EBIU(void)
{
*pEBIU_AMBCTL0 = 0x7bb07bb0;
*pEBIU_AMBCTL1 = 0xffc07bb0;
*pEBIU_AMGCTL = 0x000f;
}

void Init_SDRAM(void)
{
*pEBIU_SDRRC = 0x00000817;
*pEBIU_SDBCTL = 0x00000013;
*pEBIU_SDGCTL = 0x0091998d;
ssync();
}

/****************************************************************************

  • 名称 : speed_w_test
  • 功能 : 测试代码,对DDR内存作测试
  • 入口参数 :无
  • 返回值 :无
    */
    void speed_w_test(void)
    {
    int i,cont;
    volatile unsigned short
    DDRdata;
    DDRdata = 0;
    for(i=0;i<0x1000000;i++)
    {
    if(i%2)
    {
    DDRdata = 0xaaaa;
    DDRdata++;
    }
    if(!(i%2))
    {
    DDRdata = 0x5555;
    DDRdata++;
    }
    }
    }
    /
  • 名称 : speed_r_test
  • 功能 : 测试代码,对DDR内存作测试
  • 入口参数 :无
  • 返回值 :无
    ***************************************************************************/
    void speed_r_test(void)
    {
    int i,cont,temp1;
    volatile unsigned short
    DDRdata;
    DDRdata = 0;
    for(i=0;i<0x1000000;i++)
    {
    if(i%2)
    {
    temp1 = *DDRdata;
    DDRdata++;
    if(temp1 != 0xaaaa)
    printf(“error! i is %x, temp is %x\n”,i,temp1);
    }
    if(!(i%2))
    {
    temp1 = *DDRdata;;
    DDRdata++;
    if(temp1 != 0x5555)
    printf(“error! i is %x, temp is %x\n”,i,temp1);
    }
    }
    }

void main(void)
{
Set_PLL(16,4);
Init_EBIU();
Init_SDRAM();
speed_w_test();
speed_r_test();

printf("SDRAM test END!\n");

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/77490.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【STM32】详解嵌入式中FLASH闪存的特性和代码示例

一、存储器 我们正常编译生成的二进制文件&#xff0c;需要下载烧录到单片机里面去&#xff0c;这个文件保存在单片机的ROM(read only memory)中&#xff0c;所有可以完成这种特性的存储介质都可以称为ROM。 分类 ROM一般分为四大类 ①PROM&#xff1a;可编程只读存储器&#…

毫米波雷达系列 | 基于前后向空间平滑的MUSIC算法详解

毫米波雷达系列 | 基于前后向空间平滑的MUSIC算法详解 文章目录毫米波雷达系列 | 基于前后向空间平滑的MUSIC算法详解DOA阵列模型MUSIC算法空间平滑算法整体流程仿真代码忙了一阵子的中期和专利&#xff0c;基本上告一段落&#xff0c;简单的写一个比较常见的解相干MUSIC角度估…

阿里高工珍藏版“亿级高并发系统设计手册(2023版)”面面俱到,太全了!

高并发 俗话说&#xff1a;罗马不是一天建成的&#xff0c;系统的设计当然也是如此。 从原来谁都不看好的淘宝到现在的电商巨头&#xff0c;展现的不仅仅是一家互联网巨头的兴起&#xff0c;也是国内互联网行业迎来井喷式发展的历程&#xff0c;网络信号从 2G 发展到现在的 5…

ATtiny13与Proteus仿真-UART信号模拟仿真

UART信号模拟仿真 ATtiny13没有UART模块,因此在调试程序时,使用软件模拟UART信号很有必要。本文将介绍如何如何控制2个GPIO来模拟UART TX和RX信号,并在Proteus仿真。 1、UART信号介绍 UART的信号一般由如下三部分组成: 开始信号数据信号停止信号UART 信号保持高电平。 作…

软件测试概念基础——小记

文章目录1. 什么是软件测试2. 软件测试和软件开发的区别3. 什么是需求4. 需求是软件测试的依据5. 什么是BUG6. 什么是测试用例7. 开发模型瀑布模型螺旋模型增量模型 迭代模型敏捷模型scrum8. 测试模型V模型W模型9. 软件测试的生命周期&#xff08;软件测试的流程&#xff09;10…

Web大学生个人网页作业成品——学生个人爱好展示网站设计与实现(HTML+CSS+JS)

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

FlinkCDC部署

文章目录Flink安装job部署1、测试代码2、打包插件3、打包4、测试Flink安装 1、解压 wget -b https://archive.apache.org/dist/flink/flink-1.13.6/flink-1.13.6-bin-scala_2.12.tgz tar -zxf flink-1.13.6-bin-scala_2.12.tgz mv flink-1.13.6 /opt/module/flink2、环境变量…

快手某HR吐槽:职位要求写得很清楚,照着写简历不行吗?有的工作经历不相关,有的工作好几年还写学生会奖学金,这种一秒扔垃圾桶!...

求职时&#xff0c;你的简历是什么样的&#xff1f;能否帮你顺利通过初筛&#xff1f;一位快手的面试官吐槽很多求职者的简历“一塌糊涂”&#xff1a;职位要求已经写得很明白了&#xff0c;就把里面罗列的技术和跟业务相关的项目经验贴上来就好了&#xff0c;有人偏写航空公司…

Vue 不重新打包,动态加载全局配置的实现过程

背景 项目前端采用了 Vue.js &#xff0c;跟传统前端 html 技术不同之处在于&#xff0c;每次打包后都重新生成新的 js 文件&#xff0c;而且不可读&#xff0c;必须全量替换。但最近碰到一个漏洞扫描的问题&#xff0c;系统通过单点登录方式访问时&#xff0c;是不能有登录首…

【MySQL基础】数据库操作语言DML相关操作有那些?

目录 一、什么是DML 二、数据插入insert 三、数据的修改update 四、数据的删除delete 五、delete和truncate有什么不同&#xff1f; 六、DML操作知识构图 七、DML操作练习 &#x1f49f; 创作不易&#xff0c;不妨点赞&#x1f49a;评论❤️收藏&#x1f499;一下 一、什…

【Docker学习教程系列】8-如何将本地的Docker镜像发布到私服?

通过前面的学习&#xff0c;我们已经知道&#xff0c;怎么将本地自己制作的镜像发布到阿里云远程镜像仓库中去。但是在实际工作开发中&#xff0c;一般&#xff0c;我们都是将公司的镜像发布到公司自己搭建的私服镜像仓库中&#xff0c;那么一个私服的镜像仓库怎么搭建&#xf…

Android之Service

一、Service简介&#xff1a; Service是一种后台服务机制&#xff0c;允许在没有用户界面的情况下&#xff0c;使程序能够长时间在后台运行。 Service是四大组件之一&#xff0c;适用于开发无UI界面、长时间后台运行、做一些用时比较长的操作。 二、Service创建&#xff1a;…

Frida - App逆向 JavaScript代码注入 基本语法以及数据类型介绍

Frida - App逆向 JavaScript代码注入 常用语法介绍 文章目录Frida - App逆向 JavaScript代码注入 常用语法介绍前言一、逆向步骤二、重载(Overload) / Frida数据类型1.重载函数介绍2.重载函数常用的类型三、Frida Hook常用代码介绍1.基本代码框架四、注入JavaScript代码运行监听…

功能测试的工作流程

测试工作人员接收到项目需求、验收标准和原型图并对需求进行分析以了解项目的需求。 一、测试计划&#xff1a;个人觉得测试计划应在在详细设计确认后&#xff0c;代码开始编写的时候开始编写。测试计划主要给后面的测试工作的一些指南。 其内容包含&#xff1a; 1、测试团队人…

kubernetes学习之路--Pod配置学习

写在前面&#xff1a;上篇文章提供了两种简单搭建一个k8s集群的方法&#xff0c;其中两种方式的区别是&#xff1a;kubeadm是直接在主机上进行k8s搭建&#xff0c;kind是在docker中搭建。本文主要分享新建pod等方法。&#xff08;想了想&#xff0c;对于像我这刚入门的人来说&a…

面试常问的《进程创建—进程终止—进程等待—进程替换》!

送给正在努力前行的你一句话&#xff1a;要努力&#xff0c;但不要着急&#xff0c;繁花锦簇&#xff0c;硕果累累都需要过程&#xff01; 博主主页 目录 1.进程创建 fork函数初识 fork函数返回值 写时拷贝 2.进程终止 进程退出场景 进程如何退出 3.进程等待 进程等待的必要性 …

Java泛型简介

参考博客&#xff1a;https://www.jb51.net/article/192850.htm 泛型&#xff0c;即“参数化类型”。一提到参数&#xff0c;最熟悉的就是定义方法时有形参&#xff0c;然后调用此方法时传递实参。那么参数化类型怎么理解呢&#xff1f;顾名思义&#xff0c;就是将类型由原来的…

vuex持久化

下载&#xff1a; vuex-persistedstate npm install --save vuex-persistedstate 或者&#xff1a; npm install --save vuex-persistedstate --legacy-peer-deps 引入使用&#xff1a;在store文件夹下的index文件中&#xff0c;也就是放vuex的js代码中引入&#xff1a; i…

周末福利 | 21天学通Python完整版,豆瓣评分9.6!

前言 又到了周末啦&#xff0c;小编例行给大家发福利&#xff01; 今天福利的内容是21天学通Python完整版&#xff0c;这是一本豆瓣评分9.6的人工智能入门书籍&#xff01;全面、系统、深入地讲解了Python编程基础语法与高级应用。在讲解过程中&#xff0c;通过大量实际操作的…

mac m1 安装docker docker 安装php 5.6 和 7.2 避坑指南

通过该link可以下载兼容mac m1核心的docker-desktop: Docker Desktop - Docker 所有基于amd64架构核心的都加上--platform linux/amd64来运行,这样就能愉快的玩耍了: docker search centos7 php56 #搜索 docker images #显示所有镜像 docker pull sglim2/centos7 建议使用ln…