6ARM汇编语言与嵌入式C混合编程.ppt

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6ARM汇编语言与嵌入式C混合编程.ppt

宏定义(#define) (1). 不带参数的宏 不带参数的宏定义的一般形式为: #define 宏名 [宏体] (2).带参数的宏定义 带参数的宏定义一般形式为: #define 宏名(参数表) 宏体 (3). 宏定义与函数 带参宏与函数的区别 文件包含(#include) 文件包含的功能是使得一个源文件可以将另一个源文件的内容全部包含进来,它的一般形式为: #include “文件名” //先搜索当前目录,再搜索标准目录,可以指定目录 #include文件名 //直接按标准目录搜索 应用举例见教材《ARM嵌入式系统结构与编程》第198页例8-9 /*头文件test.h */ #define SQR(x) ((x)*(x)) #define CUBE(x) ((x)*(x)*(x)) #define QUAD(x) ((x)*(x)*(x)*(x)) /*源文件 test.c*/ #include stdio.h #include e:\qiutie\test.h //指定目录,包含头文件 #define MAX_POWER 10 void main() { int n; printf(number\t exp2\t exp3\t exp4\n); printf(----\t----\t-----\t------\n); for(n=1;n=MAX_POWER;n++) printf(%2d\t %3d\t %4d\t %5d\n,n,SQR(n),CUBE(n),QUAD(n)); } 程序运行结果 条件编译 (1). 形式1: #ifdef 标识符 程序段1 #else 程序段2 #endif (2). 形式2 #ifndef 标识符 程序段1 #else 程序段2 #endif (3). 形式3 #ifdef 表达式1 程序段1 #elif 表达式2 程序段2 #else 程序段3 #endif 8.4嵌入式C程序设计格式 8.4.1 可重入函数 8.4.2 中断处理程序 8.4.3 模块化程序设计 8.4.1 可重入函数 如果某个函数可以被多个任务并发使用,而不会造成数据错误,我们就说这个函数具有可重入性(reentrant) 。 可重入函数可以使用局部变量,也可以使用全局变量。 如果使用全局变量,则应通过关中断、信号量(即P、V操作)等手段对其加以保护 示例解析: 分析下面的函数是否具有可重入性 static int tmp; void swap(int* a, int* b) { tmp=*a; *a=*b; *b=tmp; } void swap(int* a, int* b) { int tmp; tmp=*a; *a=*b; *b=tmp; } 在操作系统中,通过信号量机制使得函数具有可重入性: static int tmp; void swap(int* a, int* b) { [申请信号量操作] tmp=*a; *a=*b; *b=tmp; [释放信号量操作] } 8.4.2 中断处理程序 在编写中断服务程序时需要满足如下要求: (1)不能向中断服务程序传递参数; (2)中断服务程序没有返回值; (3)中断服务程序应要尽可能短,来减少中断服务程序的处理时间,保证实时系统的性能。 8.4.3 模块化程序设计 嵌入式C程序设计主要采用模块化设计方法,将系统内的任务进行合理的划分,将具有同一属性或相同类别的代码归为一类组成模块,每个模块的功能相对独立。 将整个软件系统分为多个模块,编程思路就会很清晰。 嵌入式系统软件模块划分 示例解析 应用举例见教材《ARM嵌入式系统结构与编程》第202页例8-14 第8章 ARM汇编语言与嵌入式C混合编程 上半部完 下半部内容提示 8.5 过程调用标准ATPCS与AAPCS 8.6 ARM汇编语言与嵌入式C混合编程 * TM * * TM 配套教材: 《ARM嵌入式系统结构与编程》,第2版 邱铁 编著,清华大学出版社,2013.8 E_mail:openembed@ ARM嵌入式系统结构与编程 第8章 ARM汇编语言与嵌入式C混合编程 本章首先简要的介绍了嵌入式C语言的编程规范,嵌入式开发中常用的位运算与控制位域及在嵌入式C程序设计中要注意的问题,为读者进行嵌入式C程序设计打基础。然后介绍在ARM汇编语言与嵌入式C语言进行相互调用的标准(AAPCS),并以大量的实例说明了相互调用应注意的问题。 内容提要 8.1 嵌入式C编程规范 8.2 嵌入式C程序设计中的位运算 8.3 嵌入式C程序设

文档评论(0)

zcbsj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档