|
| 1 | +# HPMicro Board Support Package (BSP) Introduction |
| 2 | + |
| 3 | +[中文页](README_zh.md) | |
| 4 | + |
| 5 | +## Introduction |
| 6 | + |
| 7 | +This document provides an overview of the HPMicro BSPs (Board Support Package) available in the RT-Thread repository. Each BSP is tailored for specific HPMicro development boards, offering necessary drivers and configurations to run RT-Thread seamlessly on RISC-V based HPMicro microcontrollers. |
| 8 | + |
| 9 | +The document consists of the following parts: |
| 10 | + |
| 11 | +- HPMicro BSP Overview |
| 12 | +- Available BSPs |
| 13 | +- Quick Start Guide |
| 14 | +- Common Development Environment Setup |
| 15 | +- References |
| 16 | + |
| 17 | +By reading the Quick Start Guide section, developers can quickly get their hands on any HPMicro BSP and run RT-Thread on the board. Each individual BSP contains detailed documentation for specific board features and advanced usage. |
| 18 | + |
| 19 | +## Available BSPs |
| 20 | + |
| 21 | +Below is a comprehensive list of HPMicro BSPs currently supported: |
| 22 | + |
| 23 | +| BSP Name | Supported Board | MCU | Description | |
| 24 | +|----------|-----------------|-----|-------------| |
| 25 | +| hpm5300evk | HPM5300EVK | HPM5361 | Development board for HPM5300 series | |
| 26 | +| hpm5301evklite | HPM5301EVKLITE | HPM5301 | Lite version development board for HPM5301 | |
| 27 | +| hpm5e00evk | HPM5E00EVK | HPM5E31 | Development board for HPM5E00 series | |
| 28 | +| hpm6200evk | HPM6200EVK | HPM6200 | Development board for HPM6200 series | |
| 29 | +| hpm6300evk | HPM6300EVK | HPM6360 | Development board for HPM6300 series with Ethernet support | |
| 30 | +| hpm6750evk | HPM6750EVK | HPM6750 | Development board for HPM6750 series with dual-core RISC-V | |
| 31 | +| hpm6750evk2 | HPM6750EVK2 | HPM6750 | Second generation development board for HPM6750 series | |
| 32 | +| hpm6750evkmini | HPM6750EVKMINI | HPM6750 | Mini development board for HPM6750 series | |
| 33 | +| hpm6800evk | HPM6800EVK | HPM6800 | Development board for HPM6800 series | |
| 34 | +| hpm6e00evk | HPM6E00EVK | HPM6E00 | Development board for HPM6E00 series | |
| 35 | +| hpm6p00evk | HPM6P00EVK | HPM6P00 | Development board for HPM6P00 series | |
| 36 | + |
| 37 | +## Quick Start Guide |
| 38 | + |
| 39 | +### Prerequisites |
| 40 | + |
| 41 | +Before getting started with any HPMicro BSP, you need to prepare the following development environment: |
| 42 | + |
| 43 | +#### 1. RT-Thread ENV |
| 44 | +- Download and install [RT-Thread ENV](https://www.rt-thread.org/download.html#download-rt-thread-env-tool) |
| 45 | + |
| 46 | +#### 2. RISC-V Toolchain |
| 47 | +- Download the RISC-V toolchain: [riscv32-gnu-toolchain](https://github.com/helloeagleyang/riscv32-gnu-toolchain-win/archive/2022.04.12.zip) |
| 48 | +- Extract it to a specified directory, for example: `C:\DevTools\riscv32-gnu-toolchain` |
| 49 | +- Set environment variable `RTT_RISCV_TOOLCHAIN` to `<TOOLCHAIN_DIR>\bin` |
| 50 | + - For example: `C:\DevTools\riscv32-gnu-toolchain\bin` |
| 51 | + |
| 52 | +#### 3. OpenOCD for HPMicro |
| 53 | +- Download OpenOCD: [rtt-debugger-support-package](https://github.com/hpmicro/rtt-debugger-support-package/archive/v0.4.0.zip) |
| 54 | +- Extract it to a specified directory, for example: `C:\DevTools\openocd-hpmicro` |
| 55 | +- Set environment variable `OPENOCD_HPMICRO` to `<OPENOCD_HPMICRO_DIR>\bin` |
| 56 | + - For example: `C:\DevTools\openocd-hpmicro\bin` |
| 57 | + |
| 58 | +### Getting Started with a Specific BSP |
| 59 | + |
| 60 | +1. **Navigate to the desired BSP directory**: |
| 61 | + ```bash |
| 62 | + cd rt-thread/bsp/hpmicro/<bsp_name> |
| 63 | + ``` |
| 64 | + |
| 65 | +2. **Configure the project**: |
| 66 | + - Open RT-Thread ENV command-line |
| 67 | + - Change directory to the BSP directory |
| 68 | + - Run `menuconfig` to configure the project |
| 69 | + |
| 70 | +3. **Build the project**: |
| 71 | + ```bash |
| 72 | + scons -jN # N equals to the number of CPU cores |
| 73 | + ``` |
| 74 | + |
| 75 | +4. **Hardware Connection**: |
| 76 | + - Switch BOOT pin to 2'b00 |
| 77 | + - Connect the `PWR_DEBUG` port to PC via TYPE-C cable |
| 78 | + |
| 79 | +5. **Download and Debug**: |
| 80 | + - Use the provided OpenOCD scripts for downloading and debugging |
| 81 | + - Refer to individual BSP README files for specific commands |
| 82 | + |
| 83 | +### Running Results |
| 84 | + |
| 85 | +Once the project is successfully downloaded, the system runs automatically. The LED on the board will flash periodically. |
| 86 | + |
| 87 | +Connect the serial port of the board to the PC, communicate with it via a serial terminal tool (115200-8-1-N). Reset the board and the startup information of RT-Thread will be observed: |
| 88 | + |
| 89 | +``` |
| 90 | + \ | / |
| 91 | +- RT - Thread Operating System |
| 92 | + / | \ 5.2.2 build Aug 16 2025 18:18:18 |
| 93 | + 2006 - 2025 Copyright by RT-Thread team |
| 94 | +msh > |
| 95 | +``` |
| 96 | + |
| 97 | +## Common Peripheral Support |
| 98 | + |
| 99 | +Most HPMicro BSPs support the following peripherals: |
| 100 | + |
| 101 | +| **On-board Peripherals** | **Support** | **Note** | |
| 102 | +| ------------------------ | ----------- | -------- | |
| 103 | +| USB | √ | | |
| 104 | +| QSPI Flash | √ | | |
| 105 | +| GPIO | √ | | |
| 106 | +| SPI | √ | | |
| 107 | +| I2C | √ | | |
| 108 | +| UART | √ | | |
| 109 | +| PWM | √ | | |
| 110 | +| RTC | √ | | |
| 111 | +| On-Board Debugger | √ | ft2232 | |
| 112 | + |
| 113 | +Additional peripherals may be supported depending on the specific board: |
| 114 | +- **Ethernet**: Available on |
| 115 | + - HPM6300EVK |
| 116 | + - HPM6750EVK |
| 117 | + - HPM6750EVK2 |
| 118 | + - HPM6750EVKMINI + ART-Pi Industry IO extension |
| 119 | + - HPM6800EVK |
| 120 | + - HPM6E00EVK |
| 121 | + - HPM6P00EVK |
| 122 | + - HPM5E00EVK |
| 123 | +- **CAN**: Available on HPM6750 series Development Boards, HPM5300EVK, HPM6800EVK, HPM6E00EVK, HPM6P00EVK and HPM5E00EVK |
| 124 | +- **SDIO**: Available on HPM6300EVK, HPM6750EVKMINI, HPM6750EVK, HPM6750EVK2 and HPM6800EVK |
| 125 | +- **Display/Audio**: Available on HPM6750EVK, HPM6800EVK, HPM6E00EVK,HPM6P00EVK |
| 126 | + |
| 127 | +## Development Environment Setup |
| 128 | + |
| 129 | + |
| 130 | +### Using Command Line Tools |
| 131 | + |
| 132 | +1. Set up the environment variables as described in the Prerequisites section |
| 133 | +2. Use `scons` for building |
| 134 | +3. Use OpenOCD and GDB for debugging or use the Ozone + JLink for debugging |
| 135 | + |
| 136 | +## Individual BSP Documentation |
| 137 | + |
| 138 | +Each BSP contains its own detailed README file with: |
| 139 | +- Board-specific hardware information |
| 140 | +- Peripheral configuration details |
| 141 | +- Specific download and debug commands |
| 142 | +- Advanced features and examples |
| 143 | + |
| 144 | +Please refer to the individual BSP directories for detailed documentation: |
| 145 | +- `hpm5300evk/README.md` |
| 146 | +- `hpm5301evklite/README.md` |
| 147 | +- `hpm5e00evk/README.md` |
| 148 | +- `hpm6200evk/README.md` |
| 149 | +- `hpm6300evk/README.md` |
| 150 | +- `hpm6750evk/README.md` |
| 151 | +- `hpm6750evk2/README.md` |
| 152 | +- `hpm6750evkmini/README.md` |
| 153 | +- `hpm6800evk/README.md` |
| 154 | +- `hpm6e00evk/README.md` |
| 155 | +- `hpm6p00evk/README.md` |
| 156 | + |
| 157 | +## Troubleshooting |
| 158 | + |
| 159 | +### Common Issues |
| 160 | + |
| 161 | +1. **Toolchain not found**: Ensure `RTT_RISCV_TOOLCHAIN` environment variable is set correctly |
| 162 | +2. **OpenOCD connection failed**: Check USB connection and driver installation |
| 163 | +3. **Build errors**: Verify all dependencies are installed and environment variables are set |
| 164 | +4. **Serial communication issues**: Check baud rate (115200) and COM port settings |
| 165 | + |
| 166 | +### Getting Help |
| 167 | + |
| 168 | +- Check the individual BSP README files for board-specific issues |
| 169 | +- Visit [RT-Thread Community](https://club.rt-thread.org/) |
| 170 | +- Refer to [RT-Thread Documentation](https://www.rt-thread.org/document/site/) |
| 171 | + |
| 172 | +## References |
| 173 | + |
| 174 | +- [RT-Thread Document Center](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/README) |
| 175 | +- [RT-Thread ENV](https://github.com/RT-Thread/rtthread-manual-doc/blob/master/env/env.md) |
| 176 | +- [HPMicro Official Website](https://www.hpmicro.com/) |
| 177 | +- [HPMicro SDK Documentation](https://hpmicro.github.io/) |
| 178 | +- [RISC-V Toolchain](https://github.com/riscv/riscv-gnu-toolchain) |
| 179 | + |
| 180 | +## Contributing |
| 181 | + |
| 182 | +Contributions to enhance existing BSPs or add new ones are welcome. Please follow the RT-Thread contribution guidelines and ensure that your BSP adheres to the project's standards. |
| 183 | + |
| 184 | +For contributing to HPMicro BSPs: |
| 185 | +1. Fork the `RT-Thread` repository |
| 186 | +2. Create a feature branch |
| 187 | +3. Make your changes following the existing code style |
| 188 | +4. Test your changes thoroughly |
| 189 | +5. Submit a pull request with a clear description |
| 190 | + |
| 191 | +## License |
| 192 | + |
| 193 | +This BSP is released under the [RT-Thread license](https://github.com/RT-Thread/rt-thread/blob/master/LICENSE). |
0 commit comments