Skip to content

Commit

Permalink
update CSL library (RT-Thread#8370)
Browse files Browse the repository at this point in the history
  • Loading branch information
XIVN1987 authored Dec 12, 2023
1 parent 304ce59 commit 4018092
Show file tree
Hide file tree
Showing 57 changed files with 3,835 additions and 1,519 deletions.
5 changes: 0 additions & 5 deletions bsp/synwit/swm320/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,11 +157,6 @@ msh />
| NOR FLASH | 支持 | NOR FLASH |
| CAN | 暂不支持 | |

## 维护人信息

- [yanmowudi](https://github.com/yanmowudi)
- [邮箱]([email protected])

## 参考资料

* [RT-Thread 文档中心](https://www.rt-thread.org/document/site/)
Expand Down
2 changes: 1 addition & 1 deletion bsp/synwit/swm320/drivers/drv_uart.c
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ static void rt_hw_uart_isr(struct rt_serial_device *serial_device)
uart_cfg = serial_device->parent.user_data;

/* UART in mode Receiver -------------------------------------------------*/
if (UART_INTRXThresholdStat(uart_cfg->UARTx) || UART_INTTimeoutStat(uart_cfg->UARTx))
if (UART_INTStat(uart_cfg->UARTx, UART_IT_RX_THR) || UART_INTStat(uart_cfg->UARTx, UART_IT_RX_TOUT))
{
rt_hw_serial_isr(serial_device, RT_SERIAL_EVENT_RX_IND);
}
Expand Down
62 changes: 52 additions & 10 deletions bsp/synwit/swm320/libraries/CMSIS/DeviceSupport/SWM320.h
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ typedef enum IRQn
#endif

#include <stdio.h>
#include <stdbool.h>
#include "core_cm4.h" /* Cortex-M0 processor and core peripherals */
#include "system_SWM320.h"

Expand Down Expand Up @@ -177,8 +178,6 @@ typedef struct {

__IO uint32_t BODIE;
__IO uint32_t BODIF;

__IO uint32_t ADC1IN7;
} SYS_TypeDef;


Expand Down Expand Up @@ -359,11 +358,6 @@ typedef struct {
#define SYS_BODIF_2V2_Pos 1 //BOD 2.2V等级触发中断状态,写1清零
#define SYS_BODIF_2V2_Msk (0x01 << SYS_BODIF_2V2_Pos)

#define SYS_ADC1IN7_SEL_Pos 0 //ADC1模块模拟通道7,1 温度传感器 2 电池电压 3 RTC电源域BG 4 主电源域BG 5 PDM33
#define SYS_ADC1IN7_SEL_Msk (0x0F << SYS_ADC1IN7_SEL_Pos)
#define SYS_ADC1IN7_IOON_Pos 4 //ADC1模块模拟通道7所用IO开关
#define SYS_ADC1IN7_IOON_Msk (0x01 << SYS_ADC1IN7_IOON_Pos)




Expand Down Expand Up @@ -1472,11 +1466,11 @@ typedef struct {
#define SPI_IE_RFOVF_Msk (0x01 << SPI_IE_RFOVF_Pos)
#define SPI_IE_RFF_Pos 1
#define SPI_IE_RFF_Msk (0x01 << SPI_IE_RFF_Pos)
#define SPI_IE_RFHF_Pos 2
#define SPI_IE_RFHF_Pos 2 //~rxfifo_full & (rxfifo_level == 4)
#define SPI_IE_RFHF_Msk (0x01 << SPI_IE_RFHF_Pos)
#define SPI_IE_TFE_Pos 3
#define SPI_IE_TFE_Msk (0x01 << SPI_IE_TFE_Pos)
#define SPI_IE_TFHF_Pos 4
#define SPI_IE_TFHF_Pos 4 //~txfifo_full & (txfifo_level == 4)
#define SPI_IE_TFHF_Msk (0x01 << SPI_IE_TFHF_Pos)
#define SPI_IE_WTC_Pos 8 //Word Transmit Complete
#define SPI_IE_WTC_Msk (0x01 << SPI_IE_WTC_Pos)
Expand Down Expand Up @@ -2712,7 +2706,7 @@ typedef struct {
typedef struct {
__IO uint32_t DATA;
__IO uint32_t ADDR;
__IO uint32_t FLASH_ERASE;
__IO uint32_t ERASE;
__IO uint32_t CACHE;
__IO uint32_t CFG0;
__IO uint32_t CFG1;
Expand Down Expand Up @@ -3178,4 +3172,52 @@ typedef void (* Func_void_void) (void);
#include "SWM320_wdt.h"



#ifdef SW_LOG_RTT
#define log_printf(...) SEGGER_RTT_printf(0, __VA_ARGS__)
#else
#define log_printf(...) printf(__VA_ARGS__)
#endif


#ifndef SW_LOG_LEVEL
#define SW_LOG_LEVEL 0
#endif

#if (SW_LOG_LEVEL > 0)
#define SW_LOG_ERR(...) { \
log_printf("ERROR: "); \
log_printf(__VA_ARGS__); \
log_printf("\n"); \
}

#if (SW_LOG_LEVEL > 1)
#define SW_LOG_WARN(...) { \
log_printf("WARN : "); \
log_printf(__VA_ARGS__); \
log_printf("\n"); \
}

#if (SW_LOG_LEVEL > 2)
#define SW_LOG_INFO(...) { \
log_printf("INFO : "); \
log_printf(__VA_ARGS__); \
log_printf("\n"); \
}
#else
#define SW_LOG_INFO(...)
#endif

#else
#define SW_LOG_WARN(...)
#define SW_LOG_INFO(...)
#endif

#else
#define SW_LOG_ERR(...)
#define SW_LOG_WARN(...)
#define SW_LOG_INFO(...)
#endif


#endif //__SWM320_H__
195 changes: 16 additions & 179 deletions bsp/synwit/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_can.c
Original file line number Diff line number Diff line change
Expand Up @@ -388,209 +388,46 @@ void CAN_SetFilter16b(CAN_TypeDef * CANx, uint16_t check1, uint16_t mask1, uint1
}

/******************************************************************************************************************************************
* 函数名称: CAN_INTRXNotEmptyEn()
* 功能说明: 当RX FIFO中有数据时(非空)触发中断使能
* 函数名称: CAN_INTEn()
* 功能说明: 使能指定中断
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
* uint32_t it interrupt type,有效值包括 CAN_IT_RX_NOTEMPTY、CAN_IT_RX_OVERFLOW、CAN_IT_TX_EMPTY、CAN_IT_ARBLOST、
* CAN_IT_ERR、CAN_IT_ERR_WARN、CAN_IT_ERR_PASS、CAN_IT_WAKEUP 及其“或”
* 输 出: 无
* 注意事项: 无
******************************************************************************************************************************************/
void CAN_INTRXNotEmptyEn(CAN_TypeDef * CANx)
void CAN_INTEn(CAN_TypeDef * CANx, uint32_t it)
{
CANx->IE |= (1 << CAN_IE_RXDA_Pos);
CANx->IE |= it;
}

/******************************************************************************************************************************************
* 函数名称: CAN_INTRXNotEmptyDis()
* 功能说明: 当RX FIFO中有数据时(非空)触发中断禁止
* 函数名称: CAN_INTDis()
* 功能说明: 关闭指定中断
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
* uint32_t it interrupt type,有效值包括 CAN_IT_RX_NOTEMPTY、CAN_IT_RX_OVERFLOW、CAN_IT_TX_EMPTY、CAN_IT_ARBLOST、
* CAN_IT_ERR、CAN_IT_ERR_WARN、CAN_IT_ERR_PASS、CAN_IT_WAKEUP 及其“或”
* 输 出: 无
* 注意事项: 无
******************************************************************************************************************************************/
void CAN_INTRXNotEmptyDis(CAN_TypeDef * CANx)
void CAN_INTDis(CAN_TypeDef * CANx, uint32_t it)
{
CANx->IE &= ~(1 << CAN_IE_RXDA_Pos);
CANx->IE &= ~it;
}

/******************************************************************************************************************************************
* 函数名称: CAN_INTTXBufEmptyEn()
* 功能说明: 当TX Buffer空时触发中断使能
* 函数名称: CAN_INTClr()
* 功能说明: 清除中断标志
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
* uint32_t it interrupt type,有效值包括 CAN_IT_RX_OVERFLOW
* 输 出: 无
* 注意事项: 无
******************************************************************************************************************************************/
void CAN_INTTXBufEmptyEn(CAN_TypeDef * CANx)
{
CANx->IE |= (1 << CAN_IE_TXBR_Pos);
}

/******************************************************************************************************************************************
* 函数名称: CAN_INTTXBufEmptyDis()
* 功能说明: 当TX Buffer空时触发中断禁止
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
* 输 出: 无
* 注意事项: 无
******************************************************************************************************************************************/
void CAN_INTTXBufEmptyDis(CAN_TypeDef * CANx)
{
CANx->IE &= ~(1 << CAN_IE_TXBR_Pos);
}

/******************************************************************************************************************************************
* 函数名称: CAN_INTErrWarningEn()
* 功能说明: TXERR/RXERR计数值达到Error Warning Limit时触发中断使能
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
* 输 出: 无
* 注意事项: 无
******************************************************************************************************************************************/
void CAN_INTErrWarningEn(CAN_TypeDef * CANx)
{
CANx->IE |= (1 << CAN_IE_ERRWARN_Pos);
}

/******************************************************************************************************************************************
* 函数名称: CAN_INTErrWarningDis()
* 功能说明: TXERR/RXERR计数值达到Error Warning Limit时触发中断禁止
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
* 输 出: 无
* 注意事项: 无
******************************************************************************************************************************************/
void CAN_INTErrWarningDis(CAN_TypeDef * CANx)
{
CANx->IE &= ~(1 << CAN_IE_ERRWARN_Pos);
}

/******************************************************************************************************************************************
* 函数名称: CAN_INTRXOverflowEn()
* 功能说明: RX FIFO 溢出时触发中断使能
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
* 输 出: 无
* 注意事项: 无
******************************************************************************************************************************************/
void CAN_INTRXOverflowEn(CAN_TypeDef * CANx)
{
CANx->IE |= (1 << CAN_IE_RXOV_Pos);
}

/******************************************************************************************************************************************
* 函数名称: CAN_INTRXOverflowDis()
* 功能说明: RX FIFO 溢出时触发中断禁止
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
* 输 出: 无
* 注意事项: 无
******************************************************************************************************************************************/
void CAN_INTRXOverflowDis(CAN_TypeDef * CANx)
{
CANx->IE &= ~(1 << CAN_IE_RXOV_Pos);
}

/******************************************************************************************************************************************
* 函数名称: CAN_INTRXOverflowClear()
* 功能说明: RX FIFO 溢出中断清除
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
* 输 出: 无
* 注意事项: 无
******************************************************************************************************************************************/
void CAN_INTRXOverflowClear(CAN_TypeDef * CANx)
void CAN_INTClr(CAN_TypeDef * CANx, uint32_t it)
{
CANx->CMD = (1 << CAN_CMD_CLROV_Pos);
}

/******************************************************************************************************************************************
* 函数名称: CAN_INTWakeupEn()
* 功能说明: 唤醒事件触发中断使能
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
* 输 出: 无
* 注意事项: 无
******************************************************************************************************************************************/
void CAN_INTWakeupEn(CAN_TypeDef * CANx)
{
CANx->IE |= (1 << CAN_IE_WKUP_Pos);
}

/******************************************************************************************************************************************
* 函数名称: CAN_INTWakeupDis()
* 功能说明: 唤醒事件触发中断禁止
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
* 输 出: 无
* 注意事项: 无
******************************************************************************************************************************************/
void CAN_INTWakeupDis(CAN_TypeDef * CANx)
{
CANx->IE &= ~(1 << CAN_IE_WKUP_Pos);
}

/******************************************************************************************************************************************
* 函数名称: CAN_INTErrPassiveEn()
* 功能说明: TXERR/RXERR计数值达到127时中断使能
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
* 输 出: 无
* 注意事项: 无
******************************************************************************************************************************************/
void CAN_INTErrPassiveEn(CAN_TypeDef * CANx)
{
CANx->IE |= (1 << CAN_IE_ERRPASS_Pos);
}

/******************************************************************************************************************************************
* 函数名称: CAN_INTErrPassiveDis()
* 功能说明: TXERR/RXERR计数值达到127时中断禁止
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
* 输 出: 无
* 注意事项: 无
******************************************************************************************************************************************/
void CAN_INTErrPassiveDis(CAN_TypeDef * CANx)
{
CANx->IE &= ~(1 << CAN_IE_ERRPASS_Pos);
}

/******************************************************************************************************************************************
* 函数名称: CAN_INTArbitrLostEn()
* 功能说明: 仲裁失败中断使能
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
* 输 出: 无
* 注意事项: 无
******************************************************************************************************************************************/
void CAN_INTArbitrLostEn(CAN_TypeDef * CANx)
{
CANx->IE |= (1 << CAN_IE_ARBLOST_Pos);
}

/******************************************************************************************************************************************
* 函数名称: CAN_INTArbitrLostDis()
* 功能说明: 仲裁失败中断禁止
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
* 输 出: 无
* 注意事项: 无
******************************************************************************************************************************************/
void CAN_INTArbitrLostDis(CAN_TypeDef * CANx)
{
CANx->IE &= ~(1 << CAN_IE_ARBLOST_Pos);
}

/******************************************************************************************************************************************
* 函数名称: CAN_INTBusErrorEn()
* 功能说明: 总线错误中断使能
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
* 输 出: 无
* 注意事项: 无
******************************************************************************************************************************************/
void CAN_INTBusErrorEn(CAN_TypeDef * CANx)
{
CANx->IE |= (1 << CAN_IE_BUSERR_Pos);
}

/******************************************************************************************************************************************
* 函数名称: CAN_INTBusErrorDis()
* 功能说明: 总线错误中断禁止
* 输 入: CAN_TypeDef * CANx 指定要被设置的CAN接口,有效值包括CAN
* 输 出: 无
* 注意事项: 无
******************************************************************************************************************************************/
void CAN_INTBusErrorDis(CAN_TypeDef * CANx)
{
CANx->IE &= ~(1 << CAN_IE_BUSERR_Pos);
}

/******************************************************************************************************************************************
* 函数名称: CAN_INTStat()
* 功能说明: 查询中断状态
Expand Down
Loading

0 comments on commit 4018092

Please sign in to comment.