| 開課地點: | 深圳 | |||||||
|---|---|---|---|---|---|---|---|---|
| 授課時間: | 2天 | |||||||
| 授課顧問: | 李云 | |||||||
| 開課時間: | 2014-09-20 | |||||||
| 市場報價: | 5800 | |||||||
| 購買價格: | 4640 | |||||||
| 課程排期 |
| |||||||
| 審核時間: | 我要報名2014-09-19 16:46:08 | |||||||
嵌入式系統(tǒng)在現(xiàn)實生活中隨處可見,大到航天、汽車、通訊系統(tǒng),小到手機、機頂盒,等等。嵌入式軟件開發(fā)作為軟件行業(yè)的一個分枝,也面臨著其它軟件領(lǐng)域所面臨的各種挑戰(zhàn) — 如何快速上市?如何保證交付軟件的最終質(zhì)量?如何幫助工程師在工作與生活間取得平衡?等等。由于嵌入式軟件開發(fā)是一個軟硬件結(jié)合非常緊密的領(lǐng)域,這也使得其面臨更大的挑戰(zhàn) — 軟件的可開發(fā)性問題可能很突出、對開發(fā)人員的綜合能力要求更高。 從事嵌入式軟件開發(fā),最困難的莫過于學習操作系統(tǒng)原理和處理器方面的知識。講解操作系統(tǒng)原理如果以Linux、Windows CE、VxWorks等成熟的操作系統(tǒng)為素材并不好,因為它們太大,很容易讓人“只見森林不見樹木”,也容易讓人望而生畏而失去學習的興趣和信心。從軟件開發(fā)的角度來看,操作系統(tǒng)的概念和實現(xiàn)原理一旦掌握,不論基于哪一個操作系統(tǒng)做開發(fā)都只是調(diào)用不同的函數(shù)而已。為了讓學員獲得最好的學習體驗,本課程以講師自己設計的一個實現(xiàn)簡潔、完整的“實時”操作系統(tǒng) — ClearRTOS,為基礎(chǔ),通過漸進式的方式細致地講解操作系統(tǒng)的概念和實現(xiàn)原理。至于處理器方面的知識,本課程沒有針對某一具體處理器,而是就編程方面所需的通用知識進行了講解。對這些通用知識的掌握,將使得處理器對于學員不再那么神秘。 與非嵌入式軟件開發(fā)采用集成開發(fā)環(huán)境不同,嵌入式軟件開發(fā)大多是基于命令行的。軟件開發(fā)工程師除了進行編碼工作,還得能駕馭自己的編譯環(huán)境并運用其他的開發(fā)工具輔助開發(fā)工作。本課程以來自GNU的工具為例幫助學員戰(zhàn)勝這一挑戰(zhàn)。值得強調(diào)的是,其中花了較大的篇幅幫助學員成為Makefile方面的專家。 要實現(xiàn)高質(zhì)高效地從事軟件開發(fā)工作,工程師還必須理解軟件設計的重要性,并借助一定的質(zhì)量保證方法論來提高工作質(zhì)量和效率。軟件設計和質(zhì)量保證方法論是業(yè)內(nèi)比較抽象和高級的話題,為此本課程通過帶領(lǐng)實踐的方式逐步展開講解,以幫助學員獲得一些實用的設計原則、最佳實踐和一套有效的質(zhì)量保證方法論。 總而言之,本課程從知識、工具、方法和思想這四大方面全面講解如何專業(yè)地從事嵌入式軟件開發(fā),致力于幫助學員全面走向高質(zhì)高效編程。
以C為編程語言的嵌入式和非嵌入式軟件開發(fā)工程師;部分內(nèi)容適合軟件質(zhì)量相關(guān)管理人員
掌握嵌入式軟件開發(fā)所需的與處理器相關(guān)的通用知識。
明白信號完整性對嵌入式軟件開發(fā)的影響。
掌握嵌入式軟件開發(fā)所需掌握的GNU工具。包括make、gcc、binutils、ld和gdb。
實現(xiàn)更加深入地理解C編程語言。
了解引導加載器的大致工作原理和功能。
掌握實時操作系統(tǒng)的設計和實現(xiàn)原理。包括多任務、任務同步通訊、內(nèi)存管理、設備管理和定時器管理。
理解設計是軟件質(zhì)量之本,并掌握一種有效的模塊管理、錯誤管理和目錄結(jié)構(gòu)管理方法。
理解什么是可開發(fā)性問題和了解一種解決方法。
理解平臺與框架開發(fā)是打造高質(zhì)量軟件之路。
理解軟件開發(fā)的困難和質(zhì)量保證需要系統(tǒng)性的方法論。
理解軟件工程的工作習慣對軟件質(zhì)量的影響。掌握一些終身受用的編程好習慣。
理解單元測試的重要性,并掌握一種簡單有效的部署方法。
理解代碼覆蓋、靜態(tài)分析和動態(tài)分析對構(gòu)建高質(zhì)軟件的重要性。
學習導引(1小時)
1. 學什么?
2. 怎么學?
3. 工程師技術(shù)能力層次模型
4. 高質(zhì)高效軟件開發(fā)團隊效能模型
【硬件篇】處理器的基本概念(40分鐘)
1. 微處理器與微控制器
2. 寄存器
3. 處理器的啟動
4. 輸入與輸出
5. 指令與數(shù)據(jù)
6. 中斷
7. 字節(jié)序
8. 邊界對齊
9. 斷點
10. 內(nèi)存管理單元
11. 緩存
【硬件篇】開發(fā)活動中的硬件問題(20分鐘)
1. 兩個軟件異常案例
2. 異常的背后 — 信號完整性
3. 應對信號完整性問題的方法
【工具篇】gcc,C語言編譯器(1小時)
1. 交叉編譯用其環(huán)境
2. gcc幕后工作原理
3. 實用的gcc選項
【工具篇】bintuils工具集,軟件開發(fā)利器(1小時)
1. addr2line,指令地址翻譯器
2. ar,靜態(tài)庫生成器
3. nm,符號顯示器
4. objdump,信息查看器
5. objcopy,段剪輯器
6. size,段大小觀察器
7. strings,字符串窺視器
8. strip,程序文件瘦身器
【工具篇】ld,鏈接器(0.5小時)
1. 重定位的概念
2. 鏈接腳本
【編程語言篇】掌握必要的匯編知識(0.25小時)
1. AT&T和Intel語法格式
2. as的語法
3. 嵌入?yún)R編的語法
【編程語言篇】深入理解程序的結(jié)構(gòu)(0.25小時)
1. 段
2. 棧
3. 堆
【編程語言篇】ABI/EABI規(guī)范,締造程序兼容合約(0.5小時)
1. 定義基本數(shù)據(jù)結(jié)構(gòu)
2. 規(guī)范字節(jié)對齊處理
3. 分配寄存器的功能
4. 規(guī)定棧幀結(jié)構(gòu)
【編程語言篇】混淆指針與數(shù)組所導致的問題(0.5小時)
1. 問題示例
2. 問題分析
3. 問題成因
4. 預防措施
【編程語言篇】volatile,讓我保持原樣(0.25小時)
1. 從例子理解volatile
【設計篇】設計,軟件質(zhì)量之本(1小時)
1. 軟件設計是什么
2. 軟件質(zhì)量的概念
3. 阻礙改善設計的常見觀念
4. 如何提高設計能力
5. 設計模式、設計原則和設計思想
6. 放之四海皆適用的設計原則
7. 軟件技術(shù)發(fā)展的驅(qū)動力
【設計篇】模塊管理,保障系統(tǒng)有序運行(0.5小時)
1. 模塊管理參照系
2. 設計思路
3. 程序?qū)崿F(xiàn)
4. 模塊管理的一些思考
【設計篇】錯誤管理,不可獲缺的用戶需求(0.75小時)
1. 現(xiàn)狀與出路
2. 表達錯誤的通用方法
3. 優(yōu)化錯誤日志
【設計篇】目錄結(jié)構(gòu)管理,使項目進展更順利(0.25小時)
1. 規(guī)劃目錄結(jié)構(gòu)的意義
2. 出色目錄結(jié)構(gòu)的特點
3. 一個示例
【設計篇】平臺與框架開發(fā),高質(zhì)量軟件打造之路(0.5小時)
1. 系統(tǒng)庫、平臺和框架
2. 本質(zhì)和優(yōu)點
3. 架構(gòu)模型
4. 困境與生命周期理論
【設計篇】可開發(fā)性設計,一種高效且經(jīng)濟的開發(fā)模式(0.5小時)
1. 可開發(fā)性問題一瞥
2. 可開發(fā)性設計的內(nèi)涵
3. 設備抽象層
4. 更復雜的設備抽象層
5. 圖形界面的可開發(fā)性設計
6. 其他可開發(fā)性設計
[操作系統(tǒng)篇】引導加載器,系統(tǒng)啟航者(0.5小時)
1. 功能
2. 文件存儲布局
3. 程序加載原理
4. 優(yōu)點
【質(zhì)量保證篇】質(zhì)量保證導言(0.75小時)
1. 軟件開發(fā)的特點
2. 保證質(zhì)量的關(guān)鍵要素
3. 質(zhì)量保證需要系統(tǒng)性的方法論
4. 走出質(zhì)量困境的指導性思想
【質(zhì)量保證篇】編程好習慣,質(zhì)量保證的基本條件(0.75小時)
1. 一些終生受用的編程好習慣
【質(zhì)量保證篇】單元測試,被忽視的質(zhì)量保證方法(0.75小時)
1. 警惕單元測試無用論
2. 一個簡單但不完善的單元測試例子
3. 構(gòu)建單元測試框架
4. 無縫整合單元測試
5. 幾個實施問題
6. 樁函數(shù)和打樁
7. 錯誤注入,一種可測試性設計
8. 平臺開發(fā)與單元測試
9. 被測行為的確定性
10. 被測用例的有效性
【質(zhì)量保證篇】代碼覆蓋,單元測試效果的衡量指標(0.25小時)
1. 了解代碼覆蓋工具
2. 無縫整合代碼覆蓋
3. 三個代碼覆蓋度量指標
【質(zhì)量保證篇】靜態(tài)分析,防止將失誤帶給用戶(0.25小時)
1. 認識靜態(tài)分析工具
2. 無縫整合靜態(tài)分析工具
【質(zhì)量保證篇】動態(tài)分析,使程序更健壯(0.5小時)
1. 結(jié)識動態(tài)分析工具
2. 無縫整合動態(tài)分析工具
【質(zhì)量保證篇] 性能分析,讓優(yōu)化程序有的放矢(0.25小時)
1. 初探性能分析工具
2. 無縫整合性能分析工具
1. 功能
2. 文件存儲布局
3. 程序加載原理
4. 優(yōu)點
【質(zhì)量保證篇】質(zhì)量保證導言(0.75小時)
1. 軟件開發(fā)的特點
2. 保證質(zhì)量的關(guān)鍵要素
3. 質(zhì)量保證需要系統(tǒng)性的方法論
4. 走出質(zhì)量困境的指導性思想
【質(zhì)量保證篇】編程好習慣,質(zhì)量保證的基本條件(0.75小時)
1. 一些終生受用的編程好習慣
【質(zhì)量保證篇】單元測試,被忽視的質(zhì)量保證方法(0.75小時)
1. 警惕單元測試無用論
2. 一個簡單但不完善的單元測試例子
3. 構(gòu)建單元測試框架
4. 無縫整合單元測試
5. 幾個實施問題
6. 樁函數(shù)和打樁
7. 錯誤注入,一種可測試性設計
8. 平臺開發(fā)與單元測試
9. 被測行為的確定性
10. 被測用例的有效性
【質(zhì)量保證篇】代碼覆蓋,單元測試效果的衡量指標(0.25小時)
1. 了解代碼覆蓋工具
2. 無縫整合代碼覆蓋
3. 三個代碼覆蓋度量指標
【質(zhì)量保證篇】靜態(tài)分析,防止將失誤帶給用戶(0.25小時)
1. 認識靜態(tài)分析工具
2. 無縫整合靜態(tài)分析工具
【質(zhì)量保證篇】動態(tài)分析,使程序更健壯(0.5小時)
1. 結(jié)識動態(tài)分析工具
2. 無縫整合動態(tài)分析工具
【質(zhì)量保證篇] 性能分析,讓優(yōu)化程序有的放矢(0.25小時)
1. 初探性能分析工具
2. 無縫整合性能分析工具
李云
中國培訓網(wǎng)高級講師
前Motorola軟件開發(fā)架構(gòu)師、現(xiàn)諾基亞西門子網(wǎng)絡(NSN)軟件系統(tǒng)架構(gòu)師
具有一定硬件開發(fā)經(jīng)驗的資深軟件開發(fā)工程師、51CTO作客專家,專注于嵌入式系統(tǒng)開發(fā)、軟件平臺與框架設計,以及UML建模。著有《專業(yè)嵌入式軟件開發(fā)—全面走向高質(zhì)高效編程》。早在2000年開始從事嵌入式軟件開發(fā)工作,內(nèi)容主要包括:操作系統(tǒng)內(nèi)核、文件系統(tǒng)和IP協(xié)議棧的移植,IDE硬盤、以太網(wǎng)芯 片和PCI等外設的驅(qū)動開發(fā)。熟悉x86、PowerPC、XScale處理器,以及TI DSP。源碼級熟悉uC/OS、RTEMS和VxWorks實時操作系統(tǒng)的實現(xiàn),并在這些操作系統(tǒng)上有著豐富的軟件開發(fā)經(jīng)驗。
網(wǎng)站備案號:粵ICP備14053066號-1 版權(quán)所有:英盛企管
Copyright 2015 Enterprise Management Training Center All Rights Reserved.