nuttx的配置全在configs資料夾當中,裡面預先提供了多種開發板的配置。
以stm32f746g-disco為例
include資料夾中只包含乙個檔案board.h
board.h中,採用巨集定義的方式設定各引數
1.對時鐘系統設定
2.對引腳配置
如:#definegpio_usart6_rx gpio_usart6_rx_1
#define gpio_usart6_tx gpio_usart6_tx_1
就是對串列埠6輸入輸出引腳的配置,其中gpio_usart6_rx_1為預設配置,定義在
arch/arm/src/chip/chip/stm32f76xx77xx_pinmap.h中。
kernel和nsh應該是2種不同的除錯方式,我選用的nsh,裡面包含2個檔案
make.defs定義了編譯make中的一些規則和命令
defconfig就很重要了,可叫做總體配置檔案。
它配置了編譯環境,晶元選擇,系統內是否開啟某通訊介面(如串列埠、i2c),以及通訊口配置,等等很多配置資訊
這些配置可以修改,比如我需要用usart2來進行除錯
config_usart2_serialdriver=y 使能串列埠驅動
config_stm32f7_usart2=y 使能串列埠
config_usart1_serial_console=y 使用usart2作為控制埠
config_usart1_rxbufsize=256 接受buff
config_usart1_txbufsize=256
config_usart1_baud=115200 波特率
config_usart1_bits=8 資料位
config_usart1_parity=0 奇偶校驗
config_usart1_2stop=0 停止位
還有別忘了
config_usbdev=y 使能usb裝置
script估計是連線指令碼
src裡面為自定義的一些配置,和deconfig中可能有重疊(可能它的初衷就是讓我們在這裡新增配置)
.h檔案:巨集定義了引腳配置和申明一些初始化函式
stm32_boot.c是 stm32_boardinitialize()函式定義(該函式在最初的啟動檔案arch\arm\src\chip\start.c中執行)
其它.c檔案都是stm32_boardinitialize()中的子函式
配置方式:(參考官網
在根目錄下進入tools
用配置指令碼 如上進行配置,選擇你使用的板卡/nsh
接下來需要鏈結一些檔案
回到根目錄
同樣的方式鏈結其他資料夾
然後執行make
可能出現錯誤,反正都是一些鏈結的錯誤,會多一些連線,用rm –r 進行鏈結的刪除即可,也可手動刪除資料夾。
沒問題了後就會編譯一段時間最後
生成.hex .bin就大功告成了
Nuttx的編譯與構建
nuttx是乙個實時作業系統 rtos 可以執行在8位至32位微控制器。它符合posix和ansi標準 是乙個類linux的作業系統。維基百科 編譯環境 xubuntu 14.10 32位 在編譯之前要先安裝各種依賴包。sudo apt get install autoconf libtool gp...
Nuttx開發初探 編譯篇
各類系統搞了這麼多年,感覺關於os的各類底層機制已經摸透了,直到兩年前遇到nuttx,大致瀏覽了目錄結構和原始碼readme後,感覺nuttx應該是乙個不錯的系統,有瓜可挖。只是一直忙於專案,沒有時間深入研究。直到翻出之前參加某活動獲贈的frdm k64f開發板在那靜靜吃灰,有了想動一動的衝動。廢話...
Dotfuscator配置及說明
概述 c 編寫的 如果不進行一定程度的混淆和加密,那麼是非常容易被反編譯進行破解的,特別是對於一些商業用途的c 軟體來說,因為盯著的人多,更是極易被攻破。使用dotfuscator有助於防止程式被逆向工程,同時使程式更小和更高效。c 編寫的 如果不進行一定程度的混淆和加密,那麼是非常容易被反編譯進行...