一、IDE背后的命令
- IDE指集成开发环境(Integrated Development Environment)。 我们开发STM32F103等单片机程序时使用是keil就是一种IDE。
- 使用GitBash执行命令的话,由于GitBash采用类似Linux的文件路径表示方法(比如 /d/abc,而非 d:\abc),命令行中windows格式的路径名要加上双引号,比如".\objects\main.o"
- 使用dos命令行执行命令的话 不需要加双引号
- 参考链接(重要):
- (3条消息) [006] [ARM-Cortex-M3/4] 机器码、汇编与反汇编_arm机器码转换工具_柯西的彷徨的博客-CSDN博客
- KEIL 工程的文件类型
-
- 需要弄成一行(识别成回车符他就当成一条指令执行了)(具体得看那个视频讲解)
- 在某个Keil工程所在目录下,打开Git Bash:
-
- Keil 配置界面选项讲解:(4条消息) 【工具使用】Keil5软件使用-进阶工程配置篇_keil编译器设置_知识噬元兽的博客-CSDN博客
- 这篇文章讲的是 Keil 命令编译:(4条消息) [011] [STM32] MDK使用命令行进行编译与链接_stm32命令行_柯西的彷徨的博客-CSDN博客
-
- 引入命令行:如果你只学习单片机,只想使用 KEIL,当然能不学习命令行;但是如果想升级到Linux、各类RTOS,需要掌握命令行!!!
- 目前有两套主要的编译器:
- ARMCC
- ARM公司的编译器
- KEIL使用的就是ARMCC
- GCC
- GNU 工具链
- LINUX等 Kai 源 软件经常使用GCC
总结:后面以GNU工具链为例讲解,所涉及的知识能平移到ARMCC上 !!!
二、GCC 实战
- 准备工作:arm-linux-gcc和gcc类似的:参考链接:(4条消息) gcc和arm-linux-gcc的区别_冷月枫啊的博客-CSDN博客
- arm-linux-gcc:给 arm 芯片编译程序
- gcc:在x86编译程序(Linux 操作系统可以识别与运行)
- 用法基本一样
- 为方便演示,我们使用gcc
- 为了方便在windows下演示,我们使用 Code:Blocks(自带GCC工具链)
- Code:Blocks 是一款基于GCC的windows IDE,可以用来开发C/C++/Fortran
- 设置 Window 环境变量:在Path环境变量中添加:
C:\Program Files\CodeBlocks\MinGW\bin
- 启动Git Bash,编译程序hello.c ==> 编译、运行命令
- gcc -o hello hello.c
./hello.exe
- gcc 使用方法: gcc [选项] 文件名
-
- 一个c/c++文件要经过预处理、编译、汇编和链接才能变成可执行文件
-
-
-
- 最后链接时,使用arm-linux-ld 而不是 arm-linux-gcc
- 前者可以完全自己指定所连接的文件
- 后者会链接一些默认的启动文件
《嵌入式Linux应用开发完全手册》中的《3.1 交叉编译工具选项说明》
三、 Makefile的引入及规则(暂时不研究,需要花费心思去学习才行)
- 使用 KEIL、MDK、AVR 等工具开发程序时点击鼠标就可以编译了,它的内部机制是什么?它是怎么组织管理程序?怎么决定编译哪一个文件?
- 实际上Windows工具管理程序的内部机制,也是Makefile,我们在linux下来开发裸板程序的时候,使用Makefile组织管理这些程序,本节我们来讲解Makefile最基本的规则。Makefile 要做什么事情呢:组织管理程序,组织管理文件,我们写一个程序来实验一下:
- makefie最基本的语法是规则,规则:
- 目标 : 依赖1 依赖2 ...
[TAB]命令 -
学习Makefile的话可以:
-
a. 百度搜 "gnu make 于凤昌"。
-
b. 查看官方文档: GNU Make Manual - GNU Project - Free Software Foundation
-
通 配 符(具体参考视频学习 !!!)