你的位置: 首页 > 内训课首页 > 互联网/语言 > 课程详情

details

高质高效嵌入式软件开发

暂无评价   
淘课价格
待定
可用淘币
0
返现金券
待定

你还可以: 收藏

培训受众:

以C为编程语言的嵌入式和非嵌入式软件开发工程师、项目管理师、架构师?#21462;?/div>

课程收益:

1、掌握嵌入式软件开发所需的与处理器相关的通用知识。
2、明白信号完整性对嵌入式软件开发的影响。
3、掌握嵌入式软件开发所需掌握的GNU工具。包括make、gcc、binutils、ld和gdb。
4、更加深入地理解C编程语言。
5、了解引?#25216;?#36733;器的大致工作原理和功能。
6、掌握实时操作系统的设计和实现原理。包括多任务、任务同步通讯、内存管理、设备管理和定时器管理。
7、理解设计是软件质量之本,并掌握一种有效的模块管理、错误管理和目录结构管理方法。
8、理解什么是可开发性问题和了解一种解决方法。
9、理解平台与框架开发是打造高质量软件之路。
10、理解软件开发的困难和质量保证需要系统性的方法论。
11、理解软件工程的工作习惯对软件质量的影响,掌握一些终身受用的编程好习惯。
12、理解单元测试的重要性,并掌握一种简单有效的部署方法。
13、理解代码覆盖、静态分析和动态分析对构建高质软件的重要性。

培训颁发证书:

培训?#34892;摹?#39640;质高效嵌入式软件开发”结业证书。

课程大纲:

高质高效嵌入式软件开发

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

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

二、培训对象
以C为编程语言的嵌入式和非嵌入式软件开发工程师、项目管理师、架构师?#21462;?br />
三、课程设计及授课思路
从事嵌入式软件开发,最困?#35757;?#33707;过于学习操作系统原理和处理器方面的知识。讲解操作系统原理如果以Linux、Windows CE、VxWorks等成熟的操作系统为素材并不好,因为它们太大,很容易让人“只见森林不见树?#23613;保?#20063;容易让人望而生畏而失去学习的兴趣和信心。从软件开发的?#23884;?#26469;看,操作系统的概念和实现原理一旦掌握,不论基于哪一个操作系统做开发都只是调用不同的函数而已。为了让学员获得最好的学习体验,本课程以讲师自己设计的一个实现简洁、完整的“实时”操作系统 — ClearRTOS为基础,通过渐进式的方式细致讲解操作系统的概念和实现原理。至于处理器方面的知识,本课程没有针对某一具体处理器,而是就编程方面所需的通用知识进行了讲解。对这些通用知识的掌握,将使得处理器对于学员不再那么神秘。
与非嵌入式软件开发采用集成开发环境不同,嵌入式软件开发大多是基于命令行的。软件开发工程师除了进行编码工作,还得能驾驭自己的编译环境并运用其他的开发工具辅助开发工作。本课程以来自GNU的工具为例帮助学员战胜这一挑战。值得强调的是,其?#35874;?#20102;较大的篇幅帮助学员成为Makefile方面的专家。
要实现高质高效地从事软件开发工作,项目人员还必须理解软件设计的重要性,并借助一定的质量保证方法论来提高工作质量和效?#30465;?#36719;件设计和质量保证方法论是业内比较抽象和高级的话题,为此本课程通过带领?#23548;?#30340;方式逐步展开讲解,以帮助学员获得一些实用的设计原则、最佳?#23548;?#21644;一套有效的质量保证方法论。
总而言之,本课程从知识、工具、方法和思想这四大方面全面讲解如何专业地从事嵌入式软件开发,致力于帮助学员全面走向高质高效编程。

四、培训目标
1、掌握嵌入式软件开发所需的与处理器相关的通用知识。
2、明白信号完整性对嵌入式软件开发的影响。
3、掌握嵌入式软件开发所需掌握的GNU工具。包括make、gcc、binutils、ld和gdb。
4、更加深入地理解C编程语言。
5、了解引?#25216;?#36733;器的大致工作原理和功能。
6、掌握实时操作系统的设计和实现原理。包括多任务、任务同步通讯、内存管理、设备管理和定时器管理。
7、理解设计是软件质量之本,并掌握一种有效的模块管理、错误管理和目录结构管理方法。
8、理解什么是可开发性问题和了解一种解决方法。
9、理解平台与框架开发是打造高质量软件之路。
10、理解软件开发的困难和质量保证需要系统性的方法论。
11、理解软件工程的工作习惯对软件质量的影响,掌握一些终身受用的编程好习惯。
12、理解单元测试的重要性,并掌握一种简单有效的部署方法。
13、理解代码覆盖、静态分析和动态分析对构建高质软件的重要性。

五、培训内容
第1天 学习导引
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. 规定栈帧结构

第2天 [编程语言篇] 混淆指针与数组所导致的问题
1. 问题示例
2. 问题分析
3. 问题成因
4. 预?#26469;?#26045;

