Nuttx的編譯與構建

2021-07-13 05:01:31 字數 2329 閱讀 8454

nuttx是乙個實時作業系統(rtos),可以執行在8位至32位微控制器。它符合posix和ansi標準 ,是乙個類linux的作業系統。 —— [ 維基百科 ]

編譯環境:xubuntu 14.10 32位

在編譯之前要先安裝各種依賴包。

$ sudo apt-get install autoconf libtool gperf flex bison  

$ sudo apt-get install autoconf2.13

$ sudo apt-get install libncurses-dev

$ sudo apt-get install libusb-

1.0-

0-dev

$ sudo apt-get install libsgutils2-dev

$ sudo apt-get install genromfs

$ git clone 

$ cd kconfig-frontends

$ ./bootstrap

$ ./configure --enable-mconf

$ make

$ sudo make install

$ sudo ldconfig

$ cd nuttx-7.15/

$ cd tools/

$ ./configure.sh ../configs/stm32f4discovery/usbnsh

這裡nuttx提供了兩種與stm32f4discovery通訊的方式,usb和uart。如果要使用usb與stm32f4discovery通訊,則使用上述命令;如果使用uart與stm32f4discovery通訊,則使用如下命令:

$ ./configure.sh ../configs/stm32f4discovery/nsh
最後還有乙個不容忽視的一步:設定環境變數。在nuttx-7.15目錄下,開啟setenv.sh,根據你的情況修改toolchain_bin的路徑,然後別忘了 『source ./setenv.sh』,所有這些完成後就可以編譯了。

$ make oldconfig

$ make menuconfig

$ make

編譯完成後會在nuttx-7.15目錄下生成nuttx.binnuttx.hex兩個檔案。

$ ./autogen.sh

$ ./configure

$ make

安裝完成後複製rules檔案到/etc/udev/rules.d/下:

$ cp stlink/etc/udev/rules.d/* /etc/udev

/rules.d/

使更改生效:

$ sudo udevadm control --reload-rules

or$ sudo restart udev

方便使用,可以將stlink相關命令新增到path1中.將stm32f4discovery連線到電腦上,現在可以測試stlink是否正確安裝,輸入st-util,如果正常會顯示:

$ sudo screen /dev/ttyacm1
回車後,如果沒有任何顯示,按三下回車應該會有反饋。

輸入help可以檢視命令:

這裡有一張介面圖,注意這裡 「usb stlink」應該是 「ttyacm0」,」usb bootloader」應該是」ttyacm1」。

echo 「export path=$path:/path/to/dir」 >> ~/.bashrc ↩

nuttx配置說明及編譯

nuttx的配置全在configs資料夾當中,裡面預先提供了多種開發板的配置。以stm32f746g disco為例 include資料夾中只包含乙個檔案board.h board.h中,採用巨集定義的方式設定各引數 1.對時鐘系統設定 2.對引腳配置 如 definegpio usart6 rx ...

Nuttx開發初探 編譯篇

各類系統搞了這麼多年,感覺關於os的各類底層機制已經摸透了,直到兩年前遇到nuttx,大致瀏覽了目錄結構和原始碼readme後,感覺nuttx應該是乙個不錯的系統,有瓜可挖。只是一直忙於專案,沒有時間深入研究。直到翻出之前參加某活動獲贈的frdm k64f開發板在那靜靜吃灰,有了想動一動的衝動。廢話...

NuttX的學習筆記 10

命名訊息佇列的介面 nuttx支援posix命名訊息佇列inter task通訊。任何任務都能能通過命名訊息佇列傳送或接收訊息。中斷處理程式可以通過命名訊息佇列傳送訊息。我理解就是程序之間通訊需要乙個訊息通道,訊息佇列就是這樣乙個通道,而其標識就是這個 named mqd t mq open con...