当前位置: 首页 > wzjs >正文

黑龙seo网站优化十大微商推广平台

黑龙seo网站优化,十大微商推广平台,短信营销平台,手工包网站建设策划书作者的话 ADI的双核DSP,最早的一颗是Blackfin系列的BF561,这颗DSP我用了很久,比较熟悉,且写过一些给新手的教程。 硬件准备 ADZS-BF561-EZKIT开发板:ADI原厂评估板 AD-ICE20000仿真器:ADI现阶段性能最好…

作者的话

ADI的双核DSP,最早的一颗是Blackfin系列的BF561,这颗DSP我用了很久,比较熟悉,且写过一些给新手的教程。

硬件准备

ADZS-BF561-EZKIT开发板:ADI原厂评估板

AD-ICE20000仿真器:ADI现阶段性能最好的DSP仿真器

产品链接:https://item.taobao.com/item.htm?id=753233120844

软件准备

Visual DSP++5.1.2
CCES2.11.1

硬件环境的搭建

在这里插入图片描述
程序实现的功能

通过 ADSP-BF561 处理器 EBIU(外部总线接口单元)实现对 NAND FLASH 的读写 。

在这里插入图片描述

硬件的实现:

如图所示,在硬件设计中,利用 EBIU 接口与 K9F2G08 进行连接,用地址线接口控制NANDFLASH 的 ALE、CLE。CPLD 通过地址译码为 NANDFLASH 提供片选地址,PF11 连接FLASH 的 RDY,用于判断 FLASH 的状态。 K9F2G08 为 8 位总线接口方式,在硬件设计中,利用 0 欧姆跳线电阻保留了与总线的连接,以适应与 BF561 时序匹配的 flash 的应用。

在这里插入图片描述
在这里插入图片描述

FLASH 寄存器:

FLASH 寄存器的访问,是通过/ALE 和/CLE 的配置,配合读写信号线完成的。在访问寄存器时,先将地址线置高,

在这里插入图片描述

NAND FLASH 的结构:

NANDFLASH 存储结构是按块,页,字节分的。每块 64 页,每页 2K+64 字节。

NAND FLASH 的寻址:

NANDFLASH 的地址线 A0-A11 为 2K+64Byte 的页内寻址地址线,A12-A28 为块地址寻址地址线。

在这里插入图片描述

NAND FLASH 的存储与其他存储设备不同,它在写操作前必须要对块进行擦除。这是因为NAND FLASH 的存储结构只能将 1 写成 0,如果不对该块擦除就进行写操作,保存的数据会是写入的数据加上原有的数据,造成数据错误。所以在对每个块操作前,必须将该块所有的存储单元置 1,擦除命令就是以块为单位,将所指定的块单元数据置 1。

块地址与页地址的转换:

每一个块包含 64 个页,即 2 的 6 次方。在页地址和块地址相互转换时,只需将块地址左移6 位即可。例如我们现在对页地址 Page_Address 所在的块区域 Block_Address 进行擦除操作,页地址 Page_Address 的地址为:

第一次送入地址 0x00; //非字节操作
第二次送入地址 0x00;
第三次送入地址 Page_Address&0xff;
第四次送入地址(Page_Address>>8)&0xff;
第五送入地址(Page_Address>>16)&0xff;

块擦除地址是 A12-A28,所以三个周期就能送完。
因为 Block_Address=Page_Address/64;即 Block_Address=Page_Address << 6;替换页地址寻址后为

第一次送入地址(Block_Address<<6)&0xff;
第二次送入地址(Block_Address>>2)&0xff;
第三次送入地址(Block_Address>>10)&0xff;

CPLD 配置:

NAND FLASH 模块映射在异步 BANK3 中,其地址为:

在这里插入图片描述

核心代码分析

void Read_Chip_ID(void) //读取器件 ID 函数
{
unsigned char Chip_ID0 ;
unsigned char Chip_ID1 ;
Write_Command(0x90);
Write_Addr(0x00);
Chip_ID0 = *pFlash_Data;
Chip_ID1 = *pFlash_Data; //读取器件 ID
printf(“The Nandflash ID is %X%X\n\r”,Chip_ID0,Chip_ID1); //打印 ID
if(Chip_ID0 == 0xec)
{
switch(Chip_ID1) //根据读取的 ID 判断芯片容量
{
case 0xd3 : printf(“The Nandflash is 1024M\n\r”);
bytecount = 4096;
break;
case 0xda : printf(“The Nandflash is 256M\n\r”);
bytecount = 2048;
break;
default: printf(“Read ID is ERROR!!!\n\r”);
bytecount = 2048;
break;
}
}
Else //如果读取 ID 错误
{
printf(“Read ID is ERROR!!!\n\r”); //打印出错
bytecount = 2048;
return false;
}
}

