核心课程
Porducts
当前位置:首页    核心课程    IT技术
IT技术
本模块设计采用可视化与沙盘演练相结合的培训方式,将知识体系以可视化方式呈现来完成,对学员的实际专业知识进行咨询指导,帮助团队完善产品开发管理流程,定制符合自己特点的过程、方法和规范,提升组织级产品开发管理水平;以学员更容易理解的方式完成课程,可以达到非常好的培训效果,打开学员的兴趣,为实际工作做好准备。
编程语言和工具   高质高效嵌入式软件开发

image.png  高质高效嵌入式软件开发课程

image.png  课程天数:2天

image.png  课程介绍

     从事嵌入式软件开发,最困难的莫过于学习操作系统原理和处理器方面的知识。讲解操作系统原理如果以Linux、Windows CE、VxWorks等成熟的操作系统为素材并不好,因为它们太大,很容易让人“只见森林不见树木”,也容易让人望而生畏而失去学习的兴趣和信心。从软件开发的角度来看,操作系统的概念和实现原理一旦掌握,不论基于哪一个操作系统做开发都只是调用不同的函数而已。为了让学员获得最好的学习体验,本课程以讲师自己设计的一个实现简洁、完整的“实时”操作系统 — ClearRTOS,为基础,通过渐进式的方式细致地讲解操作系统的概念和实现原理。至于处理器方面的知识,本课程没有针对某一具体处理器,而是就编程方面所需的通用知识进行了讲解。对这些通用知识的掌握,将使得处理器对于学员不再那么神秘。

     与非嵌入式软件开发采用集成开发环境不同,嵌入式软件开发大多是基于命令行的。软件开发工程师除了进行编码工作,还得能驾驭自己的编译环境并运用其他的开发工具辅助开发工作。本课程以来自GNU的工具为例帮助学员战胜这一挑战。值得强调的是,其中花了较大的篇幅帮助学员成为Makefile方面的专家。

     要实现高质高效地从事软件开发工作,工程师还必须理解软件设计的重要性,并借助一定的质量保证方法论来提高工作质量和效率。软件设计和质量保证方法论是业内比较抽象和高级的话题,为此本课程通过带领实践的方式逐步展开讲解,以帮助学员获得一些实用的设计原则、最佳实践和一套有效的质量保证方法论。

     总而言之,本课程从知识、工具、方法和思想这四大方面全面讲解如何专业地从事嵌入式软件开发,致力于帮助学员全面走向高质高效编程。

image.png  课程收益

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

     • 明白信号完整性对嵌入式软件开发的影响;

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

     • 实现更加深入地理解C编程语言;

     • 了解引导加载器的大致工作原理和功能;

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

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

     • 理解什么是可开发性问题和了解一种解决方法;

     • 理解平台与框架开发是打造高质量软件之路;

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

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

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

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

image.png  培训对象

     • 以C为编程语言的嵌入式和非嵌入式软件开发工程师;

     • 部分内容适合软件质量相关管理人员;

image.png  课程大纲

内容一:学习导引

     • 学什么?

     • 怎么学?

     • 工程师技术能力层次模型

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


内容二:处理器的基本概念

     • 微处理器与微控制器

     • 寄存器

     • 处理器的启动

     • 输入与输出

     • 指令与数据

     • 中断

     • 字节序

     • 边界对齐

     • 断点

     • 内存管理单元

     • 缓存


内容三:开发活动中的硬件问题

     • 两个软件异常案例

     • 异常的背后 — 信号完整性

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


内容四:make,开发环境全能管家

     • 从最简单的Makefile中了解规则

     • 创建基本的编译环境

     • 提高编程环境的实用性

     • 打造更专业的编译环境

     • 理解make的解析行为

     • Makefile的调试

     • make的常用选项

     • 活用make


内容五:gcc,C语言编译器

     • 交叉编译用其环境

     • gcc幕后工作原理

     • 实用的gcc选项


内容六:bintuils工具集,软件开发利器

     • addr2line,指令地址翻译器

     • ar,静态库生成器

     • nm,符号显示器

     • objdump,信息查看器

     • objcopy,段剪辑器

     • size,段大小观察器

     • strings,字符串窥视器

     • strip,程序文件瘦身器


内容七:ld,链接器

     • 重定位的概念

     • 链接脚本


内容八:掌握必要的汇编知识

     • AT&T和Intel语法格式

     • as的语法

     • 嵌入汇编的语法


内容九:深入理解程序的结构

     • 段

     • 栈

     • 堆


内容十:ABI/EABI规范,缔造程序兼容合约

     • 定义基本数据结构

     • 规范字节对齐处理

     • 分配寄存器的功能

     • 规定栈帧结构


内容十一:volatile,让我保持原样

     • 从例子理解volatile


内容十二:设计,软件质量之本

     • 软件设计是什么

     • 软件质量的概念

     • 阻碍改善设计的常见观念

     • 如何提高设计能力

     • 设计模式、设计原则和设计思想

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

     • 软件技术发展的驱动力


  课程目录
1、Linux系统编程与调试调优
2、Linux内核开发与调试
3、高质高效嵌入式软件开发
4、C++语言高级运用与实战
5、Java语言高级运用与实战
站内搜索
联系电话
010-52883521
24小时全国咨询热线,言语交流更有效
公众平台
QQ客服

点击图标,马上与客服沟通  >>
返回顶部