嵌入式软件开发技术与工具-基础篇(2)

推荐书目

1. KarimYaghmour,《Building Embedded Linux Systems》, O'Reilly 2003
2. Qing Li and Carolyn Yao,Real-Time Concepts for Embedded Systems,CMP Books © 2003
3. Michael Barr and Anthony Massa, Programming Embedded Systems with C and GNU Development Tools,O‘Reilly 2006
4. Daniel P.Bovet and Marco Cesati, Understanding the Linux Kernel, 3rd Edition, O'Reilly 2006
5. David A. Rusling等,Linux Programming White Papers,2000

6. 孙琼,《嵌入式Linux应用程序开发详解》,人民邮电出版社,2006
7. 任哲,潘树林,房红征《嵌入式操作系统基础μC/OS-II和Linux 》;北京航空航天大学出版社,2006
8. 王田苗,魏洪兴《嵌入式系统设计与实例开发》,清华大学出版社,2008
9. MPC860 Processor Card User’s Manual, MPC860 Training Materials.
10.陈文智,王总辉《嵌入式系统原理与设计》,清华大学出版社,2011

内容概述

第1讲:嵌入式软件开发概述
第2讲:嵌入式软件开发环境概述
第3讲:嵌入式Linux 简介
第4讲:可执行影像到目标机的映射
第5讲:嵌入式软件开发工具概述
第6讲:嵌入式Linux开发工具介绍
第7讲:嵌入式系统初始化过程分析与bootloader技术
第8讲:Linux内核分析与移植

第9讲:嵌入式文件系统分析与移植
第10讲:嵌入式软件开发-I/O编程
第11讲:嵌入式软件开发-设备驱动
第12讲:嵌入式软件开发-进程控制
第13讲:嵌入式软件开发-进程同步与通信
第14讲:嵌入式软件开发-多线程编程
第15讲:嵌入式软件开发- GUI编程
第16讲:嵌入式软件开发-网络编程

实验一:Linux基础实验
实验二:构建ARM Linux开发环境(Host+)
实验三:构建ARM Linux目标系统(Target)
实验四:gdb交叉调试技术实验
实验五:设备驱动编程实验
实验六:串口与网络通信实验

小问题:

1. 嵌入式系统有哪些特点,它们是如何影响到嵌入式软件开发的。
2. 嵌入式软件的分类,并分别描述其特性和用途。
3. 通用软件与嵌入式软件开发的区别。
4. c语言中各类变量的存储与作用域。


5. Host 和Target之间的连接方式,各有何特点。
6. Execution Environment包含哪些内容。
7. Run-Time Environment包含哪些内容。
8. Programming Environment包含哪些内容。

第二讲 嵌入式软件开发环境概述

1. 开发环境建立

嵌入式开发环境建立主要包含两个方面的内容,主机开发环境和开发板开发环境,具体内容参见图2.1

image

图2.1 嵌入式开发环境搭建

2. 嵌入式软件开发环境

详细来讲,软件开发环境在嵌入式领域有三个层面的内容:编程环境、运行环境、执行环境。其中,编程环境多指支持编程开发的所有集成环境;运行环境是支持程序运行的所有软件架构;执行环境是支持程序运行的所有硬件环境。对于软件实现来讲,我们应该从下向上搭建环境,即,首先建立硬件环境、然后建立软件环境,此处也只开发端主机环境,随后建立编程环境。基于这些条件,我们才有可能进行软件仿真和实现。

3. 硬件环境

需要解决的问题有,系统如何规划内存使用;中断和异常如何处理;外设如何管理?我们查看硬件环境色使用手册时,除了具体的寄存器赋值方式和驱动调用接口以外,还应该注意的是使用的何种内存介质,如何管理,内存是如何分配的。

4. 运行环境

用于为程序运行做准备工作的程序环境。比如系统的启动代码,库函数,嵌入式操作系统,中间件等,完成了程序运行环境的初始化工作和清理工作。其中,

启动代码,实现了硬件启动过程和主程序之间的桥接。最小启动代码至少包含复位和执行权交接的功能,而真实的系统还会包含系统完整性检查、代码重定向、寄存器初始化、C程序环境设置等内容。不同的硬件环境,需要匹配相应的启动代码。一般情况下,集成开发环境会包含汇编程序写成的启动代码框架,便于开发人员根据不同硬件进行修改。

库函数,用于简化代码编写。但嵌入式开发环境中,应该对库函数的使用进行优化,减少其内存占用率。

OS,应该挑选一款合适的操作系统,挑选的标准不外乎使用到的系统功能,外设驱动支持,高级语言支持等。

中间件,多用于分布式系统,嵌入式系统中使用中间件来封装不同硬件之间的差异,由于其良好的内聚性,成为嵌入式开发的一大热点。

5. 编程环境

我们常说的开发环境也就是编程环境了,主要包含编辑器、编译器(交叉编译器)、汇编器、连接器(交叉连接器)、装载程序、交叉调试器等,不同工具之间的配合使用可以参考图2.5

image

图2.5 集成开发环境各模块间关系

6. 程序实现

随着嵌入式技术的发展,嵌入式软件工程过程规范化已经基本成型。程序设计过程跟通用软件的设计过程相当。在设计过程中,可以分为模块设计、硬件接口设计、数据结构设计、算法设计等多个方面。而设计初期使用的方法也与通用软件相似,比如使用结构化设计方式,数据流图、结构模型等,当然也可以引入UML等面向对象的设计方案。最终将软件设计成型后,可以通过IDE进行仿真,测试,调错等步骤。

实际的嵌入式系统开发过程中,已经引入软硬件协同设计的思路,实时测试,实时反馈,软硬件同时调试等。加快了嵌入式系统产品的成品率。

你可能感兴趣的:(嵌入式软件开发技术与工具-基础篇(2))