教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教学研究 >

第8章 ARM汇编语言与嵌入式C混合编程(1)

来源:网络收集 时间:2026-09-13
导读: 嵌入式学习 ARM嵌入式系统结构与编程 ARM嵌入式系统结构与编程配套教材: 配套教材:ARM嵌入式系统结构与编程 嵌入式系统结构与编程》 《ARM嵌入式系统结构与编程》, 编著,清华大学出版社, 邱铁 编著,清华大学出版社,2009,3 TM 1 嵌入式学习 汇编语言与

嵌入式学习

ARM嵌入式系统结构与编程 ARM嵌入式系统结构与编程配套教材: 配套教材:ARM嵌入式系统结构与编程 嵌入式系统结构与编程》 《ARM嵌入式系统结构与编程》, 编著,清华大学出版社, 邱铁 编著,清华大学出版社,2009,3

TM

1

嵌入式学习

汇编语言与嵌入式C混合编程 第8章 ARM汇编语言与嵌入式 混合编程 章 汇编语言与嵌入式本章首先简要的介绍了嵌入式C语言的编程规 本章首先简要的介绍了嵌入式 语言的编程规 范 , 嵌入式开发中常用的位运算与控制位域 及在嵌入式C程序设计中要注意的问题, 及在嵌入式 程序设计中要注意的问题,为读 程序设计中要注意的问题 者进行嵌入式C程序设计打基础。然后介绍在 者进行嵌入式 程序设计打基础。 程序设计打基础 ARM汇编语言与嵌入式 语言进行相互调用 汇编语言与嵌入式C语言进行相互调用 汇编语言与嵌入式 的标准( 的标准(AAPCS),并以大量的实例说明了 ) 相互调用应注意的问题。 相互调用应注意的问题。TM

嵌入式学习

内容提要8.1 . 8.2 . 8.3 . 8.4 . 8.5 . 8.6 . 嵌入式C编程规范 嵌入式 编程规范 嵌入式C程序设计中的位运算 嵌入式 程序设计中的位运算 嵌入式C程序设计中的几点说明 嵌入式 程序设计中的几点说明 嵌入式C程序设计格式 嵌入式 程序设计格式 过程调用标准ATPCS与AAPCS 与 过程调用标准 ARM汇编语言与嵌入式 混合编程 汇编语言与嵌入式C混合编程 汇编语言与嵌入式TM

3

嵌入式学习

8.1 嵌入式 编程规范 嵌入式C编程规范在当前的嵌入式开发中,嵌入式 语言是最 在当前的嵌入式开发中,嵌入式C语言是最 为常见的程序设计语言,对于程序员来说, 为常见的程序设计语言,对于程序员来说, 能够完成相应功能的代码并不一定是优秀的 代码。 代码。 优秀的代码还要具备易读性、易维护性、 优秀的代码还要具备易读性、易维护性、具 易读性 可移植和高可靠性。 有可移植和高可靠性。

TM

4

嵌入式学习

8.1.1 嵌入式 程序书写规范 嵌入式C程序书写规范排版规则如下: 排版规则如下: (1)程序块要采用缩进风格编写 ) 个字符) (2)较长的语句(例如超过 个字符)要分成多行书写 )较长的语句(例如超过80个字符 (3)循环、判断等语句中若有较长的表达式或语句,则要 )循环、判断等语句中若有较长的表达式或语句, 进行适应的划分 (4)若函数或过程中参数较长,也要进行适当的划分。 )若函数或过程中参数较长,也要进行适当的划分。 (5)一般不要把多个短语句写在一行中 ) (6)程序块的分界符语句的大括号“{”与“}”一般独占一 )程序块的分界符语句的大括号“ 与 一般独占一 行

并且在同一列TM

5

嵌入式学习

书写规范示例: 书写规范示例:if (((ptcb->OSTCBStat & OS_STAT_SUSPEND) = = OS_STAT_RDY) &((ptcb->OSTCBStat & OS_STAT_SUSPEND_X) = = OS_STAT_RDY_X)) { ... // 程序代码 A } else { ... // 程序代码 B

TM

6

嵌入式学习

8.1.2 命名规则(1)标识符的名称要简明,能够表达出确切的含义 标识符的名称要简明, 标识符的名称要简明 可以使用完整的单词或通常可以理解的缩写。 ,可以使用完整的单词或通常可以理解的缩写。 (2)如果在命名中使用特殊约定或缩写,则要进 )如果在命名中使用特殊约定或缩写, 行注释说明。 行注释说明。 例如i、 (3)对于变量命名,一般不取单个字符 ,例如 、j )对于变量命名, 例如 、k... (4)函数名一般以大写字母开头;所有常量名字 )函数名一般以大写字母开头; 母统一用大写。 母统一用大写。TM

