51、AVR、PIC、ARM单片机的总线与存储空间的理解_wjgit的博客-程序员宅基地

技术标签: 单片机原理  嵌入式  单片机  

51单片机

   特殊指令MOVC实现读取程序存储区域的静态数据,只能读取,不能写入,因此不能实现自编程。

   外部存储器通过P2、P0端口连接地址和数据总线,可实现扩展。P0与P2组合实现地址输出,

   P0实现数据总线,因此一个数据周期需要两个总线周期。16位地址可访问64K外部地址空间。

   外部内存地址与内部内存地址是平行的,因此都有0x0001,但是访问外部存储器通过MOVX指令实现。

-----------------

 

AVR:程序存储空间与SRAM数据存储空间独立编址。

           数据存储空间:通用寄存器、IO寄存器、临时数据区。

           静态数据存储在程序存储空间,用LPM、SPM指令存取静态常量。

           全局变量:存放在SRAM中,对于C语言来说,由编译器规划整个SRAM数据区域的内存分配。

         SRAM:全局变量、栈空间、堆空间,如果没有实现malloc,那么就没有实现堆管理。那么内存分配基本就是从栈上分配。因此就只存在两个区域,一个全局变量区,一个局部变量区(栈)。

AVR的内存地址空间的首地址是R0-R31通用寄存器。其它的状态寄存器SREG和堆栈指针寄存器SP

AVR可以实现自编程,通过SPM指令修改程序存储区。

------------------

 

PIC单片机

     哈弗结构,独立编址。通用寄存器独立空间。

 

     8位单片机,指令简化,没有直接的存储程序存储空间的指令,只能通过PC寄存器或其它指令方式多步解决间接访问程序存储空间。

     因此不能实现自编程。

 

    16单片机,特殊指令TBLRW指令来实现读写程序存储空间。 可实现自编程。

     dsPIC单片机还可以讲程序空间映射到数据空间,然后直接通过访内存指令操作。

 

可编程FLASH:通常为NorFlash,可以实现随机访问,因此可以挂接在总线上直接寻址,因此可以直接运行程序。但是只能块擦除,因此不适合做数据存储。

 

小型单片机,通常就采用NorFlash作为内部程序存储器,SRAM做数据存储器。这样的单片机一般只实现简单功能,程序代码不大(<1M),数据处理也不多。

 

如果要实现NandFalsh存储,然后加载到SRAM或SDRAM、DDRAM中运行,那么内存通常是外扩的,因为要在单片机内实现大块的RAM是没有空间的。而随着频率的增加,能耗的增加,才有可能支撑起大的存储器,因此对于小型单片机来说,都是直接从NorFlash运行,SRAM做数据存储器。或者从NANDFlash加载到外部SDRAM中运行。对于嵌入式单片机来说,可以采用DDRAM外扩内存。

 

ARM单片机:

    统一编址,可以实现自编程。

    AMBA总线:多个内核、多个存储器。

        对于M系列低端单片机,直接集成有NorFlash来运行程序,因此不需要外扩内存。

    对于高端M系列单片机、A系列单片机:外扩DRAM存储器。NandFlash存储程序,运行后从NandFlash加载程序到DRAM内存运行。

    低端单片机的自编程:直接读写NorFlash区域来实现,就如读写内存。

    高端单片机,程序存放在外存中,程序是通过外设寄存器空间读入内存地址空间,因此NandFlash仅仅是寄存器空间,并不占用内存空间。自编程,也就是读写NandFlash设备。

全静态运行:

     就是说CPU频率为1HZ依然可以运行,为什么这样呢。是因为内部没有需要定期刷新的器件,如SDRAM等,因为采用SRAM内存,因而可以实现全静态运行。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wjgit/article/details/107155153

智能推荐

《神经网络与深度学习》-深度生成模型_你电吴彦祖的博客-程序员宅基地_深度生成模型

深度生成模型1. 概率生成模型1.1 密度估计1.2 生成样本1.3 应用于监督学习2. 变分自编码器2.1 含隐变量的生成模型2.2 推断网络2.2.1 推断网络的目标2.3 生成网络2.4 模型汇总2.5 再参数化2.6 训练3. 生成对抗网络3.1 显式密度模型和隐式密度模型3.2 网络分解3.3 训练3.4 一个生成对抗网络的具体实现:DCGAN3.5 模型分析3.6 改进模型  概率生成模型(Probabilistic Generative Model)简称生成模型,指一系列用于随机生成可观测数

apache2.2+tomcat6.0的大量CLOSE_WAIT问题_继续吹的风的博客-程序员宅基地

 问题描述:web前台页面打开很慢,慢的结果是,缓冲了25分钟左右页面打不开,大量close_wait假死等待关闭,导致请求堆积,出现超时错误访问超时报错如图(1)。 图(1) 环境工具:A.  服务器硬件信息                  型号   DELL R1670                  CPU   Intel 四核/颗 X 2颗   ...

Ant—使用Ant构建简单Java项目(一)_老高专栏的博客-程序员宅基地

