1 简介
1.1 背景
学习NuttX视频教程,该视频教程语言为英文,为了在以后的工作学习中用到,在此记录学习内容,方便自己和大家查阅。
1.2 开发环境
虚拟机+系统:虚拟机VMware® Workstation 12 Pro+ubuntu 16.04LTS
开发板:正点原子STM32F4探索者
2 Nuttx开发环境搭建
视频地址:https://www.youtube.com/watch?v=heSkSd-_70g&list=PLd73yQk5Fd8JEsVD-lhwYRQKVu6glfDa8&index=1
2.1 安装开发工具
step1:
sudo apt install \
bison flex gettext texinfo libncurses5-dev libncursesw5-dev \
gperf automake libtool pkg-config build-essential gperf genromfs \
libgmp-dev libmpc-dev libmpfr-dev libisl-dev binutils-dev libelf-dev \
libexpat-dev gcc-multilib g++-multilib picocom u-boot-tools util-linux
stpe2
安装toolchain
sudo apt-get install gcc-arm-none-eabi binutils-arm-none-eabi
step3:
创建目录:
work
work/os
work/os/tools
work/os/nuttx
step4:
安装openocd
OpenOCD(Open On-Chip Debugger)是一个开源的片上调试器,旨在提供针对嵌入式设备的调试、系统编程和边界扫描功能。
OpenOCD的功能需要调试仿真器来辅助完成,调试仿真器是一个提供调试目标电信号的小型硬件单元。常用的有JLink、STLink等,一些开发板直接集成了调试仿真器,如小熊派开发板就集成了STLink。
为了避免git clone可能失败的情况,直接下载压缩文件,该压缩包同时包含了其所依赖的其他库。
下载网址: https://sourceforge.net/projects/openocd/files/
下载文件:
将文件放到ubuntu:work/os/tools下解压为:openocd-0.11.0
进入openocd-0.11.0目录
对工程进行配置:
./configure --enable-internal-jimtcl --enable-maintainer-mode --disable-werror --disable-shared --enable-stlink --enable-jlink --enable-rlink --enable-vsllink --enable-ti-icdi --enable-remote-bitbang
编译安装
make
sudo make install
3 编译Nuttx
#002 - Compiling the NuttX Source Code
视频地址:https://www.youtube.com/watch?v=Pi8IAFp3pVw&list=PLd73yQk5Fd8JEsVD-lhwYRQKVu6glfDa8&index=4
3.1 下载源文件
创建目录:work/os/nuttx
git clone https://github.com/apache/incubator-nuttx.git nuttx
git clone https://github.com/apache/incubator-nuttx-apps apps
3.2 安装工具
克隆工具包:git clone https://bitbucket.org/nuttx/tools.git
cd tools/kconfig-frontends
./configure
make
sudo make install
sudo ldconfig
3.3 编译
进入nuttx源代码目录:work/os/nuttx/nuttx
step1 为开发板初始化nuttx配置
列NuttX现在所支持的所有配置:
./tools/configure.sh -L | less
我们使用的是正点原子的探索者stm32f4开发板,Nuttx系统应该没有相应的支持,暂时想不管,后续学习懂了在移植,这里选择系统自带的stm32f4discovery开发板的配置,该开发板属于ST官方的产品。
./tools/configure.sh stm32f4discovery:nsh
step2 修改配置
打开基于菜单的配置系统:
make menuconfig
配置:
Build SetUp--->Build Host Platform--->linux
System Type--->Toolchain Selection--->Generic GNU EABI toolchain under linux
step3编译
make
4 下载程序
4.1 使用工具
ST-LINK V2
探索者开发板自带USB转串口:CH340,请提前参考Ubuntu18.04安装ch340驱动
确认驱动正常,或安装配置好。
可以往开发板烧录:例程:实验4 串口实验进行确认验证串口。
连接好开发板ST_LINK和串口到电脑以及电源灯。
4.2 下载程序
step1
进入work/os/tools/openocd-0.11.0/contrib
sudo cp 60-openocd.rules /etc/udev/rules.d/
sudo udevadm trigger
显示USB相关信息:
lsusb
进入work/os/nuttx/nuttx目录,执行以下命令下载程序。
openocd -f interface/stlink.cfg -f target/stm32f4x.cfg -c init -c "reset halt" -c "flash write_image erase nuttx.bin 0x08000000"
step2
启动和配置minicom
sudo minicom -s
Serial port setup--->Serial Device: /dev/ttyUSB0
由于开发板不是ST的官方开发板,暂时串口缺少交互内容,暂时不用管,继续往下学习。
参考资料:
[1] https://bbs.huaweicloud.com/blogs/122621
[2] https://nuttx.apache.org/docs/latest/quickstart/install.html