“高質(zhì)高效嵌入式軟件開發(fā)”培訓(xùn)課程

認(rèn)證機(jī)構(gòu)

本課程由中科院計(jì)算所培訓(xùn)中心提供,有921瀏覽量

課程分類:  嵌入式培訓(xùn)

適合對(duì)象:  以C為編程語言的嵌入式和非嵌入式軟件開發(fā)工程師、項(xiàng)目管理師、架構(gòu)師等。

咨詢電話:  400-968-9396

上課地點(diǎn):  [中關(guān)村校區(qū)] 北京市海淀中關(guān)村中關(guān)村958樓中科天博大廈

開班日期:  滾動(dòng)開班

學(xué)       費(fèi):  咨 詢

班       級(jí):  
  • 中關(guān)村校區(qū)
 
人       數(shù):
 
報(bào)名試聽 我要咨詢

課程簡介

 

培訓(xùn)對(duì)象

以C為編程語言的嵌入式和非嵌入式軟件開發(fā)工程師、項(xiàng)目管理師、架構(gòu)師等。

課程設(shè)計(jì)及授課思路

從事嵌入式軟件開發(fā),困難的莫過于學(xué)習(xí)操作系統(tǒng)原理和處理器方面的知識(shí)。講解操作系統(tǒng)原理如果以Linux、Windows CE、VxWorks等成熟的操作系統(tǒng)為素材并不好,因?yàn)樗鼈兲螅苋菀鬃屓?ldquo;只見森林不見樹木”,也容易讓人望而生畏而失去學(xué)習(xí)的興趣和信心。從軟件開發(fā)的角度來看,操作系統(tǒng)的概念和實(shí)現(xiàn)原理一旦掌握,不論基于哪一個(gè)操作系統(tǒng)做開發(fā)都只是調(diào)用不同的函數(shù)而已。為了讓學(xué)員獲得學(xué)習(xí)體驗(yàn),本課程以講師自己設(shè)計(jì)的一個(gè)實(shí)現(xiàn)簡潔、完整的“實(shí)時(shí)”操作系統(tǒng) — ClearRTOS為基礎(chǔ),通過漸進(jìn)式的方式細(xì)致講解操作系統(tǒng)的概念和實(shí)現(xiàn)原理。至于處理器方面的知識(shí),本課程沒有針對(duì)某一具體處理器,而是就編程方面所需的通用知識(shí)進(jìn)行了講解。對(duì)這些通用知識(shí)的掌握,將使得處理器對(duì)于學(xué)員不再那么神秘。

與非嵌入式軟件開發(fā)采用集成開發(fā)環(huán)境不同,嵌入式軟件開發(fā)大多是基于命令行的。軟件開發(fā)工程師除了進(jìn)行編碼工作,還得能駕馭自己的編譯環(huán)境并運(yùn)用其他的開發(fā)工具輔助開發(fā)工作。本課程以來自GNU的工具為例幫助學(xué)員戰(zhàn)勝這一挑戰(zhàn)。值得強(qiáng)調(diào)的是,其中花了較大的篇幅幫助學(xué)員成為Makefile方面的專家。

要實(shí)現(xiàn)高質(zhì)高效地從事軟件開發(fā)工作,項(xiàng)目人員還必須理解軟件設(shè)計(jì)的重要性,并借助一定的質(zhì)量保證方法論來提高工作質(zhì)量和效率。軟件設(shè)計(jì)和質(zhì)量保證方法論是業(yè)內(nèi)比較抽象和高級(jí)的話題,為此本課程通過帶領(lǐng)實(shí)踐的方式逐步展開講解,以幫助學(xué)員獲得一些實(shí)用的設(shè)計(jì)原則、實(shí)踐和一套有效的質(zhì)量保證方法論。

總而言之,本課程從知識(shí)、工具、方法和思想這四大方面全面講解如何專業(yè)地從事嵌入式軟件開發(fā),致力于幫助學(xué)員全面走向高質(zhì)高效編程。

四、培訓(xùn)目標(biāo)

1、掌握嵌入式軟件開發(fā)所需的與處理器相關(guān)的通用知識(shí)。

