服务热线

400-600-2138

高质高效嵌入式软件开发

收藏课程
课程编号:71740 时间:2013年03月29日-31日 讲师:杨老师 地点:北京
学习费用:5000 元/位
用手机看:
课程编号 开课日期 地点 培训天数 选择报名

培训对象:

以C为编程语言的嵌入式和非嵌入式软件开发工程师、项目管理师、架构师等。

课程收益:

课程大纲:

时间地点:2013年3月29-31日北京

课程费用:5000元/人(含教材、证书、午餐等),住宿统一安排,费用自理。

课程对象:以C为编程语言的嵌入式和非嵌入式软件开发工程师、项目管理师、架构师等。

课程背景:

嵌入式系统在现实生活中随处可见,大到航天、汽车、通讯系统,小到手机、机顶盒等等。嵌入式软件开发作为软件行业的一个分枝,也面临着其它软件领域所面临的各种挑战 — 如何快速上市?如何保证交付软件的最终质量?如何帮助工程师在工作与生活间取得平衡?等等。由于嵌入式软件开发是一个软硬件结合非常紧密的领域,这也使得其面临更大的挑战 — 软件的可开发性问题可能很突出、对开发人员的综合能力要求更高。为了帮助大家获得一些实用的设计原则、最佳实践和一套有效的质量保证方法论,特举办“高质高效嵌入式软件开发”培训班。

课程目标:

1、掌握嵌入式软件开发所需的与处理器相关的通用知识。

2、明白信号完整性对嵌入式软件开发的影响。

3、掌握嵌入式软件开发所需掌握的GNU工具。包括make、gcc、binutils、ld和gdb。

4、更加深入地理解C编程语言。

5、了解引导加载器的大致工作原理和功能。

6、掌握实时操作系统的设计和实现原理。包括多任务、任务同步通讯、内存管理、设备管理和定时器管理。

7、理解设计是软件质量之本,并掌握一种有效的模块管理、错误管理和目录结构管理方法。

8、理解什么是可开发性问题和了解一种解决方法。

9、理解平台与框架开发是打造高质量软件之路。

10、理解软件开发的困难和质量保证需要系统性的方法论。

11、理解软件工程的工作习惯对软件质量的影响,掌握一些终身受用的编程好习惯。

12、理解单元测试的重要性,并掌握一种简单有效的部署方法。

13、理解代码覆盖、静态分析和动态分析对构建高质软件的重要性。

课程大纲:

学习导引

1.学什么?怎么学?

2.工程师技术能力层次模型

3.高质高效软件开发团队效能模型

[硬件篇] 处理器的基本概念

1.微处理器与微控制器

2.寄存器

3.处理器的启动

4.输入与输出

5.指令与数据

6.中断

7.字节序

8.边界对齐

9.断点

10.内存管理单元

11.缓存

[硬件篇] 开发活动中的硬件问题

1.两个软件异常案例

2.异常的背后 — 信号完整性

3.应对信号完整性问题的方法

[工具篇] make,开发环境全能管家

1.从最简单的Makefile中了解规则

2.创建基本的编译环境

3.提高编程环境的实用性

4.打造更专业的编译环境

5.理解make的解析行为

6.Makefile的调试

7.make的常用选项

8.活用make

[工具篇] gcc,C语言编译器

1.交叉编译用其环境

2.gcc幕后工作原理

3.实用的gcc选项

[工具篇] bintuils工具集,软件开发利器

1.addr2line,指令地址翻译器

2.ar,静态库生成器

3.nm,符号显示器

4.objdump,信息查看器

5.objcopy,段剪辑器

6.size,段大小观察器

7.strings,字符串窥视器

8.strip,程序文件瘦身器

[工具篇] ld,链接器

1.重定位的概念

2.链接脚本

[编程语言篇] 掌握必要的汇编知识

1.AT&T和Intel语法格式

2.as的语法

3.嵌入汇编的语法

[编程语言篇] 深入理解程序的结构段、栈、堆

[编程语言篇] ABI/EABI规范,缔造程序兼容合约

1.定义基本数据结构

2.规范字节对齐处理

3.分配寄存器的功能

4.规定栈帧结构

[编程语言篇] 混淆指针与数组所导致的问题

1.问题示例

2.问题分析

3.问题成因

4.预防措施

[编程语言篇] volatile,让我保持原样

1.从例子理解volatile

[设计篇] 设计,软件质量之本

1.软件设计是什么

2.软件质量的概念

3.阻碍改善设计的常见观念

4.如何提高设计能力

5.设计模式、设计原则和设计思想

6.放之四海皆适用的设计原则

[设计篇] 模块管理,保障系统有序运行

1.模块管理参照系

2.设计思路

3.程序实现

4.模块管理的一些思考

[设计篇] 错误管理,不可获缺的用户需求

1.现状与出路

2.表达错误的通用方法

3.优化错误日志

[设计篇] 目录结构管理,使项目进展更顺利

1.规划目录结构的意义

2.出色目录结构的特点

3.一个示例

[设计篇] 平台与框架开发,高质量软件打造之路

1.系统库、平台和框架

2.本质和优点

3.架构模型

4.困境与生命周期理论

[设计篇] 可开发性设计,一种高效且经济的开发模式

1.可开发性问题一瞥

2.可开发性设计的内涵

3.设备抽象层

4.更复杂的设备抽象层

5.图形界面的可开发性设计

6.其他可开发性设计

[操作系统篇] 引导加载器,系统启航者

1.功能

2.文件存储布局

3.程序加载原理

4.优点

[操作系统篇] 任务,软件基本调度单元

1.任务情景

2.任务调度

3.任务的生命周期

4.任务控制

5.竞争问题与中断控制

6.任务与中断状态

7.任务栈溢出检测

8.滴答与空闲任务

9.多任务环境控制

10.任务模块管理

11.task1示例程序

12.任务钩子函数

13.任务变量

14.其它概念与思考

[操作系统篇] 任务同步与通信,实现协同工作

1.信号量

2.互斥锁

3.事件

4.消息队列

5.死锁及预防

[操作系统篇] 内存管理,协调动态内存的使用

1.堆管理(含内存溢出和泄漏检测)

2.内存池管理

[操作系统篇] 设备管理,方便与外设交互

1.字符设备管理

2.中断管理

3.设备管理的主要程序实现

4.设备驱动程序实现

5.驱动安装与设备注册

[操作系统篇] 定时器,程序闹钟

1.软件定时器分类

2.设计思路

3.中断回调定时器

4.定时误差

5.提高遍历效率

6.改善实时性

7.任务回调定时器

[质量保证篇] 质量保证导言

1.软件开发的特点

2.保证质量的关键要素

3.质量保证需要系统性的方法论

4.走出质量困境的指导性思想

[质量保证篇] 编程好习惯,质量保证的基本条件

1.一些终生受用的编程好习惯

[质量保证篇] 单元测试,被忽视的质量保证方法

1.警惕单元测试无用论

2.一个简单但不完善的单元测试例子

3.构建单元测试框架

4.无缝整合单元测试

5.几个实施问题

6.桩函数和打桩

7.错误注入,一种可测试性设计

8.平台开发与单元测试

9.被测行为的确定性

10.被测用例的有效性

[质量保证篇] 代码覆盖,单元测试效果的衡量指标

1.了解代码覆盖工具

2.无缝整合代码覆盖

3.三个代码覆盖度量指标

[质量保证篇] 静态分析,防止将失误带给用户

1.认识静态分析工具

2.无缝整合静态分析工具

[质量保证篇] 动态分析,使程序更健壮

1.结识动态分析工具

2.无缝整合动态分析工具

[质量保证篇] 性能分析,让优化程序有的放矢

1. 初探性能分析工具

2. 无缝整合性能分析工具

[质量保证篇] qBench,一个开发高质软件的工作台

讲师介绍:杨老师

曾在UT斯达康研发中心、摩托罗拉研发中心、诺基亚西门子网络技术有限公司担任软件工程师、项目负责人和软件架构师等职,工作内容内容主要包括:操作系统内核、文件系统和IP协议栈的移植,IDE硬盘、以太网芯片和PCI总线等外设的驱动开发。熟悉x86、PowerPC、XScale处理器,以及TIDSP源码级。熟悉uC/OS、RTEMS和VxWorks实时操作系统的实现,并在这些操作系统和Linux操作系统上有着丰富的软件开发经验。

讲师介绍:

在线报名:

客户报名咨询:020-39971893     400 600 2138

近期相关公开课:

报名服务流程:

中培网优势:

热门课程

会员登录

勾选即代表确认同意《用户协议》

没有账号?立即注册

忘记密码?