Keil下STM32的C与汇编语言混合编程
文章目录
一、题目要求
修改参考代码,要求将原汇编语言 Init_1函数的类型改为 int Init_1(init) ,此函数功能修改为 传入一个整型数x,函数运行后返回整型数 x+100。 请编程实现,并仿真跟踪调试;
二、项目创建
选择设备
打开Keil ARM,Project->New μVision Project->选择STM32F103ZE
设置工程的目标环境,本文基于STM32F103ZE,因此在弹出的窗口选择相应的选项,点击保存即可;具体如下图所示
选择运行环境
ARM的CMSIS已经把开发所需要的软件组件都封装好了,因此直接选择即可;
1.CMSIS下选择CORE;
2.Device下Startup,其中包含了启动文件;
具体如下图所示;
添加源文件
鼠标右键单击Source Group 1,具体如下图所示
选择Add New Item to Group
添加源文件,因为创建汇编项目;
1.选择 Asm File (.s) ,创建汇编文件;
2.设置源文件的名称;
3.点击保存;
代码如下
#include<stdio.h>
extern void Init_1(void);
int main()
{
Init_1 ();
return 0;
}
AREA My_Function,CODE,READONLY ;这一行必有的 除了My_Function可以自己取名外 其他都是模板了
EXPORT Init_1 ;与在c文件中定义的Init_1函数关联起来
;高级语言中的声明和使用变量其实是对板子寄存器的使用,所以我们只需要直接使用寄存器即可
Init_1
MOV R1,#0