当前课程知识点:嵌入式系统设计 >  第四章:嵌入式软件开发平台 >  4.1 基于Linux的开发流程 >  Video

返回《嵌入式系统设计》慕课在线视频课程列表

Video在线视频

Video

下一节:Video

返回《嵌入式系统设计》慕课在线视频列表

Video课程教案、知识点、字幕

首先,我们来看一下

嵌入式系统的开发过程

从系统定义、可行性研究到需求分析

接下来进行

系统总体框架设计、软硬件划分、处理器选定

操作系统选定、开发环境选定

来完成系统的总体设计

接下来分成硬件设计制作和软件设计实现两部分

软件需要标准的概要设计、详细设计、实现、测试等流程

硬件也是通过概要设计、详细设计、制作、测试

最后将测试完毕的软硬件集成

完成整个的功能性能测试

最后输出成品

嵌入式软件的开发方式有以下几点

第一步,在主机上建立开发平台

进行应用程序的分析、设计与编码

第二步,主机同目标机建立连接

将应用程序下载到目标机上进行交叉调试、性能分析和测试等等

第三步,将测试好的应用程序“固化”到目标机中实际运行

在这开发过程中需要用到交叉编译

交叉编译指的是嵌入式系统由于系统资源紧缺

无法在其上运行相关的编译工具

也就是说,嵌入式这个板子本身是无法运行编译工具的

因此需要在一个平台上生成可以在另一个平台上执行的代码

也就是我们在PC机上

宿主机来生成我们的目标机

也就是嵌入式系统上面可运行的代码

通常PC机用的是intel的芯片

这里的目标机可能用的是ARM芯片

那么也就是在一个平台上

生成可以在另一个平台上执行的代码

嵌入式的这个交叉编译包括交叉编译、交叉链接等过程

对于ARM来说呢

Linux的交叉编译为arm-gcc

交叉链接为arm-ld

整个编译和链接的过程我们来看一下这个图

通过编辑器编辑好源代码

然后通过交叉编译器编译成目标文件

这个目标文件还不能执行

它必须和库文件通过连接器链接之后

才能够生成真正可执行的程序

交叉编译之后生成了程序

那么这个程序呢 可能还有一定的bug

因此,需要调试

在嵌入式系统中采用的也是属于交叉调试

通常调试器运行在宿主机和通用的操作系统之上

而被调试的进程呢

运行在基于特定硬件平台的嵌入式操作系统中

在调试和被调试的进程通过串口或者网络进行通信

调试器可以控制、访问被调试进程

读取被调试进程当前状态

然后根据需要改变被调试进程运行状态

具体的调试手段分为软件调试和硬件调试

所谓的软件调试就是通过插入调试桩的方式来进行

它主要是通过目标操作系统和调试器内分别调用某些功能模块

从而互通信息来进行的调试

Linux下的调试器就是gdb

它的交叉调试器分为gdbserver和gdbclint

那么gdbserver来作为调试桩安装在目标板上

也就是我们嵌入式板上

gdbclint驻留在本地 也就是我们开发机宿主机上

这就是如何通过串口或者网络来进行gdb调试的示意图

对于硬件调试它的基本原理是通过仿真硬件的执行过程

让开发者在调试时可以随时了解系统的当前情况

在嵌入式系统中最常用到的硬件调试器就是ROMMonitor

这个Monitor在这儿监视我们目标机上的运行程序

把相应的状况返回给宿主机上的调试器

作为硬件调试器,它相对来说需要的成本要高一些

最后,我们来看一下基于Linux的整个开发流程

第一步,要建立开发环境

首先肯定要安装操作系统

然后,下载相应的GCC交叉编译器

第二步是配置开发主机 最常见用到的就是利用MINICOM这个串口通信

第三步,建立引导装载程序BOOTLOADER

在Linux下最常见的BOOTLOADER就是u-boot

下载下来可以根据芯片进行移植性修改

第四步,下载已经移植好的Linux操作系统

然后再添加特定硬件的驱动程序并进行调试修改

第五步,建立根文件系统

在Linux下面最常用的文件系统就是BUSBOX

这个是一个开放源码的根文件系统软件

下载下来之后可以进行相应的裁剪

还可以根据应用的需要添加其他程序

第六步,建立应用程序的FLASH磁盘分区

常见的有JFFS2或者是YAFFS

第七步,就是开发应用程序

在Linux下的应用程序大部分使用C语言开发

它的流程

第一,编写c语言的源代码

第二个进行预处理

第三个编译成汇编语言

第四步由汇编来生成目标文件,也就是二进制代码

最后通过链接各种各样的库生成可执行文件

可执行文件再通过调试去掉bug之后得到最后的应用程序

这七步第一步一般用编辑器

比如说,Vi这一类来完成

中间的这四步要通过gcc来完成

最后的调试通过gdb调试器来完成

嵌入式系统设计课程列表:

第一章:嵌入式系统基础

-1.1 嵌入式系统概念

--Video

-第一章:嵌入式系统基础--1.1 嵌入式系统概念

-1.2 嵌入式系统组成

--Video

-第一章:嵌入式系统基础--1.2 嵌入式系统组成

第二章:嵌入式处理器

-2.1 嵌入式处理器发展历史

--Video

-第二章:嵌入式处理器--2.1 嵌入式处理器发展历史

-2.2 三星S3C2440 微处理器

--Video

-第二章:嵌入式处理器--2.2 三星S3C2440 微处理器

第三章:嵌入式操作系统

-3.1 嵌入式操作系统概述

--Video

-第三章:嵌入式操作系统--3.1 嵌入式操作系统概述

-3.2 嵌入式Linux 操作系统

--Video

-第三章:嵌入式操作系统--3.2 嵌入式Linux 操作系统

-3.3 Linux 操作系统实时性改造

--Video

-第三章:嵌入式操作系统--3.3 Linux 操作系统实时性改造

第四章:嵌入式软件开发平台

-4.1 基于Linux的开发流程

--Video

-第四章:嵌入式软件开发平台--4.1 基于Linux的开发流程

-4.2 GCC 编译器

--Video

-第四章:嵌入式软件开发平台--4.2 GCC 编译器

-4.3 GDB 调试器

--Video

-第四章:嵌入式软件开发平台--4.3 GDB 调试器

第五章:嵌入式Linux驱动开发

-5.1 Linux 设备驱动技术

--Video

-第五章:嵌入式Linux驱动开发--5.1 Linux 设备驱动技术

-5.2 Linux 设备驱动程序

--Video

-第五章:嵌入式Linux驱动开发--5.2 Linux 设备驱动程序

第六章:嵌入式系统实验

-实验一:基于ARM的嵌入式Linux开发环境建立

--Video

-第六章:嵌入式系统实验--实验一:基于ARM的嵌入式Linux开发环境建立

-实验二:基于ARM的模块方式驱动程序实验

--Video

-第六章:嵌入式系统实验--实验二:基于ARM的模块方式驱动程序实验

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。