<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [toc] 飛控PX4用的嵌入式操作系統是NuttX,為了PX4,先學習NuttX,心急吃不了熱豆腐,一步一步來。 ## NuttX 開發環境的搭建 ## Nuttx開發環境的目錄結構如下圖: | +---------+--------+ | | | nuttx/ apps/ tools/ 1. 安裝ubuntu,更新系統所有package。 ``` sudo apt-get update ``` 2. 安裝ARM交叉編譯工具鏈ARM Toolchain ``` sudo apt-get install gcc-arm-none-eabi ``` 3. 安裝Kconfig-frontends package 這個工具包是用來圖形化配置NuttX系統的工具。安裝過程挺特別,需要下載源碼、編譯、make和配置環境變量: * 下載源碼 ``` git clone https://bitbucket.org/nuttx/tools.git ``` * 下載編譯tools所需依賴包 ``` sudo apt-get install gperf libncurses5-dev flex bison ``` * 編譯,安裝(make install需要root權限) ``` cd kconfig-frontends ./configure --enable-mconf make make install ``` 4. 下載NuttX源碼 ``` git clone https://bitbucket.org/nuttx/nuttx.git ``` 5. 下載NuttX之apps源碼 ``` git clone https://bitbucket.org/nuttx/apps.git apps ``` ## 配置編譯NuttX ## 下面以STM32F4 Discovery開發板為例介紹NuttX配置編譯的步驟: 1. 切換至NuttX源碼目錄 ``` cd nuttx # 這步不產生輸出,只是復制configuration至/nuttx/.config tools/configure.sh stm32f4discovery/usbnsh # nsh console/usb - usb終端輸出,需要microUSB轉USB線纜 # 或者 tools/configure.sh stm32f4discovery/nsh # nsh console/UART,2 - UART2終端輸出,需要UART-TTL轉USB電纜,如FTDI ``` 2. 用圖形配置工具kconfig-frontends對工程配置 ``` make menuconfig ``` 用圖形配置工具kconfig-frontends,在主界面,最主要的設置是設置編譯的平臺所用的操作系統 > Build Setup->Build host platform:Linux(甚至在Mac OS,這也是個很好的選擇) 3. 編譯工程 ``` make ``` > 注意,如果在menuconfig中沒有正確選擇編譯平臺的話,會產生如下錯誤 > make[1]: cygpath: Command not found,這是由于選擇編譯平臺為windows而實際用的平臺為linux 編譯生成文件nuttx,elf格式,可以通過SWD/JTAG電纜燒錄,stm32f4discovery開發板有兩個usb接口,miniUSB接至板載的ST-Link SWD/JTAG調試器。stm32f4discovery開發板可以通過任何支持USB ST-Link的主機燒錄程序,microUSB連接至STM32F407之OTG-FS端口,NSH console終端僅支持linux,版本17.13不支持windows ### 問題1 ### kconfig-mconf路徑的問題: 成功編譯安裝kconfig-frontends工具后,會發現如下錯誤提示: > kconfig-mconf: error while loading shared libraries: libkconfig-parser-3.8.0.so: cannot open shared object file: No such file or directory make: *** [menuconfig] Error 127 針對該問題有兩個解決方法: 1. 添加kconfig-frontends庫所在的目錄(通常是 /usr/local/lib)至文件(/etc/ld.so.conf),然后執行命令 ldconfig 2. 編譯kconfig-frontends工具時,配置環境變量LD_RUN_PATH,如下: ``` ./configure --enable-mconf LD_RUN_PATH=/usr/local/lib make make install ``` 3. 僅用靜態庫編譯工具kconfig-frontends: ``` ./configure --enable-mconf --disable-shared --enable-static ``` I have also been told that some people see this error until they re-boot, then it just goes away. I would try that before anything else. ### 問題2 ### 1. [Getting Started with NuttX -- LM3S6965-EK (Ubuntu Linux)](http://www.nuttx.org/doku.php?id=wiki:getting-started:lm3s6965-ek) 1. make編譯時出現以下錯誤: ``` ERROR: arm-nuttx-eabi-gcc failed: 127 ``` 這是由于在配置時(make menuconfig)沒有選擇合適的工具鏈,該該開發板用的編譯鏈為Generic GNU eabi ,而不是arm-nuttx-eabi-xxx。重新打開配置工具(make menuconfig),選擇工具鏈: > System Type -> Tool chain selection -> Generic GNU eabi tool chain under linux >之前默認是Buildroot(Cygwin or Linux) ### 參考文檔 ### 1. 善用代碼倉庫的文檔(nuttx/Documention),在這里有對系統很詳細系統的介紹,包括用戶手冊和開發這手冊: * 《NuttX RTOS Porting Guide》,開發手冊; * 《NuttX C Coding Standard》,編程風格; * [《Getting Started with NuttX -- STM32F4 Discovery (Unix)》](http://www.nuttx.org/doku.php?id=wiki:getting-started:stm32f4discovery_unix) 2. 其它參考 * 博客[Linux環境下的Nuttx開發環境搭建](https://blog.csdn.net/qq_29912325/article/details/47857743); * 博客[NuttX配置和編譯](https://blog.csdn.net/liqiuhua2016/article/details/53318581); * 百度文庫[linux下建立nuttx開發環境](https://wenku.baidu.com/view/a1a38f36195f312b3069a5a5.html)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看