先楫半导体HPMicro Nuttx v0.2.0 发布
各位关注先楫的小伙伴们,基于Nuttx v12.4.0
版本和hpm_sdk v1.4.0
版本的HPMicro Nuttx v0.2.0
正式发布了。
Repo链接为:https://github.com/hpmicro/nuttx_hpmicro
支持的开发板
HPM6750EVK2
HPM6300EVK
HPM6200EVK
HPM5300EVK
提供的主要功能
对如下drivers进行了适配:
基本通信外设:
UART
,I2C
,SPI
,CAN
,SDIO
高速通信接口:
USB
,Ethernet
定时器类:
GPTIMER
,RTC
其他:
FPU
,DMA
,ADC
,PWM
,GPIO
,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
开发环境搭建
开发环境
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] [<cmd>]
? 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 官方文档中心
:https://nuttx.apache.org/docs/latest/Nuttx 学习视频
:https://space.bilibili.com/1638558101/channel/seriesHPMicro 代码仓库
:https://github.com/hpmicro欢迎参与提交issue和示例,我们可能不能及时回复,但我们会认真听取每一个意见和建议。
“先楫半导体”(HPMicro)是一家致力于高性能嵌入式解决方案的半导体公司,总部位于上海,产品覆盖微控制器、微处理器和周边芯片,以及配套的开发工具和生态系统。公司成立于2020年6月,总部坐落于上海市张江高科技园区,并在天津、苏州、深圳和杭州均设立分公司。核心团队来自世界知名半导体公司管理团队,具有15年以上,超过20个SoC的丰富的研发及管理经验。先楫半导体以产品质量为本,所有产品均通过严格的可靠性测试。目前已经量产的高性能通用MCU产品包含HPM6700/6400、HPM6300、HPM6200、HPM5300及HPM6800系列,性能领先国际同类产品并通过AEC-Q100认证。公司已完成ISO9001质量管理认证和ISO 26262/IEC61508功能安全管理体系双认证,全力服务中国乃至全球的工业、汽车和能源市场。更多信息,请访问 https://hpmicro.com/