参数传递规则
- 参数不超过4个时,可以使用寄存器R0~R3来传递参数,当参数超过4个时,还可以使用数据栈来传递参数。
- 结果为一个32位整数时,可以通过寄存器R0返回
- 结果为一个64位整数时,可以通过寄存器R0和R1返回,依次类推。
汇编程序、C程序及C++程序相互调用
C程序调用汇编程序:
o 汇编程序的设置要遵循ATPCS规则,保证程序调用时参数的正确传递。
o 在汇编程序中使用EXPORT伪指令声明本子程序,使其它程序可以调用此子程序。
o 在C
语言程序中使用extern
关键字声明外部函数(声明要调用的汇编子程序),即可调用此汇编子程序。
o 调用汇编的C
函数:
o 示例
#include
extern
voidstrcopy(char *d,const char *s)
//声明外部函数,即要调用的汇编
intmain(void)
{
}
o 被调用汇编子程序:
strcopy ;R0
为目标字符串的地址
汇编程序调用C程序
o 汇编程序的设置要遵循ATPCS
规则,保证程序调用时参数的正确传递.
o 在汇编程序中使用IMPORT伪指令声明将要调用的C
程序函数.
o 在调用C
程序时,要正确设置入口参数,然后使用BL 调用.
o 汇编调用C
程序的C
函数:
{
}
o 汇编调用C
程序的汇编程序
CALLSUM
嵌入式C编程
概述:
植性好和可读性强。C语言支持模块化程序设计,支持自顶
向下的结构化程序设计方法。因此在嵌入式程序设计中经
常会用到C语言程序设计。
嵌入式工程实际应用进行程序设计。也就是说它首先是C语
言程序设计,因此必须符合C语言基本语法,只是它是面向
嵌入式的应用而设计的程序。
o C语言的“预处理伪指令”在嵌入式程序设计中的应用。
1、文件包含伪指令
#include <头文件名.h> ;标准头文件
#include “头文件名.h” ;自定义头文件
2、宏定义伪指令
#define
宏标识符 宏体
n #define U32
unsigned int
n