搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 中际赛威 > 嵌入式C语言高质量编程最佳实践---2018年3月22日上海开班

嵌入式C语言高质量编程最佳实践---2018年3月22日上海开班

中际赛威 2018-03-01

课程背景:

  由于高等教育模式的使然,使得国内不少拥有一定工作年限的工程师所认知的C语言 和工程上的实用C依然有一定的差距。无论软件架构设计的不得当,还是代码书写的不严谨、不规范,最终都会导致产品暴露出各种bug,客户埋怨,工程师痛苦,代码的维护成本提高,公司蒙受经济损失。
课程目的:

  本课程主讲老师将会把自己多次参与国际大型合作项目的视角和经验分享给各位,让大家重新认识到,真正的编程思想是什么?怎样编写卓越的代码?同时,也会给大家展示业界各种软件项目管理工具的使用习惯,使大家能从更宏观、更广泛的高度来看待编码这个工作,帮助大家开阔眼界和思路。 
本课程涉及主要内容:
1、包括C高级特性、代码风格、代码审核、代码维护、代码重构,
2、会深度分析C软件模块划分的原则以及如何将面向对象的思想完美得用在工程项目之中。
3、会介绍RTOS或复杂操作系统环境下多任务划分的技巧。指导嵌入式系统的开发者开发出具有高可读性、可扩展性和可维护性的代码。
一、主办单位:
中国高科技产业化研究会智能信息处理产业化分会
北京中际赛威文化发展有限公司 
北京中际孚歌科技有限公司
北京中际荣威科技有限公司
二、时间/地点:
第24期  2018年03月22-23日(21日报到)  上海           
三、课程特点:
本课程暨有业界先进做法的分享与高质量源码的范例,也有大家常犯错误的举例,从内容安排上可看到5个层次,由浅入深逐级递进。 
1、宏观概述:分层解释嵌入式系统组件,在个性中找共性。
2、见微知著:嵌入式C基础高级主题,介绍嵌C易被忽略的重要概念,编译器和cache的一些特点。
3、标杆对照:从嵌入式C语言编码风格入手,传播给大家正确的编码价值观方法论,包括良好的编程习惯,版本管理,软件项目管理等。 
4、架构优化:用若干实例讲解如何实现模块划分的低耦合,以及如何用嵌入式C的面向对象来改善软件架构。 
5、质量提升:如何通过防御编程,代码评审,代码重构来一遍遍优化代码。
四、专讲专家: 
宋老师,中际赛威金牌讲师,知名嵌入式系统专家,2008~2009年度十大畅销书、十大原创图书《Linux设备驱动开发详解》作者,译有《Essential Linux Device Drivers》,曾为思科、阿尔卡特、朗讯、四方、意法半导体、富士施乐、代傲电子、飞利浦、南瑞、宝信、美国国家仪器、ABB、中国建设银行等知名企业提供嵌入式Linux企业培训和技术服务,受到企业广泛好评。活跃于 Linux社区,已给Linux官方内核贡献了逾3万行代码,是给Linux官方内核贡献代码最多的华人之一。宋老师目前是Linux官方内核ARM子系统内maintainer之一。
五、授课内容: 
热身

  • 嵌入式体系架构与C

  • C编译流程

  • C编译器的编译优化

  • 如何评判代码质量

  • C语言的不同种类

课程内容一 嵌入式C关键特性

第一章 C深入理解

  • 变量与内存分配机制

  • 指针和函数指针

  • 关键字restrict

  • 关键字static和extern

  • 关键字volatile

  • 关键字const

  • 零长度数组

  • 位操作的应用

  • 结构体中的位域

  • 字节序与位序

  • 内存的分配和控制

  • C的内存陷阱与表象

  • DMA与cache一致性问题

  • 强弱符号

第二章 嵌入式C编码风格

  • 变量、函数、宏、文件等的命名

  • 代码排版与布局

  • 怎样编写高质量注释

  • 代码与文档

  • 代码的提交(commit)与提交时候的审核

第三章 嵌入式C性能优化

  • 找出耗时的代码

  • 使用宏和inline

  • 使用寄存器变量

  • 内嵌汇编

  • 利用硬件特性(cache, pipeline)

  • 循环展开

  • 使用查找表

  • 编译优化

  • 乱序执行与内存屏障

课程内容二 嵌入式C软件结构
第四章 嵌入式C软件模块与模块划分

  • 模块划分原则(高质量,低耦合)

  • 源代码文件和目录的组织

  • 硬件驱动模块

  • 软件功能模块

  • 提供API

  • 头文件

  • 全局变量

  • 主循环与中断

  • 主循环与中断的互斥与通信

  • 锁的正确使用、临界区

  • 操作系统下多任务划分原则

  • 软件的目录组织

  • 驱动的跨CPU实现

  • 业务逻辑的跨平台实现

第五章 嵌入式C的面向对象

  • 用struct来模拟class

  • 封装

  • 继承

  • 多态

  • 软件分层与中间层的设计

  • 利用面向对象思想优化软件架构

课程内容三 嵌入式C编码
第六章 嵌入式C函数

  • 一个函数只做一件事,不要编写多种功能集于一身的函数

  • 明确地定义函数的参数

  • 避免比尔类型参数

  • 编写函数使其在给定有效的输入情况下不会失败

  • 函数不依赖于另一个函数的内部细节

  • 函数要小且容易测试

  • 函数内部代码块

  • 线程安全与函数的可重入

第七章 嵌入式C防御性编程

  • 防御性代码的风格

  • 编译警告开关的使用

  • 预计所有可能的异常

  • 检查所有的返回值

  • 审慎处理内存资源

  • 变量声明策略

  • 审慎地进行强制转换

  • 避免运算越界

  • 使用lint来查出编译程序漏掉的错误

  • 使用断言

第八章 嵌入式C代码重构

  • 代码重构的原则

  • 重新命名函数

  • 提炼函数

  • 提炼判断条件

  • 简化函数参数

  • 解除全局变量的噩梦

  • 避免函数传递中的隐形bug

  • 调整函数位置

第九章 嵌入式C代码评审

  • 代码评审的规范

  • 代码评审的组织方式

  • 代码评审的内容

  • 结合配置管理强制代码评审

七、课程咨询:010-64113137



版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《嵌入式C语言高质量编程最佳实践---2018年3月22日上海开班》的版权归原作者「中际赛威」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注中际赛威微信公众号

中际赛威微信公众号:zhongjisaiwei

中际赛威

手机扫描上方二维码即可关注中际赛威微信公众号

中际赛威最新文章

精品公众号随机推荐