先楫半导体HPMicro Nuttx v0.2.0正式发布!

电子说

1.3w人已加入

描述

各位关注先楫的小伙伴们,基于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 包含 nuttxapps 两个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!!



 



审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分