Apache Ant主要用于Java项目的构建。为什么要使用Apache Ant来构建项目呢:        1)项目构建不是简单的编译,各种资源需要合理构建,例如有的类需要压缩成jar文件,有的文件需要放在指定位置,有时候需要使用配置文件。这些工作是繁杂琐碎的,手工处理难免出错。        2)诸如Myeclipse之类的IDE工具可以方便地部署web项目,但是脱离了这些集成工具,例如在需要

“神州六号”发射成功_weixin_34190136的博客-程序员宅基地

   “50秒、30秒……”零号指挥员郭保新的口令在空旷的大漠发射场响起时,中国屏住了呼吸。这是45岁的郭保新第6次为“神舟”倒计时读秒。35年前,同一个岗位上的胡世祥按下了红色的点火按钮,中国第一枚三级运载火箭长征一号托举着中国第一颗人造卫星东方红一号,腾空而起。35年后,手动点火早已发展为自动点火,胡世祥也成为了知名的“发射将军”和中国载人航天工程副总指挥。    2005年1...

【Latex】模板设置及使用教程_锵锵锵锵~蒋的博客-程序员宅基地_如何套latex模板

掌握Latex会为论文排版省下大把时间,本文是本人在自己定制论文模板过程中复杂问题(例如奇偶页眉页脚设置)的总结,参考了大量优秀博客。

Docker 存储原理_self-motivation的博客-程序员宅基地

Docker 存储可以分为分层文件系统和卷,本文将介绍 AUFS 分层文件系统。1. 基础知识1.1 Linux 的 rootfs 和 bootfs  一个典型的 Linux 系统要能运行的话,它至少需要两个文件系统:boot file system (bootfs):包含 boot loader 和 kernel。用户不会修改这个文件系统。实际上,在启动(boot)过程完成后

随便推点

你是一个工资太低的程序员吗?_零下十一度的博客-程序员宅基地

原文转自:http://www.open-open.com/news/view/fe0b49        英文原文:Are you an underpaid developer?        我通过邮件和很多你们这些读者进行过交流,谈论程序员的生活状态。这些交流几乎都伴随着一个相同的主题。你是一个工资太低的程序员吗?如果你真打算问自己,那这答案几乎就是“是的”。

Bean named ‘xxx‘ is expected to be of type ‘xxxx‘ but was actually of type ‘com.sun..proxy.$Proxy19‘_咖啡马的博客-程序员宅基地

在SSM项目中的Service层遇到了这个报错org.springframework.beans.factory.BeanNotOfRequiredTypeException: Beannamed ‘employeeServiceImpl’ is expected to be of type‘com.mlj.service.EmployeeServiceImpl’ but was actually of type‘com.sun.proxy.$Proxy19’名为employeeService

echarts---多个柱子一组的柱状图 使用_String佳佳的博客-程序员宅基地_echarts柱状图多个柱子

在公司做项目的时候,直接用官网现成的模板,柱子显示不出来,可能与项目中的某些配置冲突了才导致的;根据其他的模板,修改之后,可以实现相同的效果:&lt;div id="myChart1" style="width: 1000px;height: 300px;margin: 0 auto"&gt;&lt;/div&gt;methods:{ drawLine(){ ...

【微信小程序控制硬件④】 深度剖析微信公众号配网 Airkiss 原理与过程,esp8266如何自定义回调参数给微信,实现绑定设备第一步!(附带源码)_半颗心脏的博客-程序员宅基地_微信公众号配网

本博文由热爱分享热爱技术的半颗心脏原创,非官方人员、非组织名义编写,博文如有不对或侵犯您的权益,请及时留言,第一时间纠正!【微信小程序控制硬件①】 全网首发,借助 emq 消息服务器带你如何搭建微信小程序的mqtt服务器,轻松控制智能硬件!【微信小程序控制硬件②】 开始微信小程序之旅,导入小程序Mqtt客户端源码,实现简单的验证和通讯于服务器!【微信小程序控制硬件③】 从软件到硬件搭...

Xilinx FPGA全局介绍_普通网友的博客-程序员宅基地

Xilinx FPGA全局介绍现场可编程门阵列 (FPGA) 具有诸多特性,无论是单独使用,抑或采用多样化架构,皆可作为宝贵的计算资产;许多设计人员并不熟悉 FPGA,亦不清楚如何将这类器件整合到设计中。解决办法之一是深入研究主要供应商提供的 FPGA 架构及相关工具;本文从 Xilinx 产品系列开始着手。FPGA 选件高级概述市场上有许多不同类型的 FPGA,每种类型都有不同的功能和特性组合。可编程结构是任何 FPGA 的核心,以可编程逻辑块阵列的形式呈现,也称为逻辑元件 (LE)(图 1a)。F

股票入门基础知识47:移动平均震荡指标 (OsMA)_Eric2016_Lv的博客-程序员宅基地_osma指标

移动平均震荡指标 (OsMA) 是表示价格走势的指标。它是通过比较较短期移动平均线和较长期移动平均线之间的差异所计算出来的。最常见的两个是 12 周期移动平均线和26 周期移动平均线。因此,对它最恰当的形容就是 MACD。要想确定动量是倾向上涨还是倾向下跌,一个非常简单的方法就是看穿越零线或中线。操盘手会用柱形图所在的线的那一侧来帮助他们决定在市场中的买卖方向。