【嵌入式06】STM32的C与汇编语言混合编程

本文介绍了在Keil环境下,如何进行STM32的C与汇编语言混合编程,包括C调用无参数汇编函数、有参数汇编函数以及汇编函数调用C语言的实现步骤,并通过实例进行仿真调试,展示了C与汇编的交互过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值