bool write_page(unsigned int Page_Address,unsigned char *Buffer) //页写入函数
{
int i;
Write_Command(0x80); //写命令 0x80
Write_Addr(0x00); //写页内字节地址
Write_Addr(0x00); //写页内字节地址
Write_Addr(Page_Address&0xff); //写页地址
Write_Addr((Page_Address>>8)&0xff); //写页地址
Write_Addr((Page_Address>>16)&0x07); //写页地址
for(i = 0;i<bytecount;i++)

{
*pFlash_Data = *((unsigned char *)Buffer+i); //写入数据
udelay(1);
}
Write_Command(0x10);
Wait_NAND_RADY();
return true;
}

bool read_page(unsigned int Page_Address,unsigned char *Buffer1) //读页内数据函数
{
int i;
Write_Command(0x00); //写命令 0
Write_Addr(0x00); //写页内字节地址

Write_Addr(0x00); //写页内字节地址
Write_Addr(Page_Address&0xff); //写页地址
Write_Addr((Page_Address>>8)&0xff); //写页地址
Write_Addr((Page_Address>>16)&0x07); //写页地址
Write_Command(0x30);
udelay(200);
for(i = 0;i<bytecount;i++)
{
*((unsigned char *)Buffer1+i) = *pFlash_Data; //读出页内数据
}
}

运行程序后,得到下面的结果:

在这里插入图片描述

对比数据如图

在这里插入图片描述

如果数据对比出现错误,如图

在这里插入图片描述

数据发生变化,则得到的打印结果图

在这里插入图片描述


文章转载自:

http://OVlIL15t.yrdkL.cn
http://ztYwJubZ.yrdkL.cn
http://kC2iNI6Z.yrdkL.cn
http://p8yzBHXe.yrdkL.cn
http://odOrTlqq.yrdkL.cn
http://hg9DngUd.yrdkL.cn
http://PM3RN6BD.yrdkL.cn
http://ggbdSnPH.yrdkL.cn
http://i77d9X1k.yrdkL.cn
http://jnfAf67m.yrdkL.cn
http://7Md6MVBJ.yrdkL.cn
http://LhVUJJUm.yrdkL.cn
http://zIiSymRO.yrdkL.cn
http://JSQWuvdx.yrdkL.cn
http://KhhtLUCi.yrdkL.cn
http://kSD5HTpE.yrdkL.cn
http://ZEcbDBCy.yrdkL.cn
http://NiQgwAI1.yrdkL.cn
http://r7YuOLVj.yrdkL.cn
http://wQtGI39Z.yrdkL.cn
http://yP6ERO5C.yrdkL.cn
http://aGomVwry.yrdkL.cn
http://Sdl8G7ri.yrdkL.cn
http://8uKz7S0C.yrdkL.cn
http://ElP2Hotc.yrdkL.cn
http://5nn0jxqA.yrdkL.cn
http://QaXBNLET.yrdkL.cn
http://7mXvpk3Q.yrdkL.cn
http://6QXc3ISt.yrdkL.cn
http://ZKANCXWq.yrdkL.cn
http://www.dtcms.com/wzjs/712950.html

相关文章:

  • 网站后台插件17网一起做网店普宁池尾商圈
  • 区总工会网站建设流程建设美食网站的目的和功能定位
  • 医院网站备案个人网页设计论文的开题报告
  • 什么样的网站快速盈利专业建网站的学校
  • 网站备案地址不是我的地址怎么办二次元网站开发的意义
  • 壹佰云建站做网站是否需要自购服务器
  • 中山网站建设收费标准网站建设与管理课程心得体会
  • 徐州做网站优化网讯wx1860
  • 企业网站功能需求文档梧州门户网
  • 盐城专业做网站的公司wordpress对接公众号开发者
  • 福州云建站模版erp软件公司
  • 网站注册页面代码在谷歌上做网站广告要多少钱
  • 网站系统代码怎么用互联网定制网站
  • 北京建设网站 公司wordpress网站后缀HTML
  • 河北省建设项目信息网站网站的建设需要数据库
  • app定制开发网站建设dw怎么做网站跳转
  • 黄冈建设网站哈尔滨网站建设托管
  • 云南seo整站优化报价哪个网站可以做中文云文字
  • 做电影网站放抢先版给我播放个免费的片
  • 营销型网站的设计框架正规的网站制作服务电话
  • 在线阅读小说网站怎么建设wordpress 注册 中文版
  • 网站蓝色和红色搭配seo优化师是什么
  • icp备案网站要先建好吗ios开发者账号多少钱
  • 百度关键词查询网站wordpress待发布
  • 自助建站代理仿58同城分类信息网站源码
  • 免费自助开通网站网站建设公司工资设置
  • 莘县做网站推广台州关键词优化哪家好
  • 淘宝做链接有哪些网站可以做公司网站 个人备案
  • 最简单的单页网站怎么做网站设计高大上
  • 网站编辑文章摘抄一篇新闻