寄存器名称和地址的映射分析

发布者:温暖微风最新更新时间:2021-12-02 来源: eefocus关键字:寄存器名称  地址 手机看文章 扫描二维码
随时随地手机看文章

首先要清楚的一点,所有操作,最终目的都是操作寄存器


一,对比51单片机和STM32对寄存器的操作

1)51单片机:


     sfr P0=0x80;      //关键字sfr 声明地址和名称的映射

     P0=0x00;          //将0x00赋值给P0口的8位(51单片机一组IO为8位)


2)STM32:


     GPIOA->ODR=0x00000000     //为GPIOA的ODR寄存器地址赋值0x00000000


二,以GPIOA为例说明STM32寄存器和名称的映射:

GPIOA下的某个寄存器,挂载在GPIOA下,地址为GPIOA基地址+偏移量

GPIOA挂载在APB2总线,地址为APB2总线基地址+GPIOA偏移量

ABP2挂载加外设基地址,地址为外设基地址+ABP2偏移量


源码中可以找到:

        //外部总线基地址

        #define PERIPH_BASE     ((uint32_t)0x40000000)          


        //APB2基地址=外部总线基地址+偏移量

        #define APB2PERIPH_BASE     (PERIPH_BASE + 0x10000)     


        //GPIOA基地址=APB2基地址+偏移量

        #define GPIOA_BASE     (APB2PERIPH_BASE + 0x0800)          


        //GPIOA将地址顺序分配给7个32位寄存器(结构体分配)

        #define GPIOA     ((GPIO_TypeDef*)GPIOA_BASE)     


        //将寄存器地址映射到7个32位寄存器,分别控制

        typedef struct                                        

        {

             __IO unit32_t CRL;

             __IO unit32_t CRH;

             __IO unit32_t ODR;

             __IO unit32_t IDR;

             __IO unit32_t BSRR;

             __IO unit32_t BRR;

             __IO unit32_t LCKR;

        }GPIO_TypeDef;


在STM32手册中:GPIO寄存器地址映像如下:

这里写图片描述

如此,实现STM32寄存器名称和地址之间的映射关系

关键字:寄存器名称  地址 引用地址:寄存器名称和地址的映射分析

上一篇:STM32 外部中断EXTI
下一篇:新建工程模板-库函数

推荐阅读最新更新时间:2024-11-04 09:03

