ARM嵌入式:从汇编访问C变量及系统概述
需积分: 15 51 浏览量
更新于2024-07-12
收藏 1.83MB PPT 举报
"从汇编中访问C变量-ARM入门ppt"
这篇内容主要涉及的是嵌入式系统中的ARM架构以及如何从汇编语言中访问C语言定义的变量。ARM是一种广泛应用于嵌入式系统中的微处理器架构,以其低功耗、高性能和广泛应用而著名。ARMADS是ARM应用开发的一种集成开发环境,用于编写、编译和调试ARM处理器上的代码。
在ARM汇编语言中,访问C变量涉及到对内存和寄存器的操作。在提供的示例中,我们看到一个简单的汇编子程序`asmsub`,它展示了如何通过汇编代码来读取、修改并写回C语言定义的全局变量`globv1`的值。首先,`AREA globals, CODE, READONLY`声明了一个名为`globals`的代码段,该段是只读的。接着,`EXPORT asmsub`表示`asmsub`函数可供其他代码调用。
`IMPORT globv1`是一个伪操作,表明`globv1`是在其他模块中定义的全局变量,需要在当前汇编程序中导入。然后,`asmsub`子程序开始,首先使用`LDR r1, =globv1`指令将`globv1`的内存地址加载到寄存器`R1`。这里的`=globv1`是一个立即数,代表变量的地址。`LDR r0, [r1]`则将`globv1`的值加载到寄存器`R0`中。之后,`ADD r0, r0, #2`将`R0`的值增加2,这是对变量进行修改的操作。修改后的值通过`STR r0, [r1]`写回至`globv1`所在的内存地址。最后,`MOV pc, lr`指令返回,其中`pc`是程序计数器,`lr`是链接寄存器,用于保存返回地址。
在嵌入式系统中,混合使用C和汇编语言可以利用C语言的高级抽象和汇编语言的低级控制能力,达到优化性能和节省资源的效果。课程大纲中提到的其他主题,如ARM体系结构、指令格式、条件码、指令分类、异常和中断处理等,都是理解ARM系统设计和编程的基础。这些知识对于嵌入式开发人员来说至关重要,因为它们涉及到如何有效地编写代码以适应特定硬件平台的需求。
嵌入式系统是20世纪70年代以来逐步发展起来的技术,从最初的单线程程序到后来支持实时操作系统的复杂系统,它们在各个领域都有广泛的应用,如工业控制、交通管理、信息家电、家庭智能系统和环境工程等。嵌入式系统的特点包括低功耗、小型化、高集成度、高效能和与具体应用的紧密结合,其开发通常涉及交叉编译过程,即在一台主机上完成编码、编译,然后在目标设备上运行和调试。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2022-11-14 上传
2008-01-27 上传
2024-04-29 上传
2022-09-21 上传
2021-10-06 上传
2021-10-06 上传
无不散席
- 粉丝: 33
- 资源: 2万+
最新资源
- VBCABLE_B_Driver.zip
- sarekt:Rust中的后端不可知渲染器
- daily-archive:WordPress插件,可让您按日期查看存档页面
- Apple-Pie-Bot:Github回购Apple Pie机器人
- documentation:Docker mate的文档
- x79 e5 1620v2 rx580(macOS 10.15.3)EFI
- 【GIS数据】建筑物数据更新数据
- django-todolist:用于学习Django的一次性项目
- jk-php-minify-js
- advertiser-integration
- p2plex:通过Hyperswarm对点进行多路加密连接
- RealSenses-MovingMouseWithBlinks
- X79黑苹果EFI E5 V2
- currencyConverter2
- 个人房屋买卖合同范本.zip
- VBA挑战:第2周的数据作业