[编程语言篇] volatile,让我保持原样
1. 从例子理解volatile

[设计篇] 设计,软件质量之本
1. 软件设计是什么
2. 软件质量的概念
3. 阻碍改善设计的常见观念
4. 如何提高设计能力
5. 设计模式、设计原则和设计思想
6. 放之四海皆适用的设计原则

[设计篇] 模块管理,保障系统?#34892;?#36816;行
1. 模块管理?#25569;?#31995;
2. 设计思路
3. 程序实现
4. 模块管理的一些思考

[设计篇] 错误管理,不可获缺的用户需求
1. 现状与出路
2. 表达错误的通用方法
3. 优化错误日志

[设计篇] 目录结构管理,使项目进展更顺利
1. 规划目录结构的意义
2. 出色目录结构的特点
3. 一个示例

[设计篇] 平台与框架开发,高质量软件打造之路
1. 系统库、平台和框架
2. 本质和优点
3. 架构模型
4. 困境与生命周期理论

[设计篇] 可开发性设计,一种高效且经济的开发模式
1. 可开发性问题一瞥
2. 可开发性设计的内涵
3. 设备抽象层
4. 更复杂的设备抽象层
5. 图形界面?#30446;?#24320;发性设计
6. 其他可开发性设计

[操作系?#31216;猐 引?#25216;?#36733;器,系?#31216;?#33322;者
1. 功能
2. 文件存储布局
3. 程序加载原理
4. 优点

第2天 [操作系?#31216;猐 任务,软件基本调度单元
1. 任务情景
2. 任务调度
3. 任务的生命周期
4. 任务控制
5. 竞争问题与中断控制
6. 任务与中断状态
7. 任务栈溢出检测
8. 滴答与空闲任务
9. 多任务环境控制
10. 任务模块管理
11. task1示例程序
12. 任务钩子函数
13. 任务变量
14. 其它概念与思考

[操作系?#31216;猐 任务同步与通信,实现协同工作
1. 信号量
2. 互斥锁
3. 事件
4. 消息队列
5. ?#28010;?#21450;预防

[操作系?#31216;猐 内存管理,协调动态内存的使用
1. 堆管理(含内存溢出和泄漏检测)
2. 内存池管理

第3天 [操作系?#31216;猐 设备管理,方便与外设交互
1. 字符设备管理
2. 中断管理
3. 设备管理的主要程序实现
4. 设备驱动程序实现
5. 驱动安装与设备注册

[操作系?#31216;猐 定时器,程序?#31181;?br /> 1. 软件定时器分类
2. 设计思路
3. 中断回调定时器
4. 定时误差
5. 提高遍历效率
6. 改善实时性
7. 任务回调定时器

[质量保证篇] 质量保证导言
1. 软件开发的特点
2. 保证质量的关键要素
3. 质量保证需要系统性的方法论
4. 走出质量困境的指导性思想

[质量保证篇] 编程好习惯,质量保证的基本条件
1. 一些终生受用的编程好习惯

[质量保证篇] 单元测试,?#32531;?#35270;的质量保证方法
1. 警惕单元测试无用论
2. 一个简单但不完善的单元测试例子
3. 构建单元测试框架
4. 无缝整合单元测试
5. 几个实施问题
6. 桩函数和打桩
7. 错误注入,一种可测试性设计
8. 平台开发与单元测试
9. 被测行为的确定性
10. 被测用例的有效性

[质量保证篇] 代码覆盖,单元测试效果的衡量指标
1. 了解代码覆盖工具
2. 无缝整合代码覆盖
3. 三个代码覆?#23884;?#37327;指标

[质量保证篇] 静态分析,防止将失误带给用户
1. 认识静态分析工具
2. 无缝整合静态分析工具

[质量保证篇] 动态分析,使程序更健壮
1. 结识动态分析工具
2. 无缝整合动态分析工具

[质量保证篇] 性能分析,让优化程序有的放矢
1. 初探性能分析工具
2. 无缝整合性能分析工具

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

六、费用
培训费:5000元/人(含教材、证书、午餐、学习用具等),住宿协助安排,费用自理。
七、培训时间、地点:
时间:2015年8月14日-8月16日 地点:杭州
八、证 书
培训?#34892;摹?#39640;质高效嵌入式软件开发”结业证书。

培训师介绍:

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

本课程名称: 高质高效嵌入式软件开发

查看更多:互联网/语言内训课

其它 上市 设计 项目管理师 相关的最新课程
讲师动态评分 与同行相比

授课内容与课纲相符00%

讲师授课水平00%

服务态度00%

今天nba新闻最新消息
3d绝杀六码走势图 中国福利26选5 一尾中特连准 赛马会料 极速快乐十分 腾讯分分彩组60漏洞 体园网足球比分 大乐透胆拖计算器 今天的娱乐新闻有哪些 重庆快乐10分定位计划软件手机版下载 王力宏白小姐mary 黑龙江p62几点开奖 江小白特肖 河北11选五走势图 排列五走势图500期