initialize the clock tree of GD32VF103C_START to 108MHz
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
#include "tos.h"
|
||||
#include <tos_compiler.h>
|
||||
#include <tos_ktypes.h>
|
||||
|
||||
#define ECLIC_ADDR_BASE 0xD2000000
|
||||
#define CLIC_INT_TMR 0x07
|
||||
@@ -18,18 +19,18 @@
|
||||
#define ECLIC_CFG_NLBITS_LSB 1
|
||||
|
||||
|
||||
static uint8_t elci_get_clic_int_ctl_bits() {
|
||||
static uint8_t eclic_get_clic_int_ctl_bits() {
|
||||
uint32_t bits = *(volatile uint32_t*)(ECLIC_ADDR_BASE+ECLIC_INFO_OFFSET);
|
||||
bits >>= 21;
|
||||
return (uint8_t) bits;
|
||||
}
|
||||
|
||||
|
||||
static uint8_t elci_get_nlbits() {
|
||||
static uint8_t eclic_get_nlbits() {
|
||||
uint8_t nlbits = *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_CFG_OFFSET);
|
||||
nlbits = (nlbits & ECLIC_CFG_NLBITS_MASK) >> ECLIC_CFG_NLBITS_LSB;
|
||||
|
||||
uint8_t cicbits = elci_get_clic_int_ctl_bits();
|
||||
uint8_t cicbits = eclic_get_clic_int_ctl_bits();
|
||||
if(nlbits > cicbits) {
|
||||
nlbits = cicbits;
|
||||
}
|
||||
@@ -51,7 +52,7 @@ static void eclic_enable_interrupt(uint32_t source) {
|
||||
}
|
||||
|
||||
static void eclic_set_irq_level(uint32_t source, uint8_t level) {
|
||||
uint8_t nlbits = elci_get_nlbits();
|
||||
uint8_t nlbits = eclic_get_nlbits();
|
||||
|
||||
if (nlbits == 0) {
|
||||
return ;
|
||||
@@ -67,8 +68,8 @@ static void eclic_set_irq_level(uint32_t source, uint8_t level) {
|
||||
}
|
||||
|
||||
static void eclic_set_irq_priority(uint32_t source, uint8_t priority) {
|
||||
uint8_t nlbits = elci_get_nlbits();
|
||||
uint8_t cicbits= elci_get_clic_int_ctl_bits();
|
||||
uint8_t nlbits = eclic_get_nlbits();
|
||||
uint8_t cicbits= eclic_get_clic_int_ctl_bits();
|
||||
|
||||
if (nlbits >= cicbits) {
|
||||
return ;
|
||||
|
@@ -1,6 +1,9 @@
|
||||
#include "mcu_init.h"
|
||||
|
||||
void board_init() {
|
||||
|
||||
SystemInit();
|
||||
|
||||
rcu_periph_clock_enable(RCU_GPIOA);
|
||||
|
||||
gpio_init(GPIOA, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_7);
|
||||
|
@@ -1,27 +1,38 @@
|
||||
#ifndef INC_TOS_CONFIG_H_
|
||||
#define INC_TOS_CONFIG_H_
|
||||
|
||||
#include "gd32vf103.h"
|
||||
#include "stddef.h"
|
||||
|
||||
#define TOS_CFG_TASK_PRIO_MAX 10u // 配置TencentOS tiny默认支持的最大优先级数量
|
||||
// 配置TencentOS tiny默认支持的最大优先级数量
|
||||
#define TOS_CFG_TASK_PRIO_MAX 10u
|
||||
|
||||
#define TOS_CFG_ROUND_ROBIN_EN 0u // 配置TencentOS tiny的内核是否开启时间片轮转
|
||||
// 配置TencentOS tiny的内核是否开启时间片轮转
|
||||
#define TOS_CFG_ROUND_ROBIN_EN 0u
|
||||
|
||||
#define TOS_CFG_OBJECT_VERIFY 0u // 配置TencentOS tiny是否校验指针合法
|
||||
// 配置TencentOS tiny是否校验指针合法
|
||||
#define TOS_CFG_OBJECT_VERIFY 0u
|
||||
|
||||
#define TOS_CFG_EVENT_EN 1u // TencentOS tiny 事件模块功能宏
|
||||
// TencentOS tiny 事件模块功能宏
|
||||
#define TOS_CFG_EVENT_EN 1u
|
||||
|
||||
#define TOS_CFG_MMHEAP_EN 1u // 配置TencentOS tiny是否开启动态内存模块
|
||||
// 配置TencentOS tiny是否开启动态内存模块
|
||||
#define TOS_CFG_MMHEAP_EN 1u
|
||||
|
||||
#define TOS_CFG_MMHEAP_POOL_SIZE 8192 // 配置TencentOS tiny动态内存池大小
|
||||
// 配置TencentOS tiny动态内存池大小
|
||||
#define TOS_CFG_MMHEAP_POOL_SIZE 8192
|
||||
|
||||
#define TOS_CFG_MUTEX_EN 1u // 配置TencentOS tiny是否开启互斥锁模块
|
||||
// 配置TencentOS tiny是否开启互斥锁模块
|
||||
#define TOS_CFG_MUTEX_EN 1u
|
||||
|
||||
#define TOS_CFG_QUEUE_EN 1u // 配置TencentOS tiny是否开启队列模块
|
||||
// 配置TencentOS tiny是否开启队列模块
|
||||
#define TOS_CFG_QUEUE_EN 1u
|
||||
|
||||
#define TOS_CFG_TIMER_EN 0u // 配置TencentOS tiny是否开启软件定时器模块
|
||||
// 配置TencentOS tiny是否开启软件定时器模块
|
||||
#define TOS_CFG_TIMER_EN 0u
|
||||
|
||||
#define TOS_CFG_SEM_EN 1u // 配置TencentOS tiny是否开启信号量模块
|
||||
// 配置TencentOS tiny是否开启信号量模块
|
||||
#define TOS_CFG_SEM_EN 1u
|
||||
|
||||
#define TOS_CFG_CPU_SYSTICK_PRIO 0xF
|
||||
|
||||
@@ -31,15 +42,22 @@
|
||||
#define TOS_CFG_MSG_EN 0u
|
||||
#endif
|
||||
|
||||
#define TOS_CFG_MSG_POOL_SIZE 10u // 配置TencentOS tiny消息队列大小
|
||||
// 配置TencentOS tiny消息队列大小
|
||||
#define TOS_CFG_MSG_POOL_SIZE 10u
|
||||
|
||||
#define TOS_CFG_IDLE_TASK_STK_SIZE 512u // 配置TencentOS tiny空闲任务栈大小
|
||||
// 配置TencentOS tiny空闲任务栈大小
|
||||
#define TOS_CFG_IDLE_TASK_STK_SIZE 512u
|
||||
|
||||
#define TOS_CFG_CPU_TICK_PER_SECOND 1000u // 配置TencentOS tiny的tick频率
|
||||
// 配置TencentOS tiny的tick频率
|
||||
#define TOS_CFG_CPU_TICK_PER_SECOND 1000u
|
||||
|
||||
#define TOS_CFG_CPU_CLOCK (108000000/4) // 配置TencentOS tiny CPU频率
|
||||
// 配置TencentOS tiny CPU频率
|
||||
// 除4的原因是,Bumblebee内核通过core_clk_aon四分频来更新mtime寄存器
|
||||
// 具体信息参见《Bumblebee内核简明数据手册》
|
||||
#define TOS_CFG_CPU_CLOCK (SystemCoreClock/4)
|
||||
|
||||
#define TOS_CFG_TIMER_AS_PROC 1u // 配置是否将TIMER配置成函数模式
|
||||
// 配置是否将TIMER配置成函数模式
|
||||
#define TOS_CFG_TIMER_AS_PROC 1u
|
||||
|
||||
#define TOS_CFG_VFS_EN 1u
|
||||
|
||||
|
Reference in New Issue
Block a user