2022/04/22 CSL\SWM341_StdPeriph_Driver\SWM341_flash.c 文件中,FLASH_Erase()、FLASH_Write() 改用 IAP 实现 2022/04/26 CSL\CMSIS\DeviceSupport\SWM341.h 文件中,TIMR_TypeDef 定义中,修正 PREDIV 寄存器位置错误,导致定时器预分频不起作用问题 2022/04/28 CSL\CMSIS\DeviceSupport\SWM341.h 文件中,UART_TypeDef 定义中,删除旧的 BRK 发送/检测功能寄存器 2022/05/10 CSL\SWM341_StdPeriph_Driver\SWM341_sdio.c 文件中,parseCSD() 定义中,将: SD_cardInfo.CardCapacity = (SD_cardInfo.SD_csd.DeviceSize + 1) * 512 * 1024; 修正为: SD_cardInfo.CardCapacity = (uint64_t)(SD_cardInfo.SD_csd.DeviceSize + 1) * 512 * 1024; 2022/05/11 CSL\SWM341_StdPeriph_Driver\SWM341_usbh.c 文件中,USBH_HW_Init() 定义中,将: USBD->DEVCR = (0 << USBD_DEVCR_DEVICE_Pos) | // 主机模式 (1 << USBD_DEVCR_CSRDONE_Pos); 修改为: USBD->DEVCR = (0 << USBD_DEVCR_DEVICE_Pos) | // 主机模式 (3 << USBD_DEVCR_SPEED_Pos) | (1 << USBD_DEVCR_CSRDONE_Pos); 同时删除 USBH_GetDeviceSpeed() 中对 USBD->DEVCR 的修改,解决上电时 USB Host 错误识别到 USB Device 插入的问题。 2022/05/24 CSL\SWM341_StdPeriph_Driver\SWM341_port.h 文件中,添加定义: #define PORTA_PIN6_XTAL32_OUT 15 #define PORTA_PIN7_XTAL32_IN 15 CSL\CMSIS\DeviceSupport\SWM341.h 文件中,SYS->HRCCR 寄存器删除 LDOON 位定义 2022/05/31 CSL\SWM341_StdPeriph_Driver\SWM341_can.c 文件中,CAN_SetBaudrate() 定义中,将: uint32_t brp = SystemCoreClock/2/baudrate/(1 + (CAN_bs1 + 1) + (CAN_bs2 + 1)) - 1; 修正为: uint32_t brp = (SystemCoreClock/2)/2/baudrate/(1 + (CAN_bs1 + 1) + (CAN_bs2 + 1)) - 1; 2022/06/13 CSL\SWM341_UsbHost_Lib\MSC\usbh_msc_scsi.c 文件中,将: #define DATLEN_REQUEST_SENSE 63 修改为: #define DATLEN_REQUEST_SENSE 18 USBH_MSC_RequestSense() 函数中,将: USBH_CBWData.CBWCBLength = 10; 修改为: USBH_CBWData.CBWCBLength = 6; 删除“USBH_BOTXfer.MSCStateBkp = USBH_BOTXfer.MSCState;” 解决 Test Unit Ready 出错执行 Request Sense 后,一直重复执行 Request Sense 无法退出问题 2022/06/15 CSL\CMSIS\DeviceSupport\SWM341.h 文件中,SYS_TypeDef 定义中,USBPHYCR 寄存器添加 OPMODE 位定义 CSL\CMSIS\DeviceSupport\system_SWM341.c 文件中,SystemInit() 函数中,添加: SYS->USBPHYCR &= ~SYS_USBPHYCR_OPMODE_Msk; SYS->USBPHYCR |= (1 << SYS_USBPHYCR_OPMODE_Pos); //Non-Driving, DP Pull-Up disable CSL\SWM341_StdPeriph_Driver\SWM341_usbd.c 文件中,USBD_Init() 函数中,添加: SYS->USBPHYCR &= ~SYS_USBPHYCR_OPMODE_Msk; SYS->USBPHYCR |= (0 << SYS_USBPHYCR_OPMODE_Pos); //Normal Operation 2022/06/16 CSL\SWM341_StdPeriph_Driver\SWM341_usbd.c 文件中,USBD_Init() 函数中,添加: SYS->USBCR = 0; for(int i = 0; i < CyclesPerUs; i++) __NOP(); CSL\SWM341_StdPeriph_Driver\SWM341_usbh.c 文件中,USBH_HW_Init() 函数中,添加: SYS->USBCR = 0; for(int i = 0; i < CyclesPerUs; i++) __NOP(); USBH->CR = USBH_CR_FLUSHFF_Msk; 2022/06/17 CSL\SWM341_StdPeriph_Driver\SWM341_uart.c 文件中,UART_SetBaudrate() 函数中,将: UARTx->BAUD &= ~UART_BAUD_BAUD_Msk; 修正为: UARTx->BAUD &= ~(UART_BAUD_BAUD_Msk | UART_BAUD_FRAC_Msk); 2022/06/20 CSL\SWM341_StdPeriph_Driver\SWM341_sdio.c 文件中,SDIO_Init() 函数中,添加: SD_cardInfo.CardBlockSize = 512; 2022/06/28 CSL\CMSIS\DeviceSupport\SWM341.h 文件中,SYS_TypeDef 定义中,USBPHYCR 寄存器添加 IDEN、XCVR、PLLEN 位定义 CSL\SWM341_StdPeriph_Driver\SWM341_sdram.c 文件中,添加 SDRAM_Enable()、SDRAM_Disable() 函数定义 2022/06/30 CSL\SWM341_StdPeriph_Driver\SWM341_sfc.c 文件中 由于 SFC 硬件忙查询时长最大只有 128 ms,而 Flash 的扇区擦、块擦、片擦最大时长分别为 400 ms、800 ms、80 s,因此擦除函数 SFC_Erase()、SFC_EraseEx() 不再使用硬件忙查询 函数 SFC_Init() 中,将硬件忙查询间隔由 1 ms 改为 0.2 ms,可减小 SFC_Write() 的等待时间