S3C2440的地址空间
S3C2440是32位的,2的32次方得知该CPU的地址空间为4G,即该CPU可访问4G大小的范围。 1、绿色那部分为外设地址空间,大小为1G,存在于CPU外部,由于存放数据与程序用的,CPU可通过地址线和数据线从中读取数据。 2、黄色那部分为功能部件寄存器,大小为3G,存在于CPU内部,即在这些寄存器上写入一些数据,则可控制相应功能部件的行为。 其中的各功能部件的寄存器地址范围如表下: 其中的各外设的访问地址如下表:
[单片机]
S3C2440的<font color='red'>地址</font>空间
VxWorks中的地址映射
作者Email: hnjinyuhe@163.net 在运用嵌入式系统VxWorks和MPC860进行通信系统设计开发时,会遇到一个映射地址不能访问的问题。 缺省情况下,VxWorks系统已经进行了如下地址的映射: memory地址、bcsr(Board Control and Status)地址、PC_BASE_ADRS(PCMCIA)地址、Internal Memory地址、rom(Flach memory)地址等,但是当你的硬件开发中要加上别的外设时,如(falsh、dsp、FPGA等),对这些外设的访问也是通过地址形式进行读写,如果你没有加相应的地址映射,那么是无法访问这些外设的。 和VxWorks缺省地址
[嵌入式]
CPU与存储外设之间的地址线连接方法
flash连接CPU时,根据不同的数据宽度,比如16位的NOR FLASH (A0-A19),处理器的地址线要(A1-A20)左移偏1位。为什么要偏1位? 从软件和CPU的角度而言,一个地址对应一个字节,就是8位数据。这是肯定的,不要怀疑这点。 对于具体器件而言,它的位宽是一定的,所谓位宽,指的是“读/写操作时,最小的数据单元”──别说最小单元是“位”,一般设备上没有单独的“位操作”,修改位时通过把整个字节、字或双字读出来、修改,再回写。 CPU的地址线(A0-A20)对应的最小数据单元是字节,即8位; 而位宽为16的NOR FLASH的地址线(A0-A19)对应的最小数据单元是16位。 这两个怎么对应起来? 如果说外设的位宽是1
[单片机]
对于ARM加载时、运行时地址的理解
只是这样理解,对于一些过程而言,就能够说得通了,也与一些资料上说的情况吻合了。 scatter文件中的下载时地址和运行时地址是在编译和链接阶段用的。 比如有下面的scatter文件,以从汇编中跳转到c文件为例。 LOAD 0x0 { JMAIN +0 { jmain.o(jmain,+first) } TEST 0x200 { test.o *(+RO,+RW,+ZI) } } jmain.s中只是一个跳转, b __main, main在test.c中定义. void main(){} scatter文件中LOAD处的0x0表示的是下载时地址,它表示的是整个工程文件中生成的所有.
[单片机]
跑马灯/输入输出接口(片选地址74LS273)
;NAME: 跑马灯 ;AUTOR: ;CONTENT: P1.0~P1.7接发光二极管L1~L8      CSEG AT 4000H ;定义起始地址,为什么是4000H呢       ;存储器:程序存储器、数据存储器统一编址,达64K,板上ROM(16K);RAM       ;(32K)供用户使用,可扩展至48k。用户存储器起始地址为4000H;8051原       ;有中断入口地址均定位在偏移4000H之后的相应地址 LJMP START CSEG AT 4100H START: MOV A, #01H  ; 先让第一个发光二极
[单片机]
跑马灯/输入输出接口(片选<font color='red'>地址</font>74LS273)
通过路由器NAT来实现IP地址绑定多台应用服务器
      假设现在企业内部有文件服务器、OA服务器、邮件服务器等等。而企业还希望这些服务器能够被外部网络的用户访问。如企业可能在异地有一个销售办事处,或者有些员工经常需要出差。为了方便他们的工作,就需要允许这些员工来访问企业内部的这些应用服务器。但是现实情况是,大部分企业可能仅仅拥有一个到连个合法的IP地址。而需要让外部用户能够访问企业内部的应用服务器,首要的一个条件就是企业有足够多数量的合法IP地址。笔者这里要给大家介绍的是,如何通过路由器自带NAT功能,来实现一个合法IP地址同时绑定多台应用服务器。       一、选择合适的NAT类型       NAT,又叫做网络地址类型转换,其主要有三种类型,分别为静态NAT、
[网络通信]
链接地址学习笔记
链接地址 启动过程 示例代码如下: start.S 文件 .globl _start _start: /*硬件相关设置*/ ldr r0,=0x70000000 orr r0,r0,#0x13 mcr p15,0,r0,c15,c2,4 /*关看门狗*/ bl test /*位置无关*/ ldr pc, =test /*位置相关*/ ldr r0,=0x7E00400 mov r1,#0 str r1, /*设置栈*/ ldr sp,=8*1024 bl main halt: b halt test: mov pc,lr Led.c文件 void delay(){ volatile
[单片机]
链接<font color='red'>地址</font>学习笔记
C语言中针的用法
直接上例子讲解。 void max_min(array1) int array1 ; { int *max,*min; //-----------(1) 定义了两个指针变量 max,min int k,l; int *p,*end_p; end_p=array1+10; //-----------(2) 将数组array1 地址+10作为一个新地址赋给 end_p 这个指针 max= array1; //-----------(3) 将array1 的地址位赋给 max,将max的指针指向 array1数组。 min= array1; for (p=array1+1;p p++ 是指针所绑定的地址加 1,即指针指向和原来相邻
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved