欢迎来到天天文库
浏览记录
ID:27483326
大小:100.50 KB
页数:7页
时间:2018-12-04
《高质高效嵌入式软件开发》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、高质高效嵌入式软件开发课程简介:嵌入式系统在现实生活中随处可见,大到航天、汽车、通讯系统,小到手机、机顶盒,等等。嵌入式软件开发作为软件行业的一个分枝,也面临着其它软件领域所面临的各种挑战—如何快速上市?如何保证交付软件的最终质量?如何帮助工程师在工作与生活间取得平衡?等等。由于嵌入式软件开发是一个软硬件结合非常紧密的领域,这也使得其面临更大的挑战—软件的可开发性问题可能很突出、对开发人员的综合能力要求更高。从事嵌入式软件开发,最困难的莫过于学习操作系统原理和处理器方面的知识。讲解操作系统原理如果以Linux、WindowsCE、VxWorks等成熟的操作系统为素材并不好,因为
2、它们太大,很容易让人“只见森林不见树木”,也容易让人望而生畏而失去学习的兴趣和信心。从软件开发的角度来看,操作系统的概念和实现原理一旦掌握,不论基于哪一个操作系统做开发都只是调用不同的函数而已。为了让学员获得最好的学习体验,本课程以讲师自己设计的一个实现简洁、完整的“实时”操作系统—ClearRTOS,为基础,通过渐进式的方式细致地讲解操作系统的概念和实现原理。至于处理器方面的知识,本课程没有针对某一具体处理器,而是就编程方面所需的通用知识进行了讲解。对这些通用知识的掌握,将使得处理器对于学员不再那么神秘。与非嵌入式软件开发采用集成开发环境不同,嵌入式软件开发大多是基于命令行的
3、。软件开发工程师除了进行编码工作,还得能驾驭自己的编译环境并运用其他的开发工具辅助开发工作。本课程以来自GNU的工具为例帮助学员战胜这一挑战。值得强调的是,其中花了较大的篇幅帮助学员成为Makefile方面的专家。要实现高质高效地从事软件开发工作,工程师还必须理解软件设计的重要性,并借助一定的质量保证方法论来提高工作质量和效率。软件设计和质量保证方法论是业内比较抽象和高级的话题,为此本课程通过带领实践的方式逐步展开讲解,以帮助学员获得一些实用的设计原则、最佳实践和一套有效的质量保证方法论。总而言之,本课程从知识、工具、方法和思想这四大方面全面讲解如何专业地从事嵌入式软件开发,致
4、力于帮助学员全面走向高质高效编程。【主办单位】中国电子标准协会【协办单位】智通培训资讯网【协办单位】深圳市威硕企业管理咨询有限公司课程目标:掌握嵌入式软件开发所需的与处理器相关的通用知识。明白信号完整性对嵌入式软件开发的影响。掌握嵌入式软件开发所需掌握的GNU工具。包括make、gcc、binutils、ld和gdb。实现更加深入地理解C编程语言。了解引导加载器的大致工作原理和功能。掌握实时操作系统的设计和实现原理。包括多任务、任务同步通讯、内存管理、设备管理和定时器管理。理解设计是软件质量之本,并掌握一种有效的模块管理、错误管理和目录结构管理方法。理解什么是可开发性问题和了解
5、一种解决方法。理解平台与框架开发是打造高质量软件之路。理解软件开发的困难和质量保证需要系统性的方法论。理解软件工程的工作习惯对软件质量的影响。掌握一些终身受用的编程好习惯。理解单元测试的重要性,并掌握一种简单有效的部署方法。理解代码覆盖、静态分析和动态分析对构建高质软件的重要性。课程对象:以C为编程语言的嵌入式和非嵌入式软件开发工程师。部分内容适合软件质量相关管理人员。 内容大纲Day1学习导引1.学什么?2.怎么学?3.工程师技术能力层次模型4.高质高效软件开发组织能力模型[硬件篇]处理器的基本概念1.微处理器与微控制器2.寄存器3.处理器的启动4.输入与输出5.指令与数据6
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.
7、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.
此文档下载收益归作者所有