課程費(fèi)用

6800.00 /人

課程時(shí)長(zhǎng)

2

成為教練

課程簡(jiǎn)介

六個(gè)模塊對(duì)應(yīng)六個(gè)實(shí)際工作場(chǎng)景▂▃▅█提高嵌軟架構(gòu)師的崗位勝任力
1)程 序 結(jié) 構(gòu) 設(shè) 計(jì)——做到模塊間松耦合
2)運(yùn)行時(shí) 結(jié) 構(gòu) 設(shè) 計(jì)——結(jié)構(gòu)清晰地控制精確聯(lián)動(dòng)
3)底層模塊的漂亮設(shè)計(jì)——做到可重用、可擴(kuò)展
4)四種需求變更的應(yīng)對(duì)——讓需求變更不再痛苦
5)模塊接口的漂亮設(shè)計(jì)——搞定Call、Callback、Msg接口
6)遠(yuǎn)程協(xié)議的漂亮設(shè)計(jì)——搞定最復(fù)雜的交互

目標(biāo)收益

精準(zhǔn)提高嵌軟工程師的崗位勝任力
1)程 序 結(jié) 構(gòu) 設(shè) 計(jì)——做到模塊間松耦合
2)運(yùn)行時(shí) 結(jié) 構(gòu) 設(shè) 計(jì)——做到硬件間精確聯(lián)動(dòng)
3)底層模塊的漂亮設(shè)計(jì)——做到可重用、可擴(kuò)展
4)功能模塊的漂亮設(shè)計(jì)——做到可配置、可擴(kuò)展
5)模塊接口的漂亮設(shè)計(jì)——搞定Call、Callback、Msg接口
6)遠(yuǎn)程協(xié)議的漂亮設(shè)計(jì)——搞定最復(fù)雜的交互

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

培訓(xùn)對(duì)象:嵌軟工程師、嵌軟高級(jí)工程師
設(shè)備廠商:儀器儀表、通訊設(shè)備、白電黑電、消費(fèi)電子、醫(yī)療電子、汽車(chē)電子
方案廠商:工業(yè)控制、測(cè)控監(jiān)控、傳統(tǒng)安防、智慧城市、智能家居、智能制造
軍工院所:航空航天、衛(wèi)星導(dǎo)航、海工船舶、核工業(yè)

學(xué)員基礎(chǔ):在崗嵌軟工程師,均可參加。

課程大綱

程序結(jié)構(gòu)設(shè)計(jì)——做到模塊間松耦合(第一天) 嵌軟的挑戰(zhàn)
a)功能實(shí)現(xiàn)與具體硬件無(wú)關(guān)
b)硬件無(wú)關(guān)與硬件相關(guān)代碼分離
c)應(yīng)付硬件變化:硬件接口模塊的可替換性、可修改性
d)應(yīng)付協(xié)議變化:協(xié)議代碼模塊的可替換性、可修改性

【講案例】大中小嵌軟架構(gòu)實(shí)例觀摩
a)固件分層……案例
b)產(chǎn)品化分層……案例
c)平臺(tái)化分層……案例A
d)平臺(tái)化分層……案例B
e)平臺(tái)化分層……案例C

【講技術(shù)】大中小嵌軟的代碼分層
a)洋蔥皮
b)UI-SI-DI-PD
c)固件五橫一縱
d)產(chǎn)品六橫一縱
e)平臺(tái)分層
運(yùn)行時(shí)結(jié)構(gòu)設(shè)計(jì)——做到硬件間精確聯(lián)動(dòng)(第一天) 嵌軟的挑戰(zhàn)
a)運(yùn)行邏輯復(fù)雜,難設(shè)計(jì)?
b)靠全局變量通信,緊耦合?

【講案例】從固件到整機(jī)嵌軟實(shí)例觀摩
a)設(shè)計(jì)案例1……無(wú)OS。While(1)中順序執(zhí)行任務(wù)函數(shù)
b)設(shè)計(jì)案例2……無(wú)OS。While(1)中執(zhí)行時(shí)間片任務(wù)
c)設(shè)計(jì)案例3……有OS。ISR與Task信號(hào)量通信,Task間隊(duì)列通信

【講技術(shù)】技術(shù)對(duì)比
a)前后臺(tái)結(jié)構(gòu)(死循環(huán)+中斷) ……骨架代碼對(duì)比
b)時(shí)間片輪詢(Time-slice Polling) ……骨架代碼對(duì)比
c)多任務(wù)結(jié)構(gòu)(OS-based Multi-task)……骨架代碼對(duì)比
底層模塊的漂亮設(shè)計(jì)——做到可重用、可擴(kuò)展(第一天) 嵌軟架構(gòu)師的崗位能力
合格:封裝硬件細(xì)節(jié)、暴露訪問(wèn)接口
優(yōu)秀:能做到支持新硬件只需局部擴(kuò)展
牛人:在HAL層提供顯示服務(wù)/通信服務(wù)/存儲(chǔ)服務(wù)

