fix usart irq handler not in safe area
This commit is contained in:
@@ -69,7 +69,7 @@ void usart1_init(int baud)
|
||||
|
||||
void usart2_init(int baud)
|
||||
{
|
||||
eclic_irq_enable(USART2_IRQn, 1, 0);
|
||||
//eclic_irq_enable(USART2_IRQn, 1, 0);
|
||||
|
||||
/* enable GPIO clock */
|
||||
rcu_periph_clock_enable(RCU_GPIOB);
|
||||
@@ -98,7 +98,7 @@ void usart2_init(int baud)
|
||||
usart_enable(USART2);
|
||||
|
||||
|
||||
usart_interrupt_enable(USART2, USART_INT_RBNE);
|
||||
//usart_interrupt_enable(USART2, USART_INT_RBNE);
|
||||
}
|
||||
|
||||
|
||||
|
@@ -20,7 +20,7 @@
|
||||
#define TOS_CFG_MMHEAP_EN 1u
|
||||
|
||||
// 配置TencentOS tiny动态内存池大小
|
||||
#define TOS_CFG_MMHEAP_DEFAULT_POOL_SIZE 8192
|
||||
#define TOS_CFG_MMHEAP_DEFAULT_POOL_SIZE 16384
|
||||
|
||||
// 配置TencentOS tiny是否开启互斥锁模块
|
||||
#define TOS_CFG_MUTEX_EN 1u
|
||||
|
@@ -1,5 +1,6 @@
|
||||
#include "mcu_init.h"
|
||||
#include "tos_k.h"
|
||||
#include "tos_hal.h"
|
||||
|
||||
#define BLED_TASK_SIZE 1024
|
||||
#define WIFI_TASK_SIZE 4096
|
||||
@@ -10,28 +11,29 @@ uint8_t k_wifi_stk[WIFI_TASK_SIZE];
|
||||
|
||||
|
||||
void USART0_IRQHandler() {
|
||||
#if 0
|
||||
tos_knl_irq_enter();
|
||||
if(RESET != usart_interrupt_flag_get(USART0, USART_INT_FLAG_RBNE)){
|
||||
uint8_t data = usart_data_receive(USART0);
|
||||
printf("%c\n", data);
|
||||
printf("%c\n", data);
|
||||
}
|
||||
#endif
|
||||
tos_knl_irq_leave();
|
||||
}
|
||||
|
||||
void USART1_IRQHandler() {
|
||||
tos_knl_irq_enter();
|
||||
if(RESET != usart_interrupt_flag_get(USART1, USART_INT_FLAG_RBNE)){
|
||||
uint8_t data = usart_data_receive(USART1);
|
||||
//tos_at_uart_input_byte(data);
|
||||
printf("-%c\n", data);
|
||||
tos_at_uart_input_byte(data);
|
||||
}
|
||||
tos_knl_irq_leave();
|
||||
}
|
||||
|
||||
void USART2_IRQHandler() {
|
||||
tos_knl_irq_enter();
|
||||
if(RESET != usart_interrupt_flag_get(USART2, USART_INT_FLAG_RBNE)){
|
||||
uint8_t data = usart_data_receive(USART2);
|
||||
tos_at_uart_input_byte(data);
|
||||
}
|
||||
//printf("usart2\n");
|
||||
tos_knl_irq_leave();
|
||||
}
|
||||
|
||||
void task_bled(void *pdata)
|
||||
@@ -40,17 +42,18 @@ void task_bled(void *pdata)
|
||||
while (1) {
|
||||
printf("blink led task cnt: %d\n", cnt++);
|
||||
gpio_bit_write(LED_GPIO_PORT, LED_PIN,cnt % 2 ? SET : RESET);
|
||||
tos_task_delay(1000);
|
||||
tos_task_delay(1000);
|
||||
}
|
||||
}
|
||||
|
||||
extern void mqtt_demo();
|
||||
|
||||
extern void mqtt_set_esp8266_port(hal_uart_port_t port);
|
||||
void task_wifi(void *pdata)
|
||||
{
|
||||
while(1) {
|
||||
mqtt_demo();
|
||||
tos_task_delay(500);
|
||||
mqtt_set_esp8266_port(HAL_UART_PORT_1);
|
||||
mqtt_demo();
|
||||
tos_task_delay(500);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,10 +63,8 @@ void main(void) {
|
||||
|
||||
tos_knl_init();
|
||||
|
||||
usart0_init(115200);
|
||||
|
||||
tos_task_create(&k_task_bled, "bled", task_bled, NULL, 5, k_bled_stk, BLED_TASK_SIZE, 0);
|
||||
tos_task_create(&k_task_wifi, "wifi", task_wifi, NULL, 3, k_wifi_stk, WIFI_TASK_SIZE, 0);
|
||||
tos_task_create(&k_task_wifi, "wifi", task_wifi, NULL, 4, k_wifi_stk, WIFI_TASK_SIZE, 0);
|
||||
|
||||
tos_knl_start();
|
||||
|
||||
|
Reference in New Issue
Block a user