高质高效嵌入式软件开发.doc_第1页
高质高效嵌入式软件开发.doc_第2页
高质高效嵌入式软件开发.doc_第3页
高质高效嵌入式软件开发.doc_第4页
高质高效嵌入式软件开发.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高质高效嵌入式软件开发课程简介:嵌入式系统在现实生活中随处可见,大到航天、汽车、通讯系统,小到手机、机顶盒,等等。嵌入式软件开发作为软件行业的一个分枝,也面临着其它软件领域所面临的各种挑战 如何快速上市?如何保证交付软件的最终质量?如何帮助工程师在工作与生活间取得平衡?等等。由于嵌入式软件开发是一个软硬件结合非常紧密的领域,这也使得其面临更大的挑战 软件的可开发性问题可能很突出、对开发人员的综合能力要求更高。从事嵌入式软件开发,最困难的莫过于学习操作系统原理和处理器方面的知识。讲解操作系统原理如果以Linux、Windows CE、VxWorks等成熟的操作系统为素材并不好,因为它们太大,很容易让人“只见森林不见树木”,也容易让人望而生畏而失去学习的兴趣和信心。从软件开发的角度来看,操作系统的概念和实现原理一旦掌握,不论基于哪一个操作系统做开发都只是调用不同的函数而已。为了让学员获得最好的学习体验,本课程以讲师自己设计的一个实现简洁、完整的“实时”操作系统 ClearRTOS,为基础,通过渐进式的方式细致地讲解操作系统的概念和实现原理。至于处理器方面的知识,本课程没有针对某一具体处理器,而是就编程方面所需的通用知识进行了讲解。对这些通用知识的掌握,将使得处理器对于学员不再那么神秘。与非嵌入式软件开发采用集成开发环境不同,嵌入式软件开发大多是基于命令行的。软件开发工程师除了进行编码工作,还得能驾驭自己的编译环境并运用其他的开发工具辅助开发工作。本课程以来自GNU的工具为例帮助学员战胜这一挑战。值得强调的是,其中花了较大的篇幅帮助学员成为Makefile方面的专家。要实现高质高效地从事软件开发工作,工程师还必须理解软件设计的重要性,并借助一定的质量保证方法论来提高工作质量和效率。软件设计和质量保证方法论是业内比较抽象和高级的话题,为此本课程通过带领实践的方式逐步展开讲解,以帮助学员获得一些实用的设计原则、最佳实践和一套有效的质量保证方法论。总而言之,本课程从知识、工具、方法和思想这四大方面全面讲解如何专业地从事嵌入式软件开发,致力于帮助学员全面走向高质高效编程。【主办单位】中国电子标准协会【协办单位】智通培训资讯网【协办单位】深圳市威硕企业管理咨询有限公司课程目标:掌握嵌入式软件开发所需的与处理器相关的通用知识。 明白信号完整性对嵌入式软件开发的影响。 掌握嵌入式软件开发所需掌握的GNU工具。包括make、gcc、binutils、ld和gdb。 实现更加深入地理解C编程语言。 了解引导加载器的大致工作原理和功能。 掌握实时操作系统的设计和实现原理。包括多任务、任务同步通讯、内存管理、设备管理和定时器管理。 理解设计是软件质量之本,并掌握一种有效的模块管理、错误管理和目录结构管理方法。 理解什么是可开发性问题和了解一种解决方法。 理解平台与框架开发是打造高质量软件之路。 理解软件开发的困难和质量保证需要系统性的方法论。 理解软件工程的工作习惯对软件质量的影响。掌握一些终身受用的编程好习惯。 理解单元测试的重要性,并掌握一种简单有效的部署方法。理解代码覆盖、静态分析和动态分析对构建高质软件的重要性。 课程对象:以C为编程语言的嵌入式和非嵌入式软件开发工程师。 部分内容适合软件质量相关管理人员。 内容大纲Day1学习导引1. 学什么?2. 怎么学?3. 工程师技术能力层次模型4. 高质高效软件开发组织能力模型硬件篇 处理器的基本概念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. 嵌入汇编的语法编程语言篇 深入理解程序的结构1. 段2. 栈3. 堆编程语言篇 ABI/EABI规范,缔造程序兼容合约1. 定义基本数据结构2. 规范字节对齐处理3. 分配寄存器的功能4. 规定栈帧结构Day2编程语言篇 混淆指针与数组所导致的问题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. 内存池管理Day3操作系统篇 设备管理,方便与外设交互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,一个开发高质软件的工作台老师介绍:姓名:李云年龄:38性格类型:严谨、细致、善于表达和乐于分享 教育背景:浙江大学:通讯工程浙江大学:MBA(正处于论文答辩阶段)品牌课程:高质高效嵌入式软件开发:本课程致力于提高软件开发工程师的知识与技能,以及帮助项目团队建立高效的质量保证方法论。课程设置涵盖知识、思想、方法和实践。优势业务:大型通讯软件项目的开发咨询,包括白盒测试的实施指导、软件平台与框架设计的指导、软件项目编译环境的设计指导。嵌入式产品的开发咨询。授课风格:擅长用简单、易于理解的方式讲解知识,通过各种提问引发学员的思考。普通话良好工作经历:2011.4至今:就职于诺基亚西门子网络通讯技术有限公司,任WCDMA基站软件架构师。主要工作是基于TI DSP的软件开发与架构设计。2006.7至2011.3:就职于Motorola杭州研发中心,任职软件开发架构师。后期主要从事无线接入技术WiMAX接入网关产品软件架构方面的工作,包括需求管理、系统软件架构设计审查、子系统新特性开发工作量评估,以及为接入网关的软件实现提供具体指导。前期主要负责基站和接入网关产品中网管中间件软件的开发工作,包括负责该软件的设计与实现、期间评审,以及带领团队解决具体技术难题。2003.6至2006.6:就职于UTStarcom通讯有限公司,任软件开发工程师。主要从事的工作包括:开源RTEMS实时操作系统及相关IP协议栈在小灵通基站控制器产品上的运用维护;将ACE运用于EBox产品以实现跨平台软件开发功能;运用PowerPC的MMU功能在VxWorks.5.0实时操作系统上实现了任务栈的保护功能;参与ADSL宽带接入产品的软件开发工作,主要工作内容是相关IP协议栈的维护,包括PPPoE、Radix路由等。1999.11至2003.5:就职于浙江大立科技技术有限公司,作软件开发工程师。主要从事的工作包括:负责变电站图像监控桌面软件的开发,其中主要包括的技术有Windows VxD驱动、socket通讯、多线程编程、ODBC数据库存取,以及图像处理功能(如锐化、伪彩处理、字符识别等);独立完成了基于AMD E

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论