今天学习DMA,需要传递地址,我想从串口传到寄存器来点亮led灯,只是学习一下DMA的原理,首先说明一点的是程序还很烂,没有做成功。其中发现了一个问题,就是寄存器的地址#define rGPBCON (*(volatile unsigned *)0x56000010)我看了这个的时候,到底这是定义的一个什么呢?上网搜了一下,总结一下。
1.首先这是定义的一个变量,这一点要非常明白,因为rGPBCON就是一个寄存器变量,我们可以给他赋值对他读写操作,这是一个变量,而不是一个指针或者地址。
2.这是一个地址固定的变量,以前分配的变量地址是随机的,但这里的地址是固定的,就是0x56000010。
3.#define rGPBCON (*(volatile unsigned *)0x56000010)宏定义的过程,首先把0x56000010这个物理地址强制转换为指针变量
(volatile unsigned *)0x56000010 这就是一个指针变量。然后再用*符号对指针变量操作相当于*p是一个变量。其中因为这里是寄存器映射到内存是虚地址,所以需要用关键字volatile写回,而不是读缓冲器中的值。
4. 关于rGPBCON这个特殊寄存器到底有没有这样一个寄存器?
这个我一直很迷惑,直到今天,我才明白,其实没有这样一个寄存器,这个寄存器是0x56000010开始的四个字节的内存地址的别名,rGPBCON是占用内存的,而不存在IO空间或者说IO寄存器。因为ARM根本久没有IO空间,直接映射到内存空间。
关键字:ARM 寄存器 地址定义
引用地址:
ARM寄存器地址定义
推荐阅读最新更新时间:2024-03-16 14:59
uC/OS-II在ARM系统上的移植与实现
0 引言 在开发嵌入式系统时,一般选择基于ARM 和uC/ OS - II 的嵌入式开发平台,因为ARM 微处理器具有处理速度快、超低功耗、价格低廉、应用前景广泛等优点 . 将uC/ OS - II 移植到ARM 系统之后,可以充分结合两者的优势. 如果一个程序在一个环境里能工作,我们经常希望能将它移植到另一个编译系统、处理器或者操作系统上,这就是移植技术.移植技术可以使一种特定的技术在更加广泛的范围使用,使软件使用更加灵活,不局限于某一条件.uC/OS - II 是由Jean J . Labrosse 先生编写的完整的可移植、固化、裁剪的占先式实时多任务内核.uC/ OS - II 的源代码完全开放,这是其他商业实时内核无
[嵌入式]
ARM第三财季净利润7830万美元 同比涨17%
北京时间10月22日晚间消息,ARM周二发布了2013财年第三季度财报,净利润为4850万英镑(约合7830万美元),营收为1.84亿英镑。 在截至9月30日的第三财季,ARM总营收为1.84亿英镑,与去年同期的1.446亿英镑相比增长27%。按美元计算,ARM第三财季营收为2.867亿美元,与去年同期的2.279亿美元相比增长26%。 其中,版税营收为1.371亿美元,同比增长13%,占公司总营收的48%。授权营收为1.231亿美元,同比增长48%,占公司总营收的43%。 开发系统营收为1210万美元,同比持平,占公司总营收的4%。服务营收为1440万美元,同比增长27%,占公司总营收的5%。 不计入50万英镑
[半导体设计/制造]
ARM9 (2440A) 从启动代码到应用程序(Main) 1
ARM9(2440A) 从启动代码到应用程序 说一下从启动代码到Main函数的过程,以及到了Main还需要设置些什么,才算是一个完整的应用程序。 启动代码 我们知道,uboot的第一阶段的功能是:(1)定义入口;(2)设置异常向量(exception vector);(3)设置CPU的速度、时钟频率及中断控制寄存器;(4)初始化内存控制器 ;(5)将rom中的程序复制到ram中;(6)初始化堆栈;(7)转到ram中执行; 其实我们要实现的启动代码功能也就是实现这些功能,最后跳转到我们自己的应用程序入口。只是这里的启动代码,我们不用uboot来实现,可以说是根据自己的需求来实现,毕竟uboot代码量不小。 keil下创建
[单片机]
ARM 借由 mbed OS平台,推动物联网设备生态链创新
电子网消息,在亚洲,中国科技界的几家领导品牌正陆续借助ARM mbed 物联网设备平台推出许多实际应用的解决方案。上海世界移动大会 (MWC Shanghai)正是一个绝佳时机,让我们可以开始看到商业可用的IoT设备如何将智能创新元素带入品牌体验。 两大关键趋势: 1.家用安全启用语音人工智能 2.协议栈认证让创新者迅速将产品推向市场 领先的安全技术,用于语音AI的智能家庭IoT体验 当前物联网时代最重要的趋势之一,是能针对消费电子产品及服务型企业提供更具价值的新客户接触点,便是在物联网设备中扩展语音AI功能。亚太区是该趋势很重要的一个市场,到2021年,在亚洲和大洋洲地区,预估将有超过47%具有声音AI功能的设
[网络通信]
ARM的ADS汇编器和GCC汇编器
一:ads下的一段汇编程序: __main EXPORT BootReset BootReset B resetvec_reqset IMPORT BootEntry IMPORT |Image$$RO$$Limit| AREA BOOTROM, CODE, READONLY LDR r0, =|Image$$RO$$Limit| BEQ %1 ldr pc, 转换到gcc下的汇编程序为: __main .global BootReset BootReset: B resetvec_reqset .exte
[单片机]
ARM协处理器及其指令
ARM 微处理器可支持多达 16 个协处理器,用于各种协处理操作,在程序执行的过程中,每个协处理器只执行针对自身的协处理指令,忽略 ARM 处理器和其他协处理器的指令。ARM 的协处理器指令主要用于 ARM 处理器初始化 ARM 协处理器的数据处理操作,以及在ARM 处理器的寄存器和协处理器的寄存器之间传送数据,和在 ARM 协处理器的寄存器和存储器之间传送数据。 ARM 协处理器指令包括以下 5 条: CDP 协处理器数操作指令 LDC 协处理器数据加载指令 STC 协处理器数据存储指令 MCR ARM 处理器寄存器到协处理器寄存器的数据传送指令 MRC 协处理器寄存器到ARM 处理器寄存器的数据传送指令 1、
[单片机]
基于ARM9嵌入式开发平台的心电除颤模拟发生系统方案
随着社会的发展,人们的医疗保健意识越来越强,所以医生的培训也就成为非常重要的环节。心电除颤技术作为医生培训的一个主要方面,若操作规范,动作熟练,往往在紧急关头可以救人于危难之间,在培训的时候,如果能够真实地模拟急救除颤的场景,将会起到良好的学习效果。因此,在急救、有创性临床操作训练上,医学模拟教学日益显示出其成本低、重复性高、教学效率高以及符合医学伦理要求等优势。 除颤模拟发生系统可以任意选择34种状态(包括成人和儿童两大类)时也可以连接医用监护仪,使除颤模拟更加逼真。学员可以进行不同能量的除颤练习,同时这也便于老师检验学员的学习效果。 该系统是根据心电图的有关原理以及监护仪的信号合成原理研制的,严格按照医学的相关
[单片机]
对S3C2440特殊功能寄存器地址的深入挖掘
S3C2440集成了丰富了外设控制器(LCD控制器、USB Device控制器、USB Host控制器、NAND FLASH控制器、I2C控制器、SPI控制器等)。要控制这些外设就要设置相应控制器的寄存器以产生相应的驱动时序。学习S3C2440,主要是如何配置寄存器。 下面是S3C2440特殊功能寄存器地址: #define rBANKCON0 (*(volatileunsigned *)0x48000004) //Boot ROM control #define rBANKCON1 (*(volatileunsigned *)0x48000008) //BANK1 control #define rBANKCON2
[单片机]