2、明白信號(hào)完整性對(duì)嵌入式軟件開發(fā)的影響。

3、掌握嵌入式軟件開發(fā)所需掌握的GNU工具。包括make、gcc、binutils、ld和gdb。

4、更加深入地理解C編程語言。

5、了解引導(dǎo)加載器的大致工作原理和功能。

6、掌握實(shí)時(shí)操作系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)原理。包括多任務(wù)、任務(wù)同步通訊、內(nèi)存管理、設(shè)備管理和定時(shí)器管理。

7、理解設(shè)計(jì)是軟件質(zhì)量之本,并掌握一種有效的模塊管理、錯(cuò)誤管理和目錄結(jié)構(gòu)管理方法。

8、理解什么是可開發(fā)性問題和了解一種解決方法。

9、理解平臺(tái)與框架開發(fā)是打造高質(zhì)量軟件之路。

10、理解軟件開發(fā)的困難和質(zhì)量保證需要系統(tǒng)性的方法論。

11、理解軟件工程的工作習(xí)慣對(duì)軟件質(zhì)量的影響,掌握一些終身受用的編程好習(xí)慣。

12、理解單元測試的重要性,并掌握一種簡單有效的部署方法。

13、理解代碼覆蓋、靜態(tài)分析和動(dòng)態(tài)分析對(duì)構(gòu)建高質(zhì)軟件的重要性。

五、培訓(xùn)內(nèi)容

時(shí)  間

內(nèi)  容

大  綱

第1天

學(xué)習(xí)導(dǎo)引

1. 學(xué)什么?怎么學(xué)?

2. 工程師技術(shù)能力層次模型

3. 高質(zhì)高效軟件開發(fā)團(tuán)隊(duì)效能模型

[硬件篇] 處理器的基本概念

1. 微處理器與微控制器

2. 寄存器

3. 處理器的啟動(dòng)

4. 輸入與輸出

5. 指令與數(shù)據(jù)

6. 中斷

7. 字節(jié)序

8. 邊界對(duì)齊

9. 斷點(diǎn)

10. 內(nèi)存管理單元

11. 緩存

[硬件篇] 開發(fā)活動(dòng)中的硬件問題

1. 兩個(gè)軟件異常案例

2. 異常的背后 — 信號(hào)完整性

3. 應(yīng)對(duì)信號(hào)完整性問題的方法

[工具篇] make,開發(fā)環(huán)境全能管家

1. 從簡單的Makefile中了解規(guī)則

2. 創(chuàng)建基本的編譯環(huán)境

3. 提高編程環(huán)境的實(shí)用性

4. 打造更專業(yè)的編譯環(huán)境

5. 理解make的解析行為

6. Makefile的調(diào)試

7. make的常用選項(xiàng)

8. 活用make

[工具篇] gcc,C語言編譯器

1. 交叉編譯用其環(huán)境

2. gcc幕后工作原理

3. 實(shí)用的gcc選項(xiàng)

[工具篇] bintuils工具集,軟件開發(fā)利器

1. addr2line,指令地址翻譯器

2. ar,靜態(tài)庫生成器

3. nm,符號(hào)顯示器

4. objdump,信息查看器

5. objcopy,段剪輯器

6. size,段大小觀察器

7. strings,字符串窺視器

8. strip,程序文件瘦身器

[工具篇] ld,鏈接器

1. 重定位的概念

2. 鏈接腳本

[編程語言篇] 掌握必要的匯編知識(shí)

1. AT&T和Intel語法格式

2. as的語法

3. 嵌入?yún)R編的語法

[編程語言篇] 深入理解程序的結(jié)構(gòu)

段、棧、堆

 

[編程語言篇] ABI/EABI規(guī)范,締造程序兼容合約

1. 定義基本數(shù)據(jù)結(jié)構(gòu)

2. 規(guī)范字節(jié)對(duì)齊處理

3. 分配寄存器的功能

4. 規(guī)定棧幀結(jié)構(gòu)

 

第2天

[編程語言篇] 混淆指針與數(shù)組所導(dǎo)致的問題

