Keil MDK配置ARM开发环境

Keil MDK配置ARM开发环境

1. 安装Keil MDK

安装方法这里不再说明,懂得都懂!

2. 安装ARM开发包

在Keil MDK5之后,不再原生支持ARM7/9,需要自行安装软件包,链接在这,注意安装与自己MDK版本对应的那个包

Keil MDK配置ARM开发环境_第1张图片

我的版本是5.18,下载之后傻瓜式安装,因为它会自动检测你MDK所在的位置。

3. 新建工程

Keil MDK配置ARM开发环境_第2张图片

注意:选择硬件时,下拉找到Legacy Device Database [no RTE]!!!,接着选择具体型号。

然后:

Keil MDK配置ARM开发环境_第3张图片

一定要点!!!

否则后面会多很多事

4. 配置

点开魔术棒,设置如下:

Keil MDK配置ARM开发环境_第4张图片

5. start coding now!

下面是一个C语言与汇编语言相互调用的一个例子

asse2.s

;/*
; * 汇编语言编写实验
; * 该程序演示 C 语言和汇编语言的相互调用方法
; */
	IMPORT Main ; The main entry of mon program
	EXPORT asse_add
	AREA Init, CODE, READONLY ; name this block of code
num EQU 20
;/*
; * 程序入口地址,传递参数并设置堆栈
; */
ENTRY ; mark the first instruction to call 
_start
	MOV sp, #0x33000000 ;/*建立栈指针(r13)*/
	B Main ;/*跳转到 C 语言程序*/
	B _start ;/*死循环,Main 程序执行完成后将重新运行Main 函数,永远不退出*/

;/*
; * int asse_add(int x, int y);
; */

asse_add
		ADD r0, r0, r1 ;/*r0 = r0 + r1*/
		MOV pc, lr ;/*函数返回*/
	END

main.c:

/*
 * C 语言演示程序
 */
extern int asse_add(int x, int y);
int embed_add(int x, int y);
void Main()
{
    int x, y;
    /*调用汇编函数 asse_add*/
    x = asse_add(10, 20);
    y = embed_add(10, 20);
}
int embed_add(int x, int y)
{
    int tmp;
    __asm
        {
            add tmp, x, y
        }
    ;
    return tmp;
}

6. 调试

可以正常调试运行:

Keil MDK配置ARM开发环境_第5张图片

你可能感兴趣的:(硬件,stm32单片机,arm开发)