RISCV学习(3)HPM5301 MCU芯片学习
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信息的作用。
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
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |