有趣生活

当前位置:首页>科技>stm32 keil安装STM32入门学习第三阶段Keil

stm32 keil安装STM32入门学习第三阶段Keil

发布时间:2026-07-25阅读(1)

导读一,预备知识看过《STM32入门学习第一或二阶段视频教程》,对STM32有一定的基础;或没有基础,先看此文再去看《STM32入门学习第一或二阶段视频教程》1....一,预备知识

看过《STM32入门学习第一或二阶段视频教程》,对STM32有一定的基础;或没有基础,先看此文再去看《STM32入门学习第一或二阶段视频教程》

1,C程序到可执行程序的四个步骤:

预处理(Preprocessing),编译(Compilation),汇编(Assemble),链接(Linking)

2,回顾GCC编译过程(以doubixiaohanhan.c举例)

(参考 逗比小憨憨的《gcc零基础入门学习教程》)

//doubixiaohanhan.c#include <stdlib.h>#include <stdio.h>int main(int argc, char **argv){ int i = 0; if(argc < 2) { printf("parameters is not enough\n"); exit(1); } while(argv[i]) { printf("argv[%d]=%s\n",i,argv[i]); i ; } return 0; }

(1)预处理

以“#”号开头的预处理指令,比如包含#include,宏定义指定#define等。在源程序中这些指令都放在函数之外,而且一般放在源文件的前面。使用预处理器把源文件doubixiaohanhan.c经过预处理生成doubixiaohanhan.i文件。(简单来说就是展开程序中的宏等)

预处理的命令为:gcc -E doubixiaohanhan.c -o doubixiaohanhan.i

(2)编译

指将经过预处理文件(doubixiaohanhan.i)之后的程序转换成特定汇编(doubixiaohanhan.s)代码的过程。

命令:gcc -S doubixiaohanhan.i -o doubixiaohanhan.s

备注:Linux下,命令stat可以查看汇编代码和代码大小;命令file可以查看文件类型

(3)汇编

汇编过程将上一步生成的汇编代码转换成机器码,这一步产生的文件叫做目标文件,是二进制格式。

命令:gcc -c doubixiaohanhan.s -o doubixiaohanhan.o

(4)链接

链接过程使用链接器将上述目标文件与其它目标文件、库文件、启动文件等链接起来生成可执行文件。附加的目标文件包括静态连接库和动态连接库。

命令: gcc doubixiaohanhan.o -o doubixiaohanhan

备注:指定库文件路径 gcc -L xxx(参考 逗比小憨憨的《gcc零基础入门学习教程》)

二,keil MDK编译程序过程详解

(1) 编译(汇编):MDK 软件使用的编译器是 armcc 和 armasm,它们根据每个 c/c 和汇编源文件编译成对应的以“.o”为后缀名的对象文件 (Object Code,也称目标文件),其内容主要是从源文件编译得到的机器码,包含了代码、数据以及调试使用的信息。

(2) 链接:链接器 armlink 把各个.o文件和相应的库文件链接成一个映像文件“.axf”或“.elf”

(3) 格式转换:一般来说 Windows 或 Linux 系统使用链接器直接生成可执行映像文件elf 然后,内核根据该文件的信息加载后,就可以运行程序了,但在单片机平台上,需要把该文件的内容加载到芯片上,所以还需要对链接器生成的 elf 映像文件利用格式转换器 fromelf 转换成“.bin”或“.hex”文件,交给下载器下载到芯片的 FLASH 或 ROM 中。

扩展知识点:hex文件与bin文件的主要区别?

hex文件包含了

TAGS标签:  stm32  keil  安装  入门  stm32 keil

Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图