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

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

ID:40260028

大小:603.00 KB

页数:81页

时间:2019-07-29

第8章 ARM汇编语言与嵌入式C混合编程_第1页
第8章 ARM汇编语言与嵌入式C混合编程_第2页
第8章 ARM汇编语言与嵌入式C混合编程_第3页
第8章 ARM汇编语言与嵌入式C混合编程_第4页
第8章 ARM汇编语言与嵌入式C混合编程_第5页
资源描述:

《第8章 ARM汇编语言与嵌入式C混合编程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第8章ARM汇编语言与嵌入式C混合编程本章首先简要的介绍了嵌入式C语言的编程规范,嵌入式开发中常用的位运算与控制位域及在嵌入式C程序设计中要注意的问题,为读者进行嵌入式C程序设计打基础。然后介绍在ARM汇编语言与嵌入式C语言进行相互调用的标准(AAPCS),并以大量的实例说明了相互调用应注意的问题。内容提要8.1嵌入式C编程规范8.2嵌入式C程序设计中的位运算8.3嵌入式C程序设计中的几点说明8.4嵌入式C程序设计格式8.5过程调用标准ATPCS与AAPCS8.6ARM汇编语言与嵌入式C混合编程8.1嵌入式C编程规范1、树立良好的编程习惯和编程思路,摒弃那些可能存在风险的编程行为。保证编写

2、出安全健壮的代码,进而保证嵌入式产品的安全性、可靠性。2、使编写的代码更加容易阅读、容易理解而且容易维护。3、良好的编程风格是提高程序可靠性非常重要的手段,也是大型项目多人合作开发的技术基础。4、遵循良好的共同的编码规范,也是提高编码能力,保证软件工程这个阶段质量的一个重要手段。同时也是衡量一个组织软件开发能力的一个重要指标。源代码的C程序文件可以分为两类:源文件和头文件。源文件和头文件中包含的内容是不同的。源文件主要包括以下内容:只在本文件内部使用的(对外部隐藏的)类型;只在本文件内部使用的(对外部隐藏的)常量;只在本文件内部使用的(对外部隐藏的)宏定义;全局变量和文件级(static)

3、变量的定义;函数原型声明和函数定义;包含文件部分,文件头的说明,函数头的说明。头文件中包含如下内容:提供给外部参照的类型;提供给外部参照常量;提供给外部参照宏定义;提供给外部参照(全局)函数原型声明;提供给外部参照全局变量的外部声明;包含文件部分,文件头的说明。但头文件中不要定义变量。排版规则如下:a.代码缩进空格数为4个。若是可能,尽量用空格来代替Tab键,b.较长的语句要分2行来书写,并用‘’符号隔开。uncrc=calcCRC16(Packet.p,unlen);if((UINT8)uncrc!=Packet.down_ser.mCrc[0]

4、

5、(UINT8)(uncrc>>8)

6、!=Packet.down_ser.mCrc[1]){BELL(ON);}c.函数代码的参数过长,分多行来书写。voidUARTSendAndRecv(UINT8*ucSendBuf,UINT8ucSendLength,UINT8*ucRecvBuf,UINT8ucRecvLength){……}d.if、do、while、switch、for、case、default等关键字,必须加上大括号{}。if(bSendEnd){BELL(ON);}变量的命名a.方法一:采用匈牙利命名法。例如平时声明32位整型变量Length对应为unLength。变量类型示例charcLengthunsigne

7、dcharucLengthshortintsLengthunsignedshortintusLengthintnLengthunsignedintunLengthchar*szBufunsignedchar*uszBufvolatileunsignedchar__ucLength方法二:局部变量以小写字母命名;全局变量以首字母大写方式命名;定义类型和宏定义常数以大写字母命名;变量的作用域越大,它的名字所带有的信息就应该越多。局部变量:intstudent_age;全局变量:intStudentAge;宏定义常数:#defineSTUDENT_NUM10类型定义:typede

8、fINT16Sint;全局变量和全局函数的命名一定要详细,不惜多用几个单词,例如函数UARTPrintfStringForLCD,用于编译开关的文件头,必须加上当前文件名称,防止编译时产生冲突。例如在UARTInterface.h头文件中,必须加上以下内容#ifndef__UARTINTERFACE_H__#define__UARTINTERFACE_H__externvoidUARTPrintfString(CONSTINT8*str);externvoidUARTSendNBytes(UINT8*ucSendBytes,UINT8ucLen);……//其他外部声明的代码#endif8.

9、2嵌入式C程序设计中的位运算位运算符描述位运算符描述&按位与~取反

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

11、”是把参与运算的两个操作数对应的各个二进制位进行按位相或。对应的两个二进制位中只要有一个为1,结

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。