对象:以C为编程语言的嵌入式和非嵌入式软件开发工程师、项目管理师、架构师等。
“高质高效嵌入式软件开发”培训课程-课程详情
培训对象
以C为编程语言的嵌入式和非嵌入式软件开发工程师、项目管理师、架构师等。
课程设计及授课思路
从事嵌入式软件开发,困难的莫过于学习操作系统原理和处理器方面的知识。讲解操作系统原理如果以Linux、Windows CE、VxWorks等成熟的操作系统为素材并不好,因为它们太大,很容易让人“只见森林不见树木”,也容易让人望而生畏而失去学习的兴趣和信心。从软件开发的角度来看,操作系统的概念和实现原理一旦掌握,不论基于哪一个操作系统做开发都只是调用不同的函数而已。为了让学员获得学习体验,本课程以讲师自己设计的一个实现简洁、完整的“实时”操作系统 — ClearRTOS为基础,通过渐进式的方式细致讲解操作系统的概念和实现原理。至于处理器方面的知识,本课程没有针对某一具体处理器,而是就编程方面所需的通用知识进行了讲解。对这些通用知识的掌握,将使得处理器对于学员不再那么神秘。
与非嵌入式软件开发采用集成开发环境不同,嵌入式软件开发大多是基于命令行的。软件开发工程师除了进行编码工作,还得能驾驭自己的编译环境并运用其他的开发工具辅助开发工作。本课程以来自GNU的工具为例帮助学员战胜这一挑战。值得强调的是,其中花了较大的篇幅帮助学员成为Makefile方面的专家。
要实现高质高效地从事软件开发工作,项目人员还必须理解软件设计的重要性,并借助一定的质量保证方法论来提高工作质量和效率。软件设计和质量保证方法论是业内比较抽象和高级的话题,为此本课程通过带领实践的方式逐步展开讲解,以帮助学员获得一些实用的设计原则、实践和一套有效的质量保证方法论。
总而言之,本课程从知识、工具、方法和思想这四大方面全面讲解如何专业地从事嵌入式软件开发,致力于帮助学员全面走向高质高效编程。
四、培训目标
1、掌握嵌入式软件开发所需的与处理器相关的通用知识。
2、明白信号完整性对嵌入式软件开发的影响。
3、掌握嵌入式软件开发所需掌握的GNU工具。包括make、gcc、binutils、ld和gdb。
4、更加深入地理解C编程语言。
5、了解引导加载器的大致工作原理和功能。
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. 预防措施 |
|
||
[编程语言篇] 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. 优点 |
|
|||
第2天 |
[操作系统篇] 任务,软件基本调度单元 |
1. 任务情景 2. 任务调度 3. 任务的生命周期 4. 任务控制 5. 竞争问题与中断控制 6. 任务与中断状态 7. 任务栈溢出检测 8. 滴答与空闲任务 9. 多任务环境控制 10. 任务模块管理 11. task1示例程序 12. 任务钩子函数 13. 任务变量 14. 其它概念与思考 |
|
||
[操作系统篇] 任务同步与通信,实现协同工作 |
1. 信号量 2. 互斥锁 3. 事件 4. 消息队列 5. 死锁及预防 |
|
|||
[操作系统篇] 内存管理,协调动态内存的使用 |
1. 堆管理(含内存溢出和泄漏检测) 2. 内存池管理 |
|
|||
第3天 |
[操作系统篇] 设备管理,方便与外设交互 |
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,一个开发高质软件的工作台 |
|
|
以上就是中科院计算所培训中心“高质高效嵌入式软件开发”培训课程的全部介绍,如需了解更多关于“高质高效嵌入式软件开发”培训课程的信息可以咨询我们客服。咨询客服可以获取中科院计算所培训中心最新优惠活动及试听预约。想要了解的同学赶紧和我们联系吧!中科院计算所培训中心报名电话4009689396
口碑评价
-
匿名:在杭州这明好小语种这里学习德语有一段时间了,首先就是这边的交通比较好,每天来这里的话比较的方便,这就是我喜欢来这里学习的原因,这边的环境也非常的好,很适合我们在这边学习,这边的话教室也有很多,大的也有小的也有,都是按班来分的,价格也不同,我报的是小班,价格什么的也很不算很贵,这边的话老师比较年轻,但是讲的是一口流利的德语,听着非常的舒服的那种,我的老师是个女的,讲课的方式很幽默,我非常喜欢听她的课。
-
匿名:再过一年就要去德国留学了,可自己的德语真的很差都不能满足平常的对话。妈妈很上心,给我报了这里的辅导班,自己在这里学了几天后发现这里并没有自己想的那么枯燥,老师的讲课方式都很幽默风趣,很有意思,这样反而让那些抽象的知识变得更容易理解,记忆起来也很为方便。在学习上遇到什么问题可以直接问这里的老师,老师会耐心的一一做出解答。老师还会时常讲一些考试的应试技巧,我觉得这对我们帮助应该很大。自己在这里学习了一段时间,进步还是很大的。
-
匿名:这边的环境挺好的,顾问老师也很不错,会细心的考虑我是要出国的,给我做了详细的课程规划,淼淼老师也很赞,法语教的很好,而且会分享法国的美食、美景给我们,真想赶紧学好法语,去法国走一走。
-
匿名:出于兴趣,在这边学了法语,宁宁老师是个大美女,说话很温柔的,而且讲课很耐心的。有时候大家犯困的时候,老师就会给我们介绍法国风俗习惯,以及法国景点等等,调动大家的学习兴趣。而且我们这是小班,人不多,老师把每个人的学习进度都照顾到了。
-
匿名:自己从小就跟向往德国,学习了法西斯的暴虐后,想去看看那个有个生机的国家,终于高考完了,可以出去旅游,可是爸妈说我语言不同不要我去,我就在网上咨询了明好,想说学点简单的可以用到的,然后这边环境特别好,教师也很专业,态度很好,非常有耐心,教你学语种的老师的口语是非常重要的,这些老师的口语都练得很标准,如果你哪个地方不好或者是读的不好,老师都会把你纠正错误,不用担心嘲笑自己的口语不好,因为风围特别融洽,也很容易让自己练就胆子大。
-
匿名:明好教育是一家不错的语言培训机构,因为提升自己、对韩语比较感兴趣以及工作的需要,我早就想找一家好一点的语言培训机构学习韩语了,后来在同事和朋友的推荐下我找到了明好教育,我对这里的第一印象特别好,这里的前台接待人员特别有礼貌也十分有耐心,其次这里的教学环境很好,卫生很干净,学习氛围比较浓烈,老师上课教授课程的时候,课堂氛围很活跃,老师教授的内容逻辑清楚,容易理解。而且老师也比较认真负责,因为是语言类的学习,所以老师也会给留课下作业,等下次上课的时候会检查,如果不能完成就会有一个小惩罚,例如唱歌表演节目之类的。
-
匿名:我前不久在他们家报名学习日语的,因为自身的工作需要,涉及到日常日语的使用,我来这里是一起工作的朋友推荐的,她在这里学习德语。怪不得朋友会推荐我来这里,我来到这里才发现,他们家真的是特别令我满意,首先这里的工作人员特别热情招呼我,积极询问我的需求,根据我的需要替我安排上课那些,对我的提问和担心也是一一解答,特别耐心亲切。他们这里的学习环境也很好,让人感觉很轻松,小班制上课,对我们学习更加有利,老师上课也很风趣幽默,上课的氛围很轻松,一点不死板,特别喜欢,值得推荐给大家!
-
匿名:这里的服务态度很贴心,一开始我和同学去前台咨询日语的时候,顾问老师就很认真的给我们讲解了他们推出的课程,以及他们机构的特色教学。真的挺礼貌的,给人的感觉就是比较亲切我们报名的小班,就是她推荐的,学费很便宜,大约2000多左右,就能把日语基础学好了,她说这是有保证的,让我们很放心。老师们的教学都是比较新颖的,以前都是用的课件,现在改用新的教学模式,老师上的课程,微信上也有,如果你因为,家里有事或者什么没来上课,微信上也会有的,不怕耽误课程。
-
匿名:教学环境很好,非常舒适,安静,上课的课程气氛很浓厚,我是网上咨询的,他们联系我,后来告诉我觉得老师讲课还是不错的 最先报名时还是有顾虑 所以跟着朋友试听了下效果非常好,然后就和朋友一起来学习了~
-
匿名:我在这上过课,朋友介绍的,小语种很火的,我学的西班牙语,现在一个公司上班,算上绩效,每个月工资也不错,大学毕业之后找工作不太顺利,公司说要西班牙语翻译,朋友推荐我来这学,不得不说,朋友很靠谱,学成之后参加了实训,正好公司要我学西班牙语的,我就直接去了,现在很不错的,我对这很满意,无论是师资力量还是学习环境都很棒。