使用C语言来访问ARM寄存器的语法
ARM寄存器的地址类似于内存地址(IO与内存统一编址的),所以这里的问题是用C语言读写寄存器,就是用C语言来读写内存地址。用C语言来访问内存,就要用到指针:例如某寄存器的地址为0xE0200240;
define GPJ0CON 0xE0200240
unsigned int *p = (unsigned int *)0xE0200240;
*P = 0x11111111;
上面这两句其实可以简化为1句:
*((unsigned int *)0xE0200240) = 0x11111111;
因为
(unsigned int *)0xE0200240就等于p,我们就直接把(unsigned int *)0xE0200240当p 用,
则
*((unsigned int *)0xE0200240) = 0x11111111;
那么我们就可以把整个表达式*((unsigned int *)GPJ0CON)定义为一个宏
#define rGPJ0CON *((volatile unsigned int *)GPJ0CON) //用volatile 是让编译器不要优化
那么rGPJ0CON就可以当做变量p来用了
例:
define GPJ0CON 0xE0200240
define GPJ0DAT 0xE0200244
unsigned int *p = (unsigned int *)GPJ0CON;
*p = 0x11111111;
unsigned *p1 = (unsigned int *)GPJ0DAT;
使用C语言来访问ARM寄存器的语法相关推荐
- jtag访问arm内核寄存器
jtag的原理图 jtag接口访问arm Device ID code register的步骤 jtag接口访问arm Device ID code register的功能验证的testbench j ...
- ARM 寄存器 详解
From( ARM 寄存器详解 ):https://blog.csdn.net/sandeldeng/article/details/52954781 ARM 汇编基础教程:2.数据类型和寄存器:ht ...
- ARM处理器的运行模式和ARM寄存器
一.ARM处理器共有7种运行模式 处理器模式 描述 用户模式(User,usr) 正常程序执行的模式 快速中断模式(FIQ,fiq) 用于高速数据传输和通道处理 外部中断模式(IRQ,irq) 用于 ...
- 【嵌入式开发】ARM 芯片简介 (ARM芯片类型 | ARM处理器工作模式 | ARM 寄存器 | ARM 寻址)
作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42375701 相关资源下载 : -- 三星 ARM Archit ...
- ARM寄存器及功能介绍/R0-R15寄存器
1.ARM 寄存器组介绍 ARM 处理器一般共有 37 个寄存器,其中包括: (1) 31 个通用寄存器,包括 PC(程序计数器)在内,都是 32 位的寄存器. (2) 6 个状态寄存器,都是 32 ...
- ARM寄存器组织与异常处理
目录 一.ARM寄存器组织 1.寄存器 概念 作用 分类 2.ARM寄存器 3.专用寄存器 R15(PC,Program Counter) R14(LR,Link Register) R13(SP,S ...
- ARM知识扫盲-RISC架构-ARM寄存器-ARM指令集
文章目录 简介: ARM寄存器 特殊寄存器 ARM指令集 简介: ARM本身使用的是RISC精简指令集架构,除此之外还有开源的RISC指令集架构RISC-V,复杂指令集CISC(Complex Ins ...
- ARM寄存器的7种工作模式和几种寻址方式
ARM寄存器的7种工作模式 CPSR[5:0] 10000 user 10001 FIQ 10010 IRQ 10011 SVC 10111 中止 11011 未定义 11111 系统 用这两个指令读 ...
- linux arm寄存器,【寄存器】在armv8/armv7中ARM system control registers的区别
以SCTLR寄存器来阐述在armv7.armv8-arch64.armv8-arch64的使用方式 (其实大多数的系统寄存器,都是这种处理方式) SCTLR是system control regist ...
最新文章
- sql2005配置文件服务器,SQL server服务器版的安装方法
- 1.0 封装后的布局成本
- 15_clickhouse,MySQL引擎;MySQL和ClickHouse中数据类型的对应关系
- 脉冲宽度调制pdm_0-500V可调0-30A高频脉冲电源广元厂家
- php多进程mysql更新不了_php MYSQL 数据更新修改不了
- Graphics在java的哪个包_如何在Java中成功扩展Graphics
- 自学python需要什么_自学Python编程有什么要求
- redis radix tree的简单解释
- 大数据之-Hadoop3.x_MapReduce_自定义序列化步骤---大数据之hadoop3.x工作笔记0095
- nnlm 中的 Softmax
- 方形物体绕中心旋转的扭力_转轴扭力测试方案
- 有多少人自驾过独库公路?
- mysql配置文件编写_MySQL5.7.28 配置文件编写
- python 视频培训
- android 动画插补器,Android动画之Interpolator插补器
- 学习笔记-安全-MAC地址攻击
- Altium designer--LM317/LM337封装图
- 跑腿小程序需要服务器吗,小程序设置流程
- think in java学习笔记
- 售前工程师的成长---一个老员工的经验之谈(二)(转载)
热门文章
- ubuntu18.04根目录已满造成开机失败报错Fail to start....
- 这些模具设计要点你要明白
- 斯坦福cs224n教程--- 学习笔记1
- WPF 文件、文件夹操作
- 密码学常用网站与解密脚本
- 如何搭建云进销存-销售管理系统?
- b、B、KB、MB、GB 的关系
- 更新vim8.0后,MacVim中YouCompleteMe出错
- SST-Calib:结合语义和VO进行时空同步校准的lidar-visual外参标定方法(ITSC 2022)
- 如何利用等比频宽公式将信号分解成部分重叠的子频段