1.2.1 嵌入式 Linux 开发有哪些内容?
嵌入式 Linux 系统,就相当于一套完整的 PC 软件系统。
Windows 为例:
① 电脑一开机,那些界面是谁显示的? 是 BIOS,它做什么?一些自检,然后从硬盘上读入 windows,并启动它。 类似的,这个 BIOS 对应于嵌入式 Linux 里的 bootloader。 Bootloader 的作用就是去 Flash、SD 卡等设备上读入 Linux 内核,并启动它。
② Windows 系统必需的软件,比如 IE、文件浏览器等保存在哪里? 在 C 盘上,里面有各种系统软件。 对应的,系统运行必需的文件在 Linux 下我们称之为根文件系统。
③ windows 能识别出 C 盘、D 盘,那么肯定有读写硬盘的能力。 这个能力我们称之为驱动程序。当然不仅仅是操作硬盘,还有网卡、USB 等等其他硬件。 嵌入式 Linux 能从 Flash 上读出并执行应用程序,肯定也得有 Flash 的驱动程序啊,当然也不仅仅是Flash。
④ Windows 启动之后,我们就是聊 QQ、玩游戏了,这些就是 APP,它们存在磁盘上。
同样的,嵌入式 Linux 系统中我们也有各种 APP,它们位于根文件系统上。
简单地说,嵌入式 LINUX 系统里含有:
① bootloader:用于启动 Linux 内核
② Linux 内核(含有驱动程序):提供进程管理、文件管理、硬件驱动等
③ 根文件系统:系统运行必需的文件、程序
④ APP:保存于根文件系统上
1.2.2 日常工作中开发流程是怎样?
Bootloader、Linux 内核、APP 等等软件,需要在 Ubuntu 中编译;但是阅读、修改这些源码时,在 Windows下会比较方便。
所以,我们需要在 Windows、Ubuntu 上都存有源码。
① 在 Windows 上阅读、研究、修改(使用 Source insight 会很方便),修改后上传到 Ubuntu(使用 Filezilla)
② 在 Ubuntu 上编译、制作(使用 MobaXterm 远程登录 Ubuntu 会很方便)
③ 把制作好的可执行程序下载到开发板上运行、测试(使用 MobaXterm 连接开发板的串口)。
在整个开发过程中,我们会用到 Windows、Ubuntu、开发板,如下图所示:
1.2.3 搭建开发环境需要做哪些事情
这里只是列出要做的事情,后面会一一讲到。
- 安装 VMware、下载 Ubuntu 映象
- 安装 Windows 上各个 APP 这些 APP 有:SouceInsight、FileZilla、MobaXterm、Notepad
- 下载源码和工具链 工具链:必须下载或上传到 Ubuntu,并设置好 PATH 环境变量。(简单地说,工具链就是编译器) 源码:u-boot、Linux 内核,学习到时再下载也行,Windows 和 Ubuntu 各存一份。 注意:根文件系统是使用 buildroot 制作的,它无需放在 Windows 上。
- 连接开发板 ① 连接电源线到开发板, ② 开发板的串口线,接到 Windows 电脑;并用 MobaXterm 连接串口。 ③ 开发板的网线,接到路由器或交换机,网络的设置请参考以下文档(可先不做):
- 烧写系统 如果开发板系统崩溃,或是新到手的板子上没有系统,请根据后面的开发板使用手册手册来烧写系统。