您好!歡迎來到確立達集團 · 惠州公司,制造培訓網!
咨詢熱線
您現在的位置:首頁 > 培訓課程分類 > 研發管理
高質高效嵌入式軟件開發
發布日期:2020-04-08  瀏覽次數:

高質高效嵌入式軟件開發 
【課程背景】 
嵌入式系統在現實生活中隨處可見,大到航天、汽車、通訊系統,小到手機、機頂盒,等等。嵌入式軟件開發作為軟件行業的一個分枝,也面臨著其它軟件領域所面臨的各種挑戰:如何快速上市?如何保證交付軟件的最終質量?如何幫助工程師在工作與生活間取得平衡?等等。 
由于嵌入式軟件開發是一個軟硬件結合非常緊密的領域,這也使得其面臨更大的挑戰:軟件的可開發性問題可能很突出、對開發人員的綜合能力要求更高。 從事嵌入式軟件開發,最困難的莫過于學習操作系統原理和處理器方面的知識。講解操作系統原理如果以Linux、Windows CE、VxWorks等成熟的操作系統為素材并不好,因為它們太大,很容易讓人“只見森林不見樹木”,也容易讓人望而生畏而失去學習的興趣和信心。從軟件開發的角度來看,操作系統的概念和實現原理一旦掌握,不論基于哪一個操作系統做開發都只是調用不同的函數而已。為了讓學員獲得最好的學習體驗,本課程以講師自己設計的一個實現簡潔、完整的“實時”操作系統 — ClearRTOS為基礎,通過漸進式的方式細致地講解操作系統的概念和實現原理。 
至于處理器方面的知識,本課程沒有針對某一具體處理器,而是就編程方面所需的通用知識進行了講解。對這些通用知識的掌握,將使得處理器對于學員不再那么神秘。 與非嵌入式軟件開發采用集成開發環境不同,嵌入式軟件開發大多是基于命令行的。軟件開發工程師除了進行編碼工作,還得能駕馭自己的編譯環境并運用其他的開發工具輔助開發工作。本課程以來自GNU的工具為例幫助學員戰勝這一挑戰。值得強調的是,其中花了較大的篇幅幫助學員成為Makefile方面的專家。 
要實現高質高效地從事軟件開發工作,工程師還必須理解軟件設計的重要性,并借助一定的質量保證方法論來提高工作質量和效率。軟件設計和質量保證方法論是業內比較抽象和高級的話題,為此本課程通過帶領實踐的方式逐步展開講解,以幫助學員獲得一些實用的設計原則、最佳實踐和一套有效的質量保證方法論。 總而言之,本課程從知識、工具、方法和思想這四大方面全面講解如何專業地從事嵌入式軟件開發,致力于幫助學員全面走向高質高效編程。 
【課程目標】 
v 明白信號完整性對嵌入式軟件開發的影響。 
v 掌握嵌入式軟件開發所需掌握的GNU工具。包括make、gcc、binutils、ld和gdb。 
v 掌握實時操作系統的設計和實現原理。包括多任務、任務同步通訊、內存管理、設備管理和定時器管理。 
v 理解設計是軟件質量之本,并掌握一種有效的模塊管理、錯誤管理和目錄結構管理方法。 
v 理解軟件工程的工作習慣對軟件質量的影響。掌握一些終身受用的編程好習慣。 
v 理解單元測試的重要性,并掌握一種簡單有效的部署方法。 
v 理解代碼覆蓋、靜態分析和動態分析對構建高質軟件的重要性。 
【課程對象】 
v 以C為編程語言的嵌入式和非嵌入式軟件開發工程師。 
v 部分內容適合軟件質量相關管理人員。 
【輔導資料】 
《專業嵌入式軟件開發 — 全面走向高質高效編程》(2012) 李云 電子工業出版社 
【課程大綱】 
一、學習導引(1小時) 
1. 學什么? 
2. 怎么學? 
3. 工程師技術能力層次模型 
4. 高質高效軟件開發團隊效能模型 
二、【硬件篇】處理器的基本概念(40分鐘) 
1. 微處理器與微控制器 
2. 寄存器 
3. 處理器的啟動 
4. 輸入與輸出 
5. 指令與數據 
6. 中斷 
7. 字節序 
8. 邊界對齊 
9. 斷點 
10. 內存管理單元 
11. 緩存 
三、【硬件篇】開發活動中的硬件問題(20分鐘) 
1. 兩個軟件異常案例 
2. 異常的背后 — 信號完整性 
3. 應對信號完整性問題的方法 
四、【工具篇】gcc,C語言編譯器(1小時) 
1. 交叉編譯用其環境 
2. gcc幕后工作原理 
3. 實用的gcc選項 
五、【工具篇】bintuils工具集,軟件開發利器(1小時) 
1. addr2line,指令地址翻譯器 
2. ar,靜態庫生成器 
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. 嵌入匯編的語法 
八【編程語言篇】深入理解程序的結構(0.25小時) 
1. 段 
2. 棧 
3. 堆 
九、【編程語言篇】ABI/EABI規范,締造程序兼容合約(0.5小時) 
1. 定義基本數據結構 
2. 規范字節對齊處理 
3. 分配寄存器的功能 
4. 規定棧幀結構 
十、【編程語言篇】混淆指針與數組所導致的問題(0.5小時) 
1. 問題示例 
2. 問題分析 
3. 問題成因 
4. 預防措施 
十一、【編程語言篇】volatile,讓我保持原樣(0.25小時) 
1. 從例子理解volatile 
十二、【設計篇】設計,軟件質量之本(1小時) 
1. 軟件設計是什么 
2. 軟件質量的概念 
3. 阻礙改善設計的常見觀念 
4. 如何提高設計能力 
5. 設計模式、設計原則和設計思想 
6. 放之四海皆適用的設計原則 
7. 軟件技術發展的驅動力 
十三、【設計篇】模塊管理,保障系統有序運行(0.5小時) 
1. 模塊管理參照系 
2. 設計思路 
3. 程序實現 
4. 模塊管理的一些思考 
十四、【設計篇】錯誤管理,不可獲缺的用戶需求(0.75小時) 
1. 現狀與出路 
2. 表達錯誤的通用方法 
3. 優化錯誤日志 
十五、【設計篇】目錄結構管理,使項目進展更順利(0.25小時) 
1. 規劃目錄結構的意義 
2. 出色目錄結構的特點 
3. 一個示例 
十六、【設計篇】平臺與框架開發,高質量軟件打造之路(0.5小時) 
1. 系統庫、平臺和框架 
2. 本質和優點 
3. 架構模型 
4. 困境與生命周期理論 
十七、【設計篇】可開發性設計,一種高效且經濟的開發模式(0.5小時) 
1. 可開發性問題一瞥 
2. 可開發性設計的內涵 
3. 設備抽象層 
4. 更復雜的設備抽象層 
5. 圖形界面的可開發性設計 
6. 其他可開發性設計 
十八、[操作系統篇】引導加載器,系統啟航者(0.5小時) 
1. 功能 
2. 文件存儲布局 
3. 程序加載原理 
4. 優點 
十九、【質量保證篇】質量保證導言(0.75小時) 
1. 軟件開發的特點 
2. 保證質量的關鍵要素 
3. 質量保證需要系統性的方法論 
4. 走出質量困境的指導性思想 
二十、【質量保證篇】編程好習慣,質量保證的基本條件(0.75小時) 
1. 一些終生受用的編程好習慣 
二十一、【質量保證篇】單元測試,被忽視的質量保證方法(0.75小時) 
1. 警惕單元測試無用論 
2. 一個簡單但不完善的單元測試例子 
3. 構建單元測試框架 
4. 無縫整合單元測試 
5. 幾個實施問題 
6. 樁函數和打樁 
7. 錯誤注入,一種可測試性設計 
8. 平臺開發與單元測試 
9. 被測行為的確定性 
10. 被測用例的有效性 
二十二、【質量保證篇】代碼覆蓋,單元測試效果的衡量指標(0.25小時) 
1. 了解代碼覆蓋工具 
2. 無縫整合代碼覆蓋 
3. 三個代碼覆蓋度量指標 
二十三、【質量保證篇】靜態分析,防止將失誤帶給用戶(0.25小時) 
1. 認識靜態分析工具 
2. 無縫整合靜態分析工具 
二十四、【質量保證篇】動態分析,使程序更健壯(0.5小時) 
1. 結識動態分析工具 
2. 無縫整合動態分析工具 
二十五、【質量保證篇] 性能分析,讓優化程序有的放矢(0.25小時) 
1. 初探性能分析工具 
2. 無縫整合性能分析工具 

最新公開課更多>>
神龙365电玩送分下分 湖北快三预测分析 必兆娱乐平台怎么样 福建快三预测一定牛 (*^▽^*)MG角斗士app (^ω^)MG好多糖果首页 (-^O^-)MG搞笑斑马首页 高频彩高手选号免费计划网 (-^O^-)MG爱丽娜在线客服 (*^▽^*)MG淑女派对客户端下载 (-^O^-)DT丧尸来袭爆分技巧 香港六合彩网址 体彩快乐双彩 (★^O^★)MG怪物赛车游戏 福建22选5开奖走势 泛亚娱乐 (^ω^)MG招财童子爆分技巧 湖北快三预测分析 必兆娱乐平台怎么样 福建快三预测一定牛 (*^▽^*)MG角斗士app (^ω^)MG好多糖果首页 (-^O^-)MG搞笑斑马首页 高频彩高手选号免费计划网 (-^O^-)MG爱丽娜在线客服 (*^▽^*)MG淑女派对客户端下载 (-^O^-)DT丧尸来袭爆分技巧 香港六合彩网址 体彩快乐双彩 (★^O^★)MG怪物赛车游戏 福建22选5开奖走势 泛亚娱乐 (^ω^)MG招财童子爆分技巧