【講案例】嵌軟HAL模塊就該這么設(shè)計(jì)
a)從led驅(qū)動(dòng),到閃爍可配置/可循環(huán)的HAL API……源代碼案例
b)從2.4G無(wú)線,到發(fā)包調(diào)用/收包回調(diào)的HAL API……源代碼案例
c)從I2C讀寫(xiě),到EEPROM的延遲寫(xiě)HAL API

【講技術(shù)】嵌軟HAL設(shè)計(jì)技巧
a)利用callback……讓模塊:局部處理可擴(kuò)展
b)利用配置數(shù)組……讓模塊:整體邏輯可配置
c)利用Union結(jié)構(gòu)……讓模塊:支持多種數(shù)據(jù)類(lèi)型
d)利用函數(shù)指針結(jié)構(gòu)體……讓模塊:接口一致的多個(gè)模塊可替換
四種需求變更的應(yīng)對(duì)——讓需求變更不再痛苦(第二天) 求變更
A類(lèi):不同廠商的器件
B類(lèi):不同類(lèi)型的器件
C類(lèi):不同網(wǎng)絡(luò)或協(xié)議
D類(lèi):不同功能或算法
……案例

A類(lèi)應(yīng)對(duì)——drv.c需 局部改變,接口不變
?實(shí)例分析

B類(lèi)應(yīng)對(duì)——drv.c 改變,hal 不變
?實(shí)例分析

C類(lèi)應(yīng)對(duì)——設(shè)計(jì)支持協(xié)議的新增與適配
?實(shí)例分析

D類(lèi)應(yīng)對(duì)——自底向上,逐級(jí)優(yōu)化設(shè)計(jì)
?實(shí)例分析

【精講全過(guò)程】有代碼,有每一步修改
一個(gè)單片機(jī)軟件:架構(gòu)優(yōu)化+代碼重構(gòu)全過(guò)程
a)全新的模塊化
b)模塊的水平分層
c)模塊的跨層封裝
d)“狀態(tài)機(jī)+可配置”常用做法
模塊接口的漂亮設(shè)計(jì)——搞定Call/Callback/Msg接口(第二天) 嵌軟架構(gòu)師的崗位能力
合格:Call接口設(shè)計(jì)
優(yōu)秀:搞定Call/Callback/Msg接口
牛人:接口支持任務(wù)或處理的運(yùn)行時(shí)注冊(cè)/注銷(xiāo)

【講案例】漂亮接口設(shè)計(jì)實(shí)例觀摩
a)經(jīng)典Callback接口設(shè)計(jì)
b)基于注冊(cè)的Callback接口設(shè)計(jì)
遠(yuǎn)程協(xié)議的漂亮設(shè)計(jì)——搞定最復(fù)雜的交互(第二天) 嵌軟架構(gòu)師的崗位挑戰(zhàn)
a)協(xié)議設(shè)計(jì),對(duì)許多架構(gòu)師是挑戰(zhàn)
a)影響大:影響到多個(gè)程序/多個(gè)團(tuán)隊(duì)
b)設(shè)計(jì)難:不容易設(shè)計(jì)滿意

【講技術(shù)】協(xié)議設(shè)計(jì)思路
How to:接口過(guò)程設(shè)計(jì)
How to:接口技術(shù)選擇
How to:接口格式定義

【講案例】牛案例示范協(xié)議設(shè)計(jì)難點(diǎn)
案例一:“交互復(fù)雜型”協(xié)議設(shè)計(jì)范例——精髓精講
案例二:“通用規(guī)范型”協(xié)議設(shè)計(jì)范例——精髓精講
程序結(jié)構(gòu)設(shè)計(jì)——做到模塊間松耦合(第一天)
嵌軟的挑戰(zhàn)
a)功能實(shí)現(xiàn)與具體硬件無(wú)關(guān)
b)硬件無(wú)關(guān)與硬件相關(guān)代碼分離
c)應(yīng)付硬件變化:硬件接口模塊的可替換性、可修改性
d)應(yīng)付協(xié)議變化:協(xié)議代碼模塊的可替換性、可修改性

【講案例】大中小嵌軟架構(gòu)實(shí)例觀摩
a)固件分層……案例
b)產(chǎn)品化分層……案例
c)平臺(tái)化分層……案例A
d)平臺(tái)化分層……案例B
e)平臺(tái)化分層……案例C

【講技術(shù)】大中小嵌軟的代碼分層
a)洋蔥皮
b)UI-SI-DI-PD
c)固件五橫一縱
d)產(chǎn)品六橫一縱
e)平臺(tái)分層
運(yùn)行時(shí)結(jié)構(gòu)設(shè)計(jì)——做到硬件間精確聯(lián)動(dòng)(第一天)
嵌軟的挑戰(zhàn)
a)運(yùn)行邏輯復(fù)雜,難設(shè)計(jì)?
b)靠全局變量通信,緊耦合?

