RTEMS Cmake寫應用層小教程

2021-09-01 12:43:42 字數 1644 閱讀 1626

├─afile

└─src

└─afile.cpp

└─inc

└─afile.h

└─user

└─main.cpp

└─build

效率太高了,只用了乙個小時完成了達到用automake兩天的學習想要的結果,而且引數簡單明瞭

我們首先需要新增三個cmakelists.txt,這三個檔案的位置如下

├─afile

└─src

└─afile.cpp

└─inc

└─afile.h

└─cmakelists.txt

├─user

└─main.cpp

└─cmakelists.txt

├─build

└─cmakelists.txt

最外層的cmakelists.txt

cmake_minimum_required(version 2.8)

project(test)

set(cmake_runtime_output_directory $/bin) #設定輸出路徑,必須在add_subdirectory前面,否則執行到add_subdirectory,會去掃面這兩個目錄導致這句話無效

include_directories(afile/inc) #設定include路徑,能夠傳給子目錄的cmakelists的

add_subdirectory(afile) #設定子目錄路徑

add_subdirectory(user)

user下的cmakelists.txt

add_executable(main main.cpp)   #指定main函式所在的檔案

target_link_libraries(main liba) #所依賴的庫檔案

afile下的cmakelists.txt

add_library(liba src/a.cpp)     #指定要生成的為lib,並且指定編譯所需要的檔案
其實這裡我們應該使用arm-none-eabi來進行試驗然後再過度到rtems的工具鏈的。這裡十分感謝陳笑行(hang)前輩,已經完成了這部分工作。有興趣的可以參考這個 有乙個cmakebranch分支,是乙個很簡單的小專案,很容易看懂的,這是對應的部落格位址

set(cmake_system_name generic)
然後因為我們的startup裡面有組合語言,所以需要設定彙編編譯器

set(cmake_asm_compiler arm-rtems4.11-as)
然後這個是庫檔案位址,這個需要小心點,-b只支援單層尋找庫檔案。就是如果發生乙個庫檔案需要另乙個庫檔案的情況,我們需要使用cmake中新增library的方法把下面位址中所有的lib乙個個加進去。而且被需要的那個庫檔案要放在請求的那個庫檔案之後。rtems做的很好,沒有巢狀。但是如果我們在寫bsp的時候,打包了兩個lib,可能會遇到這種情況

-b/home/andy/rtemsspace/development/rtems/src/seer-rtems-stm32f4xx/arm-rtems4.11/seerstm32f4/lib/

表示層 應用層

表示層 功能 為異種機通訊提供一種公共語言,以便能進行互操作。這種型別的服務之所以需要,是因為不同的計算機體系結構使用的資料表示法不同。例如,ibm主機使用ebcdic編碼,而大部分pc機使用的是ascii碼。在這種情況下,便需要表示層來完成這種轉換。應用層 包含了通常要使用的協議 http協議 超...

應用層協議

應用層協議定義了執行在不同端系統上的應用程式程序如何相互傳遞訊息。特別是定義了 交換的訊息型別,如請求訊息和響應訊息。各種訊息型別的語法,如訊息中的各個字段及其詳細描述。欄位的語義,即包含在字段中的資訊的含義。程序何時 如何傳送訊息及對訊息進行響應的規則。有些應用層協議是由rfc文件定義的,因此它們...

應用層協議

dns 網域名稱解析協議 http 超文字傳輸協議 ftp 文字傳輸協議 tlent internet遠端登入服務的標準協議 smtp 簡單郵件傳輸協議 snmp 簡單網路管理協議 ssh 協議 加密的安全的連線 ftp 給予tcp文字傳輸的協議 tftp 基於udp,簡單檔案傳輸協議 1.網域名稱...