SmallRTOS是一個源代碼開放的、易于移植的、面向深度嵌入式應(yīng)用的微內(nèi)核實時操作系統(tǒng),主要應(yīng)用領(lǐng)域為工業(yè)控制,智能傳感器開發(fā),智能終端等。下面我們逐步演示如何在Zynq平臺運行SmallRTOS實時操作系統(tǒng)。
?
我們從Vivado導(dǎo)出硬件頂層設(shè)計包開始,如下圖所示點擊菜單File->Export->Export Hardware
Vivado會彈出如下對話框,我們不做任何修改,直接點擊OK按鈕
然后通過Vivado啟動軟件開發(fā)套件工具SDK,點擊菜單File->Launch SDK
Vivado會彈出如下提示對話框,采用默認設(shè)置,直接點擊OK按鈕
此時軟件開發(fā)套件SDK會啟動,并提示正在導(dǎo)入硬件頂層設(shè)計包,如下圖所示:
導(dǎo)入完畢,我們在SDK左側(cè)欄可以看到導(dǎo)入的硬件頂層設(shè)計包design_1_wrapper_hw_platform_0
在此基礎(chǔ)上,我們創(chuàng)建板級支持包BSP工程,點擊SDK菜單下的File->New->Board Support Package
SDK彈出如下配置對話框,采用默認命名,默認參數(shù)即可,直接點擊Finish按鈕。
接著彈出如下對話框,選擇根據(jù)需要選擇板級支持包的功能組件,我們選擇如下三個組件:lwip,xilffs,xilrsa等
點擊OK按鈕后,彈出如下進度提示框,表示正在生產(chǎn)BSP板級支持包。
生成完畢后,在左側(cè)欄會出現(xiàn)如下所示的兩個工程:
接著,就可以創(chuàng)建應(yīng)用程序了。
在SDK的菜單中點擊File->New->Application Project,如下圖所示:
在SDK的彈出對話框中,填寫應(yīng)用程序的名字,比如SmallRTOSDemo等,板級支持包選擇已經(jīng)創(chuàng)建的工程standalone_bsp_0。之后點擊按鈕Next
此時會出現(xiàn)示例工程選擇對話框,如下所示,可以根據(jù)需要自行選擇,我們選擇Empty Application
點擊按鈕Finish后,應(yīng)用工程就創(chuàng)建完畢了,不過此時應(yīng)用工程是空的,還無法使用。接下來我們向應(yīng)用程序SmallRTOSDemo中添加代碼文件。
打開SmallRTOS壓縮包如下路徑DemoCORTEX_A9_Zynq_Zedboard_SDKSmallRTOSDemosrc,把其中的.c文件及.h文件連同SmallRTOS文件夾一起拷貝到剛剛創(chuàng)建的SmallRTOSDemosrc文件夾下;注意,lscript.ld文件也要拷貝過去,這個文件里面配置有SmallRTOS的匯編入口地址。
此時,右鍵點擊工程SmallRTOSDemo,在彈出菜單中點擊Refresh。
一般情況下Refresh完畢后,工程會自行編譯,此時會提示報錯信息,這是因為部分路徑還沒有指定,一些文件找不到。
右鍵點擊工程SmallRTOSDemo,在彈出菜單欄中選擇Properties
此時SDK彈出編譯環(huán)境配置對話框,選擇C/C++ General -> Paths and Symbols,打開Include小貼簽項,點擊Add按鈕
出現(xiàn)如下配置提示框,點擊Workspace按鈕
在彈出框中,選擇工程SmallRTOSDemo下的src文件夾,點擊OK。
路徑會顯示到Directory的編輯框里,點擊OK按鈕即可。
按照同樣方式添加SmallRTOS的OS及CPU路徑,如下圖所示。
添加完畢后,路徑會顯示在列表中,如下圖所示:
此時點擊Apply按鈕,使配置參數(shù)生效,此時彈出對話框如下所示,點擊Yes即可。
上述對話框退出后, 點擊上圖OK按鈕,退出路徑配置對話框。此時工程會重新編譯。
若沒有重新編譯,可以右鍵點擊SmallRTOSDemo工程,在彈出菜單欄點擊Clean Project
操作后,結(jié)果如下圖所示:
工程在Clean的同時,會重新編譯,這次編譯成功了,生成了SmallRTOSDemo.elf文件,出現(xiàn)如下編譯后的結(jié)果:
arm-xilinx-eabi-sizeSmallRTOSDemo.elf |tee"SmallRTOSDemo.elf.size"
text data bss dec hex filename
52904 1944 33892 88740 15aa4 SmallRTOSDemo.elf
'Finishedbuilding: SmallRTOSDemo.elf.size'
' '
08:56:40 BuildFinished (took 4s.336ms)
評論