b9e4fcfc68
整合libcpu/riscv中的移植文件 提供一份公共代码于common 在提交本pr时,除hpmicro的内核,rv32内核bsp已完成去除大部分的冗余,大部分代码采用common中的实现。本pr的作用是进一步统一common中的文件,从而提供一份公用代码,新移植的RV32内核的BSP可以全部使用common代码。 - 在common中提供一份公用文件:interrupt_gcc.S - 修改原有的文件,将原有的中断中上下文切换代码替换为interrupt_gcc.S - 基于上述修改,修改仓库中risc-v内核的BSP与移植相关的部分 (主要包含中断入口函数 中断栈等) - 在common中提供一份公用文件:trap_common.c;提供统一中断入口函数,中断入口函数初始化,中断入口注册等函数,并完善异常时的信息输出 - 在common中提供一份公用文件:rt_hw_stack_frame.h;将栈帧结构体剥离,供用户使用 - 在上述工作完成后,在上述工作的基础上测试仓库中risc-v内核的BSP - 完善函数中的命名,完善中断栈的获取 - 提供一份详细的基于现有common文件的移植指南 #### 在什么测试环境下测试通过 - 1.CH32V307V-R1-R0 - 2.CH32V208W-R0-1V4 - 3.HPM6750EVKMINI - 4.GD32VF103V-EVAL - 5.qemu(CORE-V-MCU ) > 与上述开发板使用同样芯片的BSP均测试通过 在CH32V307V-R1-R0与HPM6750EVKMINI上基于现有移植文件进行多线程复杂场景下的长时间测试,测试过程系统运行正常。
249 lines
4.0 KiB
C
249 lines
4.0 KiB
C
#ifndef RT_CONFIG_H__
|
|
#define RT_CONFIG_H__
|
|
|
|
/* Automatically generated file; DO NOT EDIT. */
|
|
/* RT-Thread Configuration */
|
|
|
|
/* RT-Thread Kernel */
|
|
|
|
#define RT_NAME_MAX 8
|
|
#define RT_ALIGN_SIZE 8
|
|
#define RT_THREAD_PRIORITY_32
|
|
#define RT_THREAD_PRIORITY_MAX 32
|
|
#define RT_TICK_PER_SECOND 100
|
|
#define RT_USING_OVERFLOW_CHECK
|
|
#define RT_USING_HOOK
|
|
#define RT_HOOK_USING_FUNC_PTR
|
|
#define RT_USING_IDLE_HOOK
|
|
#define RT_IDLE_HOOK_LIST_SIZE 4
|
|
#define IDLE_THREAD_STACK_SIZE 396
|
|
#define RT_USING_TIMER_SOFT
|
|
#define RT_TIMER_THREAD_PRIO 4
|
|
#define RT_TIMER_THREAD_STACK_SIZE 512
|
|
|
|
/* kservice optimization */
|
|
|
|
|
|
/* Inter-Thread communication */
|
|
|
|
#define RT_USING_SEMAPHORE
|
|
#define RT_USING_MUTEX
|
|
#define RT_USING_EVENT
|
|
#define RT_USING_MAILBOX
|
|
#define RT_USING_MESSAGEQUEUE
|
|
|
|
/* Memory Management */
|
|
|
|
#define RT_PAGE_MAX_ORDER 11
|
|
#define RT_USING_MEMPOOL
|
|
#define RT_USING_SMALL_MEM
|
|
#define RT_USING_SMALL_MEM_AS_HEAP
|
|
#define RT_USING_HEAP
|
|
|
|
/* Kernel Device Object */
|
|
|
|
#define RT_USING_DEVICE
|
|
#define RT_USING_CONSOLE
|
|
#define RT_CONSOLEBUF_SIZE 128
|
|
#define RT_CONSOLE_DEVICE_NAME "uart4"
|
|
#define RT_VER_NUM 0x50000
|
|
#define ARCH_RISCV
|
|
#define ARCH_RISCV32
|
|
|
|
/* RT-Thread Components */
|
|
|
|
#define RT_USING_COMPONENTS_INIT
|
|
#define RT_USING_USER_MAIN
|
|
#define RT_MAIN_THREAD_STACK_SIZE 1024
|
|
#define RT_MAIN_THREAD_PRIORITY 10
|
|
#define RT_USING_MSH
|
|
#define RT_USING_FINSH
|
|
#define FINSH_USING_MSH
|
|
#define FINSH_THREAD_NAME "tshell"
|
|
#define FINSH_THREAD_PRIORITY 20
|
|
#define FINSH_THREAD_STACK_SIZE 2048
|
|
#define FINSH_USING_HISTORY
|
|
#define FINSH_HISTORY_LINES 5
|
|
#define FINSH_USING_SYMTAB
|
|
#define FINSH_CMD_SIZE 80
|
|
#define MSH_USING_BUILT_IN_COMMANDS
|
|
#define FINSH_USING_DESCRIPTION
|
|
#define FINSH_ARG_MAX 10
|
|
|
|
/* Device Drivers */
|
|
|
|
#define RT_USING_DEVICE_IPC
|
|
#define RT_UNAMED_PIPE_NUMBER 64
|
|
#define RT_USING_SYSTEM_WORKQUEUE
|
|
#define RT_SYSTEM_WORKQUEUE_STACKSIZE 2048
|
|
#define RT_SYSTEM_WORKQUEUE_PRIORITY 23
|
|
#define RT_USING_SERIAL
|
|
#define RT_USING_SERIAL_V1
|
|
#define RT_SERIAL_RB_BUFSZ 64
|
|
#define RT_USING_PIN
|
|
|
|
/* Using USB */
|
|
|
|
|
|
/* C/C++ and POSIX layer */
|
|
|
|
#define RT_LIBC_DEFAULT_TIMEZONE 8
|
|
|
|
/* POSIX (Portable Operating System Interface) layer */
|
|
|
|
|
|
/* Interprocess Communication (IPC) */
|
|
|
|
|
|
/* Socket is in the 'Network' category */
|
|
|
|
|
|
/* Network */
|
|
|
|
|
|
/* Utilities */
|
|
|
|
|
|
/* RT-Thread Utestcases */
|
|
|
|
|
|
/* RT-Thread online packages */
|
|
|
|
/* IoT - internet of things */
|
|
|
|
|
|
/* Wi-Fi */
|
|
|
|
/* Marvell WiFi */
|
|
|
|
|
|
/* Wiced WiFi */
|
|
|
|
|
|
/* IoT Cloud */
|
|
|
|
|
|
/* security packages */
|
|
|
|
|
|
/* language packages */
|
|
|
|
/* JSON: JavaScript Object Notation, a lightweight data-interchange format */
|
|
|
|
|
|
/* XML: Extensible Markup Language */
|
|
|
|
|
|
/* multimedia packages */
|
|
|
|
/* LVGL: powerful and easy-to-use embedded GUI library */
|
|
|
|
|
|
/* u8g2: a monochrome graphic library */
|
|
|
|
|
|
/* PainterEngine: A cross-platform graphics application framework written in C language */
|
|
|
|
|
|
/* tools packages */
|
|
|
|
|
|
/* system packages */
|
|
|
|
/* enhanced kernel services */
|
|
|
|
|
|
/* acceleration: Assembly language or algorithmic acceleration packages */
|
|
|
|
|
|
/* CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */
|
|
|
|
|
|
/* Micrium: Micrium software products porting for RT-Thread */
|
|
|
|
|
|
/* peripheral libraries and drivers */
|
|
|
|
/* sensors drivers */
|
|
|
|
|
|
/* touch drivers */
|
|
|
|
|
|
/* Kendryte SDK */
|
|
|
|
#define PKG_USING_NUCLEI_SDK
|
|
|
|
/* !!!Nuclei SDK only works with Nuclei RISC-V Processor IP!!! */
|
|
|
|
#define PKG_USING_NUCLEI_SDK_LATEST_VERSION
|
|
|
|
/* AI packages */
|
|
|
|
|
|
/* Signal Processing and Control Algorithm Packages */
|
|
|
|
|
|
/* miscellaneous packages */
|
|
|
|
/* project laboratory */
|
|
|
|
/* samples: kernel and components samples */
|
|
|
|
|
|
/* entertainment: terminal games and other interesting software packages */
|
|
|
|
|
|
/* Arduino libraries */
|
|
|
|
|
|
/* Projects */
|
|
|
|
|
|
/* Sensors */
|
|
|
|
|
|
/* Display */
|
|
|
|
|
|
/* Timing */
|
|
|
|
|
|
/* Data Processing */
|
|
|
|
|
|
/* Data Storage */
|
|
|
|
/* Communication */
|
|
|
|
|
|
/* Device Control */
|
|
|
|
|
|
/* Other */
|
|
|
|
/* Signal IO */
|
|
|
|
|
|
/* Uncategorized */
|
|
|
|
/* Hardware Drivers Config */
|
|
|
|
#define SOC_GD32VF103V
|
|
|
|
/* Onboard Peripheral Drivers */
|
|
|
|
#define BSP_USING_UART_CONSOLE
|
|
|
|
/* On-chip Peripheral Drivers */
|
|
|
|
#define BSP_USING_UART
|
|
#define BSP_USING_UART0
|
|
#define BSP_USING_UART4
|
|
|
|
/* Board extended module Drivers */
|
|
|
|
#define SOC_GD32VF103
|
|
|
|
#endif
|