Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
BSP
国产MCU移植
RISC-V CH32V103R BSP移植
发布于 2021-10-01 00:29:46 浏览:2194
订阅该版
[tocm] ###简介### ch32v103R 是由沁恒微电子公司(http://wch.cn)推出的基于开源指令集 RISC-V 架构的微处理器。MounRiver Studio是沁恒官方推荐的开发工具,已经集成了Rtthread-nano的工程包,由于103R8T6也配备了64K的Flash,20K的SRAM,做一个基于完整版RTT的BSP还有一应用空间的。于是有了下面的探索过程。 ### ch32v103R-R1-1V0 板载资源: ch32v103R-R1-1V0 是由沁恒微电子公司出品的开发板,移植代码在开发板测试通过。 | 硬件 | 描述 | | -- | -- | | 内核 | 沁恒 | | 架构 | 32-bit RV32IMAC | | 主频 | 72 MHz | ### 准备编译工具链### 1. env工具里面默认只带了arm_gcc 的 toolchain,要编译 RISC-V,还需要下载 RISC-V 的 toolchain,RISC-V 官方的 toolchain 在 Github 上,地址如下:https://github.com/xpack-dev-tools/riscv-none-embed-gcc-xpack/releases 下载完放在 env/tools/gnu_gcc/risc-v目录下 ![image.png](https://oss-club.rt-thread.org/uploads/20210930/de9b31ed1539f61bdfb14fd1a3ba4f95.png) 2.也可以选择用RT-STUDIO下载RISC-V-GCC-WCH 工具链 ![port01.jpg](https://oss-club.rt-thread.org/uploads/20210930/11cff9a5f32a7edc58e83cfb646126a6.jpg.webp) 然后在rtconfig.py的EXE_PATH 指定工具链路径。 ``` if CROSS_TOOL == 'gcc': PLATFORM = 'gcc' EXEC_PATH = r'xxx/RT-ThreadStudio/repo/Extract/ToolChain_Support_Packages/WCH/RISC-V-GCC-WCH/8.2.0/bin' #EXEC_PATH = r'/opt/unknown-gcc/bin' else: print('Please make sure your toolchains is GNU GCC!') exit(0) ``` ### 添加RISC-V 内核移植API文件### 在RISC-V内核架构设计上,common文件夹一般来用存放的是不同RISC-V内核的通用任务切换代码,其他不同内核之间不一样的地方,使用单独的文件夹存放。MounRiver工程包里的内核移植文件和common里有差异,因此本BSP为CH32V103单独建一个文件存放。 ![image.png](https://oss-club.rt-thread.org/uploads/20210930/a96e4c05934c29cab8b5b2e92d5325a7.png) **修改SConscript脚本** ![image.png](https://oss-club.rt-thread.org/uploads/20210930/196193459ba98c8d85e12a897234dab9.png) **修改cpuport.函数** MounRiver工程包中通过软中断实现上下文任务的切换,然而是在scheduler.c做了特殊处理,代码略有别扭,放在cpuport.c更方便移植。 ![image.png](https://oss-club.rt-thread.org/uploads/20211001/385e5bd86449a8b54c6aa9e90d7f92fc.png) ### 修改BSP工程脚本文件### **修改drivers/Kconfig脚本** ``` menu "Hardware Drivers Config" config SOC_CH32V103R8T6 bool select SOC_SERIES_CH32V103 default y menu "Onboard Peripheral Drivers" config BSP_USING_UART_CONSOLE bool "Enable UART CONSOLE" select BSP_USING_UART default y config BSP_USING_PIN bool "Enable PIN" select RT_USING_PIN default y endmenu menu "On-chip Peripheral Drivers" menuconfig BSP_USING_UART bool "Enable UART" default y select RT_USING_SERIAL if BSP_USING_UART config RT_USING_UART0 bool "Enable UART0" default n config RT_USING_UART1 bool "Enable UART1" default n config RT_USING_UART2 bool "Enable UART2" default n config RT_USING_UART3 bool "Enable UART3" default n config RT_USING_UART4 bool "Enable UART4" default n endif endmenu menu "Board extended module Drivers" endmenu endmenu ``` **BSP组织结构** ![image.png](https://oss-club.rt-thread.org/uploads/20211001/e3da296976100be34852fac0b2a27669.png) ### 编译结果和简单demo### 代码已经在PR中,第一次为Rtthread贡献微薄之力,以后还需要加油。 ![compile.jpg](https://oss-club.rt-thread.org/uploads/20211001/f1d6a3c06ec6b843b36f3d81d045627a.jpg.webp) ![74acdf37edab40dac86f83050cc0a88b.jpg.webp](https://oss-club.rt-thread.org/uploads/20211001/74acdf37edab40dac86f83050cc0a88b.jpg.webp) ### 最后### 感谢沁恒提供开发板,感谢陶工不厌其烦解答我的疑问,感谢RT-thread强大的技术和平台。
4
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
xianting77
Whatever brings you down, will eventlly make you stronger!
文章
2
回答
6
被采纳
0
关注TA
发私信
相关文章
1
STM32 407 串口接收数据 系统卡死
2
RTT nrf24l01 设备驱动程序
3
stm32f10x串口只能发送数据,无法接收
4
第一次尝试移植rt-thread 到stm32F103系列问题
5
有人把stm32L07xx的bsp移到rtt上来了吗?求一个
6
rt-thread线程调度异常在stm32f103芯片上
7
RTT是否支持STM32F429
8
请问谁有 STM32F40x HAL + RT-THREAD 模板
9
rt-thread在stm32f411下的移植问题
10
针对STM32F7系列平台的MPU,Cache特性,需要注意哪些问题?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
PWM
freemodbus
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
rt_mq_消息队列_msg_queue
SFUD
keil_MDK
msh
ulog
C++_cpp
MicroPython
本月问答贡献
踩姑娘的小蘑菇
7
个答案
2
次被采纳
a1012112796
18
个答案
1
次被采纳
红枫
5
个答案
1
次被采纳
Ryan_CW
5
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
本月文章贡献
YZRD
3
篇文章
6
次点赞
catcatbing
3
篇文章
6
次点赞
lizimu
2
篇文章
11
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部