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

2024-03-11
浏览量:
264


各位关注先楫的小伙伴们,基于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进行了适配:

    • 基本通信外设: UARTI2C, 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] [<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/series

  • HPMicro 代码仓库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/