HPMicro Nuttx 快速上手指南
仓库链接
Repo链接为:https://github.com/hpmicro/nuttx_hpmicro
支持的开发板
- HPM6750EVK2
- HPM6300EVK
- HPM6200EVK
- HPM5300EVK
提供的主要功能
-
对如下drivers进行了适配
- 基本通信外设:
UART,I2C,SPI,CAN,SDIO - 高速通信接口:
USB,Ethernet - 定时器类:
GPTMR,RTC - 其他:
FPU,DMA,ADC,PWM,GPIO,LCD,RANDOM
- 基本通信外设:
-
提供了如下apps示例
- HPM6750EVK2:
fpu,gpio,nsh,adc,can,cansock,lvgl_lcd,mmcsd,i2c_tools,nx_lcd_demo,pwm,random,rtc,tcpecho,timers,usb_dev_cdcacm,usb_dev_msc,usb_host,userled - HPM6300EVK:
fpu,gpio,nsh - HPM6200EVK:
fpu,gpio,nsh - HPM5300EVK:
fpu,gpio,nsh
- HPM6750EVK2:
开发环境搭建
开发环境
- Ubuntu 22.04 LTS
下载并安装软件依赖包
- 请安装相关软件依赖包,执行指令如下
sudo apt install \ bison flex gettext texinfo libncurses5-dev libncursesw5-dev xxd \ 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 \ kconfig-frontends curl
下载并安装GCC
- 下载链接为:https://github.com/hpmicro/riscv-gnu-toolchain/releases/tag/2022.05.15
- 在Home路径中新建ToolChain文件夹,路径为
~/Toolchain,并将工具链解压至该文件夹中 - 在
~/.bashrc文件中的最后一行新增如下语句,将工具链加入到环境变量 $PATH 中。export PATH=$PATH:~/Toolchain/riscv32-unknown-elf-newlib-multilib_2022.05.15_linux/riscv32-unknown-elf-newlib
下载并安装OpenOCD
- 下载链接为:https://github.com/hpmicro/riscv-openocd/releases/tag/hpm_xpi_v0.2.0
- 将其解压至
~/Toolchain文件夹中 - 在
~/.bashrc文件中的最后一行新增如下语句,将工具加入到环境变量 $PATH 中。export PATH=$PATH:~/Toolchain/openocd-linux
克隆 nuttx_hpmicro 代码仓库
nuttx_hpmicro包含nuttx和apps两个submodule,克隆指令如下:git clone --recursive https://github.com/hpmicro/nuttx_hpmicro.git- HPMicro 移植的相关源码路径
nuttx_hpmicro/nuttx/arch/risc-v/include/hpmicronuttx_hpmicro/nuttx/arch/risc-v/src/hpmicronuttx_hpmicro/nuttx/boards/risc-v/hpmicro
解决Ubuntu 22.04 CH340系列串口芯片无法识别问题
- hpm6750evk2使用CH340作为调试串口,但在Ubuntu 22.04不识别,主要原因是驱动被brltty占用了,解决办法禁用占用项,指令如下:
sudo systemctl stop brltty-udev.service sudo systemctl mask brltty-udev.service sudo systemctl stop brltty.service sudo systemctl disable brltty.service
编译并执行NSH示例
编译nsh示例
- 以
nsh为例,到nuttx_hpmicro/nuttx目录下,执行指令如下:./tools/configure.sh -l hpm6750evk2-sdk:nsh make
下载并运行
-
使用 FireDAP仿真器 + OpenOCD 的方式进行下载调试
-
以hpm6750evk2为例,到
nuttx_hpmicro/nuttx/arch/risc-v/src/hpmicro/hpm_sdk/boards/openocd目录下启动OpenOCD,指令如下:openocd -f probes/cmsis_dap.cfg -f soc/hpm6750-single-core.cfg -f boards/hpm6750evk2.cfg
-
打开串口调试终端Console,指令如下:
sudo picocom -b 115200 /dev/ttyUSB0
-
到
nuttx_hpmicro/nuttx目录下,使用GDB下载并运行程序,指令如下:riscv32-unknown-elf-gdb ./nuttx (gdb) target remote localhost:3333 (gdb) mon reset halt (gdb) load (gdb) c
-
可在串口调试终端进行交互
NuttShell (NSH) nsh> nsh> help help usage: help [-v] [] ? echo free ls ps uname cat env help mount pwd usleep cd exec kill printf sleep Builtin Apps: hello nsh sh nsh> hello Hello, World!!
快速入门视频
Nuttx 快速入门:基于先辑半导体hpm6280:https://www.bilibili.com/video/BV1jC4y177Y5/
资源链接
Nuttx 官方文档中心:https://nuttx.apache.org/docs/latest/Nuttx 学习视频:https://space.bilibili.com/1638558101/channel/seriesHPMicro 代码仓库:https://github.com/hpmicro