用代碼演示嵌入式系統分層結構

2023-07-27 16:07:53 來源:CSDN-和風化雨

本文以控制LED閃爍為例。

1 兩層結構


(資料圖片僅供參考)

硬件層和軟件層--最粗糙的分層架構:

2 三層結構

硬件層, 驅動層,應用層:

3 四層結構

硬件層,驅動層,操作系統層,應用層:

從上面的例子可以看出,層次越多,好像系統的代碼越多,開發者的工作量越大。實際情況是真的如此嗎?其實分層的目的主要1是降低系統開發難度;2是為了復用。

驅動層和中間的操作系統層是可以復用的,產品升級或更新換代的時候,雖然總的代碼量是大的,但實際有很多代碼是不需要重新開發的,系統開發的工作量相對較小。比如說IO口調整了,甚至是整個硬件板子更換了,軟件上只要調整驅動即可。

很多大學的嵌入式系統課程中采用的是兩層結構,主要的原因是教材中的示例一般比較簡單,其主要目的是為了演示如何使用芯片,如何實現某個功能,很少考慮復用的問題。

為了講清楚其中的操作方法,其代碼會盡量簡單,即使是實現相對比較復雜的功能可能也只是采用抽象為函數的方法,很少考慮工程的問題,在潛移默化中很多人就以為兩層架構就是理所當然的。

具體采用何種分層結構是與產品相關的。比如大家都知道坐飛機是比步行快得,在校園里從上課的教室到休息的宿舍哪一種方式好呢?當然是步行。反之,從南京到北京,采用坐飛機肯定要比步行好(當然,更好的是坐高鐵)。

第3種方式似乎代碼量是最大的,但是要記住底層是很少改的,所以開發的時候就是寫應用,這個代碼量有多少?!優勢可見一斑!

審核編輯:湯梓紅

標簽:

上一篇:STM32CubeMx入門教程(7):I2C的讀寫應用
下一篇:最后一頁