1. 問題示例

2. 問題分析

3. 問題成因

4. 預(yù)防措施

 

[編程語言篇] volatile,讓我保持原樣

1. 從例子理解volatile

 

[設(shè)計(jì)篇] 設(shè)計(jì),軟件質(zhì)量之本

1. 軟件設(shè)計(jì)是什么

2. 軟件質(zhì)量的概念

3. 阻礙改善設(shè)計(jì)的常見觀念

4. 如何提高設(shè)計(jì)能力

5. 設(shè)計(jì)模式、設(shè)計(jì)原則和設(shè)計(jì)思想

6. 放之四海皆適用的設(shè)計(jì)原則

 

[設(shè)計(jì)篇] 模塊管理,系統(tǒng)有序運(yùn)行

1. 模塊管理參照系

2. 設(shè)計(jì)思路

3. 程序?qū)崿F(xiàn)

4. 模塊管理的一些思考

 

[設(shè)計(jì)篇] 錯(cuò)誤管理,不可獲缺的用戶需求

1. 現(xiàn)狀與出路

2. 表達(dá)錯(cuò)誤的通用方法

3. 優(yōu)化錯(cuò)誤日志

 

[設(shè)計(jì)篇] 目錄結(jié)構(gòu)管理,使項(xiàng)目進(jìn)展更順利

1. 規(guī)劃目錄結(jié)構(gòu)的意義

2. 出色目錄結(jié)構(gòu)的特點(diǎn)

3. 一個(gè)示例

 

[設(shè)計(jì)篇] 平臺(tái)與框架開發(fā),高質(zhì)量軟件打造之路

1. 系統(tǒng)庫、平臺(tái)和框架

2. 本質(zhì)和優(yōu)點(diǎn)

3. 架構(gòu)模型

4. 困境與生命周期理論

 

[設(shè)計(jì)篇] 可開發(fā)性設(shè)計(jì),一種高效且經(jīng)濟(jì)的開發(fā)模式

1. 可開發(fā)性問題一瞥

2. 可開發(fā)性設(shè)計(jì)的內(nèi)涵

3. 設(shè)備抽象層

4. 更復(fù)雜的設(shè)備抽象層

5. 圖形界面的可開發(fā)性設(shè)計(jì)

6. 其他可開發(fā)性設(shè)計(jì)

 

[操作系統(tǒng)篇] 引導(dǎo)加載器,系統(tǒng)啟航者

1. 功能

2. 文件存儲(chǔ)布局

3. 程序加載原理

4. 優(yōu)點(diǎn)

 

第2天

[操作系統(tǒng)篇] 任務(wù),軟件基本調(diào)度單元

1. 任務(wù)情景

2. 任務(wù)調(diào)度

3. 任務(wù)的生命周期

4. 任務(wù)控制

5. 競爭問題與中斷控制

6. 任務(wù)與中斷狀態(tài)

7. 任務(wù)棧溢出檢測

8. 滴答與空閑任務(wù)

9. 多任務(wù)環(huán)境控制

10. 任務(wù)模塊管理

11. task1示例程序

12. 任務(wù)鉤子函數(shù)

13. 任務(wù)變量

14. 其它概念與思考

 

[操作系統(tǒng)篇] 任務(wù)同步與通信,實(shí)現(xiàn)協(xié)同工作

1. 信號(hào)量

2. 互斥鎖

3. 事件

4. 消息隊(duì)列

5. 死鎖及預(yù)防

 

[操作系統(tǒng)篇] 內(nèi)存管理,協(xié)調(diào)動(dòng)態(tài)內(nèi)存的使用

1. 堆管理(含內(nèi)存溢出和泄漏檢測)

2. 內(nèi)存池管理

 

第3天

[操作系統(tǒng)篇] 設(shè)備管理,方便與外設(shè)交互

1. 字符設(shè)備管理

2. 中斷管理

3. 設(shè)備管理的主要程序?qū)崿F(xiàn)

4. 設(shè)備驅(qū)動(dòng)程序?qū)崿F(xiàn)

