HPM5301__2">1、HPM5301 背景介绍
笔者在RT-Thread开发者大会上领了一个HPM5301EVKLite的盲盒板子,就抽空点个灯介绍一下。主要板子如下图所述,类似于一个最小系统板。
- 开发厂商:先楫半导体,HPMICRO
- 芯片架构:32位的RISC-V,RV32,支持IMAFDCPB指令集
- 芯片类型:HPM5301IEG1
- 主频:360MHZ,CoreMark 3.57/MHZ
- Cache:16KB的ICache和DCache
- 内存:片上288KB的SRAM
- Flash:1MB
- ROM:128KB,4096位OTP
外设如下图所述:
其芯片类型命名如下:按照下面命名规则,笔者HPM5301IEG1 代表:基础款,QFN48版本
具体架构图如下图所述: - 通过AHB系统总线与存储Flash等通信
- 主要通过APB总线去与外设通信,一些高速的设备需要通过AHB总线(比如USB HDMA ADC等)
- 指令本地内存和数据本地内存都在CPU内部,速度更快,类似于ATCM个BTCM等
j接着来看一下内存布局,memory map,如下图所述。 - Code代码地址:0x0 - 0x1FFFF 128KB,在CPU内部
- Data 数据地址:0x80000 - 0x9FFFF 128KB,也在CPU内部
- SRAM:0xF0400000,算作为外设访问
- Flash空间:0x80000000 - 0x8FEFFFFF结束,
- 外设地址:0xE4000000 开始,0xF5000000结束
连接脚本里面也可以看到其地址使用:
ENTRY(_start)
FLASH_SIZE = DEFINED(_flash_size) ? _flash_size : 1M;
STACK_SIZE = DEFINED(_stack_size) ? _stack_size : 0x4000;
HEAP_SIZE = DEFINED(_heap_size) ? _heap_size : 32K;
MEMORY
{
XPI0 (rx) : ORIGIN = 0x80000000, LENGTH = FLASH_SIZE
ILM (wx) : ORIGIN = 0x00000000, LENGTH = 128K
DLM (w) : ORIGIN = 0x00080000, LENGTH = 128K
AHB_SRAM (w) : ORIGIN = 0xf0400000, LENGTH = 32K
}
__nor_cfg_option_load_addr__ = ORIGIN(XPI0) + 0x400;
__boot_header_load_addr__ = ORIGIN(XPI0) + 0x1000;
__app_load_addr__ = ORIGIN(XPI0) + 0x3000;
__boot_header_length__ = __boot_header_end__ - __boot_header_start__;
__app_offset__ = __app_load_addr__ - __boot_header_load_addr__;
补充cfg以及header信息的作用。
HPM5301__56">2、HPM5301 使用介绍
直接使用rt-thread stduio 就可以下载例程并使用。笔者使用的是Jink下载,注意需要使用V11的硬件版本,以及比较新的jink软件。笔者这里使用的版本是:
- 软件:SEGGER J-Link Commander V7.96q (Compiled Jun 28 2024 12:37:29)
- 硬件:Firmware: J-Link V11 compiled Apr 27 2041 16:36:21 Hardware version: V11.00
然后可以测试USB的收发功能,这个是USB HID。
3、参考
1、HPM5300-UM_V_0_3
2、HPM5301EVKLiteUGV1.0
3、HPM5300DSV0.10