From bd407ece98dc6cf6df2caf1c367a0231b1e59898 Mon Sep 17 00:00:00 2001 From: acevest Date: Tue, 1 Oct 2019 17:18:54 +0800 Subject: [PATCH 1/6] add usart0, printf support for GD32VF103C_START board --- board/GD32VF103C_START/BSP/Inc/mcu_init.h | 9 ++ board/GD32VF103C_START/BSP/Inc/usart.h | 10 ++ board/GD32VF103C_START/BSP/Src/mcu_init.c | 11 ++ board/GD32VF103C_START/BSP/Src/usart.c | 30 +++++ .../eclipse/hello_world/.cproject | 2 + .../eclipse/hello_world/.project | 10 ++ .../.settings/language.settings.xml | 2 +- .../eclipse/hello_world/main.c | 124 ++++++++++-------- 8 files changed, 139 insertions(+), 59 deletions(-) create mode 100644 board/GD32VF103C_START/BSP/Inc/mcu_init.h create mode 100644 board/GD32VF103C_START/BSP/Inc/usart.h create mode 100644 board/GD32VF103C_START/BSP/Src/mcu_init.c create mode 100644 board/GD32VF103C_START/BSP/Src/usart.c diff --git a/board/GD32VF103C_START/BSP/Inc/mcu_init.h b/board/GD32VF103C_START/BSP/Inc/mcu_init.h new file mode 100644 index 00000000..7f906dd8 --- /dev/null +++ b/board/GD32VF103C_START/BSP/Inc/mcu_init.h @@ -0,0 +1,9 @@ +#ifndef __MCU_INIT_H +#define __MCU_INIT_H + +#include "gd32vf103.h" +#include "usart.h" + +void board_init(); + +#endif //__MCU_INIT_H diff --git a/board/GD32VF103C_START/BSP/Inc/usart.h b/board/GD32VF103C_START/BSP/Inc/usart.h new file mode 100644 index 00000000..bb5f1594 --- /dev/null +++ b/board/GD32VF103C_START/BSP/Inc/usart.h @@ -0,0 +1,10 @@ +#ifndef __USART_H +#define __USART_H + +#define USART0_GPIO_TX_PIN GPIO_PIN_9 +#define USART0_GPIO_RX_PIN GPIO_PIN_10 +#define USART0_GPIO_PORT GPIOA + +void usart0_init(int baud); + +#endif // __USART_H diff --git a/board/GD32VF103C_START/BSP/Src/mcu_init.c b/board/GD32VF103C_START/BSP/Src/mcu_init.c new file mode 100644 index 00000000..d6e2ddaf --- /dev/null +++ b/board/GD32VF103C_START/BSP/Src/mcu_init.c @@ -0,0 +1,11 @@ +#include "mcu_init.h" + +void board_init() { + rcu_periph_clock_enable(RCU_GPIOA); + + gpio_init(GPIOA, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_7); + + gpio_bit_reset(GPIOA, GPIO_PIN_7); + + usart0_init(115200); +} diff --git a/board/GD32VF103C_START/BSP/Src/usart.c b/board/GD32VF103C_START/BSP/Src/usart.c new file mode 100644 index 00000000..5c809db1 --- /dev/null +++ b/board/GD32VF103C_START/BSP/Src/usart.c @@ -0,0 +1,30 @@ +#include "gd32vf103.h" +#include "usart.h" +void usart0_init(int baud) +{ + uint32_t com = USART0; + + /* enable GPIO clock */ + rcu_periph_clock_enable(RCU_GPIOA); + + /* enable USART clock */ + rcu_periph_clock_enable(RCU_USART0); + + /* connect port to USARTx_Tx */ + gpio_init(USART0_GPIO_PORT, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, USART0_GPIO_TX_PIN); + + /* connect port to USARTx_Rx */ + gpio_init(USART0_GPIO_PORT, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, USART0_GPIO_RX_PIN); + + /* USART configure */ + usart_deinit(com); + usart_baudrate_set(com, baud); + usart_word_length_set(com, USART_WL_8BIT); + usart_stop_bit_set(com, USART_STB_1BIT); + usart_parity_config(com, USART_PM_NONE); + usart_hardware_flow_rts_config(com, USART_RTS_DISABLE); + usart_hardware_flow_cts_config(com, USART_CTS_DISABLE); + usart_receive_config(com, USART_RECEIVE_ENABLE); + usart_transmit_config(com, USART_TRANSMIT_ENABLE); + usart_enable(com); +} diff --git a/board/GD32VF103C_START/eclipse/hello_world/.cproject b/board/GD32VF103C_START/eclipse/hello_world/.cproject index f8d3eea4..33bcd505 100644 --- a/board/GD32VF103C_START/eclipse/hello_world/.cproject +++ b/board/GD32VF103C_START/eclipse/hello_world/.cproject @@ -144,6 +144,8 @@ + + diff --git a/board/GD32VF103C_START/eclipse/hello_world/.project b/board/GD32VF103C_START/eclipse/hello_world/.project index 646d74fd..bda85e3d 100644 --- a/board/GD32VF103C_START/eclipse/hello_world/.project +++ b/board/GD32VF103C_START/eclipse/hello_world/.project @@ -39,6 +39,16 @@ 2 virtual:/virtual + + Application/Inc + 2 + TOP_DIR/board/GD32VF103C_START/BSP/Inc + + + Application/Src + 2 + TOP_DIR/board/GD32VF103C_START/BSP/Src + Application/tos_config.h 1 diff --git a/board/GD32VF103C_START/eclipse/hello_world/.settings/language.settings.xml b/board/GD32VF103C_START/eclipse/hello_world/.settings/language.settings.xml index 140cae41..1c9fb7ba 100644 --- a/board/GD32VF103C_START/eclipse/hello_world/.settings/language.settings.xml +++ b/board/GD32VF103C_START/eclipse/hello_world/.settings/language.settings.xml @@ -11,7 +11,7 @@ - + diff --git a/board/GD32VF103C_START/eclipse/hello_world/main.c b/board/GD32VF103C_START/eclipse/hello_world/main.c index 67072343..1c411df4 100644 --- a/board/GD32VF103C_START/eclipse/hello_world/main.c +++ b/board/GD32VF103C_START/eclipse/hello_world/main.c @@ -1,58 +1,66 @@ -#include "gd32vf103.h" -#include "tos.h" - -#define TASK_SIZE 512 -k_task_t k_task_task1; -k_task_t k_task_task2; -uint8_t k_task1_stk[TASK_SIZE]; -uint8_t k_task2_stk[TASK_SIZE]; - -int share = 0xCBA7F9; -k_sem_t sem; - -void task1(void *pdata) -{ - int task_cnt1 = 0; - while (1) { - task_cnt1++; - tos_sem_pend(&sem, ~0U); - gpio_bit_write(GPIOA, GPIO_PIN_7, share % 2); - } -} - -void task2(void *pdata) -{ - int task_cnt2 = 0; - while (1) { - task_cnt2--; - share++; - tos_task_delay(1000); - tos_sem_post(&sem); - } -} - - -void main(void) { - rcu_periph_clock_enable(RCU_GPIOA); - - gpio_init(GPIOA, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_7); - - gpio_bit_reset(GPIOA, GPIO_PIN_7); - - tos_knl_init(); - - tos_task_create(&k_task_task1, "task1", task1, NULL, 3, k_task1_stk, TASK_SIZE, 0); - tos_task_create(&k_task_task2, "task2", task2, NULL, 3, k_task2_stk, TASK_SIZE, 0); - - k_err_t err = tos_sem_create(&sem, 1); - if (err != K_ERR_NONE) { - goto die; - } - - tos_knl_start(); - -die: - while (1) { - asm("wfi;"); - } -} +#include "mcu_init.h" +#include "tos.h" + +#define TASK_SIZE 1024 +k_task_t k_task_task1; +k_task_t k_task_task2; +uint8_t k_task1_stk[TASK_SIZE]; +uint8_t k_task2_stk[TASK_SIZE]; + +int share = 0xCBA7F9; +k_sem_t sem; + +void task1(void *pdata) +{ + int task_cnt1 = 0; + while (1) { + printf("hello world from %s cnt: %d\n", __func__, task_cnt1++); + tos_sem_pend(&sem, ~0U); + gpio_bit_write(GPIOA, GPIO_PIN_7, share % 2); + } +} + +void task2(void *pdata) +{ + int task_cnt2 = 0; + while (1) { + share++; + for(int i=0; i<5; i++) { + printf("hello world from %s cnt: %08x\n", __func__, task_cnt2--); + tos_task_delay(200); + } + tos_sem_post(&sem); + } +} + + +void main(void) { + board_init(); + + tos_knl_init(); + + tos_task_create(&k_task_task1, "task1", task1, NULL, 3, k_task1_stk, TASK_SIZE, 0); + tos_task_create(&k_task_task2, "task2", task2, NULL, 3, k_task2_stk, TASK_SIZE, 0); + + k_err_t err = tos_sem_create(&sem, 1); + if (err != K_ERR_NONE) { + goto die; + } + + tos_knl_start(); + +die: + while (1) { + asm("wfi;"); + } +} + + +int _put_char(int ch) +{ + usart_data_transmit(USART0, (uint8_t) ch ); + while (usart_flag_get(USART0, USART_FLAG_TBE)== RESET){ + } + + return ch; +} From 3c88162700b95a41ce3c2e74523fbaa293b0bbd9 Mon Sep 17 00:00:00 2001 From: acevest Date: Wed, 2 Oct 2019 11:05:04 +0800 Subject: [PATCH 2/6] move usart0_init to main --- board/GD32VF103C_START/BSP/Src/mcu_init.c | 2 - .../eclipse/hello_world/main.c | 44 ++++++++++--------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/board/GD32VF103C_START/BSP/Src/mcu_init.c b/board/GD32VF103C_START/BSP/Src/mcu_init.c index d6e2ddaf..57aa3861 100644 --- a/board/GD32VF103C_START/BSP/Src/mcu_init.c +++ b/board/GD32VF103C_START/BSP/Src/mcu_init.c @@ -6,6 +6,4 @@ void board_init() { gpio_init(GPIOA, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_7); gpio_bit_reset(GPIOA, GPIO_PIN_7); - - usart0_init(115200); } diff --git a/board/GD32VF103C_START/eclipse/hello_world/main.c b/board/GD32VF103C_START/eclipse/hello_world/main.c index 1c411df4..7248fd36 100644 --- a/board/GD32VF103C_START/eclipse/hello_world/main.c +++ b/board/GD32VF103C_START/eclipse/hello_world/main.c @@ -12,47 +12,49 @@ k_sem_t sem; void task1(void *pdata) { - int task_cnt1 = 0; - while (1) { - printf("hello world from %s cnt: %d\n", __func__, task_cnt1++); - tos_sem_pend(&sem, ~0U); - gpio_bit_write(GPIOA, GPIO_PIN_7, share % 2); - } + int task_cnt1 = 0; + while (1) { + printf("hello world from %s cnt: %d\n", __func__, task_cnt1++); + tos_sem_pend(&sem, ~0U); + gpio_bit_write(GPIOA, GPIO_PIN_7, share % 2); + } } void task2(void *pdata) { - int task_cnt2 = 0; - while (1) { + int task_cnt2 = 0; + while (1) { share++; for(int i=0; i<5; i++) { printf("hello world from %s cnt: %08x\n", __func__, task_cnt2--); tos_task_delay(200); } - tos_sem_post(&sem); - } + tos_sem_post(&sem); + } } void main(void) { board_init(); - tos_knl_init(); + usart0_init(115200); - tos_task_create(&k_task_task1, "task1", task1, NULL, 3, k_task1_stk, TASK_SIZE, 0); - tos_task_create(&k_task_task2, "task2", task2, NULL, 3, k_task2_stk, TASK_SIZE, 0); + tos_knl_init(); - k_err_t err = tos_sem_create(&sem, 1); - if (err != K_ERR_NONE) { - goto die; - } + tos_task_create(&k_task_task1, "task1", task1, NULL, 3, k_task1_stk, TASK_SIZE, 0); + tos_task_create(&k_task_task2, "task2", task2, NULL, 3, k_task2_stk, TASK_SIZE, 0); - tos_knl_start(); + k_err_t err = tos_sem_create(&sem, 1); + if (err != K_ERR_NONE) { + goto die; + } + + tos_knl_start(); die: - while (1) { - asm("wfi;"); - } + while (1) { + asm("wfi;"); + } } From 3ef8f4eae5d4d913c46e63c85553d456bdd988fe Mon Sep 17 00:00:00 2001 From: acevest Date: Wed, 2 Oct 2019 16:41:23 +0800 Subject: [PATCH 3/6] detach risc-v kernel code from gd32v lib --- arch/risc-v/common/tos_cpu.c | 3 +-- arch/risc-v/rv32i/gcc/port_c.c | 1 - arch/risc-v/rv32i/gcc/port_s.S | 9 +++++++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/arch/risc-v/common/tos_cpu.c b/arch/risc-v/common/tos_cpu.c index 366f9b26..d841eef6 100644 --- a/arch/risc-v/common/tos_cpu.c +++ b/arch/risc-v/common/tos_cpu.c @@ -1,5 +1,4 @@ #include -#include #include __KERNEL__ void cpu_systick_init(k_cycle_t cycle_per_tick) @@ -107,7 +106,7 @@ __KERNEL__ k_stack_t *cpu_task_stk_init(void *entry, regs->gp = (cpu_data_t)gp; // gp: global pointer regs->a0 = (cpu_data_t)arg; // a0: argument regs->ra = (cpu_data_t)0xACE00ACE; // ra: return address - regs->mstatus = (cpu_data_t)(MSTATUS_MPP | MSTATUS_MPIE); // return to machine mode and enable interrupt + regs->mstatus = (cpu_data_t)0x00001880; // return to machine mode and enable interrupt regs->epc = (cpu_data_t)entry; diff --git a/arch/risc-v/rv32i/gcc/port_c.c b/arch/risc-v/rv32i/gcc/port_c.c index 4ed13159..c53a1f80 100644 --- a/arch/risc-v/rv32i/gcc/port_c.c +++ b/arch/risc-v/rv32i/gcc/port_c.c @@ -1,5 +1,4 @@ #include -#include "riscv_encoding.h" #include "riscv_port.h" __PORT__ void port_systick_config(uint32_t cycle_per_tick) diff --git a/arch/risc-v/rv32i/gcc/port_s.S b/arch/risc-v/rv32i/gcc/port_s.S index 36ee2952..addd2981 100644 --- a/arch/risc-v/rv32i/gcc/port_s.S +++ b/arch/risc-v/rv32i/gcc/port_s.S @@ -15,8 +15,14 @@ .extern k_curr_task .extern k_next_task +#define MSTATUS_MIE 0x00000008 +#define MSTATUS_MPP 0x00001800 -#include "riscv_encoding.h" +#define MIE_MTIE (1 << 7) + +#define MIP_MTIP (1 << 7) + +#define REGBYTES 4 .text .align 2 @@ -59,7 +65,6 @@ port_systick_pending_reset: csrc mip, t0 ret -#define REGBYTES 4 .macro SAVE_CONTEXT addi sp, sp, -32*REGBYTES From a52bb94ed241c19eee517bfc0843e2143262fd6f Mon Sep 17 00:00:00 2001 From: acevest Date: Thu, 3 Oct 2019 15:01:46 +0800 Subject: [PATCH 4/6] initialize the clock tree of GD32VF103C_START to 108MHz --- arch/risc-v/bumblebee/gcc/riscv_port_c.c | 15 +++--- board/GD32VF103C_START/BSP/Src/mcu_init.c | 3 ++ .../GD32VF103C_START/TOS_CONFIG/tos_config.h | 48 +++++++++++++------ 3 files changed, 44 insertions(+), 22 deletions(-) diff --git a/arch/risc-v/bumblebee/gcc/riscv_port_c.c b/arch/risc-v/bumblebee/gcc/riscv_port_c.c index 2618918b..4ab8902d 100644 --- a/arch/risc-v/bumblebee/gcc/riscv_port_c.c +++ b/arch/risc-v/bumblebee/gcc/riscv_port_c.c @@ -1,4 +1,5 @@ -#include "tos.h" +#include +#include #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 ; diff --git a/board/GD32VF103C_START/BSP/Src/mcu_init.c b/board/GD32VF103C_START/BSP/Src/mcu_init.c index 57aa3861..5bd037cb 100644 --- a/board/GD32VF103C_START/BSP/Src/mcu_init.c +++ b/board/GD32VF103C_START/BSP/Src/mcu_init.c @@ -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); diff --git a/board/GD32VF103C_START/TOS_CONFIG/tos_config.h b/board/GD32VF103C_START/TOS_CONFIG/tos_config.h index f9b6b070..939447d3 100644 --- a/board/GD32VF103C_START/TOS_CONFIG/tos_config.h +++ b/board/GD32VF103C_START/TOS_CONFIG/tos_config.h @@ -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 From 2e225ac46d0c9058efbe8a4fe7aedd8a695972a3 Mon Sep 17 00:00:00 2001 From: acevest Date: Fri, 4 Oct 2019 12:33:40 +0800 Subject: [PATCH 5/6] fix typo --- board/GD32VF103C_START/BSP/Src/usart.c | 30 ++++++++++++-------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/board/GD32VF103C_START/BSP/Src/usart.c b/board/GD32VF103C_START/BSP/Src/usart.c index 5c809db1..9d6c0d6f 100644 --- a/board/GD32VF103C_START/BSP/Src/usart.c +++ b/board/GD32VF103C_START/BSP/Src/usart.c @@ -2,29 +2,27 @@ #include "usart.h" void usart0_init(int baud) { - uint32_t com = USART0; - /* enable GPIO clock */ rcu_periph_clock_enable(RCU_GPIOA); - /* enable USART clock */ + /* enable USART0 clock */ rcu_periph_clock_enable(RCU_USART0); - /* connect port to USARTx_Tx */ + /* connect port to USART0_Tx */ gpio_init(USART0_GPIO_PORT, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, USART0_GPIO_TX_PIN); - /* connect port to USARTx_Rx */ + /* connect port to USART0_Rx */ gpio_init(USART0_GPIO_PORT, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, USART0_GPIO_RX_PIN); - /* USART configure */ - usart_deinit(com); - usart_baudrate_set(com, baud); - usart_word_length_set(com, USART_WL_8BIT); - usart_stop_bit_set(com, USART_STB_1BIT); - usart_parity_config(com, USART_PM_NONE); - usart_hardware_flow_rts_config(com, USART_RTS_DISABLE); - usart_hardware_flow_cts_config(com, USART_CTS_DISABLE); - usart_receive_config(com, USART_RECEIVE_ENABLE); - usart_transmit_config(com, USART_TRANSMIT_ENABLE); - usart_enable(com); + /* USART0 configure */ + usart_deinit(USART0); + usart_baudrate_set(USART0, baud); + usart_word_length_set(USART0, USART_WL_8BIT); + usart_stop_bit_set(USART0, USART_STB_1BIT); + usart_parity_config(USART0, USART_PM_NONE); + usart_hardware_flow_rts_config(USART0, USART_RTS_DISABLE); + usart_hardware_flow_cts_config(USART0, USART_CTS_DISABLE); + usart_receive_config(USART0, USART_RECEIVE_ENABLE); + usart_transmit_config(USART0, USART_TRANSMIT_ENABLE); + usart_enable(USART0); } From 9deea199caecc82f8588daea3d84848896c25539 Mon Sep 17 00:00:00 2001 From: acevest Date: Fri, 4 Oct 2019 22:41:09 +0800 Subject: [PATCH 6/6] fix typo --- .../BSP/Hardware/OLED/oled.c | 4 ++-- .../BSP/Hardware/OLED/oled.h | 2 +- .../BSP/Src/mcu_init.c | 18 +++++++++--------- .../BSP/Hardware/OLED/oled.c | 2 +- .../BSP/Hardware/OLED/oled.h | 2 +- board/TencentOS_tiny_EVB_MX/BSP/Src/mcu_init.c | 12 ++++++------ 6 files changed, 20 insertions(+), 20 deletions(-) diff --git a/board/TOS_tiny_EVK_STM32L431CBT6/BSP/Hardware/OLED/oled.c b/board/TOS_tiny_EVK_STM32L431CBT6/BSP/Hardware/OLED/oled.c index 1cdf685f..f7fa3067 100644 --- a/board/TOS_tiny_EVK_STM32L431CBT6/BSP/Hardware/OLED/oled.c +++ b/board/TOS_tiny_EVK_STM32L431CBT6/BSP/Hardware/OLED/oled.c @@ -209,14 +209,14 @@ void OLED_ShowString(uint8_t x,uint8_t y,uint8_t *chr) } /*************************************************************** -* : OLED_ShowCHinese +* : OLED_ShowChinese * ˵ : ָλʾ * : xʼλx yʼλy noҪʾֿеıţŴ0ʼ * ֵ: ***************************************************************/ -void OLED_ShowCHinese(uint8_t x,uint8_t y,uint8_t no) +void OLED_ShowChinese(uint8_t x,uint8_t y,uint8_t no) { uint8_t t,adder=0; OLED_Set_Pos(x,y); diff --git a/board/TOS_tiny_EVK_STM32L431CBT6/BSP/Hardware/OLED/oled.h b/board/TOS_tiny_EVK_STM32L431CBT6/BSP/Hardware/OLED/oled.h index 0152bb1a..02a86942 100644 --- a/board/TOS_tiny_EVK_STM32L431CBT6/BSP/Hardware/OLED/oled.h +++ b/board/TOS_tiny_EVK_STM32L431CBT6/BSP/Hardware/OLED/oled.h @@ -37,7 +37,7 @@ void OLED_Fill(uint8_t x1,uint8_t y1,uint8_t x2,uint8_t y2,uint8_t dot); void OLED_ShowChar(uint8_t x,uint8_t y,uint8_t chr); void OLED_ShowNum(uint8_t x,uint8_t y,uint32_t num,uint8_t len,uint8_t size); void OLED_ShowString(uint8_t x,uint8_t y, uint8_t *p); -void OLED_ShowCHinese(uint8_t x,uint8_t y,uint8_t no); +void OLED_ShowChinese(uint8_t x,uint8_t y,uint8_t no); void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[]); /**************************************************************/ /************** OLEDýӿ ************************/ diff --git a/board/TOS_tiny_EVK_STM32L431CBT6/BSP/Src/mcu_init.c b/board/TOS_tiny_EVK_STM32L431CBT6/BSP/Src/mcu_init.c index 6d3c81bd..ae297f30 100644 --- a/board/TOS_tiny_EVK_STM32L431CBT6/BSP/Src/mcu_init.c +++ b/board/TOS_tiny_EVK_STM32L431CBT6/BSP/Src/mcu_init.c @@ -41,17 +41,17 @@ void board_init(void) OLED_Init(); Init_BH1750(); DHT11_Init(); - //OLED_ShowCHinese(0,0,0); - //OLED_ShowCHinese(18,0,1); - //OLED_ShowCHinese(38,0,2); - //OLED_ShowCHinese(56,0,3); - //OLED_ShowCHinese(74,0,4); + //OLED_ShowChinese(0,0,0); + //OLED_ShowChinese(18,0,1); + //OLED_ShowChinese(38,0,2); + //OLED_ShowChinese(56,0,3); + //OLED_ShowChinese(74,0,4); OLED_ShowString(10,0,(uint8_t*)"TencentOS tiny"); -// OLED_ShowCHinese(1,3,5); -// OLED_ShowCHinese(21,3,6); +// OLED_ShowChinese(1,3,5); +// OLED_ShowChinese(21,3,6); // OLED_ShowString(39,3,(uint8_t*)":25 C"); -// OLED_ShowCHinese(1,6,7); -// OLED_ShowCHinese(21,6,8); +// OLED_ShowChinese(1,6,7); +// OLED_ShowChinese(21,6,8); // OLED_ShowString(39,6,(uint8_t*)":88 RH%"); } diff --git a/board/TencentOS_tiny_EVB_MX/BSP/Hardware/OLED/oled.c b/board/TencentOS_tiny_EVB_MX/BSP/Hardware/OLED/oled.c index 33c36183..efc0ce7b 100644 --- a/board/TencentOS_tiny_EVB_MX/BSP/Hardware/OLED/oled.c +++ b/board/TencentOS_tiny_EVB_MX/BSP/Hardware/OLED/oled.c @@ -239,7 +239,7 @@ void OLED_ShowString(uint8_t x,uint8_t y,uint8_t *chr,uint8_t Char_Size) } } //ʾ -void OLED_ShowCHinese(uint8_t x,uint8_t y,uint8_t no) +void OLED_ShowChinese(uint8_t x,uint8_t y,uint8_t no) { uint8_t t,adder=0; OLED_Set_Pos(x,y); diff --git a/board/TencentOS_tiny_EVB_MX/BSP/Hardware/OLED/oled.h b/board/TencentOS_tiny_EVB_MX/BSP/Hardware/OLED/oled.h index 3c25a34e..2bec557a 100644 --- a/board/TencentOS_tiny_EVB_MX/BSP/Hardware/OLED/oled.h +++ b/board/TencentOS_tiny_EVB_MX/BSP/Hardware/OLED/oled.h @@ -27,7 +27,7 @@ //OLEDӿڿú void OLED_ShowNum(uint8_t x,uint8_t y,uint32_t num,uint8_t len,uint8_t size); void OLED_ShowString(uint8_t x,uint8_t y, uint8_t *p,uint8_t Char_Size); -void OLED_ShowCHinese(uint8_t x,uint8_t y,uint8_t no); +void OLED_ShowChinese(uint8_t x,uint8_t y,uint8_t no); void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[]); diff --git a/board/TencentOS_tiny_EVB_MX/BSP/Src/mcu_init.c b/board/TencentOS_tiny_EVB_MX/BSP/Src/mcu_init.c index 73df039d..d18754e9 100644 --- a/board/TencentOS_tiny_EVB_MX/BSP/Src/mcu_init.c +++ b/board/TencentOS_tiny_EVB_MX/BSP/Src/mcu_init.c @@ -53,12 +53,12 @@ void board_init(void) DHT11_Init(); OLED_Init(); OLED_Clear(); - OLED_ShowCHinese(0,0,0); - OLED_ShowCHinese(18,0,1); - OLED_ShowCHinese(36,0,2); - OLED_ShowCHinese(54,0,3); - OLED_ShowCHinese(72,0,4); - OLED_ShowCHinese(90,0,5); + OLED_ShowChinese(0,0,0); + OLED_ShowChinese(18,0,1); + OLED_ShowChinese(36,0,2); + OLED_ShowChinese(54,0,3); + OLED_ShowChinese(72,0,4); + OLED_ShowChinese(90,0,5); OLED_ShowString(0,2,(uint8_t*)str,16); }