7

嵌入式学习

8.1.3 注释说明注释有助于程序员理解程序的整体结构, 注释有助于程序员理解程序的整体结构,也便于以 后程序代码的维护与升级。常用的规则如下: 后程序代码的维护与升级。常用的规则如下: (1)注释语言必须准确、简洁且容易理解 )注释语言必须准确、简洁且容易理解; 2) (2)程序代码源文件头部应进行注释说明 ; (3)函数头部应进行注释; )函数头部应进行注释; (4)程序中所用到的特定含义的常量、变量,在 )程序中所用到的特定含义的常量、变量, 声明时都要加以注释 ;TM

8

嵌入式学习

(5)对于宏定义、数据结构声明,如果其命 )对于宏定义、数据结构声明, 名不是充分自注释的,也要加以注释。 名不是充分自注释的,也要加以注释。 (6)如果注释单独占用一行,与其被注释的 )如果注释单独占用一行, 内容进行相同的缩进方式, 内容进行相同的缩进方式,一般将注释与其 上面的代码用空行隔开 (7)程序代码修改时,其注释也要及时修改 )程序代码修改时, 一定要保证代码与注释保持一致。 ,一定要保证代码与注释保持一致。TM

9

嵌入式学习

命名规则示例: 命名规则示例:

/***************************************************************** 文件名:Test_LED.c 版本号:v1.0 创建日期:2008-7-1 作者:FE2008 硬件描述:S3C2410 GPF4 连接 LED1,S3C2410 GPF5 连接 LED2 主要函数描述:TestLED1( )函数实现 LED1 进行闪烁;TestLED2( )函数实现 LED2 进行闪烁。 修改日志:2008-8-1 by qiutie 将 LED1 的闪烁间隔时间改为 100ms。 *****************************************************************/

TM

10

嵌入式学习

8.2 嵌入式 程序设计中的位运算 嵌入式C程序设计中的位运算

在嵌入式程序设计中, 在嵌入式程序设计中,位操作是最常用的运 算之一, 算之一,因为在很多情

况下要对寄存器中的 某位或某个管脚进行操作, 某位或某个管脚进行操作,这些都需要用位 操作来完成。 操作来完成。

TM

11

嵌入式学习

8.2.1 按位与操作

按位与运算符“ 是把参与运算的两个操作 按位与运算符“&”是把参与运算的两个操作 数所对应的各个二进制位进行按位相与。 数所对应的各个二进制位进行按位相与。只 有当对应的两个二进制位全为1时 有当对应的两个二进制位全为 时,结果才为 1,否则为 。参与运算的两个操作数以补码 ,否则为0。 形式出现。 形式出现。

TM

12

嵌入式学习

例如7 例如 & 3,补码分别为 ,补码分别为0000 0111与0000 与 0011 按位与运算后结果为 按位与运算后结果为0000 0011等于十 等于十 进制的3。 进制的 。按位与操作可以实现将特定的位清 也可以用于提取出某数的指定位。 零,也可以用于提取出某数的指定位。

TM

13

嵌入式学习

8.2.2按位或操作 按位或操作按位或操作运算符“ 是把参与运算的两个 按位或操作运算符“|”是把参与运算的两个 操作数对应的各个二进制位进行按位相或。 操作数对应的各个二进制位进行按位相或。 对应的两个二进制位中只要有一个为1, 对应的两个二进制位中只要有一个为 ,结果 就为1,当两个对应的二进制位都为0时 就为 ,当两个对应的二进制位都为 时,结 果位为0。 果位为 。参与运算的两个操作数均以补码形 式出现。 式出现。

TM

14

嵌入式学习

例如7 , 的补码为 的补码为0000 0111,3的补码 例如 | 3,7的补码为 , 的补码 为0000 0011,结果为 ,结果为0000 0111。按位与操 。 作可以实现将特定位的置位操作, 作可以实现将 …… 此处隐藏:2143字,全部文档内容请下载后查看。喜欢就下载吧 ……

第8章 ARM汇编语言与嵌入式C混合编程(1).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1581089.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)