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)

電子發(fā)燒友App













評論