Browse Source

修改stm32驱动库:
1.修改drv_flash_l4.c文件中stm32_onchip_flash定义的blk_size字段,由原来2048改为FLASH_PAGE_SIZE,以增强芯片适应性.
2.修改drv_usbd.c文件中stm_usbd_register函数,增加支持RT_USING_DEVICE_OPS配置.

qiyongzhong0 5 years ago
parent
commit
5c15fd615d

+ 1 - 1
bsp/stm32/libraries/HAL_Drivers/drv_flash/drv_flash_l4.c

@@ -270,7 +270,7 @@ static int fal_flash_read(long offset, rt_uint8_t *buf, size_t size);
 static int fal_flash_write(long offset, const rt_uint8_t *buf, size_t size);
 static int fal_flash_erase(long offset, size_t size);
 
-const struct fal_flash_dev stm32_onchip_flash = { "onchip_flash", STM32_FLASH_START_ADRESS, STM32_FLASH_SIZE, 2048, {NULL, fal_flash_read, fal_flash_write, fal_flash_erase} };
+const struct fal_flash_dev stm32_onchip_flash = { "onchip_flash", STM32_FLASH_START_ADRESS, STM32_FLASH_SIZE, FLASH_PAGE_SIZE, {NULL, fal_flash_read, fal_flash_write, fal_flash_erase} };
 
 static int fal_flash_read(long offset, rt_uint8_t *buf, size_t size)
 {

+ 16 - 0
bsp/stm32/libraries/HAL_Drivers/drv_usbd.c

@@ -239,11 +239,27 @@ const static struct udcd_ops _udc_ops =
     _wakeup,
 };
 
+#ifdef RT_USING_DEVICE_OPS
+const static struct rt_device_ops _ops =
+{
+    _init,
+    RT_NULL,
+    RT_NULL,
+    RT_NULL,
+    RT_NULL,
+    RT_NULL,
+};
+#endif
+
 int stm_usbd_register(void)
 {
     rt_memset((void *)&_stm_udc, 0, sizeof(struct udcd));
     _stm_udc.parent.type = RT_Device_Class_USBDevice;
+#ifdef RT_USING_DEVICE_OPS
+    _stm_udc.parent.ops = &_ops;
+#else
     _stm_udc.parent.init = _init;
+#endif
     _stm_udc.parent.user_data = &_stm_pcd;
     _stm_udc.ops = &_udc_ops;
     /* Register endpoint infomation */