5. 驅(qū)動(dòng)安裝與設(shè)備注冊

 

[操作系統(tǒng)篇] 定時(shí)器,程序鬧鐘

1. 軟件定時(shí)器分類

2. 設(shè)計(jì)思路

3. 中斷回調(diào)定時(shí)器

4. 定時(shí)誤差

5. 提高遍歷效率

6. 改善實(shí)時(shí)性

7. 任務(wù)回調(diào)定時(shí)器

 

[質(zhì)量保證篇] 質(zhì)量保證導(dǎo)言

1. 軟件開發(fā)的特點(diǎn)

2. 保證質(zhì)量的關(guān)鍵要素

3. 質(zhì)量保證需要系統(tǒng)性的方法論

4. 走出質(zhì)量困境的指導(dǎo)性思想

 

[質(zhì)量保證篇] 編程好習(xí)慣,質(zhì)量保證的基本條件

1. 一些終生受用的編程好習(xí)慣

 

[質(zhì)量保證篇] 單元測試,被忽視的質(zhì)量保證方法

1. 警惕單元測試無用論

2. 一個(gè)簡單但不完善的單元測試?yán)?/p>

3. 構(gòu)建單元測試框架

4. 無縫整合單元測試

5. 幾個(gè)實(shí)施問題

6. 樁函數(shù)和打樁

7. 錯(cuò)誤注入,一種可測試性設(shè)計(jì)

8. 平臺(tái)開發(fā)與單元測試

9. 被測行為的確定性

10. 被測用例的有效性

 

[質(zhì)量保證篇] 代碼覆蓋,單元測試效果的衡量指標(biāo)

1. 了解代碼覆蓋工具

2. 無縫整合代碼覆蓋

3. 三個(gè)代碼覆蓋度量指標(biāo)

 

[質(zhì)量保證篇] 靜態(tài)分析,防止將失誤帶給用戶

1. 認(rèn)識(shí)靜態(tài)分析工具

2. 無縫整合靜態(tài)分析工具

 

[質(zhì)量保證篇] 動(dòng)態(tài)分析,使程序更健壯

1. 結(jié)識(shí)動(dòng)態(tài)分析工具

2. 無縫整合動(dòng)態(tài)分析工具

 

[質(zhì)量保證篇] 性能分析,讓優(yōu)化程序有的放矢

1. 初探性能分析工具

2. 無縫整合性能分析工具

 

[質(zhì)量保證篇] qBench,一個(gè)開發(fā)高質(zhì)軟件的工作臺(tái)

 

 

 

 

 

開設(shè)班級(jí)

班級(jí) 開班時(shí)間 上課地點(diǎn) 學(xué)費(fèi) 試聽/報(bào)名
中關(guān)村校區(qū)/ 面授 滾動(dòng)開班 北京海淀中關(guān)村958樓中科天博大廈 咨詢 報(bào)名
 

教學(xué)環(huán)境

查看全部照片  >

課程咨詢

我要咨詢
 

發(fā)表咨詢

 
有回復(fù)時(shí)短信通知我 發(fā)表咨詢
課程推薦

“測試驅(qū)動(dòng)開發(fā)與軟件重構(gòu)”培訓(xùn)課

注重實(shí)效的開發(fā)人員、開發(fā)工程師、開發(fā)團(tuán)隊(duì)負(fù)責(zé)人等。

“數(shù)據(jù)倉庫與數(shù)據(jù)挖掘”培訓(xùn)課程

數(shù)據(jù)倉庫管理人員、建模人員,分析人員和開發(fā)人員、系統(tǒng)管理人員、數(shù)據(jù)庫管理人員以及對(duì)數(shù)據(jù)倉庫感興趣的其他人員。

GJB5000A-2008軍用軟件研制 能力成熟度模型培訓(xùn)班

科研院所、部隊(duì)、參與軍用軟件開發(fā)的各機(jī)構(gòu)質(zhì)量部門負(fù)責(zé)人、產(chǎn)品研發(fā)與項(xiàng)目負(fù)責(zé)人以及主要技術(shù)人員。
更新時(shí)間:2023-06-30