【講案例】從固件到整機(jī)嵌軟實(shí)例觀摩
a)設(shè)計(jì)案例1……無(wú)OS。While(1)中順序執(zhí)行任務(wù)函數(shù)
b)設(shè)計(jì)案例2……無(wú)OS。While(1)中執(zhí)行時(shí)間片任務(wù)
c)設(shè)計(jì)案例3……有OS。ISR與Task信號(hào)量通信,Task間隊(duì)列通信

【講技術(shù)】技術(shù)對(duì)比
a)前后臺(tái)結(jié)構(gòu)(死循環(huán)+中斷) ……骨架代碼對(duì)比
b)時(shí)間片輪詢(Time-slice Polling) ……骨架代碼對(duì)比
c)多任務(wù)結(jié)構(gòu)(OS-based Multi-task)……骨架代碼對(duì)比
底層模塊的漂亮設(shè)計(jì)——做到可重用、可擴(kuò)展(第一天)
嵌軟架構(gòu)師的崗位能力
合格:封裝硬件細(xì)節(jié)、暴露訪問(wèn)接口
優(yōu)秀:能做到支持新硬件只需局部擴(kuò)展
牛人:在HAL層提供顯示服務(wù)/通信服務(wù)/存儲(chǔ)服務(wù)

【講案例】嵌軟HAL模塊就該這么設(shè)計(jì)
a)從led驅(qū)動(dòng),到閃爍可配置/可循環(huán)的HAL API……源代碼案例
b)從2.4G無(wú)線,到發(fā)包調(diào)用/收包回調(diào)的HAL API……源代碼案例
c)從I2C讀寫(xiě),到EEPROM的延遲寫(xiě)HAL API

【講技術(shù)】嵌軟HAL設(shè)計(jì)技巧
a)利用callback……讓模塊:局部處理可擴(kuò)展
b)利用配置數(shù)組……讓模塊:整體邏輯可配置
c)利用Union結(jié)構(gòu)……讓模塊:支持多種數(shù)據(jù)類(lèi)型
d)利用函數(shù)指針結(jié)構(gòu)體……讓模塊:接口一致的多個(gè)模塊可替換
四種需求變更的應(yīng)對(duì)——讓需求變更不再痛苦(第二天)
求變更
A類(lèi):不同廠商的器件
B類(lèi):不同類(lèi)型的器件
C類(lèi):不同網(wǎng)絡(luò)或協(xié)議
D類(lèi):不同功能或算法
……案例

A類(lèi)應(yīng)對(duì)——drv.c需 局部改變,接口不變
?實(shí)例分析

B類(lèi)應(yīng)對(duì)——drv.c 改變,hal 不變
?實(shí)例分析

C類(lèi)應(yīng)對(duì)——設(shè)計(jì)支持協(xié)議的新增與適配
?實(shí)例分析

D類(lèi)應(yīng)對(duì)——自底向上,逐級(jí)優(yōu)化設(shè)計(jì)
?實(shí)例分析

【精講全過(guò)程】有代碼,有每一步修改
一個(gè)單片機(jī)軟件:架構(gòu)優(yōu)化+代碼重構(gòu)全過(guò)程
a)全新的模塊化
b)模塊的水平分層
c)模塊的跨層封裝
d)“狀態(tài)機(jī)+可配置”常用做法
模塊接口的漂亮設(shè)計(jì)——搞定Call/Callback/Msg接口(第二天)
嵌軟架構(gòu)師的崗位能力
合格:Call接口設(shè)計(jì)
優(yōu)秀:搞定Call/Callback/Msg接口
牛人:接口支持任務(wù)或處理的運(yùn)行時(shí)注冊(cè)/注銷(xiāo)

【講案例】漂亮接口設(shè)計(jì)實(shí)例觀摩
a)經(jīng)典Callback接口設(shè)計(jì)
b)基于注冊(cè)的Callback接口設(shè)計(jì)
遠(yuǎn)程協(xié)議的漂亮設(shè)計(jì)——搞定最復(fù)雜的交互(第二天)
嵌軟架構(gòu)師的崗位挑戰(zhàn)
a)協(xié)議設(shè)計(jì),對(duì)許多架構(gòu)師是挑戰(zhàn)
a)影響大:影響到多個(gè)程序/多個(gè)團(tuán)隊(duì)
b)設(shè)計(jì)難:不容易設(shè)計(jì)滿意

【講技術(shù)】協(xié)議設(shè)計(jì)思路
How to:接口過(guò)程設(shè)計(jì)
How to:接口技術(shù)選擇
How to:接口格式定義

【講案例】牛案例示范協(xié)議設(shè)計(jì)難點(diǎn)
案例一:“交互復(fù)雜型”協(xié)議設(shè)計(jì)范例——精髓精講
案例二:“通用規(guī)范型”協(xié)議設(shè)計(jì)范例——精髓精講

活動(dòng)詳情

提交需求