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/hpmicro
nuttx_hpmicro/nuttx/arch/risc-v/src/hpmicro
nuttx_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