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寄存器的语法相关推荐

  1. jtag访问arm内核寄存器

    jtag的原理图 jtag接口访问arm Device ID code register的步骤 jtag接口访问arm Device ID code register的功能验证的testbench j ...

  2. ARM 寄存器 详解

    From( ARM 寄存器详解 ):https://blog.csdn.net/sandeldeng/article/details/52954781 ARM 汇编基础教程:2.数据类型和寄存器:ht ...

  3. ARM处理器的运行模式和ARM寄存器

    一.ARM处理器共有7种运行模式  处理器模式 描述 用户模式(User,usr) 正常程序执行的模式 快速中断模式(FIQ,fiq) 用于高速数据传输和通道处理 外部中断模式(IRQ,irq) 用于 ...

  4. 【嵌入式开发】ARM 芯片简介 (ARM芯片类型 | ARM处理器工作模式 | ARM 寄存器 | ARM 寻址)

    作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42375701 相关资源下载 :  -- 三星 ARM Archit ...

  5. ARM寄存器及功能介绍/R0-R15寄存器

    1.ARM 寄存器组介绍 ARM 处理器一般共有 37 个寄存器,其中包括: (1) 31 个通用寄存器,包括 PC(程序计数器)在内,都是 32 位的寄存器. (2) 6 个状态寄存器,都是 32 ...

  6. ARM寄存器组织与异常处理

    目录 一.ARM寄存器组织 1.寄存器 概念 作用 分类 2.ARM寄存器 3.专用寄存器 R15(PC,Program Counter) R14(LR,Link Register) R13(SP,S ...

  7. ARM知识扫盲-RISC架构-ARM寄存器-ARM指令集

    文章目录 简介: ARM寄存器 特殊寄存器 ARM指令集 简介: ARM本身使用的是RISC精简指令集架构,除此之外还有开源的RISC指令集架构RISC-V,复杂指令集CISC(Complex Ins ...

  8. ARM寄存器的7种工作模式和几种寻址方式

    ARM寄存器的7种工作模式 CPSR[5:0] 10000 user 10001 FIQ 10010 IRQ 10011 SVC 10111 中止 11011 未定义 11111 系统 用这两个指令读 ...

  9. linux arm寄存器,【寄存器】在armv8/armv7中ARM system control registers的区别

    以SCTLR寄存器来阐述在armv7.armv8-arch64.armv8-arch64的使用方式 (其实大多数的系统寄存器,都是这种处理方式) SCTLR是system control regist ...

最新文章

  1. sql2005配置文件服务器,SQL server服务器版的安装方法
  2. 1.0 封装后的布局成本
  3. 15_clickhouse,MySQL引擎;MySQL和ClickHouse中数据类型的对应关系
  4. 脉冲宽度调制pdm_0-500V可调0-30A高频脉冲电源广元厂家
  5. php多进程mysql更新不了_php MYSQL 数据更新修改不了
  6. Graphics在java的哪个包_如何在Java中成功扩展Graphics
  7. 自学python需要什么_自学Python编程有什么要求
  8. redis radix tree的简单解释
  9. 大数据之-Hadoop3.x_MapReduce_自定义序列化步骤---大数据之hadoop3.x工作笔记0095
  10. nnlm 中的 Softmax
  11. 方形物体绕中心旋转的扭力_转轴扭力测试方案
  12. 有多少人自驾过独库公路?
  13. mysql配置文件编写_MySQL5.7.28 配置文件编写
  14. python 视频培训
  15. android 动画插补器,Android动画之Interpolator插补器
  16. 学习笔记-安全-MAC地址攻击
  17. Altium designer--LM317/LM337封装图
  18. 跑腿小程序需要服务器吗,小程序设置流程
  19. think in java学习笔记
  20. 售前工程师的成长---一个老员工的经验之谈(二)(转载)

热门文章

  1. ubuntu18.04根目录已满造成开机失败报错Fail to start....
  2. 这些模具设计要点你要明白
  3. 斯坦福cs224n教程--- 学习笔记1
  4. WPF 文件、文件夹操作
  5. 密码学常用网站与解密脚本
  6. 如何搭建云进销存-销售管理系统?
  7. b、B、KB、MB、GB 的关系
  8. 更新vim8.0后,MacVim中YouCompleteMe出错
  9. SST-Calib:结合语义和VO进行时空同步校准的lidar-visual外参标定方法(ITSC 2022)
  10. 如何利用等比频宽公式将信号分解成部分重叠的子频段