目录
一.创建新工程
取名test1
选择STM32F103C8
二.编写程序
2.1 main.c
-
#include<stdio.h> extern void Init_1(void); int main(){ Init_1(); return 0; }
2.2 Func.s
-
AREA My_Function,CODE,READONLY ;这一行必有的除了My_ Function可以自己取名意以外,其它的都是模版啦 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段 LOOP_END ;写在最左边的是程序段的段名,执行跳转程序时要用到 NOP END ;必须空格后在写END,不然会认为是段名,会结束程序
注释变成了问号,解决办法Edit-configuraton
点击ok就可以啦,重新复制一遍就ok啦
2.3 原理
首先在C里面用 extern 声明 Init_1这个函数,再在main里面调用好了。 然后在汇编里面用EXPORT Init_1与C联系起来就可以了。