NuttX的学习笔记 4

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yt454287063/article/details/53175444

README文档的第三部分:

  • Toolchains
    • Cross-Development Toolchains
    • NuttX Buildroot Toolchain

这一部分是讲NuttX的编译链的。

  • Cross-Development Toolchains

    交叉编译链,看起来每个板子的CPU用的编译工具可能不同,详细记录在 config/<board>/README.txt 里,这个文档已经看过了,并没有说道需要什么特殊的编译链,下一个。

  • NuttX Buildroot Toolchain

    NuttX 编译工具?这个工具在 buildroot 里,详细说明在 buildroot/configs/README.txt 文档中。使用这个编译工具有两点好处:

    • 所需头文件全部包括在编译器中;
    • NXFLAT tools, the ROMFS, genromfs tools, and the kconfig-frontends tools 这些工具都可以被编译出来。

      先来看看这四个工具:

      • NXFLAT tools
        NXFLAT 是可以从文件系统芯片内执行的二进制格式。类似于exe的东西?
      • the ROMFS
        只读文件系统,在嵌入式linux中通常使用这中文件系统来作为引导系统的文件系统。
      • genromfs tools
        生成上面的 ROMFS 文件系统的工具?
      • kconfig-frontends
        编译NuttX的工具。

    还有点不完善的地方:

    没有其他编译工具那样好,比如 ARM 的 EABI(嵌入式应用程序二进制接口,EABI的目的是使不同的编译器编译出来的二进制文件可以互相使用,这样软件开发人员就可以混合使用不同厂商提供的符合EABI标准的二进制库)这个看起来就很伤啊。


README的第四部分:

  • Shells

NuttX的工具有很多shell的脚本,shell脚本?我只会用,并不会写,有空再说。


REAMME的第五部分:

  • Building NuttX
    • Building
    • Re-building
    • Build Targets an
    • Native Windows Build
    • Install GNUWin32

终于到这里了,编译 NuttX 系统。

  • Building

    大概是说 在编译之前setenv.sh 这个脚本必须先运行一次,而且交叉编译工具必须包含在 PATH 系统变量中,执行。

    cd ${TOPDIR}
    . ./setenv.sh
    make

    好,来执行一次看看。首先这个TOPDIR,应该是 ~/nuttx 目录下,执行一次。

    文件又找不到了

    文件又找不到了,好,我记得这个文件应该是在nuttx下的。

    找到setevn.sh

    果然在这里。虽然说很不合理,但就在这里执行吧。果然正常,但是 make 的时候磁县了问题:

    make出现问题

    看样子总是有问题,不是么?,明显这个叫 arm-none-eabi-gcc 的程序并没有找到,拿过来单独运行一次:

    安装arm交叉编译

    问题不大,的确没有安装,这里系统给出了该程序的安装代码:

    sudo apt install gcc-arm-none-eabi

    安装完成后再 make 一遍。

    make正常

    难道不该高兴一下么,编译完成,出现了 nuttx.hex 和 nuttx.bin 两个文件。赶快把开发板拿来下载。

    stlinkv2下载很方便,把文件直接复制进开发板连接电脑后出现的移动存储器中,为了显得更有bigger,使用指令:

    cp nuttx.bin /media/godenfreemans/DIS_F429ZI/

    RGBLED疯狂闪烁,下载完成,下面要用串口调试开发板的 NuttX Shell 。
    /dev/ 下有:

    dev

    发现有个叫 stlinkv2_console 的文件,查看一下:

    ls stlink

    详细显示一下,是个软连接文件,连接到 ttyACM0 。看样子这个就是开发板的串口了,百度一下,找到串口调试工具 minicom 安装,打开。

    配置好串口,串口名称为 /dev/stlinkv2_console 重开软件显示

    minicom

    果断输入 ls 回车显示:

    这里写图片描述

    哈哈,到这里就完成了。编译部分就完成了。再玩一下这个 shell

    玩shell

    看起来还不错,就是根目录下的东西怎么只有个 dev 。没有发现 bin 文件夹。还真只是个例程啊。

    继续看文档。

  • Re-building

    顾名思义,重新编译,当更换了开发板,重新使用 configure.sh 链接文件后直接使用 make 就可以编译系统了。

  • Build Targets and Options

    make编译选项:

    • all
      重新编译所有
    • clean
      移除 make 生成的过程文件
    • distclean
      移除 clean 移除的文件,而且还移除 configure 文件
    • apps_clean
      移除用户的 app 程序
    • apps_distclean
      和上上面的一样
    • export
      打包库文件和头文件
    • download
      下载到开发板,这个命令需要自己设置,设置文件在 Make.defs 文件中。
    • depend
      Windows上的,用不到。
    • context
      读不懂,运行一下看看。

      context

      显示出了 make 过程中经历到的目录。经历?这个词用的好么?

    • clean_context
      删除上面的指令创建的文件

    • V=1
      显示执行的每一条命令,对于了解编译过程很有帮助。

    剩下的都是 Windows 的事情了,直接跳过。


这个 README 文档就到此结束了

猜你喜欢

转载自blog.csdn.net/yt454287063/article/details/53175444