1. 各平台程序开发步骤横向对比
运行在不同平台上的程序,开发过程不尽相同。为了更好地理解 ARM 裸机的开发流程,我们先和比较熟悉的 Windows、Linux 应用程序开发对比。
不同平台程序开发流程对比示意
2. 交叉编译
2.1 宿主机
编译嵌入式程序的平台称为宿主机,譬如运行 Ubuntu 系统的 PC。
2.2 目标机
运行嵌入式程序的平台称为目标机,譬如 ARM 开发板。
2.3 何谓交叉编译
在 X86 平台上编辑和编译代码,生成运行在 ARM 架构平台上的程序,因为两者架构不同,因此称之为交叉编译。
2.4 烧录方式
在 X86 上编译生成的镜像,可以通过 JTAG、USB、SD 卡、网络等方式烧写到 ARM 平台上。
3. 裸机开发常用工具
3.1 编辑器
3.1.1 大型代码阅读
大型代码阅读,推荐使用 source insight。
3.1.2 少量文件修改
少量文件修改,推荐使用 notepad++ 或 VS Code。
3.1.3 查看二进制文件
有时需要查看二进制文件(如 bin 文件),推荐使用 UltraEdit。
3.2 编译器
推荐使用 arm-linux-gcc。
arm-linux-gcc 是基于 Linux 平台的 arm 编译器,功能强大稳定,且开源免费。此外,arm-linux-gcc 支持的 arm 芯片型号丰富,更新速度很快。