diff options
Diffstat (limited to 'bsp/ls1cdev/libraries')
| -rw-r--r-- | bsp/ls1cdev/libraries/ls1c_can.c | 130 | ||||
| -rw-r--r-- | bsp/ls1cdev/libraries/ls1c_can.h | 34 | ||||
| -rw-r--r-- | bsp/ls1cdev/libraries/ls1c_clock.c | 4 | ||||
| -rw-r--r-- | bsp/ls1cdev/libraries/ls1c_gpio.c | 6 | ||||
| -rw-r--r-- | bsp/ls1cdev/libraries/ls1c_pin.c | 2 | ||||
| -rw-r--r-- | bsp/ls1cdev/libraries/ls1c_public.h | 24 | ||||
| -rw-r--r-- | bsp/ls1cdev/libraries/ls1c_regs.h | 6 | ||||
| -rw-r--r-- | bsp/ls1cdev/libraries/ls1c_rtc.c | 68 | ||||
| -rw-r--r-- | bsp/ls1cdev/libraries/ls1c_rtc.h | 4 | ||||
| -rw-r--r-- | bsp/ls1cdev/libraries/ls1c_spi.c | 18 | ||||
| -rw-r--r-- | bsp/ls1cdev/libraries/ls1c_spi.h | 2 | ||||
| -rw-r--r-- | bsp/ls1cdev/libraries/ls1c_uart.c | 38 | ||||
| -rw-r--r-- | bsp/ls1cdev/libraries/ls1c_uart.h | 94 | ||||
| -rw-r--r-- | bsp/ls1cdev/libraries/ls1c_wdog.c | 18 | ||||
| -rw-r--r-- | bsp/ls1cdev/libraries/ls1c_wdog.h | 2 |
15 files changed, 225 insertions, 225 deletions
diff --git a/bsp/ls1cdev/libraries/ls1c_can.c b/bsp/ls1cdev/libraries/ls1c_can.c index 437ef3ba84..4d45994e49 100644 --- a/bsp/ls1cdev/libraries/ls1c_can.c +++ b/bsp/ls1cdev/libraries/ls1c_can.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2018, RT-Thread Development Team + * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * @@ -23,15 +23,15 @@ unsigned char set_reset_mode(CAN_TypeDef* CANx) /* 关闭中断 */ CANx->IER = 0x00; - + for (i = 0; i < 100; i++) { if((status & CAN_Mode_RM) == CAN_Mode_RM) return 1; - + /* 设置复位*/ CANx->MOD |= ((unsigned char)CAN_Mode_RM); - + /*延时*/ delay_us(10); @@ -39,7 +39,7 @@ unsigned char set_reset_mode(CAN_TypeDef* CANx) status = CANx->MOD; } printf("\r\nSetting SJA1000 into reset mode failed!\r\n"); - return 0; + return 0; } static unsigned char set_normal_mode(CAN_TypeDef* CANx) @@ -49,20 +49,20 @@ static unsigned char set_normal_mode(CAN_TypeDef* CANx) /*检查复位标志*/ status = CANx->MOD; - + for (i = 0; i < 100; i++) { if((status & CAN_Mode_RM) != CAN_Mode_RM) { /*开所有中断 (总线错误中断不开)*/ - CANx->IER |= (~(unsigned char)CAN_IR_BEI); + CANx->IER |= (~(unsigned char)CAN_IR_BEI); return 1; } /* 设置正常工作模式*/ - CANx->MOD &= (~(unsigned char) CAN_Mode_RM); + CANx->MOD &= (~(unsigned char) CAN_Mode_RM); /*延时*/ - delay_us(10); - status = CANx->MOD; + delay_us(10); + status = CANx->MOD; } printf("\r\nSetting SJA1000 into normal mode failed!\r\n"); return 0; @@ -75,9 +75,9 @@ unsigned char set_start(CAN_TypeDef* CANx) /*复位RX错误计数器*/ CANx->RXERR = 0; /*时钟分频寄存器: PeliCAN模式; CBP=1,中止输入比较器, RX0激活*/ - CANx->CDR = 0xC0; - - return set_normal_mode(CANx); + CANx->CDR = 0xC0; + + return set_normal_mode(CANx); } unsigned char CAN_Init(CAN_TypeDef* CANx, CAN_InitTypeDef* CAN_InitStruct) @@ -89,64 +89,64 @@ unsigned char CAN_Init(CAN_TypeDef* CANx, CAN_InitTypeDef* CAN_InitStruct) status = CANx->MOD; if( status == 0xFF) { - printf("\n Probe can0 failed \r\n"); + printf("\n Probe can0 failed \r\n"); return CAN_InitStatus_Failed; } /* 进入复位模式 */ InitStatus = set_reset_mode(CANx); - - if((CAN_InitStruct->CAN_Mode & CAN_Mode_SM) == CAN_Mode_SM) + + if((CAN_InitStruct->CAN_Mode & CAN_Mode_SM) == CAN_Mode_SM) { /* 睡眠模式 1: 睡眠 0: 唤醒*/ - CANx->MOD|= (unsigned char)CAN_Mode_SM; + CANx->MOD|= (unsigned char)CAN_Mode_SM; } else { - CANx->MOD&=~ (unsigned char)CAN_Mode_SM; + CANx->MOD&=~ (unsigned char)CAN_Mode_SM; } - if((CAN_InitStruct->CAN_Mode & CAN_Mode_LOM) == CAN_Mode_LOM) + if((CAN_InitStruct->CAN_Mode & CAN_Mode_LOM) == CAN_Mode_LOM) { /*只听模式 1:只听 0:正常 */ - CANx->MOD|= (unsigned char)CAN_Mode_LOM; + CANx->MOD|= (unsigned char)CAN_Mode_LOM; } else { - CANx->MOD&=~ (unsigned char)CAN_Mode_LOM; + CANx->MOD&=~ (unsigned char)CAN_Mode_LOM; } - if((CAN_InitStruct->CAN_Mode & CAN_Mode_AFM) == CAN_Mode_AFM) + if((CAN_InitStruct->CAN_Mode & CAN_Mode_AFM) == CAN_Mode_AFM) { /*单滤波模式 1:单 0: 双*/ - CANx->MOD |= (unsigned char)CAN_Mode_AFM; + CANx->MOD |= (unsigned char)CAN_Mode_AFM; } else { - CANx->MOD&=~ (unsigned char)CAN_Mode_AFM; + CANx->MOD&=~ (unsigned char)CAN_Mode_AFM; } - if((CAN_InitStruct->CAN_Mode & CAN_Mode_STM) == CAN_Mode_STM) + if((CAN_InitStruct->CAN_Mode & CAN_Mode_STM) == CAN_Mode_STM) { /*自检测模式 1:自检测 0:正常 */ - CANx->MOD |= (unsigned char)CAN_Mode_STM; + CANx->MOD |= (unsigned char)CAN_Mode_STM; } else { CANx->MOD&=~ (unsigned char)CAN_Mode_STM; } - + /* 配置时钟频率 */ CANx->BTR0 = (( unsigned char )( unsigned char )CAN_InitStruct->CAN_Prescaler -1) | \ (unsigned char)CAN_InitStruct->CAN_SJW << 6; - + CANx->BTR1 = ((unsigned char)CAN_InitStruct->CAN_BS1) | \ ((unsigned char)CAN_InitStruct->CAN_BS2 << 4) | \ ((unsigned char)CAN_InitStruct->CAN_SJW<<7); /* 进入工作模式 */ - set_start(CANx); - + set_start(CANx); + /* 返回初始化结果 */ return InitStatus; } @@ -169,11 +169,11 @@ void CAN_FilterInit(CAN_TypeDef* CANx, CAN_FilterInitTypeDef * CAN_FilterInit thismask1 = (CAN_FilterInitStruct->IDMASK & 0xFFFF0000 )>>16; thisid2 = (CAN_FilterInitStruct->ID & 0x0000FFFF ); thismask2 = ( CAN_FilterInitStruct->IDMASK& 0x0000FFFF ); - rtr = CAN_FilterInitStruct->RTR; + rtr = CAN_FilterInitStruct->RTR; ide = CAN_FilterInitStruct->IDE; firstdata = CAN_FilterInitStruct->First_Data; datamask = CAN_FilterInitStruct->Data_Mask; - fcase = CAN_FilterInitStruct->MODE; + fcase = CAN_FilterInitStruct->MODE; if(ide == 0)//标准帧 { @@ -230,7 +230,7 @@ void CAN_FilterInit(CAN_TypeDef* CANx, CAN_FilterInitTypeDef * CAN_FilterInit /* 进入复位模式 */ set_reset_mode(CANx); - + if(fcase == 1)// 1-单滤波器模式 { /*单滤波模式 */ @@ -257,62 +257,62 @@ void CAN_FilterInit(CAN_TypeDef* CANx, CAN_FilterInitTypeDef * CAN_FilterInit unsigned char CAN_SetBps(CAN_TypeDef* CANx, Ls1c_CanBPS_t Bps) { unsigned char InitStatus = CAN_InitStatus_Failed; - unsigned char CAN_Prescaler, CAN_BS1, CAN_BS2, CAN_SJW; + unsigned char CAN_Prescaler, CAN_BS1, CAN_BS2, CAN_SJW; CAN_SJW = CAN_SJW_1tq; /* 进入复位模式 */ InitStatus = set_reset_mode(CANx); if( InitStatus == CAN_InitStatus_Failed) - return CAN_InitStatus_Failed; + return CAN_InitStatus_Failed; /* BaudRate= f(APB)/((1+BS1+BS2)(SJW*2*Prescaler))=126000000/[(1+7+2)*1*2*63]=100000=100K*/ /* BPS PRE BS1 BS2 最低40K - 1M 9 4 2 - 800K 8 7 2 - 500K 9 11 2 - 250K 36 4 2 - 125K 36 11 2 - 100K 63 7 2 - 50K 63 16 3` - 40K 63 16 8 + 1M 9 4 2 + 800K 8 7 2 + 500K 9 11 2 + 250K 36 4 2 + 125K 36 11 2 + 100K 63 7 2 + 50K 63 16 3` + 40K 63 16 8 */ switch (Bps) { - case LS1C_CAN1MBaud: + case LS1C_CAN1MBaud: CAN_Prescaler = 9; CAN_BS1 = CAN_BS1_4tq; CAN_BS2 = CAN_BS2_2tq; break; - case LS1C_CAN800kBaud: + case LS1C_CAN800kBaud: CAN_Prescaler = 8; CAN_BS1 = CAN_BS1_7tq; CAN_BS2 = CAN_BS2_2tq; break; - case LS1C_CAN500kBaud: + case LS1C_CAN500kBaud: CAN_Prescaler = 9; CAN_BS1 = CAN_BS1_11tq; CAN_BS2 = CAN_BS2_2tq; break; - case LS1C_CAN250kBaud: + case LS1C_CAN250kBaud: CAN_Prescaler = 36; CAN_BS1 = CAN_BS1_4tq; CAN_BS2 = CAN_BS2_2tq; break; - case LS1C_CAN125kBaud: + case LS1C_CAN125kBaud: CAN_Prescaler = 36; CAN_BS1 = CAN_BS1_11tq; CAN_BS2 = CAN_BS2_2tq; break; - case LS1C_CAN100kBaud: + case LS1C_CAN100kBaud: CAN_Prescaler = 63; CAN_BS1 = CAN_BS1_7tq; CAN_BS2 = CAN_BS2_2tq; break; - case LS1C_CAN50kBaud: + case LS1C_CAN50kBaud: CAN_Prescaler = 63; CAN_BS1 = CAN_BS1_16tq; CAN_BS2 = CAN_BS2_3tq; break; - case LS1C_CAN40kBaud: + case LS1C_CAN40kBaud: CAN_Prescaler = 63; CAN_BS1 = CAN_BS1_16tq; CAN_BS2 = CAN_BS2_8tq; @@ -326,13 +326,13 @@ unsigned char CAN_SetBps(CAN_TypeDef* CANx, Ls1c_CanBPS_t Bps) /* 配置时钟频率 */ CANx->BTR0 = (( unsigned char )CAN_Prescaler -1) | \ (unsigned char)CAN_SJW << 6; - + CANx->BTR1 = ((unsigned char)CAN_BS1) | \ ((unsigned char)CAN_BS2 << 4) | \ ((unsigned char)CAN_SJW<<7); /* 进入工作模式 */ - set_start(CANx); + set_start(CANx); /* 返回初始化结果 */ return CAN_InitStatus_Failed; } @@ -347,30 +347,30 @@ unsigned char CAN_SetMode(CAN_TypeDef* CANx, unsigned char mode) /* 进入复位模式 */ InitStatus = set_reset_mode(CANx); if( InitStatus == CAN_InitStatus_Failed) - return CAN_InitStatus_Failed; + return CAN_InitStatus_Failed; switch( mode ) { case 0://正常 - CANx->MOD &= ~(unsigned char)CAN_Mode_STM; - CANx->MOD &= ~(unsigned char)CAN_Mode_LOM; + CANx->MOD &= ~(unsigned char)CAN_Mode_STM; + CANx->MOD &= ~(unsigned char)CAN_Mode_LOM; break; case 1://只听 - CANx->MOD &= ~(unsigned char)CAN_Mode_STM; - CANx->MOD |= (unsigned char)CAN_Mode_LOM; + CANx->MOD &= ~(unsigned char)CAN_Mode_STM; + CANx->MOD |= (unsigned char)CAN_Mode_LOM; break; case 2://回环 - CANx->MOD |= (unsigned char)CAN_Mode_STM; - CANx->MOD &= ~(unsigned char)CAN_Mode_LOM; + CANx->MOD |= (unsigned char)CAN_Mode_STM; + CANx->MOD &= ~(unsigned char)CAN_Mode_LOM; break; case 3://只听回环 - CANx->MOD |= (unsigned char)CAN_Mode_STM; - CANx->MOD |= (unsigned char)CAN_Mode_LOM; + CANx->MOD |= (unsigned char)CAN_Mode_STM; + CANx->MOD |= (unsigned char)CAN_Mode_LOM; break; } /* 进入工作模式 */ - set_start(CANx); - + set_start(CANx); + /* 返回初始化结果 */ return CAN_InitStatus_Failed; } @@ -442,6 +442,6 @@ void CAN_Receive(CAN_TypeDef* CANx, CanRxMsg* RxMessage) RxMessage->Data[5] = (unsigned char)CANx->BUF[5]; RxMessage->Data[6] = (unsigned char)CANx->BUF[6]; RxMessage->Data[7] = (unsigned char)CANx->BUF[7]; - } + } } diff --git a/bsp/ls1cdev/libraries/ls1c_can.h b/bsp/ls1cdev/libraries/ls1c_can.h index b2b0f8efa8..4f06579249 100644 --- a/bsp/ls1cdev/libraries/ls1c_can.h +++ b/bsp/ls1cdev/libraries/ls1c_can.h @@ -1,9 +1,9 @@ /* - * Copyright (c) 2006-2018, RT-Thread Development Team + * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * - * Change Logs: (Pelican Mode) + * Change Logs: (Pelican Mode) * Date Author Notes * 2018-01-06 sundm75 first version */ @@ -84,7 +84,7 @@ #define CAN_SR_TS ((unsigned char)0x20) /*!< 发送状态1: 发送 0: 空闲*/ #define CAN_SR_ES ((unsigned char)0x40) /*!< 出错状态1:出错 0: 正常 */ #define CAN_SR_BS ((unsigned char)0x80) /*!< 总线状态1: 关闭 0: 开启 */ - + /************************** CAN_IR 中断寄存器位定义****************************/ #define CAN_IR_RI ((unsigned char)0x01) /*!< 接收中断 */ #define CAN_IR_TI ((unsigned char)0x02) /*!< 发送中断 */ @@ -94,7 +94,7 @@ #define CAN_IR_EPI ((unsigned char)0x20) /*!< 错误消极中断 */ #define CAN_IR_ALI ((unsigned char)0x40) /*!< 仲裁丢失中断 */ #define CAN_IR_BEI ((unsigned char)0x80) /*!< 总线错误中断 */ - + /************************* CAN_IER 中断使能寄存器位定义************************/ #define CAN_IER_RIE ((unsigned char)0x01) /*!< 接收中断使能 */ #define CAN_IER_TIE ((unsigned char)0x02) /*!< 发送中断使能 */ @@ -104,17 +104,17 @@ #define CAN_IER_EPIE ((unsigned char)0x20) /*!< 错误消极中断使能 */ #define CAN_IER_ALIE ((unsigned char)0x40) /*!< 仲裁丢失中断使能 */ #define CAN_IER_BEIE ((unsigned char)0x80) /*!< 总线错误中断使能 */ - -typedef enum + +typedef enum { - LS1C_CAN1MBaud=0, // 1 MBit/sec - LS1C_CAN800kBaud, // 800 kBit/sec - LS1C_CAN500kBaud, // 500 kBit/sec - LS1C_CAN250kBaud, // 250 kBit/sec - LS1C_CAN125kBaud, // 125 kBit/sec - LS1C_CAN100kBaud, // 100 kBit/sec - LS1C_CAN50kBaud, // 50 kBit/sec - LS1C_CAN40kBaud, // 40 kBit/sec + LS1C_CAN1MBaud=0, // 1 MBit/sec + LS1C_CAN800kBaud, // 800 kBit/sec + LS1C_CAN500kBaud, // 500 kBit/sec + LS1C_CAN250kBaud, // 250 kBit/sec + LS1C_CAN125kBaud, // 125 kBit/sec + LS1C_CAN100kBaud, // 100 kBit/sec + LS1C_CAN50kBaud, // 50 kBit/sec + LS1C_CAN40kBaud, // 40 kBit/sec }Ls1c_CanBPS_t; typedef struct @@ -143,12 +143,12 @@ typedef struct typedef struct { - unsigned char CAN_Prescaler; /* 波特率分频系数1 to 31. */ + unsigned char CAN_Prescaler; /* 波特率分频系数1 to 31. */ unsigned char CAN_Mode; /*0x10:睡眠0x08:单,双滤波 0x40:正常工作0x20:只听 0x01:复位*/ unsigned char CAN_SJW; /*同步跳转宽度 */ unsigned char CAN_BS1; /*时间段1计数值*/ - unsigned char CAN_BS2; /*时间段2计数值*/ - + unsigned char CAN_BS2; /*时间段2计数值*/ + } CAN_InitTypeDef; typedef struct diff --git a/bsp/ls1cdev/libraries/ls1c_clock.c b/bsp/ls1cdev/libraries/ls1c_clock.c index 1ae621cbbb..7e3398746f 100644 --- a/bsp/ls1cdev/libraries/ls1c_clock.c +++ b/bsp/ls1cdev/libraries/ls1c_clock.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2018, RT-Thread Development Team + * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * @@ -56,7 +56,7 @@ unsigned long clk_get_pll_rate(void) ctrl = reg_read_32((volatile unsigned int *)LS1C_START_FREQ); pll_rate = (((ctrl & M_PLL) >> M_PLL_SHIFT) + ((ctrl & FRAC_N) >> FRAC_N_SHIFT)) * APB_CLK / 4; - + return pll_rate; } diff --git a/bsp/ls1cdev/libraries/ls1c_gpio.c b/bsp/ls1cdev/libraries/ls1c_gpio.c index 4bf6b7a20b..bbaf446285 100644 --- a/bsp/ls1cdev/libraries/ls1c_gpio.c +++ b/bsp/ls1cdev/libraries/ls1c_gpio.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2018, RT-Thread Development Team + * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * @@ -61,7 +61,7 @@ volatile unsigned int *gpio_get_en_reg(unsigned int gpio) { volatile unsigned int *gpio_enx = NULL; // GPIO_ENx寄存器 unsigned int port = GPIO_GET_PORT(gpio); - + switch (port) { case 0: @@ -274,4 +274,4 @@ void gpio_set_irq_type(unsigned int gpio, gpio_irq_type_t type) } - + diff --git a/bsp/ls1cdev/libraries/ls1c_pin.c b/bsp/ls1cdev/libraries/ls1c_pin.c index 0a817abe07..43783521a6 100644 --- a/bsp/ls1cdev/libraries/ls1c_pin.c +++ b/bsp/ls1cdev/libraries/ls1c_pin.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2018, RT-Thread Development Team + * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * diff --git a/bsp/ls1cdev/libraries/ls1c_public.h b/bsp/ls1cdev/libraries/ls1c_public.h index 5d2390acec..249a767f58 100644 --- a/bsp/ls1cdev/libraries/ls1c_public.h +++ b/bsp/ls1cdev/libraries/ls1c_public.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2018, RT-Thread Development Team + * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * @@ -19,17 +19,17 @@ // pmon提供的打印函数,见main()函数 struct callvectors { - int (*open) (char *, int, int); - int (*close) (int); - int (*read) (int, void *, int); - int (*write) (int, void *, int); - long long (*lseek) (int, long long, int); - int (*printf) (const char *, ...); - void (*cacheflush) (void); - char *(*gets) (char *); + int (*open) (char *, int, int); + int (*close) (int); + int (*read) (int, void *, int); + int (*write) (int, void *, int); + long long (*lseek) (int, long long, int); + int (*printf) (const char *, ...); + void (*cacheflush) (void); + char *(*gets) (char *); }; -#define myprintf (*callvec->printf) -#define mygets (*callvec->gets) +#define myprintf (*callvec->printf) +#define mygets (*callvec->gets) extern struct callvectors *callvec; @@ -40,7 +40,7 @@ extern struct callvectors *callvec; typedef enum { - FALSE=0, + FALSE=0, TRUE=1 }BOOL; diff --git a/bsp/ls1cdev/libraries/ls1c_regs.h b/bsp/ls1cdev/libraries/ls1c_regs.h index 7947c2bfe0..91d9d32ab0 100644 --- a/bsp/ls1cdev/libraries/ls1c_regs.h +++ b/bsp/ls1cdev/libraries/ls1c_regs.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2018, RT-Thread Development Team + * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * @@ -83,8 +83,8 @@ #define LS1C_REG_BASE_PWM3 (0xbfe5c030) //CAN基地址 -#define LS1C_REG_BASE_CAN0 (0xbfe50000) -#define LS1C_REG_BASE_CAN1 (0xbfe54000) +#define LS1C_REG_BASE_CAN0 (0xbfe50000) +#define LS1C_REG_BASE_CAN1 (0xbfe54000) // 中断配置寄存器 #define LS1C_INT0_SR (0xbfd01040) diff --git a/bsp/ls1cdev/libraries/ls1c_rtc.c b/bsp/ls1cdev/libraries/ls1c_rtc.c index 838f6a85c1..3ec20daaad 100644 --- a/bsp/ls1cdev/libraries/ls1c_rtc.c +++ b/bsp/ls1cdev/libraries/ls1c_rtc.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2018, RT-Thread Development Team + * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * @@ -11,66 +11,66 @@ #include "ls1c_public.h" #include "ls1c_rtc.h" -#define LS1C_SEC_OFFSET (4) -#define LS1C_MIN_OFFSET (10) -#define LS1C_HOUR_OFFSET (16) -#define LS1C_DAY_OFFSET (21) -#define LS1C_MONTH_OFFSET (26) +#define LS1C_SEC_OFFSET (4) +#define LS1C_MIN_OFFSET (10) +#define LS1C_HOUR_OFFSET (16) +#define LS1C_DAY_OFFSET (21) +#define LS1C_MONTH_OFFSET (26) -#define LS1C_SEC_MASK (0x3f) -#define LS1C_MIN_MASK (0x3f) -#define LS1C_HOUR_MASK (0x1f) -#define LS1C_DAY_MASK (0x1f) -#define LS1C_MONTH_MASK (0x3f) -#define LS1C_YEAR_MASK (0xff) +#define LS1C_SEC_MASK (0x3f) +#define LS1C_MIN_MASK (0x3f) +#define LS1C_HOUR_MASK (0x1f) +#define LS1C_DAY_MASK (0x1f) +#define LS1C_MONTH_MASK (0x3f) +#define LS1C_YEAR_MASK (0xff) -#define ls1c_get_sec(t) (((t) >> LS1C_SEC_OFFSET) & LS1C_SEC_MASK) -#define ls1c_get_min(t) (((t) >> LS1C_MIN_OFFSET) & LS1C_MIN_MASK) -#define ls1c_get_hour(t) (((t) >> LS1C_HOUR_OFFSET) & LS1C_HOUR_MASK) -#define ls1c_get_day(t) (((t) >> LS1C_DAY_OFFSET) & LS1C_DAY_MASK) -#define ls1c_get_month(t) (((t) >> LS1C_MONTH_OFFSET) & LS1C_MONTH_MASK) +#define ls1c_get_sec(t) (((t) >> LS1C_SEC_OFFSET) & LS1C_SEC_MASK) +#define ls1c_get_min(t) (((t) >> LS1C_MIN_OFFSET) & LS1C_MIN_MASK) +#define ls1c_get_hour(t) (((t) >> LS1C_HOUR_OFFSET) & LS1C_HOUR_MASK) +#define ls1c_get_day(t) (((t) >> LS1C_DAY_OFFSET) & LS1C_DAY_MASK) +#define ls1c_get_month(t) (((t) >> LS1C_MONTH_OFFSET) & LS1C_MONTH_MASK) int RTC_SetTime(RTC_TypeDef *hrtc, RTC_TimeTypeDef *sTime) { - hrtc->SYS_TOYWRITE0 - = (sTime->Month << LS1C_MONTH_OFFSET) - | (sTime->Date << LS1C_DAY_OFFSET) - | (sTime->Hours << LS1C_HOUR_OFFSET) - | (sTime->Minutes << LS1C_MIN_OFFSET) - | (sTime->Seconds << LS1C_SEC_OFFSET); - hrtc->SYS_TOYWRITE1 = sTime->Year % 100; - printf("\r\ntoy_read0 = 0x%x, toy_read1 = 0x%x.\r\n", hrtc->SYS_TOYREAD0, hrtc->SYS_TOYREAD1); + hrtc->SYS_TOYWRITE0 + = (sTime->Month << LS1C_MONTH_OFFSET) + | (sTime->Date << LS1C_DAY_OFFSET) + | (sTime->Hours << LS1C_HOUR_OFFSET) + | (sTime->Minutes << LS1C_MIN_OFFSET) + | (sTime->Seconds << LS1C_SEC_OFFSET); + hrtc->SYS_TOYWRITE1 = sTime->Year % 100; + printf("\r\ntoy_read0 = 0x%x, toy_read1 = 0x%x.\r\n", hrtc->SYS_TOYREAD0, hrtc->SYS_TOYREAD1); return 0; } int RTC_GetTime(RTC_TypeDef *hrtc, RTC_TimeTypeDef *sTime) { - unsigned long toy_read0, toy_read1; + unsigned long toy_read0, toy_read1; toy_read0 = hrtc->SYS_TOYREAD0; - toy_read1 = hrtc->SYS_TOYREAD1; + toy_read1 = hrtc->SYS_TOYREAD1; sTime->Seconds = ls1c_get_sec(toy_read0); sTime->Minutes = ls1c_get_min(toy_read0); sTime->Hours = ls1c_get_hour(toy_read0); sTime->Date = ls1c_get_day(toy_read0); sTime->Month = ls1c_get_month(toy_read0); - sTime->Year = toy_read1 & LS1C_YEAR_MASK; + sTime->Year = toy_read1 & LS1C_YEAR_MASK; return 0 ; } unsigned char RTC_IsLeapYear(unsigned int nYear) { - if((nYear % 4U) != 0U) + if((nYear % 4U) != 0U) { return 0U; } - - if((nYear % 100U) != 0U) + + if((nYear % 100U) != 0U) { return 1U; } - + if((nYear % 400U) == 0U) { return 1U; @@ -86,7 +86,7 @@ unsigned char RTC_WeekDayNum(unsigned long nYear, unsigned char nMonth, unsigned unsigned long year = 0U, weekday = 0U; year = 2000U + nYear; - + if(nMonth < 3U) { /*D = { [(23 x month)/9] + day + 4 + year + [(year-1)/4] - [(year-1)/100] + [(year-1)/400] } mod 7*/ @@ -95,7 +95,7 @@ unsigned char RTC_WeekDayNum(unsigned long nYear, unsigned char nMonth, unsigned else { /*D = { [(23 x month)/9] + day + 4 + year + [year/4] - [year/100] + [year/400] - 2 } mod 7*/ - weekday = (((23U * nMonth)/9U) + nDay + 4U + year + (year/4U) - (year/100U) + (year/400U) - 2U ) % 7U; + weekday = (((23U * nMonth)/9U) + nDay + 4U + year + (year/4U) - (year/100U) + (year/400U) - 2U ) % 7U; } return (unsigned char)weekday; diff --git a/bsp/ls1cdev/libraries/ls1c_rtc.h b/bsp/ls1cdev/libraries/ls1c_rtc.h index dee8000d6b..e7589da078 100644 --- a/bsp/ls1cdev/libraries/ls1c_rtc.h +++ b/bsp/ls1cdev/libraries/ls1c_rtc.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2018, RT-Thread Development Team + * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * @@ -22,7 +22,7 @@ typedef struct unsigned char Hours; /*0 ~ 23 */ unsigned char Minutes; /*0 ~ 59 */ unsigned char Seconds; /*0 ~ 59 */ -}RTC_TimeTypeDef; +}RTC_TimeTypeDef; typedef struct { diff --git a/bsp/ls1cdev/libraries/ls1c_spi.c b/bsp/ls1cdev/libraries/ls1c_spi.c index 6ad39d964c..13cd8dc620 100644 --- a/bsp/ls1cdev/libraries/ls1c_spi.c +++ b/bsp/ls1cdev/libraries/ls1c_spi.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2018, RT-Thread Development Team + * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * @@ -53,7 +53,7 @@ void *ls1c_spi_get_base(unsigned char SPIx) void ls1c_spi_print_all_regs_info(void *spi_base) { printf("[%s] SPCR=0x%x, SPSR=0x%x, SPER=0x%x, SFC_PARAM=0x%x, SFC_SOFTCS=0x%x, SFC_TIMING=0x%x\r\n", - __FUNCTION__, + __FUNCTION__, reg_read_8(spi_base + LS1C_SPI_SPCR_OFFSET), reg_read_8(spi_base + LS1C_SPI_SPSR_OFFSET), reg_read_8(spi_base + LS1C_SPI_SPER_OFFSET), @@ -121,8 +121,8 @@ unsigned int ls1c_spi_get_div(unsigned int max_speed_hz) } break; } -/* - printf("[%s] clk=%ld, max_speed_hz=%d, div_tmp=%d, bit=%d\r\n", +/* + printf("[%s] clk=%ld, max_speed_hz=%d, div_tmp=%d, bit=%d\r\n", __FUNCTION__, clk, max_speed_hz, div_tmp, bit); */ return div_tmp; @@ -169,15 +169,15 @@ void ls1c_spi_set_mode(void *spi_base, unsigned char cpol, unsigned char cpha) unsigned char val = 0; val = reg_read_8(spi_base + LS1C_SPI_SPCR_OFFSET); - + // 设置时钟极性--cpol val &= (~LS1C_SPI_SPCR_CPOL_MASK); // cpol清0 val |= (cpol << LS1C_SPI_SPCR_CPOL_BIT); // 写入新的cpol - + // 设置时钟相位--cpha val &= (~LS1C_SPI_SPCR_CPHA_MASK); // cpha清0 val |= (cpha << LS1C_SPI_SPCR_CPHA_BIT); // 写入新的cpha - + reg_write_8(val, spi_base + LS1C_SPI_SPCR_OFFSET); return ; @@ -195,7 +195,7 @@ void ls1c_spi_set_cs(void *spi_base, unsigned char cs, int new_status) unsigned char val = 0; val = reg_read_8(spi_base + LS1C_SPI_SFC_SOFTCS_OFFSET); - val |= 0x01 << cs ; //对应的csen=1 + val |= 0x01 << cs ; //对应的csen=1 if (new_status) // cs = 1 { val |= (0x10 << cs); // 指定csn=1 @@ -223,7 +223,7 @@ void ls1c_spi_wait_txrx_done(void *spi_base) if (LS1C_SPI_SPSR_SPIF_MASK & reg_read_8(spi_base + LS1C_SPI_SPSR_OFFSET)) break; } - + return ; } diff --git a/bsp/ls1cdev/libraries/ls1c_spi.h b/bsp/ls1cdev/libraries/ls1c_spi.h index bd02dd8d17..3abcfa63cc 100644 --- a/bsp/ls1cdev/libraries/ls1c_spi.h +++ b/bsp/ls1cdev/libraries/ls1c_spi.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2018, RT-Thread Development Team + * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * diff --git a/bsp/ls1cdev/libraries/ls1c_uart.c b/bsp/ls1cdev/libraries/ls1c_uart.c index fac2010964..5aefaf994e 100644 --- a/bsp/ls1cdev/libraries/ls1c_uart.c +++ b/bsp/ls1cdev/libraries/ls1c_uart.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2018, RT-Thread Development Team + * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * @@ -53,7 +53,7 @@ void *uart_get_base(ls1c_uart_t UARTx) case LS1C_UART1: base = (void *)LS1C_UART1_BASE; break; - + case LS1C_UART2: base = (void *)LS1C_UART2_BASE; break; @@ -61,7 +61,7 @@ void *uart_get_base(ls1c_uart_t UARTx) case LS1C_UART3: base = (void *)LS1C_UART3_BASE; break; - + case LS1C_UART4: base = (void *)LS1C_UART4_BASE; break; @@ -113,10 +113,10 @@ void uart_init(ls1c_uart_info_t *uart_info_p) // 禁止所有中断 reg_write_8(0, uart_base + LS1C_UART_IER_OFFSET); - + // 接收FIFO的中断申请Trigger为14字节,清空发送和接收FIFO,并复位 reg_write_8(0xc3, uart_base + LS1C_UART_FCR_OFFSET); - + // 设置波特率 reg_write_8(0x80, uart_base + LS1C_UART_LCR_OFFSET); baudrate_div = clk_get_cpu_rate() / 16 / uart_info_p->baudrate / 2; @@ -165,7 +165,7 @@ BOOL uart_is_transmit_empty(ls1c_uart_t uartx) void uart_putc(ls1c_uart_t uartx, unsigned char ch) { void *uart_base = uart_get_base(uartx); - + // 等待 while (FALSE == uart_is_transmit_empty(uartx)) ; @@ -205,7 +205,7 @@ void uart2_init(void) // 设置复用 pin_set_remap(tx_gpio, PIN_REMAP_SECOND); pin_set_remap(rx_gpio, PIN_REMAP_SECOND); - + // 初始化相关寄存器 debug_uart_info.UARTx = LS1C_UART2; debug_uart_info.baudrate = 115200; @@ -257,7 +257,7 @@ void uart_debug_putc(unsigned char ch) ls1c_uart_t uart_irqn_to_uartx(int IRQn) { ls1c_uart_t uartx = LS1C_UART2; - + switch (IRQn) { /* 串口UART00和UART01的中断号还待确定 @@ -273,47 +273,47 @@ ls1c_uart_t uart_irqn_to_uartx(int IRQn) case LS1C_UART1_IRQ: uartx = LS1C_UART1; break; - + case LS1C_UART2_IRQ: uartx = LS1C_UART2; break; - + case LS1C_UART3_IRQ: uartx = LS1C_UART3; break; - + case LS1C_UART4_IRQ: uartx = LS1C_UART4; break; - + case LS1C_UART5_IRQ: uartx = LS1C_UART5; break; - + case LS1C_UART6_IRQ: uartx = LS1C_UART6; break; - + case LS1C_UART7_IRQ: uartx = LS1C_UART7; break; - + case LS1C_UART8_IRQ: uartx = LS1C_UART8; break; - + case LS1C_UART9_IRQ: uartx = LS1C_UART9; break; - + case LS1C_UART10_IRQ: uartx = LS1C_UART10; break; - + case LS1C_UART11_IRQ: uartx = LS1C_UART11; break; - + default: uartx = LS1C_UART2; break; diff --git a/bsp/ls1cdev/libraries/ls1c_uart.h b/bsp/ls1cdev/libraries/ls1c_uart.h index 8d017dd767..0a95da236b 100644 --- a/bsp/ls1cdev/libraries/ls1c_uart.h +++ b/bsp/ls1cdev/libraries/ls1c_uart.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2018, RT-Thread Development Team + * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * @@ -31,63 +31,63 @@ #define LS1C_UART_MSB_OFFSET (1) // 分频锁存器2 /* interrupt enable register */ -#define IER_IRxE 0x1 /* 接收有效数据中断使能 */ -#define IER_ITxE 0x2 /* 传输保存寄存器为空中断使能 */ -#define IER_ILE 0x4 /* 接收器线路状态中断使能 */ -#define IER_IME 0x8 /* Modem状态中断使能 */ +#define IER_IRxE 0x1 /* 接收有效数据中断使能 */ +#define IER_ITxE 0x2 /* 传输保存寄存器为空中断使能 */ +#define IER_ILE 0x4 /* 接收器线路状态中断使能 */ +#define IER_IME 0x8 /* Modem状态中断使能 */ /* interrupt identification register */ -#define IIR_IMASK 0xf /* mask */ -#define IIR_RXTOUT 0xc /* receive timeout */ -#define IIR_RLS 0x6 /* receive line status */ -#define IIR_RXRDY 0x4 /* receive ready */ -#define IIR_TXRDY 0x2 /* transmit ready */ -#define IIR_NOPEND 0x1 /* nothing */ -#define IIR_MLSC 0x0 /* modem status */ -#define IIR_FIFO_MASK 0xc0 /* set if FIFOs are enabled */ +#define IIR_IMASK 0xf /* mask */ +#define IIR_RXTOUT 0xc /* receive timeout */ +#define IIR_RLS 0x6 /* receive line status */ +#define IIR_RXRDY 0x4 /* receive ready */ +#define IIR_TXRDY 0x2 /* transmit ready */ +#define IIR_NOPEND 0x1 /* nothing */ +#define IIR_MLSC 0x0 /* modem status */ +#define IIR_FIFO_MASK 0xc0 /* set if FIFOs are enabled */ /* fifo control register */ -#define FIFO_ENABLE 0x01 /* enable fifo */ -#define FIFO_RCV_RST 0x02 /* reset receive fifo */ -#define FIFO_XMT_RST 0x04 /* reset transmit fifo */ -#define FIFO_DMA_MODE 0x08 /* enable dma mode */ -#define FIFO_TRIGGER_1 0x00 /* trigger at 1 char */ -#define FIFO_TRIGGER_4 0x40 /* trigger at 4 chars */ -#define FIFO_TRIGGER_8 0x80 /* trigger at 8 chars */ -#define FIFO_TRIGGER_14 0xc0 /* trigger at 14 chars */ +#define FIFO_ENABLE 0x01 /* enable fifo */ +#define FIFO_RCV_RST 0x02 /* reset receive fifo */ +#define FIFO_XMT_RST 0x04 /* reset transmit fifo */ +#define FIFO_DMA_MODE 0x08 /* enable dma mode */ +#define FIFO_TRIGGER_1 0x00 /* trigger at 1 char */ +#define FIFO_TRIGGER_4 0x40 /* trigger at 4 chars */ +#define FIFO_TRIGGER_8 0x80 /* trigger at 8 chars */ +#define FIFO_TRIGGER_14 0xc0 /* trigger at 14 chars */ // 线路控制寄存器 /* character format control register */ -#define CFCR_DLAB 0x80 /* divisor latch */ -#define CFCR_SBREAK 0x40 /* send break */ -#define CFCR_PZERO 0x30 /* zero parity */ -#define CFCR_PONE 0x20 /* one parity */ -#define CFCR_PEVEN 0x10 /* even parity */ -#define CFCR_PODD 0x00 /* odd parity */ -#define CFCR_PENAB 0x08 /* parity enable */ -#define CFCR_STOPB 0x04 /* 2 stop bits */ -#define CFCR_8BITS 0x03 /* 8 data bits */ -#define CFCR_7BITS 0x02 /* 7 data bits */ -#define CFCR_6BITS 0x01 /* 6 data bits */ -#define CFCR_5BITS 0x00 /* 5 data bits */ +#define CFCR_DLAB 0x80 /* divisor latch */ +#define CFCR_SBREAK 0x40 /* send break */ +#define CFCR_PZERO 0x30 /* zero parity */ +#define CFCR_PONE 0x20 /* one parity */ +#define CFCR_PEVEN 0x10 /* even parity */ +#define CFCR_PODD 0x00 /* odd parity */ +#define CFCR_PENAB 0x08 /* parity enable */ +#define CFCR_STOPB 0x04 /* 2 stop bits */ +#define CFCR_8BITS 0x03 /* 8 data bits */ +#define CFCR_7BITS 0x02 /* 7 data bits */ +#define CFCR_6BITS 0x01 /* 6 data bits */ +#define CFCR_5BITS 0x00 /* 5 data bits */ /* modem control register */ -#define MCR_LOOPBACK 0x10 /* loopback */ -#define MCR_IENABLE 0x08 /* output 2 = int enable */ -#define MCR_DRS 0x04 /* output 1 = xxx */ -#define MCR_RTS 0x02 /* enable RTS */ -#define MCR_DTR 0x01 /* enable DTR */ +#define MCR_LOOPBACK 0x10 /* loopback */ +#define MCR_IENABLE 0x08 /* output 2 = int enable */ +#define MCR_DRS 0x04 /* output 1 = xxx */ +#define MCR_RTS 0x02 /* enable RTS */ +#define MCR_DTR 0x01 /* enable DTR */ /* line status register */ -#define LSR_RCV_FIFO 0x80 /* error in receive fifo */ -#define LSR_TSRE 0x40 /* transmitter empty */ -#define LSR_TXRDY 0x20 /* transmitter ready */ -#define LSR_BI 0x10 /* break detected */ -#define LSR_FE 0x08 /* framing error */ -#define LSR_PE 0x04 /* parity error */ -#define LSR_OE 0x02 /* overrun error */ -#define LSR_RXRDY 0x01 /* receiver ready */ -#define LSR_RCV_MASK 0x1f +#define LSR_RCV_FIFO 0x80 /* error in receive fifo */ +#define LSR_TSRE 0x40 /* transmitter empty */ +#define LSR_TXRDY 0x20 /* transmitter ready */ +#define LSR_BI 0x10 /* break detected */ +#define LSR_FE 0x08 /* framing error */ +#define LSR_PE 0x04 /* parity error */ +#define LSR_OE 0x02 /* overrun error */ +#define LSR_RXRDY 0x01 /* receiver ready */ +#define LSR_RCV_MASK 0x1f // 串口模块编号 diff --git a/bsp/ls1cdev/libraries/ls1c_wdog.c b/bsp/ls1cdev/libraries/ls1c_wdog.c index 4034281d10..774fa013b2 100644 --- a/bsp/ls1cdev/libraries/ls1c_wdog.c +++ b/bsp/ls1cdev/libraries/ls1c_wdog.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2018, RT-Thread Development Team + * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * @@ -22,13 +22,13 @@ static unsigned int WDT_timer = 0; /* 暂时为空 */ -unsigned int Wdog_Init(void) +unsigned int Wdog_Init(void) { return 0; } /* 配置看门狗使能寄存器(WDT_EN) */ -unsigned int Wdog_Enable(void) +unsigned int Wdog_Enable(void) { unsigned int ctrl; ctrl = (WDT_EN); @@ -39,7 +39,7 @@ unsigned int Wdog_Enable(void) } /* 配置看门狗失能寄存器(WDT_EN) */ -unsigned int Wdog_Disable(void) +unsigned int Wdog_Disable(void) { unsigned int ctrl; ctrl = (WDT_EN); @@ -49,7 +49,7 @@ unsigned int Wdog_Disable(void) } /* 配置看门狗设置寄存器 (WDT_SET) */ -unsigned int Wdog_Set(void) +unsigned int Wdog_Set(void) { unsigned int ctrl; ctrl = (WDT_SET); @@ -59,7 +59,7 @@ unsigned int Wdog_Set(void) } /* 配置看门狗设置寄存器 (WDT_SET) */ -unsigned int Wdog_Reset(void) +unsigned int Wdog_Reset(void) { unsigned int ctrl; ctrl = (WDT_SET); @@ -69,7 +69,7 @@ unsigned int Wdog_Reset(void) } /* 获得看门狗计数器(WDT_timer) 的值*/ -unsigned int Wdog_GetValue(void) +unsigned int Wdog_GetValue(void) { unsigned int cnt; cnt = (WDT_TIMER); @@ -77,7 +77,7 @@ unsigned int Wdog_GetValue(void) } /* 配置看门狗计数器(WDT_timer)的值*/ -unsigned int Wdog_LoadValue(unsigned int cnt) +unsigned int Wdog_LoadValue(unsigned int cnt) { WDT_TIMER = cnt; WDT_timer = cnt; @@ -85,7 +85,7 @@ unsigned int Wdog_LoadValue(unsigned int cnt) } /* 获得看门狗计数器设定值 */ -unsigned int Wdog_GetPreValue(void) +unsigned int Wdog_GetPreValue(void) { return WDT_timer; } diff --git a/bsp/ls1cdev/libraries/ls1c_wdog.h b/bsp/ls1cdev/libraries/ls1c_wdog.h index a4717eedbf..eeeb8ac475 100644 --- a/bsp/ls1cdev/libraries/ls1c_wdog.h +++ b/bsp/ls1cdev/libraries/ls1c_wdog.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2018, RT-Thread Development Team + * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * |
