STM32上移植nuttx操作系統


文章來源:【NuttX】淺析操作系統及NuttX在STM32平台上的移植 - 知乎 (zhihu.com)

操作系統(Operating System),簡稱OS,是管理計算機硬件與軟件資源的計算機程序,同時也是計算機系統的內核與基石。

根據計算機組成原理,計算機由CPU(運算器+控制器),存儲器,輸入,輸出設備組成。

根據操作系統原理,OS由調度,內存管理,文件系統,進程間通信,計算機網絡組成。

CPU對應OS的調度(Schedule);

內存對應OS的內存管理(Memory Management);

存儲器對應OS的文件系統(File System);

輸入/輸出設備對應OS的驅動,也可以認為是文件系統(一切皆文件);

進程間通信(Internal Process communacation)是OS提供給應用程序的通信方式。

OS的作用就是用來管理計算機的硬件資源,並隔離硬件,提供給應用開發抽象的統一接口。另外,其本身作為系統軟件,也要占用一定的硬件資源。

本文主要介紹nuttx的下載,配置,編譯,燒寫,nsh運行。

1 Nuttx介紹(Introduction)

Linux大家都很熟悉,其有很多發行版本,比如Ubuntu,RedHat,centos等。NuttX是一種類Linux的嵌入式系統,原理和使用都非常類似與Linux。

關鍵功能:

  • 符合各類重要標准
  • 核心任務管理
  • 模組化的微核心
  • 完全可搶占
  • 可擴展,高度可配置
  • 容易移植到各類新的處理器、SoC或者板級架構上
  • 先進先出和時間片輪轉調度,並可以采取無節拍內核
  • 實時,具備確定性
  • 具備和POSIX/ANSI類似的任務控制,有名消息隊列,計數信號量,時鍾、定時器和信號,POSIX線程,環境變量和文件系統
  • 具備和VxWorks類似的任務管理和看門狗定時器
  • 具備和BSD類似的socket接口

2 下載源代碼(Download)

git下載地址:

git clone  nuttx

git clonehttps://bitbucket.org/nuttx/apps.git apps

git clonehttps://bitbucket.org/nuttx/tools.git tools

下載完成:

3 配置(Configuration)

根據主板型號進行配置,我用的是STM32F103C8T6的最小系統板子

nuttx目錄下執行:./tools/configure.sh -l stm32f103-minimum:nsh

這時可使用menuconfig進行可視化配置

nuttx目錄下執行:make menuconfig

注意需要開啟UART1,便於串口登錄終端,進入nsh(nuttx shell)。

可根據自己需要開啟/關閉一些功能,進行裁剪或增加。該配置的目的是修改.config文件,而.config文件是makefile編譯時所依賴的的宏配置。

4 編譯(Compile)

nuttx目錄下執行:make

最終生成hex和bin文件。

5 燒寫bin文件

使用J-Flash進行燒寫,地址選擇0x08000000(Flash的起始地址)

6 串口連接

sudo minicom 選擇波特率與UART1一致(115200),進入nsh終端,完成移植。

至此,就完成了nuttx在STM32F103最小系統上的移植工作,就可以在nuttx的基礎上編寫自己想要的驅動程序以及應用程序啦。愉快的玩耍吧~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM