這是我參與8月更文挑戰的第3天,活動詳情查看:8月更文挑戰markdown
一、明確使用哪硬件開發板平臺(好比說:STM32系列)函數
二、明確須要實現什麼樣的功能(好比說:點亮LED燈)post
三、查看開發板的原理圖,明確要點亮的LED燈對應着開發板的哪一個接口(GPIO),鏈接狀態如何,實際上LED燈在電路的角度看就是一個發光二極管,故根據二極管的正向導通性原則,觀察並分析開發管的GPIO口是低電平仍是高電平發光。spa
四、上述第三步是比較直接傳統的也是在沒有使用手冊的狀況下進行的步驟,若是有開發手冊或者對於某個新的模塊須要接到電路中,咱們須要查看該模塊的使用手冊,根據其特性進行開發。操作系統
五、嵌入式開發使用的是C語言進行編寫,由於C語言是面向過程的語言,且較爲接近底層、編譯速度快,適合跑在操做系統上面。code
六、根據功能的需求進行開發,由三、4兩步可知,在程序中使用宏定義LED等所在的引腳,爲養成良好的開發習慣以及程序的可擴展性,採用分文件的形式,好比說對於LED相應功能的實現,放在LED.c中完成,並將相應的宏定義、頭文件的重複包含、所依賴頭文件以及函數的聲明放在LED.h中完成,最後經過在main函數中,對各個功能模塊進行調用的形式完成系統總體功能的實現。orm
以上6步爲基於某特定平臺關於某個小功能的裸機開發的大體流程,在實際生活中,爲知足更高效的場景,經常須要更爲複雜的操做,須要將各功能的實現跑在特定的操做系統上,常見的是freeRTOS。該系統可實現大部分場景且開源免費。接口