第8章 ARM汇编语言与嵌入式C混合编程(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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [教学研究]2012西拉科学校团少队工作总结
- [教学研究]建筑工程公司档案管理制度
- [教学研究]小学数学人教版六年级上册圆的周长和面
- [教学研究]ERP电子行业解决方案
- [教学研究]钢支撑租赁合同范本
- [教学研究]预应力自动张拉系统用户手册Rev1.0
- [教学研究]MOOC课程:金瓶梅人物写真(每章节课后
- [教学研究]追加被执行人申请书(适用追加夫妻关系)
- [教学研究]2014年驾考科目一考试最新题库766
- [教学研究]2013-2014学年度九年级物理第15章《电
- [教学研究]新版中日交流标准日本语初级下26课-客
- [教学研究]小导管注浆施工作业指导书
- [教学研究]一般财务人员能力及人岗匹配评估表
- [教学研究]打1.2.页 小学一年级暑假口算100以内加
- [教学研究]学习贯彻《中国共产党党和国家机关基层
- [教学研究]2012年呼和浩特市中考试卷_35412
- [教学研究]最简易的电线电缆购销合同范本
- [教学研究]如何开展安全标准化建设
- [教学研究]工作分析与人岗匹配
- [教学研究]2016-2017学年高中历史第七单元现代中
- 山东省义务教育必修地方课程小学三年级
- 台湾宜兰大学互联网交换技术课程 01_In
- 思想品德:第一课《我知我家》课件(人
- SAR合成孔径雷达图像点目标仿真报告(附
- 利辛县“十三五”规划研究报告
- 2015-2020年中国手机APP行业市场发展趋
- 广告策略、创意表现、媒体方案
- 企业如何申请专利的的几点思考
- 《中国教育简史》网上作业
- 高中历史第二单元西方人文精神的起源及
- 年终晚会必备_精彩的主持稿_精心整理_
- 信息工程专业自荐书
- 2019高考历史人教版一轮练习:第十二单
- JAVA俱乐部管理系统软件需求规格说明书
- 2016-2021年中国小型板料折弯机行业市
- (人教新课标)六上_比的基本性质课件PPT
- 辽宁省公务员考试网申论备考技巧:名言
- 神经阻滞麻醉知情同意书
- 施工企业信息填报、审核和发布的相关事
- 初一(七年级)英语完形填空100篇




