`
thecloud
  • 浏览: 882712 次
文章分类
社区版块
存档分类
最新评论

来认识寄存器,内存,IO空间,IO端口,IO内存

 
阅读更多

整天说内存,寄存器,端口,他们有什么联系,有什么不同之处,你了解他们么?

第一、寄存器和内存的区别

寄存器和内存都是可以用来读写的,但寄存器的操作时有副作用,称之为(side effect 边际效果)

读取一个寄存器可能导致寄存器中的内容发生变化,比如在一些设备的中断状态寄存器中,读取了寄存器后会自动清零

第二、IO空间和内存空间

并不是所有的体系结构都有IO空间这个定义的,我所了解的只有X86体系上有,而ARM体系结构就没有这种区别,

在X86上,IO空间和内存是独立的,他们各自有各自的总线,并且IO空间一般是64K,即16位,内存空间为4G

可见他们的差别是很大

第三、IO 端口和IO内存

在有了IO空间的概念后,就有IO端口和IO内存

当一个寄存器或内存位于IO空间时候,称之为IO端口

当一个寄存器或内存位于内存空间时候,称之为IO内存

这种映射是通过OS的MMU来把虚拟地址映射为物理地址的

可能单纯的这样解释会不明白,看下面这个图或许会好些

当你还在疑惑为什么指针可以想减而不可以相加的时候,了解了页表映射会或许就明白了!

在Linux驱动程序开发中,关于二者的不同,可以参看下这篇文章

http://www.360doc.com/content/10/1011/07/1317564_60018145.shtml

分享到:
评论

相关推荐

    IO端口和IO内存详解

    几乎每一种外设都是通过读写设备上的寄存器来进行...CPU对外设IO端口物理地址的编址方式有两种:一种是I/O映射方式(I/O-mapped),另一种是内存映射方式(Memory-mapped)。而具体采用哪一种则取决于CPU的体系结构。

    STC单片机IO端口模式设置工具STCIOset V1.0b9h

    大家知道,STC单片机 IO端口 有四个模式:准双向(默认)、推挽、高阻、开漏。通过PxM1/PxM0 2个寄存器 进行设置。这个小工具STCIOset V1.0b9h 可以很方便地生成设置代码,而且还有C51的例程。(原创)

    TQ2440IO端口驱动

    TQ2440IO端口驱动 端口控制描述 端口配置寄存器GPACON~GPJCON:用来决定复合引脚使用哪个功能。 端口数据寄存器GPADAT~GPJDAT:若端口被配置成输出口,数据能写入PnDAT相应的位,若被配置成输入口,数据能从PnDAT...

    DM9000A 寄存器详解——第一手资料

    在访问任何寄存器前,地址端口输入的是数据端口的寄存器地址,寄存器的地址必须保存在地址端口。 2、存储器直接访问控制 DM9000提供DMA(直接存取技术)来简化对内部存储器(下称存储器)的访问。对存储器起始地址...

    S3C2440上IO口地址,C#实现

    S3C2440上IO口寄存器进行读写,使用C#实现,以及简单的IIC寄存器操控样例

    MSP430单片机的IO口配置

    我们这节课的主要内容有: ·I/O端口简介 ·数字I/O寄存器 ·配置数字I/O

    c8051f02x单片机IO端口配置,交叉开关使用,新华龙

    开始学习c8051f020单片机时里面有一些一些寄存器设置不懂,程序看不懂,很苦恼,在此为方便后来人,特整理了这份资料,里面记载了我从空白到熟练应用C8051F系列单片机的过程,希望对大家有帮助

    奋斗STM32开发通用IO口例程讲解.pdf

    每个GPI/O 端口有两个32 位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR,GPIOx_ODR),一个32 位置位/复位寄存器(GPIOx_BSRR),一个16 位复位寄存器(GPIOx_BRR)和一个32 位锁定寄存器(GPIOx_...

    MSP430f5438的IO操作实验

    1.学会操作 MSP430F5438 一般端口,了解端口寄存器的组成 2.了解学习板相应端口管脚原理图。 3.利用 JTAG 口将程序烧写进入单片机中。 4.进行程序调试,当按下按钮 K1, K2 , 观察 LED1,LED2有什么变化。

    STM32 GPIO——快速IO的使用

    STM32的每个GPIO端口都有两个特别的寄存器,GPIOx_BSRR和GPIOx_BRR寄存器,通过这两个寄存器可以直接对对应的GPIOx端口置'1'或置'0'。

    微机学习要求答案

    5、能描述计算机中IO端口的编制方式有几种(独立编址和统一编址2种),每种编址方式的特点?8086采用IO独立编址方式,注意X86中IO接口的寻址方式,X86的IO操作指令,IN和OUT指令的端口地址、IN/OUT指令只能是端口与...

    sja1000的初始化和收发程序

    #define SJA1000_Data_Port portA000 ioport unsigned int portA000; //定义数据输入/输出端口 #define SJA1000_Address_...//向模式寄存器写0x01,进入复位模式 while((TempData & 0x01) != 0x01); //等待SJA1000复位

    STM32函数指针 数码管显示 寄存器版本

    //ST_CP-->PB.10端口配置 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; //IO口速度为2MHz GPIO_Init(GPIOB, &GPIO_InitStructure); ...

    STM32调试报告.docx

    在固件库中设置 ODR 寄存器的值来控制 IO 口的输出状态是通过函数 GPIO_Write 来实现 的: void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal); GPIO_WriteBit(GPIOR,GPIO_Pin_0,(BitAction)(1));//LED控制 ...

    Freescale_MC9S12XS128程序总结

    1. 对IO口输入输出操作程序举例:A口接流水灯并实现闪烁 void main(void) { while(1) { DDRA=0xff;...J,P,M,T,S这五个口除具有数据寄存器外,他们都另外多出另一个端口输入寄存器(该寄存器功能我未知)!

    实验四前三题.rar_8086汇编_8255芯片分析题_DEMO

    1、8255 芯片初始化 (1) 分析原理图,计算 8255 芯片和 8253 芯片在 IO 空间中各内部寄存器的端口地址,修改 Demo 程序(main.asm 和 INTDemo.asm)中 IO 空间地址的符号定义(xxH)。 (2) 分析原理图中 8255 芯片 ...

    STM32笔记(2)GPIO介绍及IO口操作

    GPIO简介 ...STM32 的每个 IO 端口都有 7 个寄存器来控制其工作方式,而每一个寄存器都需要用32bit来控制。在STM32中,一组GPIO有16个IO口。 端口位基本结构: 原创文章 2获赞 0访问量 679 关注

    微型计算机原理及应用基本学习要求2018

    5、能描述计算机中IO端口的编制方式有几种(独立编址和统一编址2种),每种编址方式的特点?8086采用IO独立编址方式,注意X86中IO接口的寻址方式,X86的IO操作指令,IN和OUT指令的端口地址、IN/OUT指令只能是端口与...

    单片机控制LED灯电路图

    ATmega8L每个端口引脚都有3个寄存器位:DDxn、 PORTxn和PINxn。DDxn位于DDRx寄存器,PORTxn位于PORTx寄存器,PINxn位于PINx寄存器。DDxn用于选择引脚方向,DDxn为“1”时,Pxn设置为输出,否则设置为输入。当引脚置为...

    TMS320C28x系列DSP的CPU与外设(下)

    本书详细介绍了TMS320C28x系列DSP的事件管理器、模-数转换器、32位CPU定时器...附录A.IO时钟、系统控制及PIE寄存器一览 附录A.11片内Flash、OTP寄存器一览 附录A.12外设接H XINTF的寄存器一览 附录B 词汇表 参考文献

Global site tag (gtag.js) - Google Analytics