1.前言
NuttxOs是一款轻量型的嵌入式Os系统,广泛应用于汽车电子、无人机控制等行业。这篇文章主要讲述如何获取NuttxOs源码,以及如何将代码编译成可执行的文件。
2.工具链准备
本文要运行的芯片是TC4D9,windows平台下,编译器为Tasking。除编译器以外,还需要Cmake、ninja、以及python环境。Cmake和ninja最好采用比较新的版本,否则可能会出现识别不到编译器的情况。
CMake下载路径:https://cmake.org/download/
ninja下载路径:https://github.com/ninja-build/ninja/releases
python下载路径:https://www.python.org/downloads/release/python-3100/
下载好这些工具后,将Cmake、ninja以及python都添加到环境变量中:

在命令行中运行
pip install kconfiglib -i https://mirrors.cloud.tencent.com/pypi/simple --trusted-host mirrors.cloud.tencent.com
来为python环境安装kconfiglib模块。
3.源码下载
Nttux源码下载路径:https://github.com/apache/nuttx/tarball/master
Nttux app源码下载路径:https://github.com/apache/nuttx-apps/tarball/master
下载好源码后,将app包解压并更名为apps,与nuttx源码置于一个路径下。如果没有app,可能会出现链接阶段报错的情况。

在Nuttx源码路径下,我们主要关心:
arch目录,里面包含NuttxOs适配不同Mcu的驱动文件,通常不太需要修改;
boards:用户定义的板级配置,比如选用的芯片型号、编译器、编译选项、外设资源的分配等等;
build:编译生成的文件,包含了最终可用的整套工程代码、可执行文件以及识别到的工具栏路径。

4.编译
在Nuttx路径下,运行
cmake -B build_tc4d -DBOARD_CONFIG=kit_tc4d9xp_com_trb_s:nsh -GNinja
来初始化编译环境。
其中,build_tc4d为我要指定的生成文件夹名称,kit_tc4d9xp_com_trb_s为board中存在的板级配置名称,nsh为板级配置中的配置选项,一般都为nsh。

运行命令后,我们可以看到系统识别到了平台、编译器路径、工具版本等信息。在生成编译Build文件夹,下的CMakeCache.txt中也可以更详细地找到这些信息。如果环境搭建失败或者某个工具没有识别到,那很可能是环境变量设置错误,或者工具的版本过旧。

被折叠的 条评论
为什么被折叠?



