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.bin
和nuttx.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...