發表文章

目前顯示的是 4月, 2021的文章

新唐火神板開箱實作(三):BSP範例程式與周邊函式庫

圖片
一、前言     在第一篇建立好的專案只是個簡單的Hello World功能。我們可以將新唐範例程式直接複製並取代原本的main.c。新的專案只會引入一些Hello World必要的函式庫,如sys.c、clk.c、uart.c等等,因此如果要新增其他周邊功能,就需要額外手動從BSP (board support package)複製周邊的函式庫(StdDriver)進專案Library的目錄下。 二、NuEclipse的專案目錄結構     下圖看到的Binaries, Includes只是透過Eclipse build setting分類出來的項目,並不是真的存在檔案系統的目錄。下列四項才是真的存在檔案系統裡面的項目。     1. CMSIS: 不是真的ARM的Cortex Microcontroller Software Interface Standard。裡面是Startup file。     2. Debug或Release: 編譯出來的Binary和執行檔     3. Library          /CMSIS:這才真的是CMSIS          /Device:最裡面放的是暫存器的header          /StdDriver:StdDriver的header          /:StdDriver的source file,要手動複製的周邊函式庫就是複製到這裡     4. User:使用者的程式碼,如main.c,也可以放一些自己建立的Library,大一點的Library建議再分一個資料夾出來。 三、範例程式 (SampleCode)     範例程式放在BSP中SampleCode這個目錄中,裡面會再按照不同方向分門別類。           其中SampleCode/StdDriver是各硬體周邊的範例程式,前綴就是那一個周邊功能,使用範例程式有下面兩種方法。     1. Import Existing Project          直接照NuEclipse使用手冊第3.3章節的步驟,將專案目錄指向範例程式中GCC這一個資料夾,直接將範例程式匯入。          - 優點: 快、速成,該有的library和header路徑都設定好了。          - 缺點: 目錄太多層,自己不好管理,複製專案時幾乎要整