From 864d1dd703deba934266884fd9b0da7b21061d61 Mon Sep 17 00:00:00 2001 From: supperthomas <78900636@qq.com> Date: Thu, 11 Feb 2021 10:57:00 +0800 Subject: [PATCH] fix the project --- .../MAX32660_EVSYS/applications/application.c | 17 ++--- .../MAX32660_EVSYS/applications/drv_uart.c | 76 ++++++++----------- .../MAX32660_EVSYS/applications/drv_usart.h | 5 +- bsp/maxim/MAX32660_EVSYS/board/board.c | 31 +++----- bsp/maxim/MAX32660_EVSYS/board/board.h | 14 ++-- bsp/maxim/MAX32660_EVSYS/project.uvoptx | 34 ++++++++- 6 files changed, 89 insertions(+), 88 deletions(-) diff --git a/bsp/maxim/MAX32660_EVSYS/applications/application.c b/bsp/maxim/MAX32660_EVSYS/applications/application.c index f466c2a5b1..91f9ccf91e 100644 --- a/bsp/maxim/MAX32660_EVSYS/applications/application.c +++ b/bsp/maxim/MAX32660_EVSYS/applications/application.c @@ -11,27 +11,22 @@ #include #include -#define DK_BOARD_LED_1 13 -#define DK_BOARD_LED_2 14 #include "gpio.h" -const gpio_cfg_t led_pin[] = { +const gpio_cfg_t led_pin[] = +{ {PORT_0, PIN_13, GPIO_FUNC_OUT, GPIO_PAD_NONE}, }; + int main(void) { - int count = 1; + int count = 1; GPIO_Config(&led_pin[0]); - //rt_pin_mode(DK_BOARD_LED_1, PIN_MODE_OUTPUT); GPIO_OutSet(&led_pin[0]); while (count++) - { - //rt_pin_write(DK_BOARD_LED_1, PIN_HIGH); + { rt_thread_mdelay(500); GPIO_OutToggle(&led_pin[0]); - //rt_pin_write(DK_BOARD_LED_1, PIN_LOW); - //rt_thread_mdelay(500); } return RT_EOK; -} - +} \ No newline at end of file diff --git a/bsp/maxim/MAX32660_EVSYS/applications/drv_uart.c b/bsp/maxim/MAX32660_EVSYS/applications/drv_uart.c index d697f4155d..66c23423d5 100644 --- a/bsp/maxim/MAX32660_EVSYS/applications/drv_uart.c +++ b/bsp/maxim/MAX32660_EVSYS/applications/drv_uart.c @@ -12,10 +12,6 @@ #include "uart.h" #include "rtdevice.h" -#define BUFF_SIZE 10 -uint8_t rxdata[BUFF_SIZE]={0}; - - #define UART0_CONFIG \ { \ .name = "uart0", \ @@ -23,7 +19,7 @@ uint8_t rxdata[BUFF_SIZE]={0}; .irq_type = MXC_UART_GET_IRQ(0), \ } - + #define UART1_CONFIG \ { \ .name = "uart1", \ @@ -87,13 +83,13 @@ static struct mcu_uart uart_obj[sizeof(uart_config) / sizeof(uart_config[0])] = void UART1_IRQHandler(void) { rt_interrupt_enter(); - + rt_hw_serial_isr(&(uart_obj[UART1_INDEX].serial), RT_SERIAL_EVENT_RX_IND); - /* leave interrupt */ + uint32_t intst = 0; intst = MXC_UART1->int_fl; MXC_UART1->int_fl = intst; - + rt_interrupt_leave(); } #endif @@ -101,16 +97,16 @@ void UART1_IRQHandler(void) #ifdef BSP_USING_UART0 void UART0_IRQHandler(void) { - //UART_Handler(MXC_UART0); /* enter interrupt */ rt_interrupt_enter(); - + rt_hw_serial_isr(&(uart_obj[UART0_INDEX].serial), RT_SERIAL_EVENT_RX_IND); - /* leave interrupt */ + /* clear flags */ + uint32_t intst = 0; intst = MXC_UART0->int_fl; MXC_UART0->int_fl = intst; - + /* leave interrupt */ rt_interrupt_leave(); } @@ -119,11 +115,12 @@ void UART0_IRQHandler(void) static rt_err_t mcu_configure(struct rt_serial_device *serial, struct serial_configure *cfg) { - int error, i; + int error; struct mcu_uart *uart; RT_ASSERT(serial != RT_NULL); RT_ASSERT(cfg != RT_NULL); - const sys_cfg_uart_t sys_uart_cfg = { + const sys_cfg_uart_t sys_uart_cfg = + { MAP_A, UART_FLOW_DISABLE, }; @@ -136,10 +133,12 @@ static rt_err_t mcu_configure(struct rt_serial_device *serial, struct serial_con mcu_cfg.size = UART_DATA_SIZE_8_BITS; mcu_cfg.flow = UART_FLOW_CTRL_EN; mcu_cfg.pol = UART_FLOW_POL_EN; - - error= UART_Init(uart->handle, &mcu_cfg, &sys_uart_cfg); - - + + error = UART_Init(uart->handle, &mcu_cfg, &sys_uart_cfg); + if (error != E_NO_ERROR) { + rt_kprintf("Error initializing UART %d\n", error); + while(1) {} + } return RT_EOK; } @@ -155,7 +154,6 @@ static rt_err_t mcu_control(struct rt_serial_device *serial, int cmd, void *arg) /* disable interrupt */ case RT_DEVICE_CTRL_CLR_INT: /* disable rx irq */ - // NVIC_DisableIRQ(uart->config->irq_type); NVIC_ClearPendingIRQ(uart->config->irq_type); NVIC_DisableIRQ(uart->config->irq_type); /* disable interrupt */ @@ -164,31 +162,23 @@ static rt_err_t mcu_control(struct rt_serial_device *serial, int cmd, void *arg) /* enable interrupt */ case RT_DEVICE_CTRL_SET_INT: /* enable rx irq */ - NVIC_SetPriority(uart->config->irq_type, 1); - NVIC_EnableIRQ(uart->config->irq_type); - /* enable interrupt */ - uart->handle->ctrl |= 0x05 << MXC_F_UART_CTRL_RX_TO_POS; - uart->handle->int_en |= MXC_F_UART_INT_EN_RX_FIFO_THRESH | MXC_F_UART_INT_EN_RX_TIMEOUT; -#define UART_ER_IE (MXC_F_UART_INT_EN_RX_FRAME_ERROR | \ - MXC_F_UART_INT_EN_RX_PARITY_ERROR | \ - MXC_F_UART_INT_EN_RX_OVERRUN ) - uart->handle->int_en |= UART_ER_IE; + NVIC_SetPriority(uart->config->irq_type, 1); + NVIC_EnableIRQ(uart->config->irq_type); + /* enable interrupt */ + uart->handle->ctrl |= 0x05 << MXC_F_UART_CTRL_RX_TO_POS; + uart->handle->int_en |= MXC_F_UART_INT_EN_RX_FIFO_THRESH | \ + MXC_F_UART_INT_EN_RX_TIMEOUT; - uart->handle->thresh_ctrl=MXC_UART_FIFO_DEPTH<< - MXC_F_UART_THRESH_CTRL_RX_FIFO_THRESH_POS; - break; + uart->handle->int_en |= MXC_F_UART_INT_EN_RX_FRAME_ERROR | \ + MXC_F_UART_INT_EN_RX_PARITY_ERROR | \ + MXC_F_UART_INT_EN_RX_OVERRUN ; -#ifdef RT_SERIAL_USING_DMA - case RT_DEVICE_CTRL_CONFIG: - stm32_dma_config(serial, ctrl_arg); + uart->handle->thresh_ctrl = MXC_UART_FIFO_DEPTH << + MXC_F_UART_THRESH_CTRL_RX_FIFO_THRESH_POS; break; -#endif case RT_DEVICE_CTRL_CLOSE: -// if (HAL_UART_DeInit(&(uart->handle)) != HAL_OK ) -// { -// RT_ASSERT(0) -// } + UART_Shutdown(uart->handle); break; } @@ -214,18 +204,14 @@ static int mcu_getc(struct rt_serial_device *serial) ch = -1; - if(UART_NumReadAvail(uart->handle)) + if (UART_NumReadAvail(uart->handle)) { - ch = UART_ReadByte(uart->handle); + ch = UART_ReadByte(uart->handle); } return ch; } - - - - static const struct rt_uart_ops mcu_uart_ops = { .configure = mcu_configure, diff --git a/bsp/maxim/MAX32660_EVSYS/applications/drv_usart.h b/bsp/maxim/MAX32660_EVSYS/applications/drv_usart.h index 547f1870e5..6b141e879a 100644 --- a/bsp/maxim/MAX32660_EVSYS/applications/drv_usart.h +++ b/bsp/maxim/MAX32660_EVSYS/applications/drv_usart.h @@ -5,11 +5,10 @@ * * Change Logs: * Date Author Notes - * 2018.10.30 SummerGift first version - * 2019.03.05 whj4674672 add stm32h7 - * 2020-10-14 Dozingfiretruck Porting for stm32wbxx + * 2021-02-08 Supperthomas first version */ + #ifndef __DRV_USART_H__ #define __DRV_USART_H__ diff --git a/bsp/maxim/MAX32660_EVSYS/board/board.c b/bsp/maxim/MAX32660_EVSYS/board/board.c index 8a27920cf6..d89d2fd166 100644 --- a/bsp/maxim/MAX32660_EVSYS/board/board.c +++ b/bsp/maxim/MAX32660_EVSYS/board/board.c @@ -32,49 +32,36 @@ void SysTick_Handler(void) rt_interrupt_leave(); } -void SysTick_Configuration(void) +void rt_hw_systick_init(void) { uint32_t error; - error = SYS_SysTick_Config(SYS_SysTick_GetFreq()/RT_TICK_PER_SECOND, 1, MXC_TMR0); + error = SYS_SysTick_Config(SYS_SysTick_GetFreq() / RT_TICK_PER_SECOND, 1, MXC_TMR0); - if (error != E_NO_ERROR) { + if (error != E_NO_ERROR) + { printf("ERROR: Ticks is not valid"); } } -mxc_uart_regs_t *ConsoleUART = MXC_UART_GET_UART(1); - -const sys_cfg_uart_t console_uart_sys_cfg = { - MAP_A, - UART_FLOW_DISABLE, -}; - - void rt_hw_board_init(void) { - // rt_hw_interrupt_enable(0); - // sd_power_dcdc_mode_set(NRF_POWER_DCDC_ENABLE); - /* Activate deep sleep mode */ - SysTick_Configuration(); + rt_hw_systick_init(); #if defined(RT_USING_HEAP) - rt_system_heap_init((void *)(0x20000000+16*1024), (void *)(0x20000000+64*1024)); + rt_system_heap_init((void *)(HEAP_BEGIN), (void *)(HEAP_END)); #endif - + #ifdef RT_USING_SERIAL rt_hw_usart_init(); #endif - + #ifdef RT_USING_CONSOLE rt_console_set_device(RT_CONSOLE_DEVICE_NAME); #endif - + #ifdef RT_USING_COMPONENTS_INIT rt_components_board_init(); #endif - - - } diff --git a/bsp/maxim/MAX32660_EVSYS/board/board.h b/bsp/maxim/MAX32660_EVSYS/board/board.h index e370517b90..9aa22cc1fa 100644 --- a/bsp/maxim/MAX32660_EVSYS/board/board.h +++ b/bsp/maxim/MAX32660_EVSYS/board/board.h @@ -4,10 +4,13 @@ #include #include -#define MCU_FLASH_SIZE MCU_FLASH_SIZE_KB*1024 -#define MCU_FLASH_END_ADDRESS ((uint32_t)(MCU_FLASH_START_ADDRESS + MCU_FLASH_SIZE)) -#define MCU_SRAM_SIZE MCU_SRAM_SIZE_KB*1024 -#define MCU_SRAM_END_ADDRESS (MCU_SRAM_START_ADDRESS + MCU_SRAM_SIZE) +#define MCU_FLASH_START_ADRESS ((uint32_t)0x0) +#define MCU_FLASH_SIZE_KB (256) +#define MCU_FLASH_END_ADDRESS ((uint32_t)(MCU_FLASH_START_ADRESS + MCU_FLASH_SIZE*1024)) + +#define MCU_SRAM_SIZE_KB (96) +#define MCU_SRAM_START (0x20000000) +#define MCU_SRAM_END (MCU_SRAM_START + MCU_SRAM_SIZE_KB * 1024) #if defined(__CC_ARM) || defined(__CLANG_ARM) extern int Image$$RW_IRAM1$$ZI$$Limit; @@ -20,8 +23,7 @@ extern int __bss_end__; #define HEAP_BEGIN ((void *)&__bss_end__) #endif -#define HEAP_SIZE 16*1024 -#define HEAP_END (HEAP_BEGIN + HEAP_SIZE) +#define HEAP_END MCU_SRAM_END void rt_hw_board_init(void); diff --git a/bsp/maxim/MAX32660_EVSYS/project.uvoptx b/bsp/maxim/MAX32660_EVSYS/project.uvoptx index 02675668db..678baff318 100644 --- a/bsp/maxim/MAX32660_EVSYS/project.uvoptx +++ b/bsp/maxim/MAX32660_EVSYS/project.uvoptx @@ -229,6 +229,38 @@ + + 5 + 0 + 209 + 1 +
0
+ 0 + 0 + 0 + 0 + 0 + 0 + .\applications\drv_uart.c + + +
+ + 6 + 0 + 220 + 1 +
0
+ 0 + 0 + 0 + 0 + 0 + 0 + .\applications\drv_uart.c + + +
@@ -562,7 +594,7 @@ CPU - 0 + 1 0 0 0