stm32混合c语言编程
根据一定了解keil建立工程里面创建文件
创建c语言程序加入工程里`
//main.c
# include<stdio.h>
extern void Init_1(void);
int main()
{
Init_1();
return 0;
}
//func.s
AREA MY_FUNCTION,CODE,READONLY
EXPORT Init_1 ;//??c??????Init_1??????
; //?????????????????????????,????????????????
Init_1
MOV R1,#0 ; //?R1????i
MOV R2,#0 ; //?R2????j
LOOP ;// ?????????????,?????????
CMP R1,#10 ; //??R1?10???
BHS LOOP_END ;// ??R1????10,????LOOP_END???,???????,?????????
ADD R2,#1 ; //j++
ADD R1,#1 ; //i++
B LOOP ; //??
LOOP_END
NOP
END ; //???????END,?????????,??????
将两个文件加入到工程里面
在main.c和func.s里面设置相关断点
断点设置完成进行单步运行
不断的单步运行会发现寄存器R1,R2会不断的加一到10
改变函数可完成
//func.s
AREA My_Function,CODE,READONLY;
EXPORT Init_1;
;
Init_1
ADD R0,#100;//将R0与100相加
END;
//main.c
#include<stdio.h>
extern int Init_1(int x);
int main()
{
Init_1(10);
return 0;
}
即传递整形函数10 ,之后R0与100相加放入R0中