From 16763ccd9dba313ac4b756f7a7807b6dc448b11d Mon Sep 17 00:00:00 2001 From: Msq001 Date: Wed, 31 Jul 2019 18:54:48 +0800 Subject: [PATCH] clean up frame, add TFT35 V2.0 --- .../BIGTREE_TFT24_V1.1.21.bin | Bin 84452 -> 0 bytes .../BIGTREE_TFT24_V1.1.22.bin | Bin 0 -> 80580 bytes .../BIQU_TFT28_V1.0.21.bin | Bin 70028 -> 0 bytes .../BIQU_TFT28_V1.0.22.bin | Bin 0 -> 65328 bytes .../BIQU_TFT35_APP1_V2.0.22.bin | Bin 0 -> 70004 bytes .../BIQU_TFT35_V1.0.21.bin | Bin 69932 -> 0 bytes .../BIQU_TFT35_V1.0.22.bin | Bin 0 -> 65288 bytes .../BIQU_TFT35_V1.1.21.bin | Bin 69932 -> 0 bytes .../BIQU_TFT35_V1.1.22.bin | Bin 0 -> 65288 bytes .../BIQU_TFT35_V1.2.21.bin | Bin 69836 -> 0 bytes .../BIQU_TFT35_V1.2.22.bin | Bin 0 -> 65192 bytes .../Libraries/cmsis/{ => Core-CM3}/core_cm3.c | 0 .../Libraries/cmsis/{ => Core-CM3}/core_cm3.h | 0 .../cmsis/{ => stm32f10x}/stm32f10x.h | 0 .../cmsis/{ => stm32f10x}/system_stm32f10x.c | 0 .../cmsis/{ => stm32f10x}/system_stm32f10x.h | 0 .../fwlib/{ => stm32f10x}/inc/misc.h | 0 .../fwlib/{ => stm32f10x}/inc/stm32f10x_adc.h | 0 .../fwlib/{ => stm32f10x}/inc/stm32f10x_bkp.h | 0 .../fwlib/{ => stm32f10x}/inc/stm32f10x_can.h | 0 .../fwlib/{ => stm32f10x}/inc/stm32f10x_cec.h | 0 .../fwlib/{ => stm32f10x}/inc/stm32f10x_crc.h | 0 .../fwlib/{ => stm32f10x}/inc/stm32f10x_dac.h | 0 .../{ => stm32f10x}/inc/stm32f10x_dbgmcu.h | 0 .../fwlib/{ => stm32f10x}/inc/stm32f10x_dma.h | 0 .../{ => stm32f10x}/inc/stm32f10x_exti.h | 0 .../{ => stm32f10x}/inc/stm32f10x_flash.h | 0 .../{ => stm32f10x}/inc/stm32f10x_fsmc.h | 0 .../{ => stm32f10x}/inc/stm32f10x_gpio.h | 0 .../fwlib/{ => stm32f10x}/inc/stm32f10x_i2c.h | 0 .../{ => stm32f10x}/inc/stm32f10x_iwdg.h | 0 .../fwlib/{ => stm32f10x}/inc/stm32f10x_pwr.h | 0 .../fwlib/{ => stm32f10x}/inc/stm32f10x_rcc.h | 0 .../fwlib/{ => stm32f10x}/inc/stm32f10x_rtc.h | 0 .../{ => stm32f10x}/inc/stm32f10x_sdio.h | 0 .../fwlib/{ => stm32f10x}/inc/stm32f10x_spi.h | 0 .../fwlib/{ => stm32f10x}/inc/stm32f10x_tim.h | 0 .../{ => stm32f10x}/inc/stm32f10x_usart.h | 0 .../{ => stm32f10x}/inc/stm32f10x_wwdg.h | 0 .../fwlib/{ => stm32f10x}/src/misc.c | 0 .../fwlib/{ => stm32f10x}/src/stm32f10x_adc.c | 0 .../fwlib/{ => stm32f10x}/src/stm32f10x_bkp.c | 0 .../fwlib/{ => stm32f10x}/src/stm32f10x_can.c | 0 .../fwlib/{ => stm32f10x}/src/stm32f10x_cec.c | 0 .../fwlib/{ => stm32f10x}/src/stm32f10x_crc.c | 0 .../fwlib/{ => stm32f10x}/src/stm32f10x_dac.c | 0 .../{ => stm32f10x}/src/stm32f10x_dbgmcu.c | 0 .../fwlib/{ => stm32f10x}/src/stm32f10x_dma.c | 0 .../{ => stm32f10x}/src/stm32f10x_exti.c | 0 .../{ => stm32f10x}/src/stm32f10x_flash.c | 0 .../{ => stm32f10x}/src/stm32f10x_fsmc.c | 0 .../{ => stm32f10x}/src/stm32f10x_gpio.c | 0 .../fwlib/{ => stm32f10x}/src/stm32f10x_i2c.c | 0 .../{ => stm32f10x}/src/stm32f10x_iwdg.c | 0 .../fwlib/{ => stm32f10x}/src/stm32f10x_pwr.c | 0 .../fwlib/{ => stm32f10x}/src/stm32f10x_rcc.c | 0 .../fwlib/{ => stm32f10x}/src/stm32f10x_rtc.c | 0 .../{ => stm32f10x}/src/stm32f10x_sdio.c | 0 .../fwlib/{ => stm32f10x}/src/stm32f10x_spi.c | 0 .../fwlib/{ => stm32f10x}/src/stm32f10x_tim.c | 0 .../{ => stm32f10x}/src/stm32f10x_usart.c | 0 .../{ => stm32f10x}/src/stm32f10x_wwdg.c | 0 .../fwlib/{ => stm32f10x}/stm32f10x_conf.h | 0 TFT/src/User/API/LCD_Encoder.c | 26 +- TFT/src/User/API/Language/Language.h | 2 +- TFT/src/User/API/Language/language_jp.h | 26 +- TFT/src/User/API/UI/ST7920_Simulator.c | 6 +- TFT/src/User/API/UI/touch_process.c | 51 +- TFT/src/User/API/UI/ui_draw.c | 94 +- TFT/src/User/API/boot.c | 4 +- TFT/src/User/API/boot.h | 9 - TFT/src/User/API/coordinate.h | 2 +- TFT/src/User/API/extend.c | 38 + TFT/src/User/API/extend.h | 10 + TFT/src/User/API/flashStore.c | 66 +- TFT/src/User/API/flashStore.h | 2 +- TFT/src/User/API/interfaceCmd.c | 18 +- TFT/src/User/API/parseACK.c | 6 +- TFT/src/User/Fatfs/diskio.c | 18 +- TFT/src/User/Fatfs/ffconf.h | 2 +- TFT/src/User/Fatfs/myfatfs.c | 24 +- TFT/src/User/Hal/{lcd.c => LCD_Init.c} | 207 +-- TFT/src/User/Hal/LCD_Init.h | 18 + TFT/src/User/Hal/STM32Fxx_Pins.h | 207 +++ .../Class/MSC/inc/usbh_msc_bot.h | 0 .../Class/MSC/inc/usbh_msc_core.h | 0 .../Class/MSC/inc/usbh_msc_scsi.h | 0 .../Class/MSC/src/usbh_msc_bot.c | 0 .../Class/MSC/src/usbh_msc_core.c | 0 .../Class/MSC/src/usbh_msc_scsi.c | 0 .../Core/inc/usbh_core.h | 0 .../Core/inc/usbh_def.h | 0 .../Core/inc/usbh_hcs.h | 0 .../Core/inc/usbh_ioreq.h | 0 .../Core/inc/usbh_stdreq.h | 0 .../Core/src/usbh_core.c | 0 .../Core/src/usbh_hcs.c | 0 .../Core/src/usbh_ioreq.c | 0 .../Core/src/usbh_stdreq.c | 0 .../STM32_USB_HOST_Library/Release_Notes.html | 0 .../STM32_USB_HOST_Library/Usr/inc/usb_conf.h | 2 +- .../STM32_USB_HOST_Library/Usr/inc/usb_log.h | 0 .../Usr/inc/usbh_conf.h | 0 .../STM32_USB_HOST_Library/Usr/inc/usbh_usr.h | 0 .../STM32_USB_HOST_Library/Usr/src/usb_bsp.c | 24 +- .../STM32_USB_HOST_Library/Usr/src/usbh_usr.c | 6 +- .../STM32_USB_OTG_Driver/Release_Notes.html | 0 .../STM32_USB_OTG_Driver/inc/usb_bsp.h | 0 .../STM32_USB_OTG_Driver/inc/usb_core.h | 0 .../STM32_USB_OTG_Driver/inc/usb_defines.h | 0 .../STM32_USB_OTG_Driver/inc/usb_hcd.h | 0 .../STM32_USB_OTG_Driver/inc/usb_hcd_int.h | 0 .../STM32_USB_OTG_Driver/inc/usb_regs.h | 0 .../STM32_USB_OTG_Driver/src/usb_core.c | 0 .../STM32_USB_OTG_Driver/src/usb_hcd.c | 0 .../STM32_USB_OTG_Driver/src/usb_hcd_int.c | 0 TFT/src/User/Hal/sd.c | 28 +- TFT/src/User/Hal/sd.h | 9 +- TFT/src/User/Hal/spi.c | 133 -- TFT/src/User/Hal/stm32f10x/GPIO_Init.c | 56 + TFT/src/User/Hal/stm32f10x/GPIO_Init.h | 28 + TFT/src/User/Hal/stm32f10x/STM32_Flash.c | 27 + TFT/src/User/Hal/stm32f10x/STM32_Flash.h | 9 + TFT/src/User/Hal/{ => stm32f10x}/Serial.c | 0 TFT/src/User/Hal/{ => stm32f10x}/Serial.h | 0 TFT/src/User/Hal/stm32f10x/lcd.c | 185 +++ TFT/src/User/Hal/{ => stm32f10x}/lcd.h | 15 +- TFT/src/User/Hal/stm32f10x/lcd_dma.c | 96 ++ TFT/src/User/Hal/stm32f10x/lcd_dma.h | 9 + TFT/src/User/Hal/stm32f10x/sdio_sdcard.c | 1307 +++++++++++++++++ TFT/src/User/Hal/stm32f10x/sdio_sdcard.h | 378 +++++ TFT/src/User/Hal/stm32f10x/spi.c | 97 ++ TFT/src/User/Hal/{ => stm32f10x}/spi.h | 2 +- TFT/src/User/Hal/{ => stm32f10x}/spi_slave.c | 45 +- TFT/src/User/Hal/{ => stm32f10x}/spi_slave.h | 0 TFT/src/User/Hal/stm32f10x/usart.c | 111 ++ TFT/src/User/Hal/{ => stm32f10x}/usart.h | 0 TFT/src/User/Hal/sw_spi.c | 109 +- TFT/src/User/Hal/sw_spi.h | 28 +- TFT/src/User/Hal/usart.c | 120 -- TFT/src/User/Hal/xpt2046.c | 20 +- TFT/src/User/Menu/BabyStep.c | 4 +- TFT/src/User/Menu/Mode.c | 10 +- TFT/src/User/Menu/Popup.c | 13 +- TFT/src/User/Menu/Popup.h | 2 +- TFT/src/User/Menu/PowerFailed.c | 16 +- TFT/src/User/Menu/PowerFailed.h | 2 +- TFT/src/User/Menu/Print.c | 8 +- TFT/src/User/Menu/Printing.c | 11 +- TFT/src/User/Menu/Printing.h | 2 +- TFT/src/User/Menu/Settings.c | 12 +- TFT/src/User/Menu/menu.c | 18 +- TFT/src/User/delay.c | 2 +- TFT/src/User/includes.h | 5 +- TFT/src/User/main.c | 19 +- TFT/src/User/variants.h | 183 ++- buildroot/boards/STM32F207VC.json | 51 + buildroot/ldscripts/stm32f10x_0x3000_iap.ld | 170 +++ ...EE_TFT35_V1.ld => stm32f10x_0x6000_iap.ld} | 0 buildroot/ldscripts/stm32f2xx_0x8000_iap.ld | 170 +++ buildroot/scripts/stm32f10x_0x3000_iap.py | 8 + .../{iap.py => stm32f10x_0x6000_iap.py} | 2 +- platformio.ini | 98 +- 163 files changed, 3426 insertions(+), 1060 deletions(-) delete mode 100644 Copy to SD Card root directory to update/BIGTREE_TFT24_V1.1.21.bin create mode 100644 Copy to SD Card root directory to update/BIGTREE_TFT24_V1.1.22.bin delete mode 100644 Copy to SD Card root directory to update/BIQU_TFT28_V1.0.21.bin create mode 100644 Copy to SD Card root directory to update/BIQU_TFT28_V1.0.22.bin create mode 100644 Copy to SD Card root directory to update/BIQU_TFT35_APP1_V2.0.22.bin delete mode 100644 Copy to SD Card root directory to update/BIQU_TFT35_V1.0.21.bin create mode 100644 Copy to SD Card root directory to update/BIQU_TFT35_V1.0.22.bin delete mode 100644 Copy to SD Card root directory to update/BIQU_TFT35_V1.1.21.bin create mode 100644 Copy to SD Card root directory to update/BIQU_TFT35_V1.1.22.bin delete mode 100644 Copy to SD Card root directory to update/BIQU_TFT35_V1.2.21.bin create mode 100644 Copy to SD Card root directory to update/BIQU_TFT35_V1.2.22.bin rename TFT/src/Libraries/cmsis/{ => Core-CM3}/core_cm3.c (100%) rename TFT/src/Libraries/cmsis/{ => Core-CM3}/core_cm3.h (100%) rename TFT/src/Libraries/cmsis/{ => stm32f10x}/stm32f10x.h (100%) rename TFT/src/Libraries/cmsis/{ => stm32f10x}/system_stm32f10x.c (100%) rename TFT/src/Libraries/cmsis/{ => stm32f10x}/system_stm32f10x.h (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/inc/misc.h (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/inc/stm32f10x_adc.h (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/inc/stm32f10x_bkp.h (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/inc/stm32f10x_can.h (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/inc/stm32f10x_cec.h (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/inc/stm32f10x_crc.h (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/inc/stm32f10x_dac.h (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/inc/stm32f10x_dbgmcu.h (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/inc/stm32f10x_dma.h (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/inc/stm32f10x_exti.h (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/inc/stm32f10x_flash.h (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/inc/stm32f10x_fsmc.h (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/inc/stm32f10x_gpio.h (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/inc/stm32f10x_i2c.h (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/inc/stm32f10x_iwdg.h (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/inc/stm32f10x_pwr.h (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/inc/stm32f10x_rcc.h (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/inc/stm32f10x_rtc.h (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/inc/stm32f10x_sdio.h (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/inc/stm32f10x_spi.h (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/inc/stm32f10x_tim.h (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/inc/stm32f10x_usart.h (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/inc/stm32f10x_wwdg.h (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/src/misc.c (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/src/stm32f10x_adc.c (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/src/stm32f10x_bkp.c (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/src/stm32f10x_can.c (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/src/stm32f10x_cec.c (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/src/stm32f10x_crc.c (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/src/stm32f10x_dac.c (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/src/stm32f10x_dbgmcu.c (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/src/stm32f10x_dma.c (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/src/stm32f10x_exti.c (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/src/stm32f10x_flash.c (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/src/stm32f10x_fsmc.c (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/src/stm32f10x_gpio.c (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/src/stm32f10x_i2c.c (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/src/stm32f10x_iwdg.c (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/src/stm32f10x_pwr.c (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/src/stm32f10x_rcc.c (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/src/stm32f10x_rtc.c (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/src/stm32f10x_sdio.c (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/src/stm32f10x_spi.c (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/src/stm32f10x_tim.c (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/src/stm32f10x_usart.c (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/src/stm32f10x_wwdg.c (100%) rename TFT/src/Libraries/fwlib/{ => stm32f10x}/stm32f10x_conf.h (100%) create mode 100644 TFT/src/User/API/extend.c create mode 100644 TFT/src/User/API/extend.h rename TFT/src/User/Hal/{lcd.c => LCD_Init.c} (51%) create mode 100644 TFT/src/User/Hal/LCD_Init.h create mode 100644 TFT/src/User/Hal/STM32Fxx_Pins.h rename TFT/src/User/{ => Hal}/STM32_USB_HOST_Library/Class/MSC/inc/usbh_msc_bot.h (100%) rename TFT/src/User/{ => Hal}/STM32_USB_HOST_Library/Class/MSC/inc/usbh_msc_core.h (100%) rename TFT/src/User/{ => Hal}/STM32_USB_HOST_Library/Class/MSC/inc/usbh_msc_scsi.h (100%) rename TFT/src/User/{ => Hal}/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_bot.c (100%) rename TFT/src/User/{ => Hal}/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_core.c (100%) rename TFT/src/User/{ => Hal}/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_scsi.c (100%) rename TFT/src/User/{ => Hal}/STM32_USB_HOST_Library/Core/inc/usbh_core.h (100%) rename TFT/src/User/{ => Hal}/STM32_USB_HOST_Library/Core/inc/usbh_def.h (100%) rename TFT/src/User/{ => Hal}/STM32_USB_HOST_Library/Core/inc/usbh_hcs.h (100%) rename TFT/src/User/{ => Hal}/STM32_USB_HOST_Library/Core/inc/usbh_ioreq.h (100%) rename TFT/src/User/{ => Hal}/STM32_USB_HOST_Library/Core/inc/usbh_stdreq.h (100%) rename TFT/src/User/{ => Hal}/STM32_USB_HOST_Library/Core/src/usbh_core.c (100%) rename TFT/src/User/{ => Hal}/STM32_USB_HOST_Library/Core/src/usbh_hcs.c (100%) rename TFT/src/User/{ => Hal}/STM32_USB_HOST_Library/Core/src/usbh_ioreq.c (100%) rename TFT/src/User/{ => Hal}/STM32_USB_HOST_Library/Core/src/usbh_stdreq.c (100%) rename TFT/src/User/{ => Hal}/STM32_USB_HOST_Library/Release_Notes.html (100%) rename TFT/src/User/{ => Hal}/STM32_USB_HOST_Library/Usr/inc/usb_conf.h (96%) rename TFT/src/User/{ => Hal}/STM32_USB_HOST_Library/Usr/inc/usb_log.h (100%) rename TFT/src/User/{ => Hal}/STM32_USB_HOST_Library/Usr/inc/usbh_conf.h (100%) rename TFT/src/User/{ => Hal}/STM32_USB_HOST_Library/Usr/inc/usbh_usr.h (100%) rename TFT/src/User/{ => Hal}/STM32_USB_HOST_Library/Usr/src/usb_bsp.c (88%) rename TFT/src/User/{ => Hal}/STM32_USB_HOST_Library/Usr/src/usbh_usr.c (95%) rename TFT/src/User/{ => Hal}/STM32_USB_OTG_Driver/Release_Notes.html (100%) rename TFT/src/User/{ => Hal}/STM32_USB_OTG_Driver/inc/usb_bsp.h (100%) rename TFT/src/User/{ => Hal}/STM32_USB_OTG_Driver/inc/usb_core.h (100%) rename TFT/src/User/{ => Hal}/STM32_USB_OTG_Driver/inc/usb_defines.h (100%) rename TFT/src/User/{ => Hal}/STM32_USB_OTG_Driver/inc/usb_hcd.h (100%) rename TFT/src/User/{ => Hal}/STM32_USB_OTG_Driver/inc/usb_hcd_int.h (100%) rename TFT/src/User/{ => Hal}/STM32_USB_OTG_Driver/inc/usb_regs.h (100%) rename TFT/src/User/{ => Hal}/STM32_USB_OTG_Driver/src/usb_core.c (100%) rename TFT/src/User/{ => Hal}/STM32_USB_OTG_Driver/src/usb_hcd.c (100%) rename TFT/src/User/{ => Hal}/STM32_USB_OTG_Driver/src/usb_hcd_int.c (100%) delete mode 100644 TFT/src/User/Hal/spi.c create mode 100644 TFT/src/User/Hal/stm32f10x/GPIO_Init.c create mode 100644 TFT/src/User/Hal/stm32f10x/GPIO_Init.h create mode 100644 TFT/src/User/Hal/stm32f10x/STM32_Flash.c create mode 100644 TFT/src/User/Hal/stm32f10x/STM32_Flash.h rename TFT/src/User/Hal/{ => stm32f10x}/Serial.c (100%) rename TFT/src/User/Hal/{ => stm32f10x}/Serial.h (100%) create mode 100644 TFT/src/User/Hal/stm32f10x/lcd.c rename TFT/src/User/Hal/{ => stm32f10x}/lcd.h (82%) create mode 100644 TFT/src/User/Hal/stm32f10x/lcd_dma.c create mode 100644 TFT/src/User/Hal/stm32f10x/lcd_dma.h create mode 100644 TFT/src/User/Hal/stm32f10x/sdio_sdcard.c create mode 100644 TFT/src/User/Hal/stm32f10x/sdio_sdcard.h create mode 100644 TFT/src/User/Hal/stm32f10x/spi.c rename TFT/src/User/Hal/{ => stm32f10x}/spi.h (87%) rename TFT/src/User/Hal/{ => stm32f10x}/spi_slave.c (72%) rename TFT/src/User/Hal/{ => stm32f10x}/spi_slave.h (100%) create mode 100644 TFT/src/User/Hal/stm32f10x/usart.c rename TFT/src/User/Hal/{ => stm32f10x}/usart.h (100%) delete mode 100644 TFT/src/User/Hal/usart.c create mode 100644 buildroot/boards/STM32F207VC.json create mode 100644 buildroot/ldscripts/stm32f10x_0x3000_iap.ld rename buildroot/ldscripts/{BIGTREE_TFT35_V1.ld => stm32f10x_0x6000_iap.ld} (100%) create mode 100644 buildroot/ldscripts/stm32f2xx_0x8000_iap.ld create mode 100644 buildroot/scripts/stm32f10x_0x3000_iap.py rename buildroot/scripts/{iap.py => stm32f10x_0x6000_iap.py} (76%) diff --git a/Copy to SD Card root directory to update/BIGTREE_TFT24_V1.1.21.bin b/Copy to SD Card root directory to update/BIGTREE_TFT24_V1.1.21.bin deleted file mode 100644 index 40312b30a024392405aaf50f013c10a191e3df05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84452 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 literal 0 HcmV?d00001 diff --git a/Copy to SD Card root directory to update/BIQU_TFT28_V1.0.21.bin b/Copy to SD Card root directory to update/BIQU_TFT28_V1.0.21.bin deleted file mode 100644 index 2255f66786bf3d45d2a29bdfddc3f205a6423927..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70028 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 z z-tXcu8$jR75QRN6#y}om78~F*+8=#b-d?(EhlaTKc z9IKi+jBN!hFQ?Z3{Hr}bp|YHsbe}bpC!y;$Al{8GgKNqB+^q+_<}Q zy6jX_T;7p3+l{Hpv(}#q`|+%@Q9_kD;EidY0XxHYeP3{UebczNe55C}+ZzXjm1R06 zn{x1YCKHsc+{@M6`;R7A<^0#Yr)^Fz!Y(b49@B764iXQ1ywk+&VcgJlw~Id-#Hx+| z0KW}ro3C(CThaU{Ko&I_zdr{UeM%{<%1PqP8&mLXV`!<%(6wgiQs+{5@7#p5D16?_ zn1UY6Uv&1CyEG-nt~KT5&T>~FY+%ZrzoZ+PXGy1#(jpHEk8)FIZ2wWtG<1JA<@Y%2 zfVMFiBW7~RJq}p64EeeJJeoXL;&-^s)K*;6h$8|_6 zDtOZ;!lS$>(E|Nr}Oq}OxzPPQPt z(@T;>rj_EPxG7%R|D0X=e1mb*?3q}FTFN)gg5{OUG8X+I7rw4u#7yh_ubDQo_sGBx zBsW8C8W53)_wPTx=%K3T%vI2I0(FQzXDyjpoK&@W5$zJ+pH8)TEMTr8?Wai&#XGW^ zi4J*<6k5ju?XEzK#lBi1_SIssueLdiH`w_umUg}s?~?7^Tv3y0K~IDHm1hI*`>Z#v z=0{Siv7K$pF3G-=TAKZHpSfxXdKP);B<~$&Nl!wdkLpZf{swJz*y4$KRf8Qxz_m=W zyn|kbae;Mjziah@p0sU~^H zakh95rks@2k41~nem?E=*Q23pM|^G2unXA*^VHL^elC*FNusjFJy^eEHCHWWuL6D#&{3ev)|!$)YtG1bu(if} zxAYxswfepr*7w~L(s$qWeV2vrSQA+vC6;EuYNs7vmWwhYxMc?1a^KjIIg`>iXKcl) zcuVkRCuuNkMoHcXL~`PgVmyKvD~~A|7t~MWHfdj|z?*(?dzJLUM;AwEXs{{dc z`oFPTlhUL9uh<`hjhNONNg@3R(UwTu3NF(att;!QTN$etggTLOT9~Op-QI%sAFZ`w z_0gC)@`KUH#fyzpi?;-SxPJ95*bUsSjkn+{F%tVNp`%rMjOtH|9R=fRnK|AgHz#^v z9pjA$w{U7~ido@-#>lD|N2<%&qCFPvsKX9Gw-=a9{N%pU{pZvTXoQkR<^icKXe~+o zjn>Cn`2RJomYd^I8`*u~HL&+Ju2Le#RP5H$cUzGQrj^=*z9U^rA13{!L}VBsV|W(@9Ll**b;vD zkq-%8$f9z@A$P z1h2nH2Y(~s>3Z9Zgi5RlVU?Un)*d6E<{seD|DRgr`_n++#;}DsqR9;6D;nyF-}Iq{KT{q z?RhbEy-j&xbNX7_S13J|m`cAE`k`BFds`D>m5eer%U-jlUru)x&PlHh-r!TQx@2_}5(dgYge2KcP$IODT{}OH)*Z2)df`rEehb| zv32d~(p>V#Y%}XIR&H-s!7~}zoIrni3jEUm0WB(5)dtJ5HpRYVyIfRccKVjVi=(D( zI50n6beEf}JlW>&V99;Px61sKr^;O6`L$W_u29FfnmP68Y@pMhzQ$}WhAuU8w)8t!;q zjH{n3<}t&-6^(1_5=3cFm(k@FcMGrh>H8vXD!y+B9qm*l5XuB0=c}T_g=Ktn%nxa` z)84(LgH9x+(k;vtDMUB$0IGw*oAO`=7MQ4&nCrf1!-#>okfo8G-egW;|D$ijK&_$M z7rPr}F@EJUyA-31mF%eXxXK*}%y-m&bW0q!+K2DWf{##p7yAz0WZW%Z zjF&041crfME~vU$;}0{<>`vLcWGRdN%?^1(<#g+fLD+dD4uEv{Rq!wYZ0o&o(CSxP zZV8oQbjj%o!iGP+1U7>!HICPx&wM_8UF~KYY|U%ek{@`M{J=~61=;eTM_OYX+UATG zE~pdFMwjYbkYYGPumux^iK5X(u^j4jmnq=G#^_`n>Fdx3@r@hf3Gzl4&1-Zmqn%V2 zR_&0vi~Wz!`*}6RQGc3on&4q)a?eIq9)gA)| zp#vDaWk6l!WRT-C@J>URy#9!fo7_UrZ1@L@9ZXnqms45(q2QpBWS5pJXeoE509%aY zm@L2W!`;}q*1MLb*4WtAbk{=HoK%Ce+^GOoMKZU*72WuzEpRT)H9xi97UM;!?ekOD z+0vZfc(txMxJz>`aJKnm=VFa!=NX^QrB8*YlGa4Li%Qi)qk56^Z$6s$HlXa4%_lRn zdAU+EI(FE&*4S)jn2KXByknE&>jEdA5W}I_&6Xz+M-$Thuvop#cpZ zO)SjJ^2Qo194uHcr(X8OxE5xlo{2FhoQrXOm3nfP1(KG|05Gc=<3Js+W=^D^_AIb{ zKg;8DxL&gLZ!LEwJ7a;56U!C5zVdyVnFU2WBr zf34w+&|Q5a01qi%qf6dMzMl?*KE)q?jAy1Y&95~K+$XD6RjaoswrGl?isy<7vvLdL zlD)&$uzYkFva!1K%FKq_{gc{WBMXP+@PL(GwJ38!3p)`lYDNnJui20GHNq`~El0oHzfP?Vhj7E&7 zHKVwLHo?RDVlW@#dmVo)mFtlZLlU@Z)L0hqI^sB5i6(kJzZpIEMCS@Q(8w+^Ss6-s z=bC$!-PV2v&J1esAn1D>=uNI9wZ#y`AJN0Xz@ypKupW}5cy7SfOq4k-0ADDsE?~cc z0!JyZ2gO8ZypmCuUKN*@-xifO<`k2659aH*nvB=YRTg;Zc+b6}YCdRZm3g^0u1@wU zTa&quso7jIa9_qd^U*r}!dmz#QgKR;YN#3hQ`pfN+v92m)Ikcszx8}v-4Bf=Ty!T> zsO8c)J+1owXwK{B8J4H;=<>dVH_eQiRv)AQTNh+zY+Z<&_{2M)F5?yY`uXQexVhZ- z*vI+VmsvZZakPHWUY38UH*@EF)K19HPErh2VPydH4SC9dX!vg*R6A1rm$M~2Q}VHI zU@h)zWH$LRIH%zh7J-s1r_TXwWTU6WC# z+ODZlY|q%Cu6n!EB0q;YBKMquYlGgfjDG}s@*^Qpn~0rm#cRsyhfq7y%qiZi7Hx|f z<$lA17J6e0YC{QnGm$ZznirS3DOx{=zrA9MWRBrM)R0 zbEHg@$K2pIWYlW5LQh<$;0|?K;+amCP4YzBqjU5e)1iocX~} zv>raMufV3usH|BFbZ|EI5XyY0>IGagv1DU=26F<#@M|*a9?Z;mm2&B)T&guArrdh& zAj%S-Q5S{Uj=aS^Jd{Nxj6D~%b4|Ktg#FgwT_{9PxdO-O>v4H=aik&(Q)jxTK`3J$mg`_~>}^lCyM*P?$uME3y9@r#i6^iCeX9%dkpwBuvzOF$&}Y}|uoLaD-mC@o zO@chyQ(jyG?BNrvw=ZV96!SPfLGzU7NO$cT$0gK;<|L3iPl`GmscwUj>gQW=(Jn$W z)JQo^IuIFu_lPQK98M4w(s_)ikDC@xBg;GBh||Y$Ge^Lo{@KarYzwQi&SH6!8}Ja7h}yUUdz2`+t#+L+nxBL?f0np z@c3`V*Xm{X0`o`B>UP3gQhBg@P8=NS^}`_W;zpNUcWJ)z{p9(glhL5&WYL}!tm5Sz zpU7u(k#JtA<{m^|&U=n@4o=AW|EM|CUNqI*5{!i}Fc$ufBgqci0i5SQ02@mjG(KQ^ z^DM)N;c)opH9#Sfr?x(f5-V$F6aAh+t;pO=UK=T~vhKsiFYn9-vpMah!Dj1C?b=c1 zHY#C0wb<9VTJ(%=q6|Kh2Q+oDmh=jFXDlnr-^#!; zAvkCsTQd;z15xhz*td(WW%)6IOeuWZ0aj1xg~N(!Sjr;BuMZ4-eNZhkY+q}9UH`iO zq%O)(*6nTW|Jt8BFZO)NXb_n0CvVD0~dL^q3@~d05e>3 zDZek3r~6V_d_Ywj88P308>dpwJHTX}a4B|v>WsyV+#=T7=ADnNyV*iA_6+ZrHp!rqTYSP@2^8)x`vF}W@(F*;XzEmx^e zD?Bu!x`ep_)=0fsGy39H>Kl>%5EXUn>Svv6rYXDED3#r-r+q(K9Z+^Byt)XKoXJk8 zneUsxMRGhqq?TLL_3T0a6$X7())Nk&6tn8B{APD-E#=g9=wL~W?LM!vu88YsoXhQ} znRR5kwW;&WW2tRPai4%^VbMZ6YeTgPX80;jBr7R zFNVA3Tm2!`#89tt=Ui@QNoS+%dNkXJdPuw2*tuxU8e#SU#<(3+;^eiI{MkU+OF>D$ z@e?&*a@TY-)}I|$lH4**}A*io&4DKN65g zia)lFzAb2BiT|rk#Mj#8zXO(B4BAd>#2N`DrGC5D8|m)}wHeA<+kITUgs0afyd3Nj zHj1QC2+cc`z94)%M#{UK#)^s={;(%nTD21Y+a)-#BZc;VPkq-j?73jv{r2Fl%S`L` z(e>NH;cusmzH)FhtyRNeTC?&14*D5%c-DAaWBuBW`#*su(^{5qRn{dRN~k-8K0T-{ z`>uEg2df(?XI(&2V1W3?>biu%VkD2JrBWwVC!^F!%M)tVo&PNVQ#$o7h94`f>LazZ zR;0GSDSRHH{`6E|?Ian0@Wn|fbwRiFPnZG0k=G5VO@?IV-lGqhF>+*6x@`MceF~@C zf}O;p37nD;g(sDDm^Xkedsu}Fpgi7;ZWd+#u1An9)}i3l6}Jx#Z&gB@BW4?U`b~Ibc2`o zt(E!a)E2Ev)50HvM|F$=_$XO8Kx9`8YWYn|Kdf+X_?m6Eyo~v0Z;Df1+2J#DaqUA| zGC3o{VpSxCZMJoLnPHvqZlJGBcAf)WA{;oZXkg>MncK<@LfFZiW(QW`4#-G@I(uPN zGOv;6dxs6p$6nI2RmU=!;fp=m;Za`8P_@?#KiA*N=bOvC+98ir$wo7I@B)q%;$yT* z%xMhX>cQT6Fmuoz@cL2a0d1MwTQ=jR)tPF~hH06nS?^oZ(k`$$Oi*Q|6gzw)xK^Ke zsG{{)=Cf7l;FR}tPL-#b*|xEhzQ^?vTr1jsHR&SJw6Rxwt1~rT1N$$EJ^5x;g(L9|8`GJh7t=te0tECEjF<;Sx{H0rtdH z9D)zBy;(-?FP*yBlU7B3lWhPOcY2^x*{CSk4UbX^84xTnd%P)=Ezz_VF5!<&aj65b z!sNn2QLzxQEIetw>@#vd`s$@xleOu_9dD|f4n%*s5_K^h{>y>$FJ0%re>q7AX-)cK zgRHv$ju)`P#d?GH2IMZZL=1V-x+#q91tMs*+>U-QNnLXu^(8A9OuZt;VtNGnxnIJ9 zmN7l-WozX?=4bi0p(p=qpc0FVLaAg0&X|^Z3b@p&!JNe;?_}kEeA7TUYTcu-(q&_Q z6Ey)SVU{X3pLW3+6Ohml6G8~0@FVG62dVU<^joo!mv zjl`NRf;j(prUu>ue-|zsbfGELJhH96Q!9fE0O(~;^gT12BU;6H=72jv8*AeZk?+3P zR#gs@GmeXqR>U!#Y|IPr;4+ju;Jb%ov#~DZg0zZ?YRvox&TLe`7j2XWWisuAuYDuA z^U&wKnZZs}n~N{Xb}+m>Ky|3(&I98bZ69?4We3Mrt*QCIHu1D#2mB}OBLs7|*0f|g zcH0^L=K$8S&ME01*p^*t%@~i>1jGB`uc@jLsYS0Ibbq3pA1u3H)N7*yvK!H`Mw>g0 zyI97{qA4s|A~eZP{wsIe=A6&vC=X)-j4`ElcTTdi23|H6Y8!m31}SUQwUDz;sxC~!*$M9ey-Ht!&Ai?3x6<@yb9v`tuF%cC28QRjt>TyBDtpB7kpUCyA|pw#yI z+C&9YZ(H$y+WYpfD2}w>s_tPJE>RSW2L8$aAxolWR!H_6@B(5C=T|*|NOI2Z zAK&+!=RC*m=hts_UEg}Uy1MGE>Z)2<;76Lst8AY)E-V;h6;ENTqEE#~8s7>U=>>b4 zO1?Q6xu79oMz->@U)})2Fvs&!T4tp66TVF>zgQg=`JDlufsQ`-hJ9yml4vbW}~AWnsIphIN1J7sVO4;mkD_`}9F0I(ip&UZ=s&_ribC zD!EfB=UU}=2WtGw`ic{rf;*FhJg>hY|A+T9r~|&Kso8FRPv85B#msG@Q5Z43_nJ7& z;?~|9V0%{B9=K#RS5Oxy5vCi6qp^{HnO1 z7uWD7cVDLxeJ|OlrY!Z80DE-z2-TZ=sp&$~y+t`39#ooUxUZqw;?moTpvtA*>J`5hom7024RO>(u%Y2#6DsY54(4s1T*@f=KlF;=wU_u;0g*Yt(!2Y zj>ae=SUn=I)#=Y6MH}Vulj?n}k z)Kpd{B`sJ13ulRbu?*VAaiu<(XO{G{A^Gr4I@`_gwZXKw!Tefr%Hk_n8)FdJk5PAu zC$|{C$_aRjuiiHl!>6f7T~M$L^I?dy@_x$Ve;BTq3HDoMT4>I!Z5f0=mk!_Lqnokf zqi!+V_j#<8j`HVBmX1zlIA$1EoV9qdnWYl!Gt{7M37(P3)^<-&VkVL|`qNKXXrrI^ zRm_B=(JOXA3D^h1si^M}wUnKJ$sOXD@cW7aLn2 zz84o-p2~$JrWQ)Ip-|B@)C z`*_&}b8Kla<{L7*!EJ)!FxI4yiPs%$|M!;HFfVce`|sX4!5b@`Jt>A*66=!#JR5kA zN#=YrcA#|Iu2ElM`y~Anv$C-(l8EO=lk{O%1k14c`WNx^c+~kEZCFG3hFtGZ)X%8l zd#n)$n%{|6X(3@Re7U^d*9)yZoPISE4T@rqM$V0ni$xB6X0ZJx?>vxJv-%TSALN81 z0dq@f^clzR#H$Wj9Q*3MuSdIg_`MqZ32X7Rs7mqzyel>kKb2q9O8;Iu)UwZEY%b!j zXzRFD(hz@9b!dy`R%NTCnP_I;iV063Z@tj|VJlYEw#f%7Dxxs9($>840Y$we8_C-B z1<*T%!`5j2sBC~p2GK!i3qF8+dmJ}}Sq7o@@Z<2!_23%baQA3rq~GZ;Qym6i3ZL?E3{?$Gui8Hy(353%hN* zY&u^*R(3Y*!Va~l!$PLRZ`e(gnwwb7&?`Q_aYhyi<7)9YDn_j4YXbZDvR)(ssO&0M zXbaY~@{O3k5bQT*VAxso7>_n8c@AF(X@si`{oq$vjplA)Z7L7EVfbpK6*bBftVEo6 za2Veb&mmrhfs^`PJ%U|oNbuoCFYiIE-nU}Qe&3=9*Va=v(%6TWBgWuX?zCIk)Sykr3Yuu zd-3u0RCdL|?ES=xcsrcq*}qx+p%qe?XwW)vw)f{_w|u!{w>)RLiz5!u4bY}?gY6vl z6jMaBHLrO<-g6ey&5V1NS1;{X@h=(a2KJ4_9-2Wk=zuZKc&xafDOxAfjW8T;j3Gk| zu_Bv6=Ukz=o!h(GvD}DtYd^*c##przdz=_wG7732jx9~_y~_y&}|k0er($UlLYb z=80DA(FQ)6YvAYCl;Ju%3|f)7cpGmuues-{(`cMe$)sL>78=FjZ6a7l9;?5~@-_Ig z0`q0oVD7EYA@&}iofLM`us zn`m8qsPRUB?>%u;&6?G{Z?CgP*}0HVvxmhRV6wP1=-vK$|JEJU5&Rh42iPZSfSBZ_ zsve3Mi(BO4j8boCqT5txC#mwKy*~0+u=i}V7-adSIiV$gb;#{?DOzVPpTA;|@oC*4 z!*tPP{3)=|FkMeBO&8UeFCm}}^d;sF5g{)y-wGohuHIvsI;gR(n~Nl*S`h7L0id#v$N{_2n5?C+gxuQj8?TW21l> z4MSBb@JhY@(lQKl8^?*z7L4&K4h?&{Vqb&Y)61R&ZrGZ8ZOyheiur&AxgL2*I**NG zma+Y1KFD?LlY&*^Lu4D>H~yt1NfoehxabxP{YhZrMB<#@D$BE%UXts|1k7Pc5(3}Q3x?-kFaT%_80f88;%`|$4?$7<_36S4z0gdwyx5_ zZ|*gqx0zp0hS4kT8)S7eHCiV|tTxENO=OsN#Y@YEg+*frYi?A)fIu_9fz4Pzj-%Z+ zMo!~{hdR-{NcZbmU>4x zzE5gkBmjjU`5?yiy;_gmXx5m$EOK!p+7`Yd>+`K|(PCZmT8x7AE~e4UCdB-nTvNt+ zUz~IwYVPBdyP-eZ*w6Et8TLY6z;?~ht8CX*w78?uIu6+&kF3IewH*779-cr|LG}>y z4KweQ^D;KxAId_Z_VrMdeHM^!4z?)DLhEnjY}6bp%M19)KVZZ(eE?d%iaPu;C4Gxo z96a`^Y*VrF&;IUI3E%mzz^|C|`eWBtpI{vq{c4NW=NR;5!JQ#~u;b10sA1(=OB=P` z-lE6LukXwl+81@tCeeE{aqi9yu1Og>((YM9h7xCK?i^fS%at{1+*Y<|eAIQRL#f>| z^e*O^_?q41*!PGIs}3~xGLSI-azyZa%}PkiI?*#Yt}Y89Kgdnthz{J$o7a%K~?u zbNHG=&He*?3`67;>2Y;t`Tgp^Ro0V_?m;v1Hfq?gQwi9`V`)}1gC(M0!xFjBZj~Q8+?NIIi|@cmgVjG zFNaCQzhsRZ)<8b`EYce1g>i{H6{YR@F0}Ys)AA&jtxm6W8LM+2NpY5k8QF-pZRdr@QZxc$dznG6_Ke^L= zvz^9VGxM8S*=)Lszx6^PP=z9G{pF^wgeW7ebyhbzdJ&mWG_02iVlWK9irnz%zh5z}0N@@NS`svds(2TW* z-O|s_D4Sl$B|o}Gg*6PTT|Oe-$*a?CE42R?&5%} zBy!x9*vXn!`8`_i!ExGtcD1C5Z^HToY}}^_YoFP7lL*=6L^iVoI+C5bA@v?^Wbp91 z=tz0(-aEP0;r4#$|Ff1c9w&~KMnYJ;oY>U-8P+v8?Fhwq(i4-FS~A?ftPl3e`qAMR zsj$&@EwW??3oU6TA{3aRBS`35)@Bz$D-d<{nf5W|(IJbAeRA3j7RvqQ^f2fCu0W^aOeXeE@$T5@W!D zpd-P@0MMs^LBKE|5{L#y0&ze#;`}495_lIV0uBSG0LFI>Pz(G3+ygl5|I{1k3xopG zMZ^m_8W4e*z%zgmNCTDvF9X-LkP~nVxDOEILjm*x`T&7|5*PwR195-`m;fXK^MFM_ zI`9YJRbVx+9@qqI0SbXnfxWYD+h!k)#xJ zhAAzLJY&UWqA@L*B;;fv6UMY`c%GFcEHS28k|W8ajD=P*3lU_%Iw~qgtx^$nj0y*t zVY4E;*+gSZUY?X~$|OmdCVXhbH0x3_JqOW7ZT*4708uJj=7f>CVPswynG-?gMv!^9 z5>=!sDm@*9U1NYK6}yCzm{1r)AxRtZ>yjbTv1B9fON};g7#SH!rkE@lCINy=wq&H{ zWGoV1%t;qq^0oyrfp*w0GG((2WCyt81<|iuXj5F`G<7swg5B6p;3^&x(CE%6Jxvr!F4 zH3t&P5RhWF&6*};n@ycQlb17R8{E<}a}X4T6Zt^&EJiH?STb_jeZz8mrxhM@Mv5uT zRXBwtSLxKUm(^y>wpcUB3>R}LX_k~Ff;B@*)MiQ*Qmxs%SYLRnu$)wUvHLD5tS;PIc#Bje?){ittXf%F{ZjRPvU*j)$K?G?=J{;l z7lj~~3Xc|^B7EA#M?eo3loS-O$JUJr~j@2Z~F?4Bdt>f1wkZ9SGb*}v32VV?TSg2M@ivNEQc5DEZ~>%jEm0-uR%-) zSnkW3oNSybO)wHqP7gRi=FmLrQ?5!5oCc7Pui!TF-^BN+#EV5SmGflE^KImjiTnz?+3 zcv(hqQw%%CwUnpt5r&DO7CCQc;uE+tsW3kh$N5D+J!ClQ6Xn6DdZNsGj9Ir zvf73~E(yW?Z*XA(y9_@!ioPYtgTxHHHWoDsaJdTpyW|G(wTtUh`1ygQ@i&CNiePn+ z4Hy*Wu~@F+mRYfs@L1SGWs<*2iVE6|c(MpUB3yfhw5)otLdQk;?&5)N1 zMb`xgj0xsyQEg-pDe5K?=I>zBH#aWW&mJQOE6dAKo$dXc9H^=KtmGOwxDPehKF7&& za`GP+j-vkB`*}(8@k6BQ?!iiO@XpCgp4=?D-cD;;!;C*?X?+ z(<3_$Rifo|c3Vj^VYS@OOZzSqmy;vSN6OlbCvF_MMlK#K-oK}*aw}mMR9@#w&g|Y- zeDtI66AdS;zGz}OJiCX*RdR^=IM5nI&RwXwTz2w&RprqV$FZuinhVEWE|5S~jjN72 zbz)y5W1TsSC*@nu-6wkrj~|gZJkd~c?LhMvKbBm(V7DJTdjO(g_N;o645x~AUPbB` zYED&=FF)V^17VS|3cNkCeW-Z$9&uGYWgqXpyXPlXk(7OWzGByn@`euc&a=Dkq8;<~ zH}H$A%NqoKS#Hr6%1eJ;zS{bN~h$oN={DUXN2MU}mZ%`7C ze?)WN*+j^9cihOS&10r&by4crkx-ae(sR;`*-*O>X%A`iMXv#~N0a0v-Dskj=4$pJ zx~_-R3hHVBv(zu>X6I@sJ!;v}Z0c&udJo-?&Sq5?ht3vO7dtezy4<;pXm|a}uDuEN zh<$r|>=CxLSLrgl?&&hS?&-4U+dZ&k*DbJQ*DbJUO=F$JM-Hab zd&B}atS!6%ZQ`znWGA(cAKJS5g%9tUslE05h^5q&e#C}!w5%Vom73X)*pQAM!3Cv~PV`;qv%^d-9ZYws6#+7PL%sk#-)#0*V)@9Lq)#0*r1sKB}& zvlmDmxUN>roCp2!cA^@M0P5J`$?2J$=7s1*JaRKUd3m-e64sB}F16ZHe{GwSVNqL6 z>5=F~Kk6NpYB)*`p;@RHp;#6|Q>SRi?95d3K{6JN76c)bOhUIu=&-^^C#W+TFgbjx zb&)l)E4R!tG)uCYGk2aI3!qH5qMM@Y>~P?V&}kM}PDnC3W~19x=aNc%G?_J;SeHEE zi3=3zqshZw8(|>?Vk7~49qG%r5O=-}Ux8(mP!&~EIgO(}bTW;k%VEx?(}P zqD44Ap`T(&u^l-7MnA_{On1@UI7@Kuqx*4wK@ZS_IKQOL^e{a_zoJL!G5R%df|diP z=xN{#IIX3Wyh*>sLL9d!k6&nS<7}ZrXfW5Cj^;dwDSQk!h8xE%3?I+Ma|t*_&XXo_ z@ni*ZGn-?1nZvzB=W*-kv)psse{c)9jnv2`b8pjB&crR`7U5^=cj#g+IXsO^=Q6nW zX(snP_W{k~vXQ$NxTV}OZaMcN_Y(I9E;amR?iKDMx`KO^`-HCKUgzH6{>1%_>Nu81 zJ@*&xP3|pj9k-s_M_=N3@__$^Z{v6HGV%t$ieJsI;fwiR{8v0j^7(xJ7_Z>Jfv>gv zoBUgR4ew8zcu#T=Y?TrPmBfOwdHr*tQCl{1y|m9v!3DW6d;P#WNp zsq8_%P##d0D^Ds{B?ou99exs!1 zsM4)$ zSeSL76M?C~3=$thqKF?+lRhMxcwP({d*+*O#u1V`ewsQ?CCrNmjZ`mW!%6JMWoB10 z1ipu2Y-|{b!Dv|@jFvr#(XzgTy0P}xSO6pbLG<`?$cYEqacsnm9SYpJ!7hyWG=ZiGVliQCh!jMA)~~XK0LjV z^Cyt=9>}>D#w9&*{VhNyV3G~WMa4;c#tE}JsKhVsC4NCAenBOEL1PeTgyeZddmvCL z5U3OgR0;$t1pFan4fO$bjoAb>=YKnx7_$B3y*&aNwy?gVu# zo{u_KnByXIU1XjoiGzetxgrJ@2an-Y8J-P$I&$KUQ-NS{C;}ZN>PeIjLORM6!J7IL z;xN=XA*#JNLAp?eE#}*MO(t208_l-RDV9$7O#9_hTq?Ukms1a9<1e^U_mm z0KJ3zG4wpxhQ1T#8K7H0w}3i9ouKh_E!@w;%?X@`n-e&XD?87_-3j-9w;!0XkXSM- z*~<|`DyL`fx3!&SH8iupF#_mr$LtTTu6cLY`S-_07kykEa(7bPxT4#-2R#ebAH2Kv zoZ^f5p<3&X)FEvO)-#;+||HsJFvK zvU;5x66y#15eSJ;g$cx*HkFtbF4Bt=h$>1QJtAi0sMxp!jaH`@yI2^LQ<6=A)>( zjv?&mxOqrd`8;~aI*)ey1nHo^akxBaq=Wm7gSiV}`~T{Jy@ASF4k`|Qhe@LL>GEuDVO{G3U*BtNnLjM3AiCs_Q?>Y>VN*#ud`S74YztX=k zy%y8y3?ffS`ZqUFzfQeT2=SFPUrY91E&EyPz|I(C-*$C99RLY2G#@b0rWTX!1Q$;Iz&Q7!QWUw2TTQK z0nY-dKv#L8A4%9gKZUUW1o#Xn21fG6%1sz(e-*W5FaQ&9sK*SzQFGBu2dFeT2%S+DvylQ)wO(-KA_wh<%6`7xMtAK`jO7T_PQ5tv`S6z|8sLPv>kQTDtNlC+a1{U4w5;sw#~21zkdUYKKsExSu$v(P-Cq zi^;^m%0Hm#m4nb^#omA)dO(q~ic@~M(U*LEM5G}(2VkLXtUINc`ShP9h~cdsS# z$Bs(hZMU8FuUhrG>w8w+h5TZNkK-DAJipmTNTZL^tKZkpY;u{qlVws_>7#Qh2OL=y zzT`Qa+hVQu7tz#MK3`DbOD*8sE37qs8_#+s@~<5)1*mW)U`R|j$AuDyb3&@ijV`azEmisS0KxI;*Ia4W<#Pb27d%{o1 z_x+T13_2!fp6VDRlXa(-i0gc2Qt7){u$jB>_X)z} z8?(;p<|UpN0^@|Y0nrc=WVGqG_;`{X68cMgJg|B@pc^aYP%6YqXGrF5)R5VG7cgub zaHOhT4Fis3I*;CTtCz_$&BY`-!~LbaRcfDSvR!H$za;$tt?+r7TBqv3^JUs(OgwoegTT00Y=@tQN39@7lgE zzcGSKxHF@pwsH)^b-o>I7Z3EjQYrJ?I^TI+nv0)%_09RubC51iLj15H#AL!pEWSiY z43aPI{*1Wn=p(AD80fn%%a?rHb*?O5>Z)BnUDC67i2QdYzZmmLo$aewZuC{G1Sa#- zVtgxt{A`e9p?hzb`!mDyqcHcWS|--MF#jpO)gOiV+n)zV(_FX8H1VZCRCsNWY}znr zc}O_9&Ub6#_lhLHT5a|HA-l-8YI&va9fQU9?PZm|KhJtKFrsU6y)oE#|D>Kbua5u3 ztK;9^jb0=Pv)kh12(Y8C`qv7_U8nszRgq6vZtrHe0fR((Bk4cn7#Fxc>F+LL0Edh0 z7@)wow73+u~Ck8 z0@|tANWa=H)`sbauh%!QJ}%$t;}X$NKSkQ+<9IeJ7*=>+HlSaE{=V9d&6Xq&YDgB$ z{Lz^%y6BBTcacv`pN;VrniSKylQ5H)7?bkifklVemzGIy-ll_+ zrh#`}!I!XUAmK1Zf@;%%|CJOkG{lW+*yc)^>X?mY?^_h%16XNTa@=msclAuX-*?e&ktwm4UWFAKbvJ4}3?_s4 zSBC42r`&fbLcG0{xVFF^te2h!-Zc^dF0?Zm{9Tlo%3KUS?Y>13{}~MqM0GA|AcngX zF-%;edA{hp|CZMm-Syw{{`_z9-u_x!;L4>8l9cf$lh52gQ2*c&|N0dvy_LSVj5c^L zHs7+9(9@Mh=-V_{2GGXlSSjRTR(Vij5ncD=|J8irT1t{nGI+@+6RyEaJpEO84A#~9 z3=ZdkOw3nv7(UKGpKXfk$RNo&ABe0?=*8TwsPrA07blcp#103!OfsgJz52j}{D*O5Z6X5C4G8C1BGJ`SAY*+r56J zhK;m>Nf;Foi)Fw9N*PQ`?2FM&Tn>D*anpb~Y$cQ7%@pxFF%mZUa_-yYGv0R(=2Oc0 zlm672w_GRFiY#T8BFpQpJFV$?O|XKnu$7hpLJaaI3*#r_Ei5O^mNylpxt3TNq{Z%i z0m>D@%IW<&asn0)mM%ab4erbmYn9(Z+6PHe>Z$gCW0U%n1$tu+<HB={nyWVu3Hd(pSMVkAP9ZWQzI~oXZj$HFV*S zo6VFK!<1mhNNz`NIl02*}?hp}`F21tt@HVRjbLXlqVp3re*);dxOXCLb|CYDUUgNC@9&H+U z{4nFvrUCn5QF_G7(gHZPc%TB`-}ipW_dj}&wr(0&dl*u%Z5p`o@H+V7|Jn9gz_G8+ z?_}7%6~2|Qglsmhb~*h#X>z?cvCwtD?;|@jS4{UZeZYCv`7HS=57P>tAYGLI(O2x7 zC{;^QZxZa<``7GR(*Fx~?c~3)Ywvx-u32D5B9%#}D&?Q^NBk-46JXUy%&O@z^1f-& zQUcYnaj5d3^cz;qN)k^pSn=0j#lfPD!uqN;y9(p$7LB-8b}j89Gej3LWic7d!DA-! zLtVdx7XIEP;m<@?D;E@@@4_X{D74#4XI_#^pOyqk{5i=h_iVL}m%iKU3~j!=v;*^2 z0}TXwrU^c4DfRKXU6xAU_*>ryM}m_>Pb!Jwi6=B+aVT3?PoBXVL`UqHfQ;3a3Vk1u}F8rPejP6E*ahpcIM(Q3IYG;oFa z#TK8&LZ)xXnAAaxr!9ZDL~IMB?$70?wxK?mMdW`t$aLh=LTNPrNT@MLW|w)kS-Df2 zt>kjpu_dD#9z8WYFOgY&Zq%)~;N`lae`hq2T#NjSgHB(P2|CI^!%#<9iHPAz$#LOC zxzaZdGm6@FTQ#605tMKzcLU}Jj-N`I8Arm3EP{r(Fc})7p+qxA19$Sp5_0)9N1F7K zKTg0p(eiWeyNGNYwIJ>>TmjByhg1WVzN}kc4M&D1hn@!S(u=VI>hH3|g~d?1Ena8y z3B~(LxRB;D32FM{d$at45EqD=9q{q@ftyb{4hFcm4aG0{wF00peinnDp=Kx6ZfGgS zT7aW-?mfA$q^_4M+yHLIS+L4%W^F1;iljeFx1Czy(-?`ehOqdf_rY*OowOX&7idza_%4k)DMVj(f>(D78 zCn=(QaKv6}x|NCuyBSzqjy+p$C5DKXkQ>T3w`bH^Wy)n#-BCM#sn)WlDx)?>-m)=g zz%e(2r3V~28C7fWj&N(LDhDQWtyLt4?4&!|_nz5lW& zqc#O4X)c;Wkxz5Yp6iw-*A~fonp~A!n=SLPcahBDy{2}}*aN8RSvqInM=9)W9Z>LQ zSUNT`jCRuDGblw&BUUPNu{S5{I59T_@0YAsmA6)LnEBw7p0f}VRfqxaf090n?5g6* zVbRS!Rk3p9**ob}T2JN4{0o*7^%Zd^I+DuI*4pY%+K%^gImZKnnh&Y3G}b2>mxX6$7o&@^|=XkWm=NWWXc zElsVn$qqiX8WUNibG50mK53kbHwXs!%Xm0Ete(D8kfOoQqtvAK z=(=r2t0$OJJ=zNPWki1*Z>+w%nx!mAMT0$2 zW1SJX=Y(@QV|5{7T&xd!tUXzlh@RdBgd~p$2xJ*+N6~JUBN{v!Ye~mi+Phi1hFV*# zx%2JXc$?8C)E&RaXe+K0XJE$jTk4ALW$(A^ep1KY!aeMNaqRz=*na`#9M;JwtF82H z5rlxD*jUB6jI}XbtKw^&gN{m@PsQI-i~p%VVgHREu>ZD%x+Q?Bf?q;wYN}E^oA2FG zmkKPFqm-uZVE>KDbt_PZq7GN{wj#_y)Ka$FhP)0!0tQQV2akRz&qGFBEiF&AFd0Uo zN#u|9upC9F)Mc)1^@&ZKoTMsqU1yshN0Tz#B%7^tE9Im_zE&5a!5e&PA>Q*eNel^! z(I@h%kT77%Wi(CmlvdL@;taosuZqsPu2-CLwPg`n3allc=n(=Ao4BYA?Rh2JCsGwO zktr8ehiX~-dHVd%Jw;Wp6Afj#qDxbK#yk2BK<30WVX3*33|Pj$>N-`ovbJ;3GI@(r z?^#uAlvfUz{jB>teWo>%JiGDuyqqThPpDebj<+X41bJ^8v zjUgInh5@AWu8=Jc+KOh417N|6kDR9K&ZX!bYn!4l;y=^t-PY$B_A%-XB zxlrC3%isOq^3TTdd;WWVErY`}!Pntr#OkMgqrTWVzI?Ye-b1r12OP_y!4IR|pNkfZ zgxFV)EAh)xOEh>s8Y{7|I?>=6mxxj^)|TM=gIFoC{L72|5Hq!qLSi8|5)0p?@8k!H zR#Y^_HyLeDmQEo6b@w~0yOA4u_u^F@skd=+V9(1l8rG@Eeedk;K)^RkO=CgIY%A+&$wF^7aZL~_? z&E@M{dhX2mfeyC_Cm5 zqeIy~$D!=R(=rDVan(n!;xor%GgLpHVJMm_86X4O-ZthZ}pMz0q$ZSVc zFf1&g2SoXqFg<`#T4ML#u6_SB_WeG-Cj*u$)^a0SQn>*osu(=t z`ZLO-LD2=vQ2As#m3M@r!P2PKD7-RF5pS9!#mWB|5~Q-q4;6C*o*h|TtS$8RGYcex z6bU{xL`+NEMX_`P(l+;!So()Z-{fXB978H;L0KgDqoKV4A^xtC&C>i^%%=pC&^zNg zgCxrLh0BhtE&hE#NNRG?d9$-w-YsF%(M~0_D3X`iBfJd%@0J-$48SEcv>6b;HAKx0 zC(6r3?Cq)iTe#!Ou!fjA+;rYAk-Hoa7KG;@niD7g1lYgi?Nk)N8XSXVkR~pPlTQ!9 zvx?s=p{#sd`Pvfw`DK7TBL-WP2Zw|~$Ho#R2iEAx7+j_Nq<5tvOkO6@mPjxj^nKut z572np)(2UzF_i_K?yjKX1*FpiVqoKIJ08CN*LfO`rGB0Hm~)xw>DVk|9uRa`{fl{O zlvoPOzm`w33p=&YXZzPSIe(ePcNKP<;J=)UrggFRC(*PHZthMeo%4m4&JB6v$}=D1 z^AdVK{G69LwWw8>uT%`gUaBe&c~#{K9(YpdtqeYL{VXc>0jIZTQ!#%g70sQwQ?(US z9V+cH=iQDfhhBTqS>;&o$jixbXtnDd?>jTJ=bY8Zsd2Dq*1q}l2LtNuP@71&k z`h;ZbJO5?0Twa`lwJGrQMDug_@(f4iz;koy!nKZJkG`9=H^V>WE2i4{3WH;xquOy1 zkaN*KpTWqXdNSx@uyp2YGaL(mM?@#l{W33w-8I5NZ;wptVLtu|w= zd1142o0ILJMuX3e^}E)gzXq4}i+Li&qx?yfbHIyRn$on!A;xfGv?!h9rAZQ9NEfv^ zcRG{6|7h@j)D=-zT$IDL!E#5N^N2Nciq3n zk$Guf#YB*jq;4e*o~j9u;(!gqM0<*PPqbj4!o{!|ieYm(hRvv)3PBHD7%%N~GD@^) zt3q29sQ!(WoGR?5^VT?Ca(;w?&O9dtoDwZ?1FXrRt)cyXEhp~m zRtyFKt2ypV+%CuOJczQLPW8_2p)`YLXND6iyiIZVG8jtFlUd8prAZymgq^yUXz*er zp;gyLa+jRza0e})y02gh>0I4kZ$g}61&+p^+&{l21ij1o?luycZ(wpfGVjx;b=kYDqI~Rk$P0AGK zGhUMW;W;wvopWzuWfZ;g;Nf(@DfATdk=&za<=NMrPm{X9<7Xmb8~lpXU9rBKBHFg; zKJWjC-xm>~?XGTVRTZ+@@ zyZ8X(*f*(;2H%b_IED)h(@BRlZNGHNdHi|x9;Uf&1_YC|CR6i2Lf9Xnp!2=6nl?G_ z99oWIVgM%5D}%56(%Iv+cd8{FMkgD`_U>%NA?UnlFe&nqbI_~phz48VWIiDq&yn0G z+tpHnG+8R>NoISLqCSTXlH^)Rkk3Smr4Nm zWfbzy9L0KD<=4_UCmX*Oclncd^&${Fm8roX_Bu=&sQ2*X_mZIoQU zvi{8+hIhjP4toJlVzk^JEd?zbuF;~3(W06DRa!LD7YP$$ zvdlhXM{{h5|3!oIquGWpysWfgn3(?MF-tZnH&*iFXpZ3{ zuU`5P&jqi7*gztrHeOnU@;UG+qQQ5fmJURKc)@={IM%PxPjRY>{{>h|_smO*O^}+T zJ*ZEny`UKEZz8&ALL5?QEJu6hpG1SdgeNxOz6xPd@hFTdfa3MeycD!GNZQ>^(nKjs zdO^v@dg#XCW8}xsBhB){jGcHl1!^*0O`|vN3SS<8eu?|U`G&R0HSBy2`v%V;J}FF` z=lVl`rJ79ph4p}o7@5@GaGlFM(O=1{i{p!b;XK~|Zrt_Gb)lyI=dD~1&p6zu@r%hH zC}ew{q-~9Jnt|u;C>v4Q?LO}fo$W)yvi2d)(he)vK19d|mq<#kl#N=yit<=%uyI1B zJ=xw0oNqKc10eXod!^QJiI^?&u! z`Tul=yj4yZ zKM%Ku2LrT?hQ}kA9M}467h=Y9mY0Za2^TboDNgp-z~u$NAR7F6Y<7~iBhrBwkN1Jc zHt={sjK|N6sK8?zI6PYWsSyh6iCNn6ZRun09g2_;34U*^=ZDerli}^*&}A;1!I|f> zdB@s`*GGf*j$H5Dj(IfNuQ)#%Tt70?N$34!OeXf&T*S=E&dSlqJBPnhWtK*QyTXRe zY_uK>b;2|291_e`o7*zPoEF4HrdI9WZ0}B$thF;Q^%n`yza;k-x3slkYlqb#|H`3} z7Z2~ps#9gM_G;t>!^YaZRq*2s@bT>M>-6yP2sPeyYk~c)^0SV~j@^zs964JrZf&*B z?76r#XY0v~{ab}at=8iw&9rhQ&E2X<1*J7vt3zBRRFN z4khZHz|#qQ+cNf8_hF7+th%_F7z^wilVZcZ=IUBHH^sTH;k~r?*E(ig-y`Po9$LWa z>~ApEdbg%EG5q#7uLt(V#}^h01*{k1%mXLh7%|p-)AoW8IJ4 z_5EA-pA`xkp%r-P#paZz6&alW1i!%fI_yfClim;wHiul!i{5DP(vZ31)ghf(%zM{! zaVuBwmiOY;s@k+-Rzgex4=dB>QP;(-dmA|5^{SUXL1z5IL-P{d!YM9q9A<{`k)L@% zbuILUp6QHeaP>&Pm)15l?e+hGJ$M2wRt5^~J}0(Mpwc zqWPJ2+H!CCmgdYR1~IOsuDlce_oODs-O)Lu-mZO)%pmgfj_+@~v{ig=*0yv!KH*0q27>cc9D$>3n_bQe_p38c80H9Ug$V=iBGZG zXjquCx=tv5HGE|t-=VO5lRV~s25k=5Ut)*`HHr!r#{zCG50Rd`9PkTc z>1E1C>CH}7t6W)t)uKhBup}jlcIKy^#pQdXjCztg>~;gA)1gt!+@XaGv+5$7IxI}s zQ`=gXSo~V}@)h86#%U?s413$2<9_!miv(|rb_KLaAA4-&ne`+u9Fy?HA>oiw8AsUoyD+4Vr5B+b+~)Y5Bv0{R zg`59|r(4mRyOnWzXvt&UO2#r4 zxsVv99WO&;>%u~EL)HEAFKDHWK2O8r9_5~Yx2gg&VS@BtHVvojyu*e$7N-iw4JC$C z_lsd}rw%e!SKF%Vv-e^~*dxTWcwpM$Q7Jtd;djThcx5E`=$phfkW0m@G7n;~^Y2F(#->{bNOtG4tw+p$Jr5K{W)4;2`8SoIfF{u3NL6nmFddlo*8{SB-70{jTW zE-QBy-c7rV*we>eu~U#QDdN(yu2jUv_+FZ$M$Ak^S*ktkB}Q&Zyq)d&&BM53cpyes z&*F6~UD%mio?MYpZ>-o2BzVso zEXGTWz`SVuExV;zEP9-`F6*4L#i~06YbL#>g!1l+eJA4k4~RQ6zmgwxJhTdH6t(P$ zlwi&+f`85rMjurB8-=P`wfu+3cdPOw7Ds0Ag%}Q8UaN~=xq?vFdEUZN^f%NwIJBp&bYLx*CA-7xHB zc(Hi5*r`U#ts_FYz9VDp>|D-6ax!kim@K>!t0Q*K&SovEqBvhFTjJQB6l=@ujG>ZD zd0jHFRh)U8qS?N?w4nt1=Biol50!_u-+|oBF10)@vP4mVgE^5q6qT7T*lnHEON_`f zKX^x)BE(vacPEvT7Cs=P(v}DB*j+lh*TfwX73{hCi{ar~2%l{p5_M`>7arF!Y6s|) zx4agN=PVsDRFHB~h_t@*>Gt>~wGt;E9dUHAw||72BF1u@BL?IY%YwkkeIo`*hkYJ0 zMfU!qh>8jxj1Jpx2Uk9xDB+xlRC<7u-9v^BVn{$9Tk&()AyOY=`G-PWP9=6`)ba-- z#Pm;(Hk;+v4yz9dIl@7fZVjcx^1dC*<6?Q+L#&*SrMHH%V&%7@oXcTahPB!h>K;-r zn>h3B3w}NK!fzF|`7YZbO_obAJ{#^Igq{~F2OO)jT!@+ycB*Wp?M}jDez$~`{=LrK zR(3Nh=^W~b#qdRnN)pfKAO@p3z{{_VF!xCqXnWBwQo2Be2o)>W z3^QB8wUw7}=h+-P?^PcHMg~<3XLINUWrA6A;G9^~|Ci}6DC5m-NG+ZCf-=s`@&wKA zoyppoEV_zAe7(*2>Y!uO@!QlMh667@JVK_Z2OW>Fx%`3mKFkTZlNg%YBSBYKl}(IU zOECO>nQ+U*TPIeI%b6oVreR@)T7G#LI;g1HRx8oL z=dz=)kB*K*MyAKwa0e?AoG?ss>ZC&Gq{8UO&Q;luL;vp@q4O5xpF@mH#yH-Deajtq z?guWv!uu19ftZdc{q5ka$JL0#uyJ5Kz_oDlpA0LY z-L+{=OL&Zjb;Cx9e|bZ;2^c&UF-pdzPsh>^MyBCp^M*J&-PAg*t<|b=bB6$H#S8{t zZX7D>VDE)tlazqInLbp@KYIfnn|2v^w|RusU5?q!%b{VeZCYzqaa>sFXXhAxZWY~s zcfx~tlzBH#XWP-UJHjD;?O6Ao`;>PK-c!U?0~#N|LyVfvpC}qLC;xTWaD>H*@kL%h z&KgbX8Jx07PJ#q}5Um`rBqt#CFjB{;4kCoy-`-bO(UF%*$aO(h&x?ldy^{k zk%?yxo~3xM+A$mEC(_s@BCfG?%)VK_lF!m5rb0w65y|K*tK`+zIBf;qk^2uc{Ys=tHfj&S#I5k0Bqv_FowXyuVtNG=V_&Ho6uh7}s ztd&0OBYAL=zmrAaaxzXjF*176Bz^Zd+yS-vc;kTA-1$~J7hz3tZk$NB=sXs@n9-xLI!~kp3ZHlP- z1bcizuU?ZL^EKICAM1x6OaYf)i3(Ga0d-0~pwd)NQbpWBLoL=SQSCv)V~8_F;}2Hh z-3qxdyg2#O=qTisfXw#MnQi(iY+~GyZSPE2nozM*aevEbr(xC94C#xtz0OHpTt~JY zd#`DfJZol{SZDrxk1D zCy#zvC+SsvXDTe-$s1Dh#NI^)nyr>o5jE-lTyJ4#VK*3dDV`hnm$^M8%){!1hsI^I z9BQD50R=9@n=9CYZw7%Pb@GOfysUo)cl;RK%${#T>A4E!Kft)!JI!8XP|1Iaj^cN& zS1tP$A?1yVThpj`@SN1BzV^k- zZLTlt&%6{Z?Yeb-J(>BS=k*vbN#6I}8>XWtO})*y_LjT_?%VQ+{A@#MUa5zgwK+2+ z1LXT`$l+XLB64E`>A$OinilkYsQhL#o}Fp1@asZPhN8j0MCv=(`i#LM*_tphvzEJt zhJ%q2DlNl$MIWK_1*|P4=;PNTuS3iKEfNh*kEHZ{*;5sIx(7Y&b<8}!67MG++2=D& zkGWTve&}X0ci+H94NhAAUwL(;zQ8WXjr_J%E=>^Z%AreC?AnuH?wzC0~m~MCD z{0UkU!-t6P3i8@$Bi_;AeIuK^)DS|NmsdoVF2On(Hm4>u$`g8UbT0icv>;|FejTax zE(1(e#12}fMBZ_-9wH+e$%5~!$XhY&az|EqRZ<`ZGk0YE7|aFVfVq4O=H!u^V=&K+ z=m8@%a?DAx&wF_}J~Dl*W!5)Z&I`=|Hox<-zK@MKBs1FmeS~pFC9fTx=vB$z#o44$ zN+LsS+|Yv2Taw%a4Y>&V!*LlFe!@ zgFaRxNwG;sEn50xqhp6y?b-}^`Y-T0lS3}P_`PuMmpD~GiId(amL^lM{s8A7tZk>+L7wO zm9cJ;Jym+zsaJ$!zmjl2DM|0nzbmWbr4kyT^s<{4(CkmWFWmKfI+=ONLuP#Hp6Iyf zy_lZrVDw3#=MM|9(&&u8g&1c^Z?A22-f@@Ek=@n4cGP3HcRy`aAr{Vh{g)?0x(s_W z;AL&ZPF1<8EVGGeZ}>FP;b8tS^Y5?16g%U}<4`_3R=y4qZt&EsmVb+y6H&8LUTnd- z^;&(doL`dJlwK^z-|xB#gRK)@y5(L(7;bYPs=u>qAFSGA*w0(yei5mMkSa#x`;h(T z&_g?_$*f`znYK&W{=icmZDnCZbJS8R-V38em!B#y7w@(f^*py^7uF+jLpMvT-gi4% z0B0F?7_oPjbF;JsXS%j1+q1Xe{2VL)R>#vQw?xe-XJy35>TI9$6msv58oGXrcQv9< zN(V9K*@^L9JBPD#qw5PHuz^H_Il%E%;K*7L{NFL>74KD8^<^wK8r&THo%efyq>GY{ ze0v>I8o(r`Tim>Sa+sasSOT8e6q0jac{un{WH>lGOq~YI;zx&h`K?%uGSrxh8XHi< zjT%z8Ay(t|VSbM>@&tzDs zoc9xHwEexV;7|%cP5Yo5Uo`Cp)jf!4;e}soe z`WW7~0gh^bh;F14k+;djM!ZVO?jDSFsgd4Te{*K+&lv8sQu41b86X$1X?buxtXU5@FnMzj0B_*ehpO~JBouWC49=GUE zWH4X)ScU`VhxCPEuc2_rYc33WGYSX2qPgF@tT5o+J9u%~7hYiwnfZZ-^B40h7CH{J zsY_zM{95Ke7sAIb?4-uT3YBEE*Vxm5MZ8-uh<%(KKa|#GgwGz~jrOX$jyVgv)n%MK zSs|vNyC#-jV}}-s!MLxO>8=TgwPi>T;=V)X+H;zTrwhAIW8Y~G=;!3ULxwJUH#G@> zjvZ_Hyb|!T5-NwHSI?yKhJTL1y9#StM{;@k+V?dXr!&{ysY(AD#6#bJc;p(yQ(uF~ z8T?*G=O|Wbr)xW?i2@6p|CDIY|Y2+frp6L3%eh%M7yH7@t%(G<$zF-R%`BPKuj_&Lo86dt82w#)R0IZo)W_e zYV$4QQxqD{7jLy9j!OmsHFn0PNT^jw`A3Z4JbvdUbMlP*-i0$1kFkD#z)a#ynZ4XJ zf>_>deRQrt`nF;`hTq7^%u?tNUkp^^+)R4X^De`J_np7)=&}Z&AAfGu#%_FT`)aaU zt$iM93ii;sxm8@>B}LB7 zgYMp@%}qP30nh4soF9qkaWB#DG1lf)`MtDITg-l`XNMJBT08`5{`kbUCwLR%Cv}xQ zu6-P5x^wVlOT+!;@=`*EEe?h zQDkpd%{?F2`7>IqeRg^ZE5hzy)zev_-ivh$r0a@vQMU^9K8Vnpu?vf{&?oBSp*?$D ztSA0nd*?PQiyEiEd%Fz%U)9B0r~~t;9j%^*7K+^yoKL6BuQ5niQB7e{Uw!8ZJ8ljZ z@HNa%oR6B1?otZian7B~C|Y`DRZfd_l4qAP&wL4S&6<1lOCiP77V8Au)wl=tsVAZ< zXZOx`Ta%zcevF*IMB=a_9p~Z<&}ZEO)(SkEIR*t%z==|qpKK>m(QWK0h{Zc>@l{W@ zC*cfEG}s?ePdavac0()9qE54rd?M#H+*oC-SIH68gB^_e$jDo`BSdBrIq1;Kh|jsT zqbG|SiBWc9#@j*t$Z-t`=o=C`Y?^iuxBD)luVV7bxuLKTkU82Sv zJ>H*|vc7n`_3={;86DwZfXt|OS6&%>)N*AII|5I;`03pA2J3DYot{_B&B-n1XTMlI zb$!kHkJr~iuIm8r+c9`|d0vP2w+4Mxp|5|8>|NhX=;dhgYyRc4D{)6PTJZKIp}=9} zXB!`wjh1(#<%SqHXx?;BT^8fj8xj4r@nd-4%MmmYQ0D>aTO(63HuN50Pz^c#ek2E9 zarn~U>&Qq|wJ<0m^~#8$`nsjl?Ws)^JN&6Q>6=l05jswbkwmW-U`J;j7EJIe4b&@` z!fxor-ULJVGcq;b%V<#C+-%%DCb&_YR#S|712U!i*W>ptBOkT zd;}l43_k3N71c!>Hx^YdV`)5e2HRy&;k4jHX=86=-8Sp}y?i~Fx7f|+EpyYnS`YOv z7mMzp{?&;66+z;KN5{!jPzC12A#$mGuU`}=y3%pxGz?!niCaXoT)ZsvskS)eQDfab zemnKA$z~%k2dyn#f9w~v#U1bVYbM4iT08SM%(45h>5A6;Za+WWh!bp+ZL*j3ISzel z(2AJ;;n_gYCoc>{ADX->BOUFhf6M-1tk&sd{L04&tJUjyX{=V{p{!yir;*|5GW4)) zFIr$5{eH*GO?$^nXFxN7>J^}QkG1k7qj?5sE(FbGjAk|K|915ME>>Xd#<9{}ch93) zf9Mz0vx=$zTcGGUWnLA2aRia+FFfz|i<+B?pH=3Oiy8?rt_l~4JJughE?%Q!KkA(Y z74zmZ8uHTbtT)}o?9$0=H0(r;_eUup!a(F91NKf|7&gdu%Q0xdH@)ol!IaVcvQyA9 z-G5YvJ)3KV+Bwz7;RkSew0HkK`@4+INBpZMe}VLo>LYa42XnnW$pP4@3 z@HWl?%0&)IRhuL|&^4>>O2?tPBW%V^n2{(l1J_uX{L`(C=}-s*qg zoFsM^XKJKmDZf{!-CuXeYU<5p@`SC81|1P|*9@r;6bCWN#4cuusA;0xmNn5$STqK8 zz7MGVp3~@g$E0mm)k#`VQ*Dg(ZG6CKoiF{p=OT3e$KXz1j5}nSTOp3bM;hxi7+<)7 z?mlr3&LDV(>WDE(s+4ExragiE*Tjj4cN%hY+^XDP`>9HFeVP+DQ|;+XOYCweX~!H& z+%a0vmuB7g45}lh^H1zlM1u#y8t5XgXOst{_Tc@{=o#HV;q)cd8ft2qe_>5JWxV&p%;`1X zuO2Py4jrhTH?N}j9Yyc>2j=K;?-qsM%OI}BnNF9-crQhS(pb~y)fip{|8e>xTaeTk zy_ZK0bg85l>lnZ957&2HtjnzbG>^D5yXbsGEj>!NN}@6E;C`&KeQv>oJEaEPkwU0L zsfT_c6%Ua3kot({onIA{@L&yZgis zKF#Ij#r#(6psjMx%3bL;$_Dx(ewX2VfY2h`neVbL@g(I{c$TYeXU^g@L&*<0*~R@) z$v4}6c*wfQ^VSoMPp~_?na)E;6WC4JL|Xq>MR$zKi?Lr;ZA(>f;}R#`+7#L@+*Rz0 zpMqb3OUiafW?a|vD=A+|w$M4WAR*7^;p^{I3uhuTk|9szn{S)+31Vg}5;_=Rct7VR z#y{c|dqUqX>oIo}`;iqTAGt%`V%&qv3LU^|8LR*J)$C04GtdtO496fekP!bde7WQB zqu;uRX}|I;0s2o}m*)9&I`9==jE#d=Lsj7VWc!l}?=V6qCY)qD&9DwJoy7Rf8Th_v z@H*)DkKJtMjh??J*-y5sBxsDiIG>NG9f9xmyaWBmF&u7{{Ob?aF&egnM$3Nc_($FJ zdNP~HKXH8ggHLC3;QpZpcz23MbtVaZD{JLnzq&6e?=H`?N}hSOy6p60>RZp`)$LLe zwrgaU#=pMihvg-uo{LZX>In(n-1SZ}%K|S4zvPKql8Z%l+OSei5XCUBoKI%1~!J6*DdFa-3X}d(P zPnh+0=!P|F{!DTQYMJlsqKhMt3!6JLB8;Y=x{ZBrT3>ZXr}cX=`Zl&$FS-@)v@XWI zWkY2pY!Qro1%k^9vbQjsFGIomP;=OIErY%Y?8a!qsdMP=y2*HiQ}-QTVQH( zae*61W*iMf=js$n7GrEZp%V|__brrh|HUn6wW{%3Z(Ogu)?g~|)JU4#XIzGC@nCaW zvNA3U_H-_G%QE+5YGwp_8K-=a&C=?lY)7{%up#L+K+|Bqa`XlQowwVoH{kaibvpc3 zDSr2Fahj_UH_~Y#e#MKs?D>tiTzbWuEFJc4LcH{G6W6oH`VNbB797RsR%_3~v+VIO z${DTfZIaqFHdlgCH}BPO{{Wp*hI@zXMExH|HbY*=J@m%g-7_%iU-TEl^LjPRa({=L z3a~K>(;p7$U|k`;a&a4xm|pfI;eJMf&R_SD6FlrYyK(6xU6{MPMQT(M9BB{kex&CS zy0ffgvWvFftfa8t%i5W}G)v+3>H<{9D_WdN(8gE#^tlAHs0@+Ygrsc>-TSGhtb}*R z+8DH5MY4sa!XN7;`h{^SVed5{-xKKZl)Z zQrIZ-)$wu~pZXv*hV8e;#!t4MLPyG#8i}vP{m+)I5?d3`&I`HMVhv5QyQ*5T3o|+I z_FirWymDz#?J3Ne3`H1nXE>bd-p#Uudm@+XRU4}Mbg(9o z;7!nNLH8z;x@Y|oaAkH%$98MT^Mx0<6FUD#USM{eVFq>2n$hB+H$CH}b6)ViSE4%k zvUQoKD-fSl;^F$(dlB%Cj~m79XE>AmX`bLx8J|L`3%7>wi-_ck6X#KQT^{dNde@P?D+I;XL8}Gj!hH@J#N+Nd>)dz@iA(jljFtiAo_H~!qFj3A*TIt5`GeQ!J zp{sG;57uy@r$iQ2Gc?Q2M6g1{{*)BIJJB2onj-PLlcfnr86$?A__hm*Zu{Ad7nJKIZqJH9RB(KU~@K6>_1zOC0@dW4LvEZK>hR5>~6UQfN|^)n*7e~-D#JGp6Sutb(;SL z`gbh4_ida}Gp;YJpP?y|%3LL~MHRuB$Gue|eCOp^vJotJz7J<0CJt-#YVYEt&bIn{Ruu_K2c&++AJiD>EG^$v`~p#cE=D#e?-4 zPx5~22IUS5TK#rJ?jZhEIUiS3;{s_n>`Ej!9vpn$%}yJ!^9s8ZL7+_Wuhol@B*5#y8X&C;LPDc^$vqEeBdkFBDQe&%JAp?71vas1C5(9^NJa*FL*z$vzDZ}ueK(;sd0G>>a&3A^ca7{ z%bR%PLp<`Wxc$KTTaS`odfryD9MyGY66mLI4U&hu!I7J!<%m~Cg0&;>c{S5E|69&Z zMEOnNY=<96nUHpboi`u5**XN*&S7%oGN*ze$637~>vRBDLUO*WRj8I&^0lz8}|(;%f%J|M-%UYg~RB`RA^2x$OVK&I0Ws~EQ#-x;?zWs=#?xktxL>d~)` zn0?q|ZS?G|C8q6IDX~%Fi8{O&>ue=D_s6w0b*)yhm&xX;4EACTv^ge&s=6i8v3`*p zyC#EWF&X>{IMu{t*9lpy^9DO9#&smPDYiyk2!5FH?^@1S|J%1bXR`lg4|FyYPGOh8<;^@qvpnV(mh#dZ zWeeo_X0YGMc3MxVh3mbnmu4n@t>b$iH}TbSQ-@1{F4WT>Ns9XI0^8h--RuvYyO!Tk zKHSY*ISno6kI-i416`gcLEB1USuHc>v`+~;lUZ^L{VKx#i4}IpW7vIYj}t!PDKTT- z@%?(k*LCa+<>du=O6RMNH{{-h`qeO2?K##mOK3nne+Mo?+YPFuHXwTyYJpa~+2jAN z_Qk+Ap1lsmN%P}rB8Pc;xWJf~)Ge+}Y9A*I?_!&N27VP|wfop<%X3>J!7GQr1>Wc= zJ@uF)-TqSDlG-1$nZkSgO#U~XWpyt&)^u1N|IQunOYwZp?EU3|uj}4$%ity_qV+-`y*}yW>Ehwkq(F=T_`cpwEu_XN8%)_5-YK zX7B6+FS%c;JsOyX-e7tBM?;fZb%sJMjj}=kcIatc)Mjr(L&udfv)6WjEnI!ga)8?5 zX~$|Z^zuW-QuR5)1Sjq`_>TFJyzZMU07A{r~QnVjOqM( zqp-^hUB&@L!9OuOcl&AfPr&T2DEQX*EvPn5mlwj%bNRSIYR$fY|oJLD(z|=6Yp>Z&twSt-hVzuD~9w z61Fe)!8OC=^O%3@!)pGFdL+_7FXCTJ+-^hO-v~!k(8WGYUrdlSM*rnM)=n0rhhgFI zLm+LFNzm`nKNk%ygRVAH@FhkVJ?dz^tS#^ltUo^YcLg}Ks{&7djEC`k5>So&7(5Y8 z8*An(6&1vHxvq`vnZas$r;#ql^>=e`yjzNQ1-Fo{wm9qL!GYjvsSJA1u;T--Oz{8OstNoGkYKXf}J7VxP$C7JJti)6Bai?)YNh zt^8m#dN&#`=efNN#wEDV^ZqSwiFXOkQ}UL1N8^})`(<7ZSHZkIuQ9Ji%u8P8J&tR{ z(Pcv1?;-9I^J4FG93SAi3Fj7^hnSb(?NnUdfhUu2_Tc8k#N6va{m1Yg=d>; zpdCQx#dHVG&R3cxxMFZMQoiEke1c<TDwNSY*E6 zd!N_ror$tgJ;ae|=z59wC)91K#p30~yZZ}qCTssV&I=KU=WT|*u+a5Xc0y|<86#lK(! z0Ubs;Ue*X6ZHL-KPo^IwjWI?nJxcMy?o38ii{a|y4t?8$;%XSM03{<9!@iZB4ofJ= zR!I+211)yK)Plq=Mmlj_h+lI|#y`9kdzij?HMYm0^y%7Tu)ScX6Y>lLe6Sd#v)8~a zRS8j}4s`#0Oet(@2cP0s6y~S{95Y7chb>`@;#eOeyae#uVk&T$ehjdA*MO#>1l9ty zIE-M> zu7D((V$%sj5zA_nWoyj%CiV{utO8@kWN_MJC$6gPv7nRAh|M1Bf)>(@7^ONjrW?b_ zX-te6M^akjV>~!(?DPy+>0R^JAB&N`DicKQ-xAY~j0FXtMaGP~5kn5}WhDQQJjV2_ zS%bKa%90t>@Qi(}%$Td-?bpm@M^CJG`kyk_^qzT0gVV{8}1-|JPG5M z%Fd3qi)*~3nf|KP>aV#LeT0Q>@??bD6l2kgy|W5&y%F{0Ye7w~q*PvT{L@dNrsB=7 zV_wXL6tC~5convVs?;+oSevt5%$Oh0CjWxQ>JQNpXtlZggn9WYYLQk`6YE7teF_Ci z@nu@yQ%cl|Z$R@D=pNAmq6c#t-d~H_NLunxEcjY9-j+&1)yMod zi`f_&AIQB9p}vWJGnmfGHls_4bdr%yhA`2`7C{C)3f@7$%gRK^zeh9MqcVqeXOzY6 z*A->A(cBD-3OP2awWCqiY!Zgy>UCU=7qW2G3VzP_(An)bfohb zjAsID(M3PzNV&YMS!~OktJJ<;w>O6ae&w{XL$yO(y22B!^QAl+=}qX_jdqPGyEetl zh-${mJYiRleh_|{*f1j|c4m3B_H1{SM^l#R7LREP6&*Y6*|k3e?!xoCfljL_Ti_=B zCBk}~4*eiVsVv7^$G7nKng=JtY$MwPy^VA&=)KCtY3b?l)+P@N4+V^}MX#ea*oGKT5KPgT`Y^ za^A#hc$(0&sN^0+595Zs!o>9b#ug5`2e=8B0*u6KSQDYOY7onwsQt=FhY6`N;=yoo zRpUlQF|9$pKds32Hm}#Z z5~~(^(me0>J-4#CHQNa;f5?nI*F10rZh=+kH*}y9r8F02?p#d zfK!WJ+o8bkryUHVtYS-{uQZcyub-W|zEahHrn$Az+b3f>PHtmOZeuuTg@W4eAR)@c zui939g0aBv!|a1xi$yZC(x>>+Jb9~r>S z%w+AX$=0S3{&X-*y6*BU6vi5k8JS}F^b$XTw`k0tUeZp`<1Q6;O5XXIjrc8N^RgS+ zy*Z63do+88H-37Fz5UZmO6RAS)Xs#hpI*}8D%q*unvUxs&Wx?Ywq|WLYz+sW?x%HZ zIQUin2;_n0wXN~_DtNRbqe{~@zfK9C2rNIpmKR@^U^`mX?A}u z)eAIkMuN+v(Pn0(&ZX*BYqGtE9juJRHr;vHv9$vs>d7X)5Ej(RzSu;7h^7g7G)wN&z}y!Vi9*4^4AbUm` zsazDd`ldQ78Bh+^lEy^!0ZGiU+Yqh-hYew$JP7=Q0@7T?I6B;tZ)N0CApSdH>u1NB z9OW+F2l>C=RVU1sM%tNYDK8iM<9R9^P@*r$B}8wn=!YH$)dKY1}$zF%BLwOtR6Pc;#TeDyPpEGQpR+T@H=oF7>o}5yx&Qz?ROG~ct?lT zt|FwKZ>Jq(I2h`WpOXgESOMsuPfT%>1smzpHKJw)(MZ1)eqbcj4;T5A}8m@yt=8b^bBZ zIGp_$Z)L7*^b(S!$+2YJ!Sz_F_Ah02w<^k5Q$6nX^(#d$E8=QTKRmkOyu1Gwc)zce zxHR_y*X2)+Z#v_8Fg4)gIH9F^{fj@Ke(8&+`w!xG+hDx$Sk@qxeXYCyBNoz+p%|_O zD7^PS!q?r%$I`)A-Ty~E-nbFN^*qcO%yp%lhdckHY%~9lJZ!%a12eKQz#t!^kFuEi zu$Fm?#m<4Qo{rMaA%49o3Y|05>Xaz$H)vk@p(Fn0+n5S>-^rsZJ%`s7?6wKFT#380 z@_PF7*t_cR>FZzq4K17`V6}yIzlgm|Eci~0=BRgLG)mH5fksKfFaH56;3I??@d&N? zUvsFitAI`s(yB+ezja^@pGbD#KLt|77?1Xz?UmQ)@I{oL>wl_cCdc-9ADQ9Y(amac z_2?_*kmfOo{wu9tWof$A4A(_?7k1Kanhl94^wGU5XunX2HR3&vA6xHlKiT@MPyr0}l*>8DUlfOl`qKulR5#w1_%!uFY!ClGF!Cgt3yemn;4h-11s6`rM3P|g)0vdO3 z9jrndqwP7|)yi$pbkMUAZPdSNdRcHtzY5#0aKJ+4F;}z2_A5X?Gs7~SM$MJPc`-#{ z+dy`%uy{QMn>zYF{-y3s${*$J1N3$58fD4=cD=lxcsFJTCgE;aE@3{1858u!R%7SK zXx2}V(&z1Qtm{bfj+D|Fwq#qY68c_jv9gGTg#Sm9 z$YS(R*?8wMl0`dtBd|>)q6q6sdG|?{ri2GTIa%jWo??2&^Sd0%bL$-HP6e*lI{5QO zVCmH`aYO)y0p9S)lqzN`5G)u%!2;fvEg^ezq_>B40^Nd1s5+jlDcuz56?M}xoh*&U zB?+x*9tJGWm_*z;rsIt&*hFB@!4uZP?AxoEQA<|Lcij%mh1;vfL4RlIW{Z2VTVbvg zG~K_2&ERk0!OI#w*uGBE?5Kv708bX^8p0j@QkuRQ$4eD+pMwp^ostFcb4}Ps6IHR3 z_^}uK-@_UppOc(C4fj~7D0Vc}cxd#>NxViP3Tq7aho zL?9j<2$#0p2&oSR`EY@ItcQ@ULc!*KJ#=pxVv}Kg@MYw!0EH`*W2CoYs1m=8kU@O! zqc|7Hahee4li-D3@ZAW_Al=ZZfaS5;$L`MA66v|hM$#=n7+W!{0{kkQ(!{$tabft~ zK!Jzp!JHf{kz-0hOm4*Vy6-)3V-5$X^z5|X;&(shtp&87!~8;Z{5Z~wu&yQ>lt=%; zXkf3dc^1bC+EXw)>^P2dSfOWDJ##R9Jz=fUx)m*J+p>OPc4I`mnuzrgp$zCt_Cd=v z#kEh;7&AQ*bj)) zQbSscC{j|UIIHgY0z&KZS!#H`j$U)LLrXmr@9ZN%;_?Pg@ zfsw9}gDDXXAf?nM!3xKm2fP@<>pc75Y4dWFc52ZL-tCR$ca@nW?d6cE&_kgqM2EW9ThX4Y2_hV0lh_KO_Q}mTmMAf zDUWqHCbw~U`l{6Gw1(8m!x#@YE;@`6@$le?2pmY~VT_2($oPoZCu-yoF@bOxCQ#g1 z!$)a%NO4iz6ffyCj;$UyXWU#{1?jboYiPj;voSOi0KdH(|G+P}b`-U5{&-cJs%8c8}alyKbW0V4Qa6#cB6&D{O1R zYo!gXueKUNyBc?#es%LeyWVi{ozQkkr#IY0yIuWz44P8as7;Ze$mZd#P2pTww!3wA zPbM=Z#2aT3UfCVIg=q~3&-c#~jIE4i9B6(CdI7=$wN4e`w=VxHf?v9p1LK$P(Wr)i+XOyb z3IE<9N0AWpXL>wy3*61?Jr#SsOD*@$*$SOVt9vqR1kYpkC`9i%viW-Na+Pb)OHM`g z;Cw!}(&~;Q1F+(^F=!oX)CD>5{$?;Ndt`m{PV*|Dh?N}*agdFrT)eIFwu*#?S&MF~ zxGUQxrGX2@iT6krgyAdp0G|r!dVO-A{3)ukm{%!YnP2wxe?jAk&5#x~A%w;bl~`Z2Dt6?Y-b%qaPbct=QnS@p{tauIB z1o4_+ET{`xLx5&ocG^?;T@fJqpmD>9Gxe)q;y4K!d>#k&Ck5_l9QiAbVq8zc@hYxA z`Vv|<*yrZW8C7j<_@;#uqmc74d6w#tu!r8}RgF?bltRg)OIn7%Nux7rj}SzFEeLd2 zaIU``&>Z@63&{#O@hd5_$^u?vI_$_Vo*D|f^4Gw{0FJkKT4F6mx3&Hxg5oIIfqE%64Wj-}P-7)fpA6xILOD zq|e=odbk}i9C9!|@Mpx=qUr)ooYu6uWVKqYPehKE46x##qdx=^DkL1&aP$VAmFw|I z{E7jp!^IV>=GR{{nsqpDz_AI(A92*TjhQnB>D5L@3!~@KS9jc$-or>QIi8+A(^z0D zwNs8PX#4Z6>u}}73Y!)0kA5AX=eakYUy<((H|{UX_n9~D$L zqbosocz&AN4Mz|Mi)ZiSyaUe@aXl1=2?ww#suSnvZq(LZxd)7g#5PR)v36=7!n(n) zm_N`h)A*C$F`8n0tAW>xCme}q*}{ZQ6)dewTADoOmK-w&WSMaAnKx<9ei;3)0f*Ga zG^3@TZf6<-fN~*}o&vcVaWo|!Xw5%6$ zjsrW5frk()WEg~56As=Ru>lk1-*FRG;@ilRCYk0;c-8?{YbcmIz(7}sX*3DEkO1z$ zTQN;l!c8~^&>g=C!+_?=e-73qm5*uL*O&Bb)|^zy?imO+g^ewQHJ9{j@)-00@oX1s zXX9IbEmtPK-Uk}cg9e*vl-wt^!jI1D^TMm*n32c63vWIcpz+Rt`*~qgT{h0u;jNIwrnhI}TEO*4TY3x4$M!Il@AU|4d>nm` z>W%8%nZy`>1{$XMj`kbZ_n;uNS@+`k{WyM(<53*zaqPy?ii5_gV>r{eMY;!T!Q%}D z*GF!_@2p5DSOBDDx}Fvx)ZN`OR_xq&b`N zNqM7u)*l`^2Ux2Q!0VS`Lzco{e>BIOhTOW2J}dRZKMA~SI=^WJcEnlea;;3N!iq)D zbsy&vD(a7hf-iP#cW5p)8`M=wS%>R5cS`CXCI;%|z9)|}NV5QG2cf-^BGetyU{szS ze!n$gY(YoDsP6TzuCH5Pus#$_iCkgc>8Vx}tY50%-3knRz0v7yWqb5I=QOmYwSwUp z{6n|^xcKyjd5(d0B|X~@8823k_E7NmZ%|v3UxX>Hsnw8n=dqh;boo8>JSJC8t_Z>Z z+BfTWuCHBhTwhWh0&aD_P%`(h)ISYca#kMsw>ldgms*R@>tM~1s~J7_b-a5WxU;WA z*Nxs=oLYqVu64$FNCX~MjG5M12z)PKeM$=ZkFBg&F7*b6Tev+&NT^xy7K!3kb-xEY zB#N8r4^*cod?j|`I{_s$RSJa<0~7~h@Up-xjHejSjm6oVt;UzC?h}~$`iI4UVa-lB z8~`@kSy@|mjS+mFt*Be7=h1`pOy#Fu^j(O0&WnVyC1Y-)=kub4YJU=Fr?mh6>TNCI z;Pc?S-iOxC1dn5JZ0X!(HOp>L=pje0FP=^<%{tav*rB8`Ay~5g?>Kdkyg!B+!4Zo0 z4x-e5fRh#V4KdEi(I>;erq^*cYi5TITrbM z34DQYaAtoP-Vi+?EyFKqow&Dls-jgO2cgcFBH1<*1shm`QgbAf^K_doj$a#3A%t2FO z>04ps_xWU*7g#oWjzTCxThH@bsYVxXhadG)A8IvijiUk@QAPEms=ipyh8P%VePr7p_Nhkt&a}J?=Pam+H-KOixL)x)|ZXzB~euu zSETT-MT=InNWqVyB%|67U0bV+b0Mvjf-gm(nJC^D`zSE1JptcTMrn;KM0FLX0}Sk9 zh6e1Yay`2X8L3vL=bFmTEg*ejNqQUu5>;x^)%{AU@nuihNC-}3e z1mb;SlpVS3Z~hy;?x*9;_gGVNw2~;h*Th@a<4v9Hk(22lo>e*|w^3lD z-2C+sg!vhGj?v(U|M6`np1b1TGQ>lu>8)KnJwM;I!UUQvb{m17+Y3$ozI(&#Bz0uS zL@ts6%hF))Pp#U#BayyqeK!G;$-W$^8E@E<@%M-VT8nU zrwTrOSj!4i1D?JZ`g$;o7k7UQy&mc7RYo!%Q4EIJgs0DhE+Y))mRYvq6{c-?vbH_m ze^$4NdGjpHvrDl~hm24xiH)$VgSQ&9u*fn6wJ1TNS8>HwMmrCq{7eeI4aqIH2i`)( zTwus?uke_Uj)qAV$aHAY790+ePhNwbkY&+0*x>8iSzvSOWu$M0S=m-l!HCXiKGrea zF^zdtHMlABz~d&4ihH5qx?dg+s9dat##&RDvE){*kXu!O>#4v`s7EP`@D4)P)NwHE4UtKzSl%Gl8ozAJl})s??d#IvG{P!g>>i%r5tHuf_DSnlNyqrxHLSs zgZd589nDFE-R1)A5hfeaBkB64tU!OmY%^S<^>;Y9d9Xf-clfJ0$*4^a_94lzsGVwl z*!9RC1tV+qRK|>d- z+hZZ79=<60pK^@#QGZy_PjWW8nuaTmAzy%Jq|qyCWFF-sQAVr-r(%@MsTh%$S9pss z_s%z9$-UpV)VL=Q4L&@Wf-RK%IDAqepC7U)q{Shv6x@I0KMj7tRL(21NMXwW z=xCr_Scqp+id`)4S0PA`YNf1hY{yA4h1F|4}#ydq~-E4U6Z28{r;$`VMx|wbu1_WSHjXTt|j} z3dqnjAF?G+;rHL^{OzQ?qI{}$?D5WN)^uN6%dVc;+{xCYq9dJ-E3=em>_3(b5m{x6 zjI_1ipV&1=I4Hat_z-^D%7wqk*j2myNwA<_YGm>#2M^^i5pKmEq4AEtw>~#WXV>RG zeOq>g6jY+EvT$bmX%~6Cr-0ebc%fP4ZCwZLT+#>`*@|@rR+q_D*j++n;1`&6byW@W z_5HCB=E91WP*4-CXxCuAr(Qv*myn2wJ0hSx@dfcJAFsUl)n^a&3X0*o;ld})y&`GY=m|74D^5*RkygHg)0p; z&ZwD&nP6sQI{Z><)({Ur&iBsnY0SlyHq1x!u^w88oh|0BGVB%G#{)y`8}uYA;u-B4 zR|V@DaYp3d-0k$C#samY2-I(c?(?L`>45c7k~r`{Nirg>gvixEC|KPu$^F`NqhHes zH$FBDzwxX$@TF9-DXoemyO|Ynxy1%tlSG^35RBLgc^YF(lR26N?t$QMLMP;S<9q41 z0&zr5;_tqX{_H@VzLgyB1Dkw2BjElIIPQ@c%^4i0@va*8#DBgn|N9W%U6*5O(Zd%- zI2U=%AsOb^2+z7m53+tXU9W88Ov7BvC`eu)eNoLj1Z{|Y+0RCL`rs?ip5_{vt$|<4 zp57tO?1mJV!dU_-4QtumItJ1{9fNkA1kW9i^r7!ZON2aNKPm8>X^qc{Qm_tbl6>p~ zktNqm2gONoQ@kYaytVqtgO>HT z&c$xhwq*T0Xho}RlR*!K!2Nz2GpGAMX3n^*5%x4;VUD_BSezR^bm)|dWevZ!HbA=x zJzaO!UNx&Stzp9=k_z9IO|{t;wlVq8z`+qVnjCl*MR-X_r>wl8Xadk^Q!W0q?YCUAYg461!8H4oMhi|(DAwu z_U+hLkrjg!Tz-srG?0mezYR#BWy)V^o31)Z=vqU5ucYAa(2iB0^AP#spwaVIXywPS zbK4fmTL}!x@D4Z0Y%)`5e;NPIeudtzm%p2H+$ z-gTVG^un5_i|IOvG<-Nm!Ji$s|W^b`v-z=h6jR2;3;7h^7|2Nf9>s| z;M-D7?^nenZGPU1JrsDddV4guuAPBG0?lF2hpAGz)YVO>p^xMh9&w(x%_e*l#tj+M zk4zVhHBV=*g-7-c*=ro1bfAWe7!Po)fez?qcsEUjg%HZv#yxM({x;iPc3bwQ$Q3aY zyF;c>Y=d9oQOqdplaxm~Djl06SAtw*Sn4OO35B0@OrBty;Jjms@bjFP+lRJ{vG8}i z23WuHT>cI|YY4D+fGv~6jxVUsuK&2q3g5(-tFuw?60>`iy_k|L)k zuoPY_G@WCC?)tQMiM7F(X9aS{q|<+>f{cqpq`i~s(JV@+yLAT z(kM}03*OfcTyfzEj4@@@##4DJL?NyPhxc!aM6U7?12&1MmBh;dt$Ez=Lh#CBuv?!Y zD4c%?j2o^u_XTvjP!`K40jozb5k6feti@H~aG(aF1+?u+!m0qiw*~_&aFp%|9JtDO zfA?eCj^O({ZgIL;%}hrMTB2(v)YqukSNCO zh(MM0M3=tJu<^V)^^CUK2v5L9cNBcKQ1BO$#Y3?i>habnIxt4KSy%QGphJ9f8hwgn z|1_7;HAfOp4D$V3 zwN9W&`}N0w66FH2Sxqp&3mkaxvNax%&O!mQ<7EoVeDDW7T{nX8g1*gU#buG)s&tQD zC~05f&T!LQ23sU?;hV5kKWp+V&TMqB9oe3Rp4&3b?j>%8`$wRf-tE!0>~w_BW_cE5 z?rvWw;S` zlJ91p^4;zDdY&)f@;u`h+Ofo)?$!z20i96k`6O^6XC#onc0fbhluhw#U@`NVFVB5G zK>59ZgLE~NkTYup3-nW83WJN7}5kT3sK1bHVC;Fte*Kn~IFJMR3uqbD0J39?6YDJ3z1uum5 zwE)cu2w4Iw0 zk`ga6BMnNvXZ0P*KKl@}V8v+A2>tvdj5md3pRtBU!}xeO0tiSi9b60UPqHv43doNbt>HOCb9O^gQE_KN(WH}1(Jh#xlNt>#SQ~6syZD;-frbSb zI~%O``;(fvKeCNEdzr=!Rm1lhURi+F83Hs6wL&E*eX7w`_+wxv8lFvR9M+6oy!e+V zlbXM2sS>n3OqpKD5=^wy`-8P;h;K}h!e=b{7~Vt-jU55(;eY+ave$j^(dU0irp>bt{6|=_}Yduga869RDb;7vE&l;Y?U2;k^Ju-WZa=$fVp{E9LXI`{!EoeWnYQ*44dV?B88!*u#hs=L@_ga@87R({>{aq)@2tSt%7IxcAnOT`q;uY5=PnpV3mqBb<20-N_!$%rG8j=|oQ+-{|=3dFPxH zJt+!h_X)O2xSoFLfVw%yfM-fb6)hVA={-YJUOGReszTTaFSsZ1>{gVjCi)v_l~(|# zY&fLgHJ1xAkMyu9rVEKJR4?OPulC&j7~lP#vPvM?B-NO1pva{a675BmYlNpATRUIs z^QJ!S_$_KaHswp{`5hd-!2Hp;sw-1uQ&c`kzG(%Adi|*%7*`W(E_*be1b*~=*u!X0 zbDY+fft@?w{SJSt5D%w}Qrh<-FXwzmdPby-{Qsyq)Si}Vt`>da=jaO$;<#lzt9b@z z35O2{^$*zBJkBsuEEfA|HBfQ*%#P(Kv9j@28o%dID>7Hp*ThS#Y<{!l;~TTVt%CmI z2&?_7e$51HCzY_6TI@4iEqcs2jW7%N%dD2xnpA^*;QbH|l?r~&nMTca3tEa1_r^4v zsGl$g)J>qqqIY{3eh=m|qK4!~^X0Es4s9f=&@?X)?!qc5DW;Oci~BXrI$L%f-=kx> z;w=oU4bL8-y`&kpE7mF!2@dBmz+5X`#>*Ue8KTf&m_(Z&kG9;Bdj~Sc@CqEnz{PC zm&sG3j46$;XDXZDa%4DjoF(XE(}Z2vi&%h7{!T{>`;cqd$*8q#Ax^3PB`M_mY}(HX zIZc$Kj#z^HtVECB;j=azC&-E}Dh-({+PSJ^Pul znv2DQsXRKE%02s4P4OP{g+yq;Gkb5}&y0N6qu74Jt;3AmF70sKeoohXwVin62LH!b z)A@JXi$tc(kYrFE>iPV^)U%zi+cva!N_rb>)n1$hyFTh+73g_hoVQ^<@?21&cdqc; zz9*Vi_^3zq1)lBEBjU}m3^zqzn-WLEBjLZxCkRT zlb6!CATU*k=XjVzEw{S&@dKgnc7Rs7{#fi&Y2*&OxWTJyqMSMo9jIz_-04>~R|wrL z^M!phvyRWUxAvTVFtal)=^d31WADGy%O-dz`Xp(UYtI55(d z9ndu^o2X~3Y$5b-8cQ!;fO zVM#ze?!x$VD`FZc>)Xc1_MKtsQGKuzOB8OeTu_x|-|Sc;{MXsUW{hS)l;-_f%xUmQ zzK=@zrDS`FT96SR7$6#D#QO(`_8D=>0FBN-Iv5!CJ=JoSKcV?uwBtAJjCqzTp4J!r zAL7nFc()9AWl4e(E4a+9S&bJjW#0cnpdBMHk1uKF+PIGyH3|NkHwSdjm&~~wD8}wH z9#2JB2jsIP>}^pyKJe1F zOvkemcWjNtzMMJny8{zxuNsTdo>c@?(N7qM=S{&i_OD&I{}aY!+RKU^%I5S#Db0sK z)482_H^n=@e^X05XIqhirh_&11?Pw2c|0YTI&D)rN}YCpN|UR=U$jX)U4lr(r z{NP?0h&kwP6_UC} zwdV*HgvG8%4%_DF^D|?5fIe-iPj{cixI{M6$SbVYHwasVT!ft=XtrS&?qbB(B1UIf zL%OKpi~VCp7ejvZc*C(AX6!va{n!M*ZM52Ng|DzL`32S*zkbxu8@P!~5j?74hxj1v z67yRk*ZLtJkL2X;##%qYI;=BC_>04GaaE4mx2`dDeM0pNXjKlwx;aoX`=l zj#hLW%Xz#Z8!P4AJ+t^ME897F`q#Lw#kHdIXVWjxm^S&lz^WXL-wchm4>2CS0lHPg zDqVbvYq2}%PV%L+V4j=uvBYe;60nVA#vbr%M(qpOM(^@zN4*lzxF)ydcru}xLyN`2A6^kgW;UrZH8ut3IBDZ1Bk8d!t3IueD{lebBVX|r$y z1K{t?vj}hZ7U@ljCYN9c8uRv6&uqSQng8 zRwgMHB9?`p+P@80fJL}Nt~IXHSbDs*el{?hc_r#%HhjSW$yvV6hc7td5)zN@>4V&+ zq1!fMhl~A&=nwNAv_vAI?f1gZDexUP@lMdebamr7)E8GWf~X?VR`7G^&wh-3E>p1F z&o=SfOEE&e9AXOY^Rvy;qG%?eATR}seI-I>!wA7v!1u6x2;UqefAf74u+wD|e~~a1 zxMa2lwwR>YOaZXh5EF4Ho(RorzrCGp?#(pc2+=5q(6#I~>}EBeJE zS3-Nbgoko8@YL~}SXu7*)=ca8&K*5^4m<$hr9C|O%zT!{D#mvkRwrm9ejDxoFk?>Msw;egfxEE-Nf^)vXaI|p6N zs|I$O+FE&m+XgKO_}pL;mBKk7o}%p&-bLB5V%wx?eBCkalwun&viI)jPGG$Hg4)@T zmNVi{VeDnyGqYcJEWOxaAn!7a7#es&XlOxd+EuxCrSjqk?k>rs*M_+(T3DRTFBdM< zh@3X=iRRB4 z_839=ispA=(Tv<`PYDX_aq$-3rN4mw2u9&>qF8mA(I)mN5|zzKUCL%nQ@Zm_$5*E^ z1!|`Rtd{mmn00{WpDSz*wC7T;U&IXCinidjErEn{K|`T1RnAX4G_1chP;F3Zdjg%3 zg4yAC;G)9t7suEOEbYvjCg_HPWY+AJRzq5oMmk8Bl?;CxfrKyaBk=S~e55@Cs{d zPi$t6k1gih+&Fq$>IXF#*{QAYyvLd!N`>t+yt9r_abeZ9Tt{ZdFk!Z6R8vi;nseN{ zzTfV^81PAF=U&hD^0f1H9&Q^u9#YcKTA`>;Ik+3p0oQ!RK)kLBLiY&Py1R3VYFRVs zU*BE(PN1l+syy)`Y1;xVWPoUiyeq}7VV98qL0~9S5Br*&cf-3IBW?@54=)x69f9*= z;GG@~w}q*1dk0U-;2Vk$tNKQlow6(3pz@i3fI3xw%+|(x*b?H!X0*eS$!I%U41g_Fjs~w~W{%vvFrxAu@ju%;X<|WsiZl`Z~sT2u&BzHMN2a+tY3mUV#V+F7_EWe9}J|a4~K5v!6J~ z0@K;i;%Z56NOY$)=yTwU%?KT#*?Npr4?wX9$Ysf0CLpNLlT(o;%YSg6 zhbPBx!FR7e#(B!5QLr#Neu*y$0%Ov-obZaK%jt~hucvgJ3ik>3jFy$lmwPA`v%b(> zCYk5eL)TuMH3FJM@K$9>s$+XHbQhq_#+IyU1;_0nMwg<46x!vo0!n5;SiMqn%kKw-RjA zv{*;Sf-l8hD(~|HNk^fXKE|*l>rIFHJmH+)22Y1)1KJ4*c~=8iW8L({`dD{>)1@hR zp|zb?=#A;(YDho~oCf&+^>oE5aAn6;GYS8!s`CpOU~Hn5VI>nVVxC6t5z<99m*_jE zww&IkuIyN-X$Bm3qI*$CqMJjAZLNDy^9EhI7)wEnT8%ARjdOy+)`WAjhO?bhbEg+- z;9<>{=q4%wiXgtD*!6AXT>}Vaz-4sSa5t&T)t2kf)4->pB5 z@r%X=jEj18cY^AW<46a!#NVPA*_BugVLbV5^2+j|rxZOIoTeuO{yaADEc!Cj2!#DD zjSgKWGnT)IJ^u{GdXG<4D{JlifqKz5fmR?NP~WroHVCg_g}`X;k`yk`#*SUBBf=ZQ zi4lHR&EwghfvJ8dNq7DNZ{gDGnNR+6aHBrkwB2D66@g?oxJs zh`C5Hu{m&BI27m-E(X|JwnNq#r>ZoO=V*ti_L-{Lsf^`zXrK}fm0H-RpXhsddAwgV zhX36!K9@#%QIq!ScKelwOhj4JVhrSOA4(dAcT?HB)!H*t1hY)fldv11)qN~j6|E6| zp-=P~J*Dkt=nK-b{Fu>w9Jmt-c(^Mi{fo6s$MI^}7tw5;pvDTyQde_%akjRbPpI_l z^1!c;a<8NKJb5em7c{HA@XUwyW9OG!&l~HCE?<5Ot;b``=h*IzEOb$Hc^IED!Y6MO zay`%4ZDpw8M9f@?&zBp+$zn!lggZUsZ3p!tH z$)|x^g$n`26q@y(FUPufT&NS4uXWlwTU&Fs&cB7puw{&2mznCsD0>fNb7P*xT1R<` zwPXsmV>=vIPlaX9M3CkRAlQ?iy#i>w5FVE*SK}WK*$Sk*11!cR#UxtS?*`v#G@jOa z{zB;Pqu5bc3zD=Y`F*#wZWKn33=VT{0@wXpbwc-A4b=ly(|bV&3qf;NS2|y7H5f+g zPIPBG72U9{X|1_Da_)!apcm&>0VQw+I*-CL3-UT+ZHub*L|_q~?QC7)OwS#mk|{7lk}F1ySsnVuoM3Nf0)x+{>#D2%eiN?QAN`P7b=VShs5 z81uoNM1F|xMLT9EwIHs((;Qa!d{{2@+J_2=V`~RvS^z0MawdlC_RFl|e1M*32(aV9 z-kt1pFShc=s&*SD>O`&3d6uSc9A`h&_!t zDFqq<>?^V0t+BJPIvJVQ{0@*cUPw~)-xSitZLuw=1aJ4eqm<^e($h? zD{>clV=w#!#>X^vioUHfHKUFl&!IOlz$xcp6}QU)>j>z`Y=rKt{uuQGtdp!)0}hNk zu+jiEGT1Z1lWSY*d9A!>RQsRrc?J?@(uV_&sS}zg$9N$aKrF+V!ag4h z-09Lb%%Qy|Xpx_TPl(JGGko?%gI=jXD5ZIK_V2N}deNc7es8-lxpU)&wBAh*j`wkv zJWoR1gW1dKl-=dZXCqhpFh=mxoG&;^(QD=_ZD$G*V~eB`=C$jKXgQa)Vk}}bY=c8(GagK7&g;$3k4S#meEoaWo6^fxRVZ<8fE$9m| z#%9AVx5bl-P!|HQdJsPe!!DxWYrhFT=%T?f(ueYz@P&hXOgO1aJ$cCAQ>QZ}Gq0 ztD z$@!gBpl8HB?9fYn78iL&QI}YtD+8>R#)M`UO8tufP+f{yV+!=88H+YAOJFA}8%t%` zx@~Gg5r3Ake&|zfejnk`vn&`40z703WcL`RPV3E1uH*@+On(CWGV&N3 zPxX5rdR9Uw(RCTyQ>N1i3BP&r;4ce@VeHu^=$aVukk{O~q;Qf?+sPC%V!L+%e%E>x zJr3nM$)PXqT3X2Z>I$zx&m`TWRKZURTXe?YNp&+;{@fVzLdQDP)`JyV^OUZY`0@p> zrt`rZzO8~WA!YqC_?Y^$ z`}mb-y(W)IRIn!GYX-Q7cJcS#WrC(C5xF?8)||1_E%r1yzUZ)7l;B8^Wa+hTC2y(y z6ziC20{?1!Wpgdc+UCf09M?LYLb=tadrY3;$mtNbR+V_>WAwUN@B(Ub8`{ktvuNbZ zZoT>Sz#LUYM|0~>fn@^h!FsqzYRS8ckk*Vu$R+yx?Stj1t)mhdJnWe)H`lcsWy(Uo zUnW>;DMZ%rRQGVtVxUJ*|GHDswAc-9_Y#i8)vQiG-R0q% zw}E;ygIMY4;yc58PR%xx3da4;}X>E&`1W-V&T;r`M zE7&4kR|6R!6%sZiTI_DCUEA8O+sn46SKIZHG-_S%cmt)Vt9S*ud8t~w)v9feVpY`T zu)lXEfj~W{`^TQo`JB&j=JTEBo#(yG^FH%t^1km(CZF)O*>oIlAPz-)?RpLWB)J0r zCh9rE+Whk;@R|4#1eH9$hQ-Vc#?vkQxtGEGzQRKM_MAVX`BC4XtwDG`Wz3q^C;nLe z=77LL6-L(c_%#6|2j!{1J!=L0@>FHOlTrgzjSs!RwDU378*B*LIuGA3jNcJIlFC%C3>t^E8H#_1^x+`v1_yP%)d!w|BWKi_+=q2LeST0xv`)HPgf0Ws@9?Z+JavW^L|;&jpUXK=cDk3QvS?U zFrK+8EAN)^RWQamSSqdtPUQWW#Z9e4dWCnxSke#A;&n0fJ5J#vzK$N7a4X;@yVz9_ z5+AJA%QNv;Z#<576%yv^r#Dxxqd|VhCh#XqFh{aFY2d}K{`A=3#)$BM6C1A0whpd- z5aWN|GlqX+7B}@uc>I=d^TCVMv#DC+DNXQ{mel;w8XEM-*Nq8$LSpHE`)p`Fb4EMDcIB4GRvqN9<-1jK=8|y!&7e?7?jJoig<}}{hYs52F zbMYM2K=>(`Dey3-5`=56`!ki%Gi zq`OQ~cAhnsQuNwDN|18R7BR=1FNyi)B0D8pOg?)ldR-tT+iX@Fr6q~kMw>~rPDjQF zF|;U<3_MqnlrLr5B@VZxfjkIm z!Eta3+{E($qz5?OMeJVze+ON#KM?vbpaoGN8VmzZfq0Mv4&uJ-C@y31Tt8$gm&qad?E^#*3bY^wJOz@$Sda!Xz!YEt{4+is6oO*#3iu=N zru#F(p8_Y~pYfGo1K0+3gM+~9%cBUN1y=z-?%%<`+L!nTb+sDw0x@6`$N@I+CU_fs z0#<=CPz9Pn3-Gqf-qC1RU=lC`2Y3f81z&+GkR&d1km3`b#)Ul3D&-;m8OdfdTXH3vg_0ankt7$ECE4wi zX15knro-ltvZo`b*)EBBRvb+U+8h=;N=-F7kmp&mghLn|ITm9cj{UUJgp!|@BpVk- zOKy>|fW}*G1;%_z%g(b%`T6vW6`Rq<{49!h6rmEvd^-}Sr-{>z`R1%}8e_?^QaTE- zK&{h7>9tzYM`^K8s?Cb(+9|=9Rh(v*3Ms8n!WWGp-#U}VJ5a1{(YF)@bXsgOo}|f7 zQs$GCF^DD)qD*W_8?MzA6hQE86wqn;CX}K=5e$VVZK$u}LmbC!N8M){ZLlyrJebG; zxu^k(YS-pSdHJ~#Je_YuBMCz)3!0BOL$Vd&Xei)Wqs@ZsvWa=35w@Ujz%86Gj?xY3 zVp}My&Y}52u*T^l#dWv z7rbjk%T1Czf$`Q^v+~jUt@bRmr353|d@39z;`1U)lXa#AbtrQ1_H8wqXp$wLi!|Qq z3`TU947}-~Mdwheb*5w!C*qtO)2cHWrATM>(j;$TL*-H5XVcaOKu6pO76 zc*r8+h<2MbU$o~*Z7H*gd9)321%(b|MdL(0P&_X&5gE)DhbJ|ZBimFs$(C#>Uum3T zn$kKG`G?hJw41FKN>z-@&NpXI7p)fgpf<@QnyhwGoPg707tC=VE6$)>BloYi=#M%3MD<_c=E^FOlo8 z>!RzbtC9|FS$CaW^{z#(t5i2(!%{k2H@CL_#roUy#ysazT2ROnA9QVTK^%4MaP6UY zo1xmh+I4K%G}k6tf6x=CDgAfbfh7%_X(4uU*F=afc(l? z;&k%U>TyK*vT4qJ-z32Hjm}-LVXxB}LTO2^FZmG`ElN$CGp2S2xqjdtXsGtdSm|uq z7AI#ri5h%4lK39E{^~jdn@hRZ%8{o6#;$T*L}6D?{HDHz)-_h|b~Y(dO6^yy+q3x# z9Q-6G_o()|-(Tcap$?~ON;gzGm)E_{ZLHePYe0t=*PQm&0j4xmH*A)3$fhWlBc%?` zgY{+tW=-OK_cXo#u5RpD-`{ z2PjABaEqqQLvKSt00bodLDBMW=SyS7r@^|D$j zySC>j{q6jLjZ|5=el2Y*DLq1as%lDW)=|}VS=604u!PF?S2yDyO)9GBz&>oYx8Q=v zuaH#!JvOT^VYB&2=`Gq-v9q*#$>B2W)gGe_RprYoR&1?BFYVysk{iUYsH=}|Y*G*nmbJXi|Xa6P}I$$`D@)yHx4h9i6HXxpky-x4p3e_416+lcR-4He4e zs(k6X>+65u7oYN_HHX%otGwh5uRgf$I<72#+mE!^D#;M=rjmn7qSfc>j-YF_p+X6G z%S^W9V)`ZzGeDR&qCj8*cs&ROVX|o9YmDOX8`0Sxd_;8Wnm_IRWElV7VgCQZxnNQ( zWu+y>QbLN-okCXMMebesDiD^(8=Z7Y2dtyg+a2@O@=;0WrLDW>6VcXl^UcTmb*^bQ*G_SidU*QvRXoUYUPkOvE$%9F?MlAb!%Gtg*P#%Ea_ zosISxhO{M2Fgi>VjrI=Z`HWF~(s{<)Z5mA3@;2G2QBJTVct&mQ2`5-^;lstscbPO* z9vJ$nc=%JyOMgk)SY*&g56&tmYzyaLbkbpGa8|Kh3WvI*cBa*4`nlF&G3%{TK{!U| z9g{<;N2DAPS|rL7)?%n>TmnrhG+}IG$&D37F_gw&I3;>j_<{*(D+Wdme%hLA4fnN{ zD?^K9RmSAZWW3;HycNTrq_%+!uKsOdk=KN>FyM>zOv%er?Xi>|OV;W41Y&~;`dDfo z4HC~Gl9BqV8mW(}nYyT2am9au5z{g~3t%xUh>d08tQg_hEQJzz~+L>}~cAdl&0_?0t5feZW3sA7LFKe99KE&+wSxU)Vydi?KSfe!<*Wm$Bt| z{nrYtE7>ZnYuH-04r>Y4jcgOvEv%H4Vco`Vu&-DJ+s<~do$PO5H>(7D**5;*G0Jg`dm*gteIsWDg7Xu~?xiNnyi;VZsO@Cv2n;C&Xhl;IDeqggBam+DsC7 zT{48XS*Gv~`?WAd_>C}Cc#j!{Ea81-5+or<$i)w*KVZ)bSz-A?fnX69utMRt!e^{V zu%mV}gqgw%La{JQcv1MBU%vNwB=9;W3x5*c65bZx z5#ALxvKLhvPbCD0Pp64g$XTD2dk=BwUPy{$T; z3T92JK)Q(^2L7bFrn;`Wf%T^97FMmFs7l3ScKA~@_NLzuR^iu!RrxXc%CFili5dML z^&|RyKStSM)c*svuzw~ajXEGm6A&OmYC#;rztVJ}$(o6p=QQb>DVk?AQ#I2NQ>f`d zTQsGbO3fb4Ud=wuG0oSSX3b5_Ma?D6EzNDsY@~SyECj1HezZxmS+iDCrrEDyv_n&^ z5ds>)IqZF}X~OpJn(-lw^dW^ILBd>w{t#0ANMC<#*kHeDVFJqy3t$e&*Ct`;`HS%{a)01JtMm#r#=q1dxlL5bR19;248o!rO z_W<{SK421!j~|~zi3WUf^n75(kpmGFo||no@k(rX=JW4W0(66cEnwU zd;ZWpNx}Gm!#xy)A7?8uxR6nbPCG(MO9JikPg3%s`5Phj8&l3A_vy`C;{!&rSe! z!Ky~K7&HNIi+TXqja9;pc6Af!*yt3&`fR%p{03r8EAms==LCQ zma;YmcXY{ud%iVv0BzDm^C8zm2D1ZgQ;gw7#YM!w^W+AoLp$boXQLzJgC<9y8AfPP z4lGC>q{Cihv}YHlq20nPY+({_!$|2#>XTAw(^33$60HxUu{540DlHvp`GFzQL5hyM zm4A>-Z6$FhYsJZkr4YIoH{$QZhcX8Du76FTrqEEYRkC@RIwXUcnJ`nam&>2kTaUZn zdeXq}w4D)uN1)tQ5k)apOc*mNePVKQdUE3EsdC=~H??gAnD&=q`JA^tI$W<8$2#)G z2%V_c>S9nMoUVa11fTYy__Rmk+&_$Sj+Yw&-m>+2G*7)A{qspkcL`_1A95Td-~UuT zJBt1q_J=VZKOgZmh@X%68u_eUg1m6ZKA`-YP#$_DPT8NV$hfx^Id6v|pKq4s z?789bgr)kvY+24d{GlwR0|&Sir!Eu{AitY2dMKBR-|t%h8Fy}hb}{5T{dbl%Kt?`# zZF=`aubs5;$g9sr&Pb%n@wo*RUnbIscc-1rIF%STzvP8}t9mD;{>SNtvwg=U{kc9R zpz8AMr0Zi(?G^@=B(4AKXmR2T7nA&Ppa;S4!GJ;9Cq>H3f10G6++@Qj((3dPkx@g2 zM#sb_Bqk*rd=$p4Y?Fi`0Gg??4CISbUr|EgpTmys$egN`eG=5$>??coAm* zuP*pcpz`K2b=l{5KE^j}f28$g2FvcrBJ~9$sRh3PH8+$ADnCv@7j@UxR=m#`PsfbJ zRsQaB*8_JwaMuHOJ#g0pcRg^|19v@e*8_Jw@c+XDExSow1v=MuQ#Xtk_#i@!dBE-< z2;2{X!9ze~al2wk4Efpo8=u?ab2^XGBl7&4Kji&w^F{-xmpt>uX94-FAfH3Jg1O9} zzzuKC44@$k344?hVk$q*(cr^Dqglfax`|~zh`Ld!pCghS*tt6d1tup6xSc6Kg#c)U8gjuG}Gr@fRiO)sxw#L&9gYV-o=gk*J!(^%aHiS?& zJ`>I32g;IrdpNJq|L~Id3+4Y`kMH_8Q@8e2J|nI8J=ZimAAcMFZ}m%fTZAI{`HD|V O95d#>@zyWJ6a53oPitlX literal 0 HcmV?d00001 diff --git a/Copy to SD Card root directory to update/BIQU_TFT35_APP1_V2.0.22.bin b/Copy to SD Card root directory to update/BIQU_TFT35_APP1_V2.0.22.bin new file mode 100644 index 0000000000000000000000000000000000000000..606e38c92d35c3dc743bbb3321f43a475324305f GIT binary patch literal 70004 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 z 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

;JYKHZL(Mkw~S@v;3% zgnCquLncXAzQz<`}oja)o8S#NWqESY? zzmI625tqUvgwFT$4f&R8IV+UVcmnPCRV!ng<&CE`vhPFOxd!g`1G6iM*I)&gxizc) z(&fziUlLj|0;}*P&0HJzGb1Nq597^(@x`J!SA;@vpYeD$MT|iIN&;`g()w>xD!w+| z{{)b^647=hJ9s3Nl<0PEC{FJw4Q5S)`zQPk1z)U3O6cp6R1vZdBz%D$>7aZgM#{U2 z`ihnryDVr>xK>*K_K@!(wf}3nTb^COvzguhb#Uj`OxyDlcWjNtKA$=9n}ZXHSB=Gp zXB7cz^drXMc~fu={hF$-idDLnAJ z7hyMq2Zpu&vULzR+^a&1`+A6R{20pcscJg~2cOh2vNeadBP_TgC2WhkC&Y~D0s^zO zHr;m);}ZE(Bd_pq-@tF-hav0?UcU`oxR()Mi&{J-b?KsBRTvsGx)8df$Lo&eFk|ly zn#LxCoTGIi2lmVQT(!_q6*7%{u#TI^6kt~|aEK2PmpG~^dc7CA@@USmJy`1}IEJ+6 z@PBgKFRjec1=p44oMuCRD$TmUj$)!(7p2%KjN{t`$7priv7E>2vawR$(=|(#k zt_=0~OR3^;7U*zVb>~`656|&tcOsv9>JC{wZ59qmfNXD`oqwmxV*JFVE^KxW;ge1e z^=X>aMZ1B$uI7N~huLEn$5rdwN~*bFB7H$!OU657LrDr$pcCoVj}6pn((~V zJ6qYt?o8Xw5cNt3W78h<9;T>n9=N<(XsL;(8xNkYhTGT$*>E}nU3-8 zJGx99WB@=`dt~65?Hr9&Oz;k@PSD1tq{Fo9g0W3IiWybRCn_9qVi%jZQ6Plz1Hx@Q zn+v{>j}jM^(3JCcoY{nkV6X$XhBHn56#KTFhmGbnGdoS^D8I;UV?QKX<2kIx< zKH&t)juqP`ef{h1X{XiOfD^rMM`r>PFy&RxhUT0Re~f^a_07zF-F@$+HZ$$8!ieF% zHGEwYQZuX^_On!#IGp>LY&97o+*Jd-)8?1*7pp|h5Z{gEqyFihcA%N>cHeP6pQk)b zf|X82!|qY(zItGRFESkxRt(eB>lz?uonG(G48GZA0p+V3Pr&;bxiy^T)!=dQ7CS8e z6SgE6g(Hb##TCYo*riU?G$wUu8ubn7o;TfJoX+H_of5EGIv``#0iyjdezVXzjB@=l zX4q!5h04$*B%GJb`TSHRKdrFA{@P5nL8*8W(kP8_aNMRd~7WSi5<4|k(Jb$NVdTLtQM zk~t;~???JB`nD_>&*32Ca0qgk5XuIcq&9dCIjXp#GGt?wmmHccnsh}S)MB3s?5Ho1 zKDGRyddiQe$Q;gs3N&3As;Vm+fW2&BGvPO{b~JazX66LhLe9sHqqoH&P=ke?+Kk=j zSlh#?@RP<4rNgycM0udBT9-MpjbuAG8u)7T-eI=5iQXU zL$T}N5=MO>3`XjaV1wr_>~IE@#_;>t$>ES&xF8DecImk-Ol`}%cv6D>kyH_F&*+lV zF0~I-J`-?Jr)!TnTU36wh-9%Dt?+uXIFDfrabTw%P1cxg*i~njTZH`Pnu6!dCp zNZp{>ZYjuY=NcPJ(=Sz)YES9Ls4o^k%1_euy)jRz=Nx0-1B71>B)>!XO8ygBe@M0c zA3}aXMTi?uV*-r`p5Xudb|b#cJ6FQri5B}4)wm;kim}o8Wq0&c5#+FZ>8KD3DXqpb zvV)zdA4B7a_L8UcQ>4h|QhMs?HgIeyjOz;Q)O{xeeeOE~#t6sfppIDKi7t!EhSm8` zp_R>cp_HRf3+mfKKor+0<5E!mo`Dq8Svz~pAr`pC?j~nx?D75S> zT5j3UEsO=d_+r%8gpl_ocUXb8LQhUdmoEFxcLBQ@ehs;M?J>?@B9DYO((%ixA_-`e zo@In>G+jw&cyBGG<5Bxg`ern(Shmbhsn|^Uz7p9suNDZ*;;iAYD#DIU_M{rNE5mpZ zmThd&>SjpX9%hUwMtF?XZfIsZnOQGk7kks}N?C3G{^CEHb_20E?P9ebbHsQ;!V2&< zAg0IpU7~Qd*NQa|p|*H*yHlop+Y@gn+uE)=wW}UYhl$ zTXzB4?zMMdx4(0OVM0RgHG%d_`S%y=W1RwLOjE1)=2n&3WJwoSK?7pu^uWNcr7KpA zD;KUBN%7~4>C>?xS-Ic-VyE3q+#Re6NzRc7EWqwP&+t|*GRb2wlKZ9}H9n@AU7CXPA zUi6jF43q@wd-mW4{xz%+82!&=wHLIpV|VlL$i_%wRJFV6N=5~qxJo>@DoczS)_sYV zP6swh$rW`;RVh8Kz?7iAHtdVeD=~W4Hye?xk209sX9CIet{;fLLLO8a*fZ z#UA<^R5lGMPCF{A51EaIsOoT4sj4%hr0Pn#SJVC><|6gPM&S&9Sm@v{3G8j#6+I_W zRhp>ch{Mzct(ELl#(pQPQ3*~W+qO55# z2Ku)TWj&+vQQ13nhO<+6n?lc%Vyhujq)-+8Rs1hai9w6MxYY*RL3%bSX7L>dMui%? zycLt}#aigiDwX|sW*d1OR#5husw+#f4V|ila{q2W_O{XNa~EEq9XtL7Tk8OJr$hU( z^Gh8UEHwpJt~`d;Q(?^K*v^eC>`;uk7@sl1CvW73`Co83OHjj!n7I;PEVV?E#fH=t2oRKiiWEVeDEq7 z(R4Mmrb<8$!>sY(pS#q0qKFUrj${lJXdD?aUMp_!O*I*uTY;9w#3!$Y)&cv|Gb%j-55a@XZ{}1#IaVGg2#1*)23jV((WgYkjkN zO7+R6Jy(l7YR?4U@vezXp0Ai!EJatly8~%wh2K;Q0=qW`Sv=;n#wpb+tFg zOV_zt<@9C3?sanC@y=PMFF-|7)q1{$UyYnCj6H)nDFqe*>?<+p_SiYd_b}$ccX)Rv zXS{ToDQwJEbylV`j9C9?ERZPBFEVr)Jc! z<2m#u23XxHc+Ty1!(#&WF&kk=YdS{#0P7^jHNlN>2c8?CMg}}1b~9~Bym=vy4TMR%do}g5sk{|?Jk64KZ?Jc7T3R9o z@O)(TZJv?7x!Bp@2lF3&b4!_XbNNEpOIWZ5dKQ z`!Zz3K5YHc82LkGP59CwRsAy?0{l=dAzr7PO{{sK)rC^kK<90#&O?rfm#18P(BZN# zt;XKV^%ht(ZjE)4n}+_Kr;7OArM~e>Uv%MbMky=cKtYBV}ty}TvbNMsp`gH>p88b%>o;i z`Ic;*r_G^U71R|#t2z!kKSQprVT!Vkm2+BxW6rswO(`AY_@lziiWz($I}tXsnI-B? zrv+6*>d-X5YBN*7UeIk(ciiDF5uvf#qDF4UI*g%}bp?(h>;l70&K_#^tG1BE0&-WR zsUJH>Wt&n*yq7jo+~l&m%!FF3Ze%B`O4RjJ>a@0zWl!WhC+C@9Q3npaIB56M?jX7% zJ8Wfu%Tk}v=tZf2DF6YckhP@1cABvpa0;^DMPI7VD8UlBZ*pDJ+7 z#Q}jI^G92JzS_(W=QsKjYqWel))whJ@qC-HKe3U&1T9!v6I(=2?EdXqcN=kEoN}M* zA0%ou;AgwC3}5;2+|ro6&z*k}I~zN(;x5AK*uF(O_Kdo#grj-%_-xi`4ch(R_*J4- zr6zrUE`5d3H$mUFKYO>|R-1(?nvIpOz5||6%3MrwsIZ$> z%t`c59-B_f7n!T&66UTP?7eKVdAOoAa*63AkeVJ|M=1+xmf381s zsL7Y7Wsx4&;nzmbn%6&+pV4Np>1}tEG1zIe#B?9_S^A^z_|@kFR=-tLvsUD52Be2B z@xKH2@%n;9eye{dayrOo&?cV!2)%9=cEYs!%&j)RO|)<}pUL*RFh^U~*4X@`a32r< zur4l|T6AJD(wYJLt^A%)>p*#`Yp6tKKYKRI$8{`2nX=ID@8j*&6e4SAs&A-&36LhJ zfBi((H@VC{-%`IFV+=~`{Ig)Mp`F&_ZTl)Hs!^AIro*pl+y?5+ed7PMcjj?XT-hE!w;B-97!$J)C)z~} z#xa214X6-}tnCsPBA6(dj5c%u9iW?Ox&=&TLK2ghOcpa)-;8;K+MQNoR8&L-C8$ww z1KHdSZei5Ki5l0$VScx&8yez!nLp-z-sgRuRiAI2Tjwry?y1|=_ui`N&H#POo-1Wh za|7{o3xDoq7{9Mjg16K8^O>LY@4Kllo=+KH+CKD;Rc{Uo$WvitJ&#`#Fmh0y_^Vwl z;B8cu9#2XQQnfx<$TV+Zt~XHMchfw4zc7AB{6O5m|A-5y=VNmL&q-ZtdnNAj!IuIX z`ZvnYPhp%siGi#5ee)jZXZ6tsZQ#%L-le~Jb=jteHr&L&O$DO|hNpY+E>=n0oee?g zYu&uM0Pnickc;(N^j~jY9gbh!<=VuXXWAn5ZEgISt3W(+Raw<*`j>$i=U}P66fl+d zXBJ&-AKovl7sir4cowgRe!vk58+~}>gt!}i*V);gf)M{ey-uEqzl3+J_-|H|vGFm@Mz7xXB74(;` z{u*zO>}m_f{iHi4sN-o^VAZ{PdgR--d&2zd*`V$Cr(VpCTp97ekg87->e_tqTfV#7 z7T9Uts8b{U;J)usIf2*@h8zqY z0TBQ4LKL`B;-$!&)`OZ4L^mB?lscIFeyFD5>1nIngEKE zGEHVN!;~Y5Ii`FYC7O+1dy{n907|r4EmlfS5Yr7-qiD%S#&9t>KY;W+SH6@ZrQ0MU zS@I+lWPr{{$)-6HKR`qP--yYO#?gaONUjY#WgP~v;hyV`^XZ}%;kArwH5j+V@T09HDK{yo{ zKn^GXpFqC=lmI7K0zL;TKq*)Y^tdlu4*59j*#P+^*aEhLouCdhfM)Ol%6t{P1^x(_peLz1D z2p$65mm!cIUyeZ7+m{ou|L^wYlPL3PFbfoe55W%508WGR;4R&inUd8^33e%8k_$_dY&J@^S@I~=ZnaD4*~n?K zNn(}-M^l1UyV-_PlMHs`dDtKpkqiVQ|D7@oAEzKRcV9Fq-oFEChPVOUrgJt3LQk_gA8naoDJIa8ct z&lMGaTZ6bmJ^D<^#w%b8Qar-*%E`nGi`AAd*-(oyr0)n*Y+4%5S{9{Pu+2}mO86F) z-C;G!u8g&3i14gvwZIZF$!^ZJiAMSSz(=v>JVSmyH%GE&SaLE^0~FP%&5*KkG9`FA z$ACr>f>dTSA91#1&BxJDz|#h+8QEnMvqS@ILEnH|IOPdS(Wi*X2{ctQ7)2$l^Z?L! zEU0rl?+uvD`4U`YbnjZFT+3{}H%&}12J($JRT3~2L7aFmG8i!6CbQk08p<&pDx73s`YBktQ7BeL& z#--<&(z8X2Sw5&$GKxlvjT9%~G}**tdpfU=w@T?LhKTMGQmjQ{Y^K4aG)e9VekoEa z;4vw~WX+|T=F-j0spMGXsKR=j8n(}EBxj}bJI5}^2FE#a?suMbUUJsZzKv_Hkh9sj z(0PfPrmR~+`I=4D&>Ah=E?O5eJv~-qpJ+0mA z4m4DJXx+28Wdm)Fb(A87;~U3T$4bXpYQDK<@vejGYN)9VhSYq%>mWsHf_EKsl+n32 zo7PUz>#2Tm^G(?-$2Nzmg2FP*i2?R#+x7dgru^^P+zXW81Dj%vs+9c2y&Kdo*@R4tw5*!6WB zY%h0ghYdR&jvz`-aDL8@uyA2g{7d5-x03Ta?tzwiuZ%U0i<@KQY{yW8&&LqoBj*>+ zld!phd#wt2s$uL(=UEhX>F95pZ_=99`W=poN|aLj#TX+p<|DuKyo;tvkmim?rat_%P<#MFd!Lhg5^xzd?#T5_E8xbpmFo-wCtatIWgpMb0>wV;o+noobUcO^dJw5DkZZA=^AvWDx-KB9)pdegWpb*0 zD6$pB%jK+*qHp0pcTe6!YEitu9Xl6K{Jmzj&gZLu~P~iw_2{#3FP5!IEtFPjaZ6!?iHR!ws^7Y zyRM2AydY%Zu0qZDp-@}c&aFAGs1_lU;vvMZKn!=-A*4C&I!362Yz&fKa9t1)a|HH# z)duCc-L(v9zTwAMf!s%strfn3fnq8zwBI{ zIjb$)U{Q7vH{+CRAOFarE-kK8A{@pYbHsHtEQnm)T*A{;Ufg}UrGD==s%)&O!KHKE zN~$=}^hMc8sw~IVvb?RfhHC%TvK80Lbt}uRZr?;rS1KE+@^bA#`l@YDIn~sxT}|a> z6$hxcuA!n~4b^RtMbptei>Y#V{WbjiNp&6V*@exPo46qIDy+ZyuT8AjfZGmUDdMc<(nGOOWV7s>?-jq>Z*g~Eu}S7eYLvE9o%uc`XueIEM33$ zV&g*M8(awM%J!@&FWvfC$c}ThO&c%r8tz@o%PQN%Q&ijtqPmu*Lshj6O^sX2+O{=S z9cbCE#J~eh2bAmG&K>0!xamA%4Am^G`;pcS-1-;$M?>h>l zUCrbD+@Bqn>$)G8>$)G8pWp78WnH(-vaVZZy(NbaKD#V@uCR*&JG_rQ6Mb#(Mb^pv z?oO>T-t64xA$PC5i&E~QchQii$KFLNci+2c$TL#yqSf;rezzs@7QW}YZq0?{bluK} zJXq*fo;-Hwrjv&fd?ewu@Da70j~=|1l%$#Nfkvk?HqB!1ZnW1hq$6RR!ET&tuyrZV zYmDNR&OP4l(2(5LG~F8I6my(=)Yh4BiWwI^T&%p8X*1=4p|^^M>o70fMw)132#*|= zmYdfR&cNuT%g(U0BAXNjbysbH#cKSy)^0ZGEK+V5M(16VL#acg91)x^$`jUNu|^!`*3rUW*aG$`9y9zaE5W)5s{`w2%!PF+TgEmPO%&xL8SvA|jwz6&PE3kvrfSqg?*aJ(CGDh#PWBAdHOH75=Wq-hWjSXQB z33sz-p(jZpj|q8?IyeuqbbA?xh*M!%F6)ZvEbxaiA7Tyuw73K@?3FYj0m5Oev{-J7DEm!%_ zYpQvwH&kz`N>z8Mwx|SJtXizvrt(+qMyj_|@2K8Y9Z&_bi>d&+ju!)eP+eACQC-D) zU3CMi#z#~o;W0b>0ULYMXE>|&>BH)L7=7te?~}j`zJq;;em{UwdI$~th?NXXWu*4^ z>#O$j6CpJq2H_{wJ!pn{s`?pqiuzggQ|g)OS%}F~_o0pI3U!UTR=rcbOMOUvSba@> zU42%4PJKiDqq-Pr=7SQjO6^1I)f?2S)s^bqYDQbt^=iSd6`aQ2x9W@7{-mB9#7GyE z7t~jni_j}U^$+*=)r1W5nH3_i%n(0jhb#^;G725+AKTs^JrJhy?a{MO-@EU*FYv*E z4-JhT_4t?N+!tfunG?HRy6vg;ZZ+0j7Q6J`mR~7GMzIgoU4yMA(m@4YUdI^H6CkYh5 z0)*ZI|Nml2K)!KcB1oc`NYc_hq@#N&oC5X_8ntKl?$JcWVpLzoXN2oF)=tSJVVs;n_^?5 zbjmJ*8by_;p+qeu>L@Xs5+f)P-zc@wLk~LK?I15CbSCy^rtZT6%C^Y@dIIsHhxS3_X;Xxs zZXO$jTdZTX?&hEsrw4~=(ZZma(GfyRbL*y~0eYf4gS=VF+9=%7rM1*RA!z-nkPYO+ z`mhFi4f}HU9A9i<`9=AJrXt^!#c@*QyR#$1<%1@MqZx*4P!3`eL$%n880p@HX=t}F z3tO1P+b~kPlX|68+H@rUoQ%{3&;*)HQCj2$I$Cu_tRh@~L9 z3%C96rb0@lEcOZo8-s&AR>|h2YLSdr0A?!oa!K9mt)qeXJgeb%+QNwcKA_xH5k)at zj2k~TWolw#N@D!DnR4G_=2O}*d_Z&_{};+J(-JS9y@9*^NraqEbpt+DaN6e0=n#q~D)t|@H==WxwntnV!=B={A0W0rKNc#JUmQ($oNcdCpB)_`v zixaL)IKD#&ElXJY>A|A-!m|m!IM4&&_h3+{=24Ndawd|Lk(sC;OB$^%JR)-Vh>=mT zaq$U>dM||`E!`+#D1hdwEJOI>+3A$?`gUD>Iu^G+R$kaG79~NPya=~gc)SR+|5q3M zk5JXMO8?6L#B(y<;h!FEf04nmJJQJijDh?GA3uL?C=*mZ9KRm^J=@#y8^?G`W(=>f!iLq?Sb1Kxb1=eA0C*tgZ#rm_u8)Sh4BI(MEGMqus7%n z?g4?|K_If2?a?F#{cIkN&u{U$ox$|5JP+p!c~8gu(IDz4&w%mSKt4Oj=aLM1=5GX< z;5m>B@&G^ne>Klmg7_t16<80x1T~-@Gz0wpi2v8%6gUHlF*o-rcpH2OJ_Szj1z@+V z1E06^%q0>%fpke=I+z8r0NzmbF9hDc!&s8|fB9^HeiNt$Ux8Y%2ZW$bd~WP6%#+*= z5A?%437=QJU!J=R!FV`S_K9c4hL`P&9IZY0dkw8U_?XQzdv&Wg&rH{?;*xMy=40-Q z&-*_AtoqvX&km8tfM#qpbM>&Qgl5xvnge+r@*-pgTTjoi5;_Jc;0Nw!Q#A9Q3+xQ5 z;Vlui^E2v$`JeHa2YRyOymzK+Z|5ljQ2Q1(6!Cmc%M;7}&HcmYa>G$t1O;KnFjSt2 zB+NwOSEDf-sigs^$v`<5FN@*Mz7caw-DiaP>=U1f;%$wmI}G2qV(yzSj2@Gv@{S0h zZhS_X$19S1dlawG|L_w33+4Y`k1ra+{4M>J&qx8@>#E1I^V#@({1ToPp-6tdVw2;? NkN intervals) { @@ -92,7 +87,8 @@ void LCD_LoopEncoder(void) } void loopCheckMode(void) -{ +{ + if(isPrinting()) return; if(LCD_ReadBtn(LCD_CHANGE_MODE_INTERVALS)) { infoMenu.menu[++infoMenu.cur] = menuMode; diff --git a/TFT/src/User/API/Language/Language.h b/TFT/src/User/API/Language/Language.h index f72ab7b17c..141272f266 100644 --- a/TFT/src/User/API/Language/Language.h +++ b/TFT/src/User/API/Language/Language.h @@ -2,7 +2,7 @@ #define _LANGUAGE_H_ #include "stdbool.h" -#include "stm32f10x.h" +#include "variants.h" enum diff --git a/TFT/src/User/API/Language/language_jp.h b/TFT/src/User/API/Language/language_jp.h index 67a9b4e478..caf1b7f1c8 100644 --- a/TFT/src/User/API/Language/language_jp.h +++ b/TFT/src/User/API/Language/language_jp.h @@ -27,17 +27,17 @@ #define JP_FAST_SPEED "早め" #define JP_FAN_FULL_SPEED "全速" #define JP_FAN_HALF_SPEED "50%速さ" - #define JP_POWER_OFF "Power Off" + #define JP_POWER_OFF "電源OFF" #define JP_TOUCHSCREEN_ADJUST "校正する" #define JP_SCREEN_INFO "ついて" #define JP_DISCONNECT "データ接続" #define JP_BAUDRATE_115200 "115200" #define JP_BAUDRATE_250000 "250000" - #define JP_PERCENTAGE "Percentage" - #define JP_BABYSTEP "BabyStep" - #define JP_PERCENTAGE_SPEED "スビード%" - #define JP_PERCENTAGE_FLOW "押出%" - #define JP_VALUE_ZERO "Zero" + #define JP_PERCENTAGE "パーセント" + #define JP_BABYSTEP "ベビーステップ" + #define JP_PERCENTAGE_SPEED "スビード" + #define JP_PERCENTAGE_FLOW "押出" + #define JP_VALUE_ZERO "ゼロ" #define JP_1_DEGREE "1℃" #define JP_5_DEGREE "5℃" #define JP_10_DEGREE "10℃" @@ -65,28 +65,28 @@ #define JP_UNCONNECTED "プリンターに連続していない!" #define JP_DISCONNECT_INFO "SDカード PC両用" #define JP_LOADING "ロッド中..." - #define JP_POWER_FAILED "Continue printing?" + #define JP_POWER_FAILED "プリントを継続しますか?" #define JP_CONTINUE "継続" #define JP_CANNEL "キャンセル" #define JP_ADJUST_TITLE "タッチスクリーン較正" #define JP_ADJUST_INFO "赤星をタッチ" #define JP_ADJUST_OK "校正が成功しました" #define JP_ADJUST_FAILED "校正が失敗しました、も一度お試して下さい" - #define JP_WARNING "Warning" + #define JP_WARNING "注意" #define JP_STOP_PRINT "プリントを中止しますか?" - #define JP_CONFIRM "確定" + #define JP_CONFIRM "OK" #define JP_TFTSD "TFT SD" #define JP_READ_TFTSD_ERROR "TFT SDカードの読み取りがエラー発生しました!" #define JP_TFTSD_INSERTED "SDカード入りました!" #define JP_TFTSD_REMOVED "SDカード出しました!" - #define JP_U_DISK "U Disk" - #define JP_READ_U_DISK_ERROR "Read U Disk error!" + #define JP_U_DISK "USBメモリー" + #define JP_READ_U_DISK_ERROR "USBメモリー読み込みエラー!" #define JP_U_DISK_INSERTED "U Diskカード入りました!" #define JP_U_DISK_REMOVED "U Diskカード出しました!" - #define JP_ONBOARDSD "OnboardSD" - #define JP_READ_ONBOARDSD_ERROR "Onboard SDカードの読み取りがエラー発生しました!" + #define JP_ONBOARDSD "内部 mSDカード" + #define JP_READ_ONBOARDSD_ERROR "内部 mSDカードの読み取りがエラー発生しました!" #endif diff --git a/TFT/src/User/API/UI/ST7920_Simulator.c b/TFT/src/User/API/UI/ST7920_Simulator.c index 1bdd7e38b9..1bd5646954 100644 --- a/TFT/src/User/API/UI/ST7920_Simulator.c +++ b/TFT/src/User/API/UI/ST7920_Simulator.c @@ -2,6 +2,7 @@ #include "includes.h" #include "GUI.h" +#ifdef ST7920_SPI ST7920_PIXEL st7920 = {ST7920_XSTART, ST7920_YSTART, 0}; ST7920_CTRL_STATUS status = ST7920_IDLE; @@ -132,16 +133,17 @@ void menuST7920(void) while(infoMenu.menu[infoMenu.cur] == menuST7920) { - if(SPISlave.rIndex != SPISlave.wIndex) + while(SPISlave.rIndex != SPISlave.wIndex) { ST7920_ParseRecv(SPISlave.data[SPISlave.rIndex]); SPISlave.rIndex = (SPISlave.rIndex + 1) % SPI_SLAVE_MAX; } - #ifdef LCD_ENCODER_SUPPORT + #if LCD_ENCODER_SUPPORT loopCheckMode(); #endif } SPI_SlaveDeInit(); } +#endif diff --git a/TFT/src/User/API/UI/touch_process.c b/TFT/src/User/API/UI/touch_process.c index ac18a97679..4519818da1 100644 --- a/TFT/src/User/API/UI/touch_process.c +++ b/TFT/src/User/API/UI/touch_process.c @@ -1,4 +1,5 @@ #include "touch_process.h" +#include "GPIO_Init.h" #include "includes.h" #define XL1 LCD_X[0] @@ -140,7 +141,7 @@ u16 Key_value(u8 total_rect,const GUI_RECT* menuRect) { if((x>menuRect[i].x0)&&(xmenuRect[i].y0)&&(yAPB1ENR|=1<<1; //TIM3时钟使能 - TIM3->ARR=arr; //设定自动重装值 - TIM3->PSC=psc; //预分频器 - TIM3->SR = (uint16_t)~(1<<0); //清除更新中断 - TIM3->DIER|=1<<0; //允许更新中断 + RCC->APB1ENR|=1<<1; //TIM3时锟斤拷使锟斤拷 + TIM3->ARR=arr; //锟借定锟皆讹拷锟斤拷装值 + TIM3->PSC=psc; //预锟斤拷频锟斤拷 + TIM3->SR = (uint16_t)~(1<<0); //锟斤拷锟斤拷锟斤拷锟斤拷卸锟 + TIM3->DIER|=1<<0; //锟斤拷锟斤拷锟斤拷锟斤拷锟叫讹拷 TIM3->CNT =0; - TIM3->CR1 &= ~(0x01); //失能定时器3 + TIM3->CR1 &= ~(0x01); //失锟杰讹拷时锟斤拷3 } void Buzzer_Config(void) -{ - GPIO_InitTypeDef GPIO_InitStructure; - - RCC_APB2PeriphClockCmd(BUZZER_RCC, ENABLE); - - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; - GPIO_InitStructure.GPIO_Pin = BUZZER_PIN; - GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz; - GPIO_Init(BUZZER_PORT, &GPIO_InitStructure); +{ + GPIO_InitSet(BUZZER_PIN, MGPIO_MODE_OUT_PP, 0); - TIM3_Config(719,100); //1Khz + TIM3_Config(999, F_CPUM-1); //1Khz } void Buzzer_DeConfig(void) { - GPIO_InitTypeDef GPIO_InitStructure; - - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; - GPIO_InitStructure.GPIO_Pin = BUZZER_PIN; - GPIO_Init(BUZZER_PORT, &GPIO_InitStructure); + GPIO_InitSet(BUZZER_PIN, MGPIO_MODE_IPN, 0); } typedef struct{ @@ -446,7 +436,7 @@ void openBuzzer(u16 h_us, u16 l_us) else buzzer.num = 500; - TIM3->CR1 |= 0x01; //使能定时器3 + TIM3->CR1 |= 0x01; //使锟杰讹拷时锟斤拷3 } void closeBuzzer(void) { @@ -454,30 +444,29 @@ void closeBuzzer(void) TIM3->CR1 &= ~(0x01); } -void TIM3_IRQHandler(void) //TIM3中断 +void TIM3_IRQHandler(void) //TIM3锟叫讹拷 { static bool flag = false; - if ((TIM3->SR&0x01) != 0 ) //检查指定的TIM中断发生与否:TIM 中断源 + if ((TIM3->SR&0x01) != 0 ) //锟斤拷锟街革拷锟斤拷锟絋IM锟叫断凤拷锟斤拷锟斤拷锟:TIM 锟叫讹拷源 { - flag = !flag; + flag = !flag; if( flag ) { - GPIO_SetBits(BUZZER_PORT, BUZZER_PIN); TIM3->ARR = buzzer.h_us; } else { - GPIO_ResetBits(BUZZER_PORT, BUZZER_PIN); TIM3->ARR = buzzer.l_us; } - + + GPIO_SetLevel(BUZZER_PIN, flag); buzzer.num--; if( buzzer.num == 0 ) { TIM3->CR1 &= ~(0x01); } - TIM3->SR = (uint16_t)~(1<<0); //清除TIMx的中断待处理位:TIM 中断源 + TIM3->SR = (uint16_t)~(1<<0); //锟斤拷锟絋IMx锟斤拷锟叫断达拷锟斤拷锟斤拷位:TIM 锟叫讹拷源 } } #endif diff --git a/TFT/src/User/API/UI/ui_draw.c b/TFT/src/User/API/UI/ui_draw.c index 414f9ab31c..0d81cc2f24 100644 --- a/TFT/src/User/API/UI/ui_draw.c +++ b/TFT/src/User/API/UI/ui_draw.c @@ -1,101 +1,9 @@ #include "ui_draw.h" #include "includes.h" - - - #ifdef STM32_HAS_FSMC -//Config for SPI Channel -#if W25Qxx_SPI == _SPI1 - #define W25QXX_SPI_NUM SPI1 - #define W25QXX_SPI_DMA_RCC_AHB RCC_AHBPeriph_DMA1 - #define W25QXX_SPI_DMA DMA1 - #define W25QXX_SPI_DMA_CHANNEL DMA1_Channel2 - #define W25QXX_SPI_DMA_IFCR_BIT 5 -#elif W25Qxx_SPI == _SPI2 - #define W25QXX_SPI_NUM SPI2 - #define W25QXX_SPI_DMA DMA1 - #define W25QXX_SPI_DMA_RCC_AHB RCC_AHBPeriph_DMA1 - #define W25QXX_SPI_DMA_CHANNEL DMA1_Channel4 - #define W25QXX_SPI_DMA_IFCR_BIT 13 -#elif W25Qxx_SPI == _SPI3 - #define W25QXX_SPI_NUM SPI3 - #define W25QXX_SPI_DMA DMA2 - #define W25QXX_SPI_DMA_RCC_AHB RCC_AHBPeriph_DMA2 - #define W25QXX_SPI_DMA_CHANNEL DMA2_Channel1 - #define W25QXX_SPI_DMA_IFCR_BIT 1 -#endif - -//SPI --> FSMC DMA (LCD_RAM) -//16bits, SPI_RX to LCD_RAM. -void LCD_DMA_Config(void) -{ - - RCC->AHBENR |= W25QXX_SPI_DMA_RCC_AHB; //开启DMA时钟 - Delay_ms(5); //等待DMA时钟稳定 - W25QXX_SPI_DMA_CHANNEL->CPAR = (u32)&W25QXX_SPI_NUM->DR; //外设地址为:SPI->DR - W25QXX_SPI_DMA_CHANNEL->CMAR = (u32)&LCD->LCD_RAM;//目标地址为LCD_RAM - W25QXX_SPI_DMA_CHANNEL->CNDTR = 0; //DMA1,传输数据量,暂时设置为0 - W25QXX_SPI_DMA_CHANNEL->CCR = 0X00000000; //复位 - W25QXX_SPI_DMA_CHANNEL->CCR |= 0<<4; //从外设读 - W25QXX_SPI_DMA_CHANNEL->CCR |= 0<<5; //普通模式 - W25QXX_SPI_DMA_CHANNEL->CCR |= 0<<6; //外设地址非增量模式 - W25QXX_SPI_DMA_CHANNEL->CCR |= 0<<7; //存储器非增量模式 - W25QXX_SPI_DMA_CHANNEL->CCR |= LCD_DATA_16BIT<<8; //外设数据宽度为16位 - W25QXX_SPI_DMA_CHANNEL->CCR |= LCD_DATA_16BIT<<10; //存储器数据宽度16位 - W25QXX_SPI_DMA_CHANNEL->CCR |= 1<<12; //中等优先级 - W25QXX_SPI_DMA_CHANNEL->CCR |= 0<<14; //非存储器到存储器模式 -} - -#define LCD_DMA_MAX_TRANS 65535 //DMA 65535 bytes one frame -// start DMA transfer from SPI->DR to FSMC -// the max bytes of one frame is LCD_DMA_MAX_TRANS 65535 -void lcd_frame_segment_display(u16 size, u32 addr) -{ - W25QXX_SPI_DMA_CHANNEL->CNDTR = size; - - W25Qxx_SPI_CS_Set(0); - W25Qxx_SPI_Read_Write_Byte(CMD_FAST_READ_DATA); - W25Qxx_SPI_Read_Write_Byte((u8)((addr)>>16)); - W25Qxx_SPI_Read_Write_Byte((u8)((addr)>>8)); - W25Qxx_SPI_Read_Write_Byte((u8)addr); - W25Qxx_SPI_Read_Write_Byte(0XFF); //8 dummy clock - - //set SPI to 16bit DMA rx only mode - W25QXX_SPI_NUM->CR1 &= ~(1<<6); - W25QXX_SPI_NUM->CR2 |= 1<<0; //enable SPI rx DMA - W25QXX_SPI_NUM->CR1 |= LCD_DATA_16BIT<<11; //16bit data frame - W25QXX_SPI_NUM->CR1 |= 1<<10; //rx only - - W25QXX_SPI_DMA_CHANNEL->CCR |= 1<<0; //enable dma channel - W25QXX_SPI_NUM->CR1 |= 1<<6; //enable SPI - while((W25QXX_SPI_DMA->ISR&(1<CCR &= (u32)(~(1<<0)); - W25QXX_SPI_DMA->IFCR |= (u32)(1<APB1RSTR |= 1<<15; //reset SPI -// RCC->APB1RSTR &= ~(1<<15); - SPI_Protocol_Init(W25Qxx_SPI, W25Qxx_SPEED); -} - -void lcd_frame_display(u16 sx,u16 sy,u16 w,u16 h, u32 addr) -{ - u32 cur=0; - u32 segmentSize; - u32 totalSize = w*h*(2-LCD_DATA_16BIT); - - LCD_SetWindow(sx,sy,sx+w-1,sy+h-1); - LCD_WR_REG(0x2C); - - for(cur = 0; cur < totalSize; cur += LCD_DMA_MAX_TRANS) - { - segmentSize = cur+LCD_DMA_MAX_TRANS<=totalSize ? LCD_DMA_MAX_TRANS : totalSize-cur; - lcd_frame_segment_display(segmentSize, addr+cur*(LCD_DATA_16BIT + 1)); - } -} +void lcd_frame_display(u16 sx,u16 sy,u16 w,u16 h, u32 addr); #else diff --git a/TFT/src/User/API/boot.c b/TFT/src/User/API/boot.c index cee97a2d00..c1ba1ca48b 100644 --- a/TFT/src/User/API/boot.c +++ b/TFT/src/User/API/boot.c @@ -57,7 +57,7 @@ bool bmpDecode(char *bmp,u32 addr) f_read(&bmpFile, magic, 2 ,&mybr); if (memcmp(magic, "BM", 2)) return false; - //****************锟斤拷取头锟斤拷息****************// + f_lseek(&bmpFile, 10); f_read(&bmpFile, &offset, sizeof(int),&mybr); @@ -71,7 +71,7 @@ bool bmpDecode(char *bmp,u32 addr) return false; bpp >>=3; bytePerLine=w*bpp; - if(bytePerLine%4 !=0) //bmp锟侥硷拷每锟叫碉拷锟街斤拷锟斤拷锟斤拷锟斤拷锟斤拷 4 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷牵锟斤拷锟斤拷锟揭拷锟斤拷锟 + if(bytePerLine%4 !=0) //bmp bytePerLine=(bytePerLine/4+1)*4; for(bnum=0;bnum<(w*h*2+4095)/4096;bnum++) diff --git a/TFT/src/User/API/boot.h b/TFT/src/User/API/boot.h index 16e3cced15..bc62bb7f3b 100644 --- a/TFT/src/User/API/boot.h +++ b/TFT/src/User/API/boot.h @@ -1,20 +1,11 @@ #ifndef _BOOT_H_ #define _BOOT_H_ -#include "stm32f10x.h" #include "variants.h" #define BMP (1<<1) #define FONT (1<<2) -#if defined(TFT35_V1_0) || defined(TFT35_V1_1) || defined(TFT35_V1_2)|| defined(TFT35_V3_0) - #define ROOT_DIR "TFT35" -#elif defined(TFT28) - #define ROOT_DIR "TFT28" -#elif defined(TFT24_V1_1) - #define ROOT_DIR "TFT24" -#endif - #define BMP_ROOT_DIR "0:"ROOT_DIR"/bmp" #define FONT_ROOT_DIR "0:"ROOT_DIR"/font" diff --git a/TFT/src/User/API/coordinate.h b/TFT/src/User/API/coordinate.h index f96fbd203e..483a950a0f 100644 --- a/TFT/src/User/API/coordinate.h +++ b/TFT/src/User/API/coordinate.h @@ -1,7 +1,7 @@ #ifndef _COORDINATE_H_ #define _COORDINATE_H_ -#include "stm32f10x.h" +#include "variants.h" #include "stdbool.h" diff --git a/TFT/src/User/API/extend.c b/TFT/src/User/API/extend.c new file mode 100644 index 0000000000..19c987552e --- /dev/null +++ b/TFT/src/User/API/extend.c @@ -0,0 +1,38 @@ +#include "extend.h" +#include "GPIO_Init.h" +#include "variants.h" +#include "includes.h" + +#ifdef PS_ON_PIN +void PS_ON_Init(void) +{ + GPIO_InitSet(PS_ON_PIN, MGPIO_MODE_OUT_PP, 0); + GPIO_SetLevel(PS_ON_PIN, PS_ACTIVE_HIGH); +} +void PS_ON_On(void) +{ + GPIO_SetLevel(PS_ON_PIN, PS_ACTIVE_HIGH); +} +void PS_ON_Off(void) +{ + GPIO_SetLevel(PS_ON_PIN, !PS_ACTIVE_HIGH); +} +#endif + +#ifdef FIL_RUNOUT_PIN +void FIL_Runout_Init(void) +{ + GPIO_InitSet(FIL_RUNOUT_PIN, FIL_RUNOUT_INVERTING ? MGPIO_MODE_IPD : MGPIO_MODE_IPU, 0); +} + +void loopFILRunoutDetect(void) +{ + if(!isPrinting() || isPause()) return ; //not print or print is pause + + if(GPIO_GetLevel(FIL_RUNOUT_PIN) == FIL_RUNOUT_INVERTING) + { + if(setPrintPause(true)) + popupReminder(textSelect(LABEL_WARNING), "filament runout!"); + } +} +#endif diff --git a/TFT/src/User/API/extend.h b/TFT/src/User/API/extend.h new file mode 100644 index 0000000000..e6a909c329 --- /dev/null +++ b/TFT/src/User/API/extend.h @@ -0,0 +1,10 @@ +#ifndef _EXTEND_H_ +#define _EXTEND_H_ + +void PS_ON_Init(void); +void PS_ON_On(void); +void PS_ON_Off(void); +void FIL_Runout_Init(void); +void loopFILRunoutDetect(void); + +#endif diff --git a/TFT/src/User/API/flashStore.c b/TFT/src/User/API/flashStore.c index a4b69e25ef..a7ef4a29a4 100644 --- a/TFT/src/User/API/flashStore.c +++ b/TFT/src/User/API/flashStore.c @@ -1,45 +1,69 @@ #include "flashStore.h" +#include "STM32_Flash.h" +#define PARA_SIZE 256 //bytes #define PARA_SIGN 0x20190710 -#define SIGN_ADDRESS (0x08040000 - 0x800) //保留最后一页(2KB),用来保存用户参数 extern u32 TSC_Para[7]; //触摸屏校准系数 -#define TSC_ADDRESS (0x08040000 - 0x800 + 4) - extern SETTINGS infoSettings; //用户设置 -#define SETTING_ADDRESS (0x08040000 - 0x800 + 32) +void wordToByte(u32 word, u8 *bytes) //大端模式 +{ + u8 len = 4; + u8 i = 0; + for(i = 0; i < len; i++) + { + bytes[i] = (word >> 24) & 0xFF; + word <<= 8; + } +} + +u32 byteToWord(u8 *bytes, u8 len) +{ + u32 word = 0; + u8 i = 0; + for(i = 0; i < len; i++) + { + word <<= 8; + word |= bytes[i]; + } + return word; +} bool readStoredPara(void) { - if(*((vu32*)SIGN_ADDRESS) != PARA_SIGN) return false; + u8 data[PARA_SIZE]; + u32 index = 0; + u32 paraSign = 0; + STM32_FlashRead(data, PARA_SIZE); + + paraSign = byteToWord(data + (index += 4), 4); + if(paraSign != PARA_SIGN) return false; for(int i=0; i= 1) / Note that enabling exFAT discards C89 compatibility. */ diff --git a/TFT/src/User/Fatfs/myfatfs.c b/TFT/src/User/Fatfs/myfatfs.c index 7162483103..891b39bc89 100644 --- a/TFT/src/User/Fatfs/myfatfs.c +++ b/TFT/src/User/Fatfs/myfatfs.c @@ -19,14 +19,9 @@ FATFS fatfs[_VOLUMES]; /* FATFS work area*/ */ bool mountUDisk(void) { - for(int i=0; i<100; i++) //TODO: fix here (u disk read error) - USBH_Process(&USB_OTG_Core, &USB_Host); - return (f_mount(&fatfs[VOLUMES_U_DISK], "U:", 1) == FR_OK); + return (f_mount(&fatfs[VOLUMES_U_DISK], "U:", 1)== FR_OK); } -static uint32_t date=0; -static FILINFO finfo; -static uint16_t len = 0; /* scanf gcode file in current path true: scanf ok @@ -34,8 +29,10 @@ static uint16_t len = 0; */ bool scanPrintFilesFatFs(void) { - DIR dir; - uint8_t i=0; + FILINFO finfo; + uint16_t len = 0; + DIR dir; + uint8_t i=0; clearInfoFile(); @@ -67,7 +64,9 @@ bool scanPrintFilesFatFs(void) memcpy(infoFile.file[infoFile.f_num++], finfo.fname, len); } } - + + f_closedir(&dir); + for(i=0; i < infoFile.F_num/2; i++) { char *temp = infoFile.folder[i]; @@ -104,8 +103,11 @@ void GUI_DispDate(uint16_t date, uint16_t time) */ bool Get_NewestGcode(const TCHAR* path) { - DIR dirs; - char status = 0; + uint32_t date=0; + FILINFO finfo; + uint16_t len = 0; + DIR dirs; + char status = 0; if (f_opendir(&dirs, path) != FR_OK) return false; diff --git a/TFT/src/User/Hal/lcd.c b/TFT/src/User/Hal/LCD_Init.c similarity index 51% rename from TFT/src/User/Hal/lcd.c rename to TFT/src/User/Hal/LCD_Init.c index 0378c69d3c..e36de467c6 100644 --- a/TFT/src/User/Hal/lcd.c +++ b/TFT/src/User/Hal/LCD_Init.c @@ -1,213 +1,26 @@ +#include "LCD_init.h" +#include "GPIO_Init.h" #include "includes.h" -#include "lcd.h" -#ifdef LCD_LED_SUPPORT + +#ifdef LCD_LED_PIN void LCD_LED_On() { - GPIO_SetBits(LCD_LED_PORT, LCD_LED_PIN); + GPIO_SetLevel(LCD_LED_PIN, 1); } void LCD_LED_Off() { - GPIO_ResetBits(LCD_LED_PORT, LCD_LED_PIN); + GPIO_SetLevel(LCD_LED_PIN, 0); } void LCD_LED_Init(void) { - GPIO_InitTypeDef GPIO_InitStructure; - RCC_APB2PeriphClockCmd(LCD_LED_RCC, ENABLE); - LCD_LED_Off(); - //LED-K 背光灯 - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; - GPIO_InitStructure.GPIO_Pin = LCD_LED_PIN; - GPIO_Init(LCD_LED_PORT, &GPIO_InitStructure); + GPIO_InitSet(LCD_LED_PIN, MGPIO_MODE_OUT_PP, 0); } #endif -#ifdef STM32_HAS_FSMC -u16 LCD_RD_DATA(void) -{ - vu16 ram; - ram=LCD->LCD_RAM; - return ram; -} - -void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue) -{ - LCD->LCD_REG = LCD_Reg; - LCD->LCD_RAM = LCD_RegValue; -} - -u16 LCD_ReadReg(u8 LCD_Reg) -{ - LCD_WR_REG(LCD_Reg); - Delay_us(5); - return LCD_RD_DATA(); -} - -void LCD_GPIO_Config(void) -{ - GPIO_InitTypeDef GPIO_InitStructure; - - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD |RCC_APB2Periph_GPIOE ,ENABLE); - - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; - /* 配置FSMC相对应的数据线,FSMC-D0~D15: PD 14 15 0 1 8 9 10,PE 7 8 9 10 11 12 13 14 15*/ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14 | GPIO_Pin_15 | GPIO_Pin_0 | GPIO_Pin_1 - | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10; - GPIO_Init(GPIOD, &GPIO_InitStructure); - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 - | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 - | GPIO_Pin_15 | GPIO_Pin_2; - GPIO_Init(GPIOE, &GPIO_InitStructure); - /* 配置FSMC相对应的控制线 - * PD4-FSMC_NOE :LCD-RD - * PD5-FSMC_NWE :LCD-WR - * PD7-FSMC_NE1 :LCD-CS - * PD11-FSMC_A23 :LCD-RS LCD-RS发送的数据代表是命令还是显示数据 - */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_7 | GPIO_Pin_11; - GPIO_Init(GPIOD, &GPIO_InitStructure); -} - -void LCD_FSMC_Config(void) -{ - FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure; - FSMC_NORSRAMTimingInitTypeDef readWriteTiming,writeTiming; - - RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); - RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE); - - readWriteTiming.FSMC_AddressSetupTime = 0x01; //地址建立时间(ADDSET)为2个HCLK 1/36M=27ns - readWriteTiming.FSMC_AddressHoldTime = 0x00; - readWriteTiming.FSMC_DataSetupTime = 0x0f; - readWriteTiming.FSMC_BusTurnAroundDuration = 0x00; - readWriteTiming.FSMC_CLKDivision = 0x00; - readWriteTiming.FSMC_DataLatency = 0x00; - readWriteTiming.FSMC_AccessMode = FSMC_AccessMode_A; //模式A - - writeTiming.FSMC_AddressSetupTime = 0x00; //地址建立时间(ADDSET)为1个HCLK - writeTiming.FSMC_AddressHoldTime = 0x00; - writeTiming.FSMC_DataSetupTime = 0x03; ////数据保存时间为4个HCLK - writeTiming.FSMC_BusTurnAroundDuration = 0x00; - writeTiming.FSMC_CLKDivision = 0x00; - writeTiming.FSMC_DataLatency = 0x00; - writeTiming.FSMC_AccessMode = FSMC_AccessMode_A; //模式A - - FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1; //选择外接存储区域的地址 - FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;//配置数据线和地址线是否复用 - FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM; - FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_NOR;//配置外接存储器的类型 - FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;//设置FSMC接口的数据宽度 - - FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;//配置访问模式 - FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;//配置等待信号的极性 - FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;//配置是否使用非对齐方式 - FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable; - FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;//配置等待信号什么时间产生 - FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;//配置是否使用等待信号 - FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;//配置是否允许突发写操作 - - FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;//配置写操作使能 - FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Enable ;//配置是否使用扩展模式 - - FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &readWriteTiming;//读时序 - FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &writeTiming; //写时序 - - FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure); - /* 使能 FSMC Bank1_SRAM Bank */ - FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE); -} - -void LCD_HardwareConfig(void) -{ - LCD_GPIO_Config(); - LCD_FSMC_Config(); -} - -#else -//写寄存器函数 -//data:寄存器值 -void LCD_WR_REG(u16 data) -{ - LCD_RS_CLR;//写地址 - LCD_CS_CLR; - DATAOUT(data); - LCD_WR_CLR; - LCD_WR_SET; - LCD_CS_SET; -} - -//写数据函数 -//可以替代LCD_WR_DATAX宏,拿时间换空间. -//data:寄存器值 -void LCD_WR_DATA(u16 data) -{ - LCD_RS_SET; - LCD_CS_CLR; - DATAOUT(data); - LCD_WR_CLR; - LCD_WR_SET; - LCD_CS_SET; -} - -//读LCD数据 -//返回值:读到的值 -u16 LCD_RD_DATA(void) -{ - vu16 ram; - GPIOC->CRL = 0X88888888; //PB0-7 上拉输入 - GPIOC->CRH = 0X88888888; //PB8-15 上拉输入 - GPIOC->ODR = 0X0000; //全部输出0 - - LCD_RS_SET; - LCD_CS_CLR; - //读取数据(读寄存器时,并不需要读2次) - LCD_RD_CLR; - - ram = DATAIN(); - LCD_RD_SET; - LCD_CS_SET; - - GPIOC->CRL = 0X33333333; //PC0-7 上拉输出 - GPIOC->CRH = 0X33333333; //PC8-15 上拉输出 - GPIOC->ODR = 0XFFFF; //全部输出高 - return ram; -} - -void LCD_GPIO_Config(void) -{ - GPIO_InitTypeDef GPIO_InitStructure; - - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB |RCC_APB2Periph_GPIOC, ENABLE); - - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; - /*D0 - D15: PC0 - PC15 */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All; - GPIO_Init(GPIOC, &GPIO_InitStructure); - GPIO_SetBits(GPIOC, GPIO_Pin_All); - - /* 配置控制线 - * PB6 :LCD-RD - * PB7 :LCD-WR - * PB9 :LCD-CS - * PB8 :LCD-RS LCD-RS发送的数据代表是命令还是显示数据 - */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9; - GPIO_Init(GPIOB, &GPIO_InitStructure); - GPIO_SetBits(GPIOB, GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9); -} - -void LCD_HardwareConfig(void) -{ - LCD_GPIO_Config(); -} -#endif - -#if defined(TFT35_V1_2) || defined(TFT35_V3_0) +#if defined(TFT35_V1_2) || defined(TFT35_V2_0) //ILI9488 void LCD_init_RGB(void) { @@ -525,9 +338,9 @@ void LCD_Init(void) LCD_HardwareConfig(); LCD_init_RGB(); GUI_Clear(BLACK); - Delay_ms(15); + Delay_ms(20); -#ifdef LCD_LED_SUPPORT +#ifdef LCD_LED_PIN LCD_LED_Init(); LCD_LED_On(); #endif diff --git a/TFT/src/User/Hal/LCD_Init.h b/TFT/src/User/Hal/LCD_Init.h new file mode 100644 index 0000000000..1be7372f89 --- /dev/null +++ b/TFT/src/User/Hal/LCD_Init.h @@ -0,0 +1,18 @@ +#ifndef _LCD_INIT_H_ +#define _LCD_INIT_H_ + + +#include "variants.h" + +//TFT35 V1.0 V1.1 RM68042 8bit +//TFT35 V1.2 ili9488 16bit +//TFT28 TFT24 ili9341 16bit +#if LCD_DATA_16BIT == 1 + #define LCD_WR_16BITS_DATA(c) do{ LCD_WR_DATA(c); }while(0) +#else + #define LCD_WR_16BITS_DATA(c) do{ LCD_WR_DATA(((c)>>8)&0xFF); LCD_WR_DATA((c)&0xFF); }while(0) +#endif + +void LCD_Init(void); // + +#endif diff --git a/TFT/src/User/Hal/STM32Fxx_Pins.h b/TFT/src/User/Hal/STM32Fxx_Pins.h new file mode 100644 index 0000000000..71f9f4c2d3 --- /dev/null +++ b/TFT/src/User/Hal/STM32Fxx_Pins.h @@ -0,0 +1,207 @@ +#ifndef _STM32FXX_PINS_ +#define _STM32FXX_PINS_ + +#define _GPIOA_MAP 0 +#define _GPIOB_MAP 1 +#define _GPIOC_MAP 2 +#define _GPIOD_MAP 3 +#define _GPIOE_MAP 4 +#define _GPIOF_MAP 5 +#define _GPIOG_MAP 6 +#define _GPIOH_MAP 7 +#define _GPIOI_MAP 8 +#define _GPIOJ_MAP 9 +#define _GPIOK_MAP 10 + +#define PA0 ((_GPIOA_MAP<<8) | 0) +#define PA1 ((_GPIOA_MAP<<8) | 1) +#define PA2 ((_GPIOA_MAP<<8) | 2) +#define PA3 ((_GPIOA_MAP<<8) | 3) +#define PA4 ((_GPIOA_MAP<<8) | 4) +#define PA5 ((_GPIOA_MAP<<8) | 5) +#define PA6 ((_GPIOA_MAP<<8) | 6) +#define PA7 ((_GPIOA_MAP<<8) | 7) +#define PA8 ((_GPIOA_MAP<<8) | 8) +#define PA9 ((_GPIOA_MAP<<8) | 9) +#define PA10 ((_GPIOA_MAP<<8) | 10) +#define PA11 ((_GPIOA_MAP<<8) | 11) +#define PA12 ((_GPIOA_MAP<<8) | 12) +#define PA13 ((_GPIOA_MAP<<8) | 13) +#define PA14 ((_GPIOA_MAP<<8) | 14) +#define PA15 ((_GPIOA_MAP<<8) | 15) + +#define PB0 ((_GPIOB_MAP<<8) | 0) +#define PB1 ((_GPIOB_MAP<<8) | 1) +#define PB2 ((_GPIOB_MAP<<8) | 2) +#define PB3 ((_GPIOB_MAP<<8) | 3) +#define PB4 ((_GPIOB_MAP<<8) | 4) +#define PB5 ((_GPIOB_MAP<<8) | 5) +#define PB6 ((_GPIOB_MAP<<8) | 6) +#define PB7 ((_GPIOB_MAP<<8) | 7) +#define PB8 ((_GPIOB_MAP<<8) | 8) +#define PB9 ((_GPIOB_MAP<<8) | 9) +#define PB10 ((_GPIOB_MAP<<8) | 10) +#define PB11 ((_GPIOB_MAP<<8) | 11) +#define PB12 ((_GPIOB_MAP<<8) | 12) +#define PB13 ((_GPIOB_MAP<<8) | 13) +#define PB14 ((_GPIOB_MAP<<8) | 14) +#define PB15 ((_GPIOB_MAP<<8) | 15) + +#define PC0 ((_GPIOC_MAP<<8) | 0) +#define PC1 ((_GPIOC_MAP<<8) | 1) +#define PC2 ((_GPIOC_MAP<<8) | 2) +#define PC3 ((_GPIOC_MAP<<8) | 3) +#define PC4 ((_GPIOC_MAP<<8) | 4) +#define PC5 ((_GPIOC_MAP<<8) | 5) +#define PC6 ((_GPIOC_MAP<<8) | 6) +#define PC7 ((_GPIOC_MAP<<8) | 7) +#define PC8 ((_GPIOC_MAP<<8) | 8) +#define PC9 ((_GPIOC_MAP<<8) | 9) +#define PC10 ((_GPIOC_MAP<<8) | 10) +#define PC11 ((_GPIOC_MAP<<8) | 11) +#define PC12 ((_GPIOC_MAP<<8) | 12) +#define PC13 ((_GPIOC_MAP<<8) | 13) +#define PC14 ((_GPIOC_MAP<<8) | 14) +#define PC15 ((_GPIOC_MAP<<8) | 15) + +#define PD0 ((_GPIOD_MAP<<8) | 0) +#define PD1 ((_GPIOD_MAP<<8) | 1) +#define PD2 ((_GPIOD_MAP<<8) | 2) +#define PD3 ((_GPIOD_MAP<<8) | 3) +#define PD4 ((_GPIOD_MAP<<8) | 4) +#define PD5 ((_GPIOD_MAP<<8) | 5) +#define PD6 ((_GPIOD_MAP<<8) | 6) +#define PD7 ((_GPIOD_MAP<<8) | 7) +#define PD8 ((_GPIOD_MAP<<8) | 8) +#define PD9 ((_GPIOD_MAP<<8) | 9) +#define PD10 ((_GPIOD_MAP<<8) | 10) +#define PD11 ((_GPIOD_MAP<<8) | 11) +#define PD12 ((_GPIOD_MAP<<8) | 12) +#define PD13 ((_GPIOD_MAP<<8) | 13) +#define PD14 ((_GPIOD_MAP<<8) | 14) +#define PD15 ((_GPIOD_MAP<<8) | 15) + +#define PE0 ((_GPIOE_MAP<<8) | 0) +#define PE1 ((_GPIOE_MAP<<8) | 1) +#define PE2 ((_GPIOE_MAP<<8) | 2) +#define PE3 ((_GPIOE_MAP<<8) | 3) +#define PE4 ((_GPIOE_MAP<<8) | 4) +#define PE5 ((_GPIOE_MAP<<8) | 5) +#define PE6 ((_GPIOE_MAP<<8) | 6) +#define PE7 ((_GPIOE_MAP<<8) | 7) +#define PE8 ((_GPIOE_MAP<<8) | 8) +#define PE9 ((_GPIOE_MAP<<8) | 9) +#define PE10 ((_GPIOE_MAP<<8) | 10) +#define PE11 ((_GPIOE_MAP<<8) | 11) +#define PE12 ((_GPIOE_MAP<<8) | 12) +#define PE13 ((_GPIOE_MAP<<8) | 13) +#define PE14 ((_GPIOE_MAP<<8) | 14) +#define PE15 ((_GPIOE_MAP<<8) | 15) + +#define PF0 ((_GPIOF_MAP<<8) | 0) +#define PF1 ((_GPIOF_MAP<<8) | 1) +#define PF2 ((_GPIOF_MAP<<8) | 2) +#define PF3 ((_GPIOF_MAP<<8) | 3) +#define PF4 ((_GPIOF_MAP<<8) | 4) +#define PF5 ((_GPIOF_MAP<<8) | 5) +#define PF6 ((_GPIOF_MAP<<8) | 6) +#define PF7 ((_GPIOF_MAP<<8) | 7) +#define PF8 ((_GPIOF_MAP<<8) | 8) +#define PF9 ((_GPIOF_MAP<<8) | 9) +#define PF10 ((_GPIOF_MAP<<8) | 10) +#define PF11 ((_GPIOF_MAP<<8) | 11) +#define PF12 ((_GPIOF_MAP<<8) | 12) +#define PF13 ((_GPIOF_MAP<<8) | 13) +#define PF14 ((_GPIOF_MAP<<8) | 14) +#define PF15 ((_GPIOF_MAP<<8) | 15) + +#define PG0 ((_GPIOG_MAP<<8) | 0) +#define PG1 ((_GPIOG_MAP<<8) | 1) +#define PG2 ((_GPIOG_MAP<<8) | 2) +#define PG3 ((_GPIOG_MAP<<8) | 3) +#define PG4 ((_GPIOG_MAP<<8) | 4) +#define PG5 ((_GPIOG_MAP<<8) | 5) +#define PG6 ((_GPIOG_MAP<<8) | 6) +#define PG7 ((_GPIOG_MAP<<8) | 7) +#define PG8 ((_GPIOG_MAP<<8) | 8) +#define PG9 ((_GPIOG_MAP<<8) | 9) +#define PG10 ((_GPIOG_MAP<<8) | 10) +#define PG11 ((_GPIOG_MAP<<8) | 11) +#define PG12 ((_GPIOG_MAP<<8) | 12) +#define PG13 ((_GPIOG_MAP<<8) | 13) +#define PG14 ((_GPIOG_MAP<<8) | 14) +#define PG15 ((_GPIOG_MAP<<8) | 15) + +#define PH0 ((_GPIOH_MAP<<8) | 0) +#define PH1 ((_GPIOH_MAP<<8) | 1) +#define PH2 ((_GPIOH_MAP<<8) | 2) +#define PH3 ((_GPIOH_MAP<<8) | 3) +#define PH4 ((_GPIOH_MAP<<8) | 4) +#define PH5 ((_GPIOH_MAP<<8) | 5) +#define PH6 ((_GPIOH_MAP<<8) | 6) +#define PH7 ((_GPIOH_MAP<<8) | 7) +#define PH8 ((_GPIOH_MAP<<8) | 8) +#define PH9 ((_GPIOH_MAP<<8) | 9) +#define PH10 ((_GPIOH_MAP<<8) | 10) +#define PH11 ((_GPIOH_MAP<<8) | 11) +#define PH12 ((_GPIOH_MAP<<8) | 12) +#define PH13 ((_GPIOH_MAP<<8) | 13) +#define PH14 ((_GPIOH_MAP<<8) | 14) +#define PH15 ((_GPIOH_MAP<<8) | 15) + +#define PI0 ((_GPIOI_MAP<<8) | 0) +#define PI1 ((_GPIOI_MAP<<8) | 1) +#define PI2 ((_GPIOI_MAP<<8) | 2) +#define PI3 ((_GPIOI_MAP<<8) | 3) +#define PI4 ((_GPIOI_MAP<<8) | 4) +#define PI5 ((_GPIOI_MAP<<8) | 5) +#define PI6 ((_GPIOI_MAP<<8) | 6) +#define PI7 ((_GPIOI_MAP<<8) | 7) +#define PI8 ((_GPIOI_MAP<<8) | 8) +#define PI9 ((_GPIOI_MAP<<8) | 9) +#define PI10 ((_GPIOI_MAP<<8) | 10) +#define PI11 ((_GPIOI_MAP<<8) | 11) +#define PI12 ((_GPIOI_MAP<<8) | 12) +#define PI13 ((_GPIOI_MAP<<8) | 13) +#define PI14 ((_GPIOI_MAP<<8) | 14) +#define PI15 ((_GPIOI_MAP<<8) | 15) + +#define PJ0 ((_GPIOJ_MAP<<8) | 0) +#define PJ1 ((_GPIOJ_MAP<<8) | 1) +#define PJ2 ((_GPIOJ_MAP<<8) | 2) +#define PJ3 ((_GPIOJ_MAP<<8) | 3) +#define PJ4 ((_GPIOJ_MAP<<8) | 4) +#define PJ5 ((_GPIOJ_MAP<<8) | 5) +#define PJ6 ((_GPIOJ_MAP<<8) | 6) +#define PJ7 ((_GPIOJ_MAP<<8) | 7) +#define PJ8 ((_GPIOJ_MAP<<8) | 8) +#define PJ9 ((_GPIOJ_MAP<<8) | 9) +#define PJ10 ((_GPIOJ_MAP<<8) | 10) +#define PJ11 ((_GPIOJ_MAP<<8) | 11) +#define PJ12 ((_GPIOJ_MAP<<8) | 12) +#define PJ13 ((_GPIOJ_MAP<<8) | 13) +#define PJ14 ((_GPIOJ_MAP<<8) | 14) +#define PJ15 ((_GPIOJ_MAP<<8) | 15) + +#define PK0 ((_GPIOK_MAP<<8) | 0) +#define PK1 ((_GPIOK_MAP<<8) | 1) +#define PK2 ((_GPIOK_MAP<<8) | 2) +#define PK3 ((_GPIOK_MAP<<8) | 3) +#define PK4 ((_GPIOK_MAP<<8) | 4) +#define PK5 ((_GPIOK_MAP<<8) | 5) +#define PK6 ((_GPIOK_MAP<<8) | 6) +#define PK7 ((_GPIOK_MAP<<8) | 7) +#define PK8 ((_GPIOK_MAP<<8) | 8) +#define PK9 ((_GPIOK_MAP<<8) | 9) +#define PK10 ((_GPIOK_MAP<<8) | 10) +#define PK11 ((_GPIOK_MAP<<8) | 11) +#define PK12 ((_GPIOK_MAP<<8) | 12) +#define PK13 ((_GPIOK_MAP<<8) | 13) +#define PK14 ((_GPIOK_MAP<<8) | 14) +#define PK15 ((_GPIOK_MAP<<8) | 15) + + +#define GPIO_GET_PORT(n) ((n>>8) & 0xFF) +#define GPIO_GET_PIN(n) (n & 0xFF) + +#endif diff --git a/TFT/src/User/STM32_USB_HOST_Library/Class/MSC/inc/usbh_msc_bot.h b/TFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/inc/usbh_msc_bot.h similarity index 100% rename from TFT/src/User/STM32_USB_HOST_Library/Class/MSC/inc/usbh_msc_bot.h rename to TFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/inc/usbh_msc_bot.h diff --git a/TFT/src/User/STM32_USB_HOST_Library/Class/MSC/inc/usbh_msc_core.h b/TFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/inc/usbh_msc_core.h similarity index 100% rename from TFT/src/User/STM32_USB_HOST_Library/Class/MSC/inc/usbh_msc_core.h rename to TFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/inc/usbh_msc_core.h diff --git a/TFT/src/User/STM32_USB_HOST_Library/Class/MSC/inc/usbh_msc_scsi.h b/TFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/inc/usbh_msc_scsi.h similarity index 100% rename from TFT/src/User/STM32_USB_HOST_Library/Class/MSC/inc/usbh_msc_scsi.h rename to TFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/inc/usbh_msc_scsi.h diff --git a/TFT/src/User/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_bot.c b/TFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_bot.c similarity index 100% rename from TFT/src/User/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_bot.c rename to TFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_bot.c diff --git a/TFT/src/User/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_core.c b/TFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_core.c similarity index 100% rename from TFT/src/User/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_core.c rename to TFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_core.c diff --git a/TFT/src/User/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_scsi.c b/TFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_scsi.c similarity index 100% rename from TFT/src/User/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_scsi.c rename to TFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_scsi.c diff --git a/TFT/src/User/STM32_USB_HOST_Library/Core/inc/usbh_core.h b/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/inc/usbh_core.h similarity index 100% rename from TFT/src/User/STM32_USB_HOST_Library/Core/inc/usbh_core.h rename to TFT/src/User/Hal/STM32_USB_HOST_Library/Core/inc/usbh_core.h diff --git a/TFT/src/User/STM32_USB_HOST_Library/Core/inc/usbh_def.h b/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/inc/usbh_def.h similarity index 100% rename from TFT/src/User/STM32_USB_HOST_Library/Core/inc/usbh_def.h rename to TFT/src/User/Hal/STM32_USB_HOST_Library/Core/inc/usbh_def.h diff --git a/TFT/src/User/STM32_USB_HOST_Library/Core/inc/usbh_hcs.h b/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/inc/usbh_hcs.h similarity index 100% rename from TFT/src/User/STM32_USB_HOST_Library/Core/inc/usbh_hcs.h rename to TFT/src/User/Hal/STM32_USB_HOST_Library/Core/inc/usbh_hcs.h diff --git a/TFT/src/User/STM32_USB_HOST_Library/Core/inc/usbh_ioreq.h b/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/inc/usbh_ioreq.h similarity index 100% rename from TFT/src/User/STM32_USB_HOST_Library/Core/inc/usbh_ioreq.h rename to TFT/src/User/Hal/STM32_USB_HOST_Library/Core/inc/usbh_ioreq.h diff --git a/TFT/src/User/STM32_USB_HOST_Library/Core/inc/usbh_stdreq.h b/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/inc/usbh_stdreq.h similarity index 100% rename from TFT/src/User/STM32_USB_HOST_Library/Core/inc/usbh_stdreq.h rename to TFT/src/User/Hal/STM32_USB_HOST_Library/Core/inc/usbh_stdreq.h diff --git a/TFT/src/User/STM32_USB_HOST_Library/Core/src/usbh_core.c b/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_core.c similarity index 100% rename from TFT/src/User/STM32_USB_HOST_Library/Core/src/usbh_core.c rename to TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_core.c diff --git a/TFT/src/User/STM32_USB_HOST_Library/Core/src/usbh_hcs.c b/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_hcs.c similarity index 100% rename from TFT/src/User/STM32_USB_HOST_Library/Core/src/usbh_hcs.c rename to TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_hcs.c diff --git a/TFT/src/User/STM32_USB_HOST_Library/Core/src/usbh_ioreq.c b/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_ioreq.c similarity index 100% rename from TFT/src/User/STM32_USB_HOST_Library/Core/src/usbh_ioreq.c rename to TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_ioreq.c diff --git a/TFT/src/User/STM32_USB_HOST_Library/Core/src/usbh_stdreq.c b/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_stdreq.c similarity index 100% rename from TFT/src/User/STM32_USB_HOST_Library/Core/src/usbh_stdreq.c rename to TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_stdreq.c diff --git a/TFT/src/User/STM32_USB_HOST_Library/Release_Notes.html b/TFT/src/User/Hal/STM32_USB_HOST_Library/Release_Notes.html similarity index 100% rename from TFT/src/User/STM32_USB_HOST_Library/Release_Notes.html rename to TFT/src/User/Hal/STM32_USB_HOST_Library/Release_Notes.html diff --git a/TFT/src/User/STM32_USB_HOST_Library/Usr/inc/usb_conf.h b/TFT/src/User/Hal/STM32_USB_HOST_Library/Usr/inc/usb_conf.h similarity index 96% rename from TFT/src/User/STM32_USB_HOST_Library/Usr/inc/usb_conf.h rename to TFT/src/User/Hal/STM32_USB_HOST_Library/Usr/inc/usb_conf.h index afdc89be95..be519f9c46 100644 --- a/TFT/src/User/STM32_USB_HOST_Library/Usr/inc/usb_conf.h +++ b/TFT/src/User/Hal/STM32_USB_HOST_Library/Usr/inc/usb_conf.h @@ -23,7 +23,7 @@ #ifndef __USB_CONF__H__ #define __USB_CONF__H__ -#include "stm32f10x.h" +#include "variants.h" /** @addtogroup USB_OTG_DRIVER diff --git a/TFT/src/User/STM32_USB_HOST_Library/Usr/inc/usb_log.h b/TFT/src/User/Hal/STM32_USB_HOST_Library/Usr/inc/usb_log.h similarity index 100% rename from TFT/src/User/STM32_USB_HOST_Library/Usr/inc/usb_log.h rename to TFT/src/User/Hal/STM32_USB_HOST_Library/Usr/inc/usb_log.h diff --git a/TFT/src/User/STM32_USB_HOST_Library/Usr/inc/usbh_conf.h b/TFT/src/User/Hal/STM32_USB_HOST_Library/Usr/inc/usbh_conf.h similarity index 100% rename from TFT/src/User/STM32_USB_HOST_Library/Usr/inc/usbh_conf.h rename to TFT/src/User/Hal/STM32_USB_HOST_Library/Usr/inc/usbh_conf.h diff --git a/TFT/src/User/STM32_USB_HOST_Library/Usr/inc/usbh_usr.h b/TFT/src/User/Hal/STM32_USB_HOST_Library/Usr/inc/usbh_usr.h similarity index 100% rename from TFT/src/User/STM32_USB_HOST_Library/Usr/inc/usbh_usr.h rename to TFT/src/User/Hal/STM32_USB_HOST_Library/Usr/inc/usbh_usr.h diff --git a/TFT/src/User/STM32_USB_HOST_Library/Usr/src/usb_bsp.c b/TFT/src/User/Hal/STM32_USB_HOST_Library/Usr/src/usb_bsp.c similarity index 88% rename from TFT/src/User/STM32_USB_HOST_Library/Usr/src/usb_bsp.c rename to TFT/src/User/Hal/STM32_USB_HOST_Library/Usr/src/usb_bsp.c index 50600dfa13..503e2f720a 100644 --- a/TFT/src/User/STM32_USB_HOST_Library/Usr/src/usb_bsp.c +++ b/TFT/src/User/Hal/STM32_USB_HOST_Library/Usr/src/usb_bsp.c @@ -26,6 +26,7 @@ #include "usb_hcd_int.h" #include "usbh_core.h" #include "delay.h" +#include "variants.h" #ifdef U_DISK_SUPPROT /** @@ -50,8 +51,8 @@ void USB_OTG_BSP_Init(USB_OTG_CORE_HANDLE * pdev) RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); - /* Configure SOF ID DM DP Pins */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_11 | GPIO_Pin_12; + /* Configure DM DP Pins */ + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; @@ -59,26 +60,9 @@ void USB_OTG_BSP_Init(USB_OTG_CORE_HANDLE * pdev) GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOA, &GPIO_InitStructure); - GPIO_PinAFConfig(GPIOA, GPIO_PinSource8, GPIO_AF_OTG1_FS); GPIO_PinAFConfig(GPIOA, GPIO_PinSource11, GPIO_AF_OTG1_FS); GPIO_PinAFConfig(GPIOA, GPIO_PinSource12, GPIO_AF_OTG1_FS); - /* Configure VBUS Pin */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; - GPIO_InitStructure.GPIO_OType = GPIO_OType_OD; - GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; - GPIO_Init(GPIOA, &GPIO_InitStructure); - - /* Configure ID pin */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; - GPIO_InitStructure.GPIO_OType = GPIO_OType_OD; - GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; - GPIO_Init(GPIOA, &GPIO_InitStructure); - GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_OTG1_FS); - RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_OTG_FS, ENABLE); #else // USE_USB_OTG_HS @@ -177,7 +161,7 @@ void USB_OTG_BSP_Init(USB_OTG_CORE_HANDLE * pdev) #endif // USB_OTG_HS #endif // USE_STM322xG_EVAL - Delay_init(72); + Delay_init(F_CPUM); } /** diff --git a/TFT/src/User/STM32_USB_HOST_Library/Usr/src/usbh_usr.c b/TFT/src/User/Hal/STM32_USB_HOST_Library/Usr/src/usbh_usr.c similarity index 95% rename from TFT/src/User/STM32_USB_HOST_Library/Usr/src/usbh_usr.c rename to TFT/src/User/Hal/STM32_USB_HOST_Library/Usr/src/usbh_usr.c index a12aabc251..57f9b6f8b4 100644 --- a/TFT/src/User/STM32_USB_HOST_Library/Usr/src/usbh_usr.c +++ b/TFT/src/User/Hal/STM32_USB_HOST_Library/Usr/src/usbh_usr.c @@ -375,10 +375,10 @@ uint8_t USBH_UDISK_Status(void) uint8_t USBH_UDISK_Read(uint8_t* buf, uint32_t sector, uint32_t cnt) { - BYTE status = USBH_MSC_OK; + BYTE status = USBH_MSC_FAIL; if (HCD_IsDeviceConnected(&USB_OTG_Core)) - { + { do { status = USBH_MSC_Read10(&USB_OTG_Core, buf, sector,512 * cnt); @@ -400,7 +400,7 @@ uint8_t USBH_UDISK_Read(uint8_t* buf, uint32_t sector, uint32_t cnt) uint8_t USBH_UDISK_Write(uint8_t* buf, uint32_t sector, uint32_t cnt) { - BYTE status = USBH_MSC_OK; + BYTE status = USBH_MSC_FAIL; if (HCD_IsDeviceConnected(&USB_OTG_Core)) { diff --git a/TFT/src/User/STM32_USB_OTG_Driver/Release_Notes.html b/TFT/src/User/Hal/STM32_USB_OTG_Driver/Release_Notes.html similarity index 100% rename from TFT/src/User/STM32_USB_OTG_Driver/Release_Notes.html rename to TFT/src/User/Hal/STM32_USB_OTG_Driver/Release_Notes.html diff --git a/TFT/src/User/STM32_USB_OTG_Driver/inc/usb_bsp.h b/TFT/src/User/Hal/STM32_USB_OTG_Driver/inc/usb_bsp.h similarity index 100% rename from TFT/src/User/STM32_USB_OTG_Driver/inc/usb_bsp.h rename to TFT/src/User/Hal/STM32_USB_OTG_Driver/inc/usb_bsp.h diff --git a/TFT/src/User/STM32_USB_OTG_Driver/inc/usb_core.h b/TFT/src/User/Hal/STM32_USB_OTG_Driver/inc/usb_core.h similarity index 100% rename from TFT/src/User/STM32_USB_OTG_Driver/inc/usb_core.h rename to TFT/src/User/Hal/STM32_USB_OTG_Driver/inc/usb_core.h diff --git a/TFT/src/User/STM32_USB_OTG_Driver/inc/usb_defines.h b/TFT/src/User/Hal/STM32_USB_OTG_Driver/inc/usb_defines.h similarity index 100% rename from TFT/src/User/STM32_USB_OTG_Driver/inc/usb_defines.h rename to TFT/src/User/Hal/STM32_USB_OTG_Driver/inc/usb_defines.h diff --git a/TFT/src/User/STM32_USB_OTG_Driver/inc/usb_hcd.h b/TFT/src/User/Hal/STM32_USB_OTG_Driver/inc/usb_hcd.h similarity index 100% rename from TFT/src/User/STM32_USB_OTG_Driver/inc/usb_hcd.h rename to TFT/src/User/Hal/STM32_USB_OTG_Driver/inc/usb_hcd.h diff --git a/TFT/src/User/STM32_USB_OTG_Driver/inc/usb_hcd_int.h b/TFT/src/User/Hal/STM32_USB_OTG_Driver/inc/usb_hcd_int.h similarity index 100% rename from TFT/src/User/STM32_USB_OTG_Driver/inc/usb_hcd_int.h rename to TFT/src/User/Hal/STM32_USB_OTG_Driver/inc/usb_hcd_int.h diff --git a/TFT/src/User/STM32_USB_OTG_Driver/inc/usb_regs.h b/TFT/src/User/Hal/STM32_USB_OTG_Driver/inc/usb_regs.h similarity index 100% rename from TFT/src/User/STM32_USB_OTG_Driver/inc/usb_regs.h rename to TFT/src/User/Hal/STM32_USB_OTG_Driver/inc/usb_regs.h diff --git a/TFT/src/User/STM32_USB_OTG_Driver/src/usb_core.c b/TFT/src/User/Hal/STM32_USB_OTG_Driver/src/usb_core.c similarity index 100% rename from TFT/src/User/STM32_USB_OTG_Driver/src/usb_core.c rename to TFT/src/User/Hal/STM32_USB_OTG_Driver/src/usb_core.c diff --git a/TFT/src/User/STM32_USB_OTG_Driver/src/usb_hcd.c b/TFT/src/User/Hal/STM32_USB_OTG_Driver/src/usb_hcd.c similarity index 100% rename from TFT/src/User/STM32_USB_OTG_Driver/src/usb_hcd.c rename to TFT/src/User/Hal/STM32_USB_OTG_Driver/src/usb_hcd.c diff --git a/TFT/src/User/STM32_USB_OTG_Driver/src/usb_hcd_int.c b/TFT/src/User/Hal/STM32_USB_OTG_Driver/src/usb_hcd_int.c similarity index 100% rename from TFT/src/User/STM32_USB_OTG_Driver/src/usb_hcd_int.c rename to TFT/src/User/Hal/STM32_USB_OTG_Driver/src/usb_hcd_int.c diff --git a/TFT/src/User/Hal/sd.c b/TFT/src/User/Hal/sd.c index 5d04c819f1..07b8c19671 100644 --- a/TFT/src/User/Hal/sd.c +++ b/TFT/src/User/Hal/sd.c @@ -1,6 +1,9 @@ -#include "sd.h" #include "variants.h" +#ifdef SD_SPI_SUPPORT +#include "sd.h" +#include "GPIO_Init.h" + u8 SD_Type=0; //SD卡的类型 /***************************************** SD SPI 模式底层移植的接口***********************************************/ @@ -20,32 +23,27 @@ void SD_SPI_CS_Set(u8 level) SPI_CS_Set(SD_SPI,level); } -#ifdef SD_CD_SUPPROT +#ifdef SD_CD_PIN //SD_CD insert detect void SD_CD_WP_Init(void) { - GPIO_InitTypeDef GPIO_InitStructure; - - RCC_APB2PeriphClockCmd(SD_CD_RCC, ENABLE); - GPIO_InitStructure.GPIO_Pin = SD_CD_PIN; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; - GPIO_Init(SD_CD_PORT, &GPIO_InitStructure); + GPIO_InitSet(SD_CD_PIN, MGPIO_MODE_IPU, 0); } #endif u8 SD_CD_Inserted(void) { -#ifdef SD_CD_SUPPROT - return !GPIO_ReadInputDataBit(SD_CD_PORT, SD_CD_PIN); +#ifdef SD_CD_PIN + return !GPIO_GetLevel(SD_CD_PIN); #else - return 1; + return 0; #endif } //初始化 void SD_SPI_Init(void) { -#ifdef SD_CD_SUPPROT +#ifdef SD_CD_PIN SD_CD_WP_Init(); #endif SPI_Config(SD_SPI); @@ -359,7 +357,7 @@ u8 SD_Init(void) **cnt:扇区数 **返回值:0,ok;其他,失败. *************************************************************************************/ -u8 SD_Read_Data(u8*buf,u32 sector,u32 cnt) +u8 SD_ReadDisk(u8*buf,u32 sector,u8 cnt) //读SD卡,fatfs/usb调用x { u8 r1; if(SD_Type != SD_TYPE_V2HC) sector <<= 9;//转换为字节地址 @@ -391,7 +389,7 @@ u8 SD_Read_Data(u8*buf,u32 sector,u32 cnt) **cnt:扇区数 **返回值:0,ok;其他,失败. *************************************************************************************/ -u8 SD_Write_Data(u8*buf,u32 sector,u32 cnt) +u8 SD_WriteDisk(u8*buf,u32 sector,u8 cnt) //写SD卡,fatfs/usb调用 { u8 r1; if(SD_Type!=SD_TYPE_V2HC) sector *= 512;//转换为字节地址 @@ -424,4 +422,4 @@ u8 SD_Write_Data(u8*buf,u32 sector,u32 cnt) return r1;// } - +#endif diff --git a/TFT/src/User/Hal/sd.h b/TFT/src/User/Hal/sd.h index 345f82bf4e..8f6d7c8aeb 100644 --- a/TFT/src/User/Hal/sd.h +++ b/TFT/src/User/Hal/sd.h @@ -45,16 +45,11 @@ #define SD_PARAMETER_ERROR 0x40 #define SD_RESPONSE_FAILURE 0xFF -//#define SD_CD_SUPPROT -//#define SD_CD_RCC RCC_APB2Periph_GPIOA -//#define SD_CD_PORT GPIOA -//#define SD_CD_PIN GPIO_Pin_13 - u8 SD_CD_Inserted(void); u8 SD_Init(void); //初始化 void SD_DeInit(void); -u8 SD_Read_Data(u8*buf,u32 sector,u32 cnt); //读块 -u8 SD_Write_Data(u8*buf,u32 sector,u32 cnt); //写块 +u8 SD_ReadDisk(u8*buf,u32 sector,u8 cnt); //读SD卡,fatfs/usb调用 +u8 SD_WriteDisk(u8*buf,u32 sector,u8 cnt); //写SD卡,fatfs/usb调用 u8 SD_Wait_Ready(void); //等待SD卡准备 u8 SD_Get_Ack(u8 Response); //获得应答 diff --git a/TFT/src/User/Hal/spi.c b/TFT/src/User/Hal/spi.c deleted file mode 100644 index 85eb42a01d..0000000000 --- a/TFT/src/User/Hal/spi.c +++ /dev/null @@ -1,133 +0,0 @@ -#include "spi.h" - -#ifndef SPI1_CS_RCC - #define SPI1_CS_RCC RCC_APB2Periph_GPIOA - #define SPI1_CS_PORT GPIOA - #define SPI1_CS_PIN GPIO_Pin_4 -#endif - -#ifndef SPI2_CS_RCC -#define SPI2_CS_RCC RCC_APB2Periph_GPIOB -#define SPI2_CS_PORT GPIOB -#define SPI2_CS_PIN GPIO_Pin_12 -#endif - -#ifndef SPI3_CS_RCC -#define SPI3_CS_RCC RCC_APB2Periph_GPIOA -#define SPI3_CS_PORT GPIOA -#define SPI3_CS_PIN GPIO_Pin_15 -#endif - - -static SPI_TypeDef *spi[_SPI_CNT] = {SPI1, //CS--PA4 SCK--PA5 MISO--PA6 MOSI--PA7 - SPI2, //CS--PB12 SCK--PB13 MISO--PB14 MOSI--PB15 - SPI3}; //CS--PA15 SCK--PB3 MISO--PB4 MOSI--PB5 - -GPIO_TypeDef *CS_GPIO_Port[_SPI_CNT] = {SPI1_CS_PORT, SPI2_CS_PORT, SPI3_CS_PORT}; //CS -uint16_t CS_GPIO_Pin[_SPI_CNT] = {SPI1_CS_PIN, SPI2_CS_PIN, SPI3_CS_PIN}; - -void SPI_GPIO_Init(uint8_t port, u8 DeInit) -{ - uint32_t RCC_Define[_SPI_CNT] = {RCC_APB2Periph_GPIOA | SPI1_CS_RCC, - RCC_APB2Periph_GPIOB | SPI2_CS_RCC, - RCC_APB2Periph_GPIOB | SPI3_CS_RCC}; - GPIO_TypeDef *SCK_GPIO_Port[_SPI_CNT] = {GPIOA, GPIOB, GPIOB}; //SCK - uint16_t SCK_GPIO_Pin[_SPI_CNT] = {GPIO_Pin_5, GPIO_Pin_13, GPIO_Pin_3}; - GPIO_TypeDef *MISO_GPIO_Port[_SPI_CNT] = {GPIOA, GPIOB, GPIOB}; //MISO - uint16_t MISO_GPIO_Pin[_SPI_CNT] = {GPIO_Pin_6, GPIO_Pin_14, GPIO_Pin_4}; - GPIO_TypeDef *MOSI_GPIO_Port[_SPI_CNT] = {GPIOA, GPIOB, GPIOB}; //MOSI - uint16_t MOSI_GPIO_Pin[_SPI_CNT] = {GPIO_Pin_7, GPIO_Pin_15, GPIO_Pin_5}; - - GPIO_InitTypeDef GPIO_InitStructure; - - RCC_APB2PeriphClockCmd(RCC_Define[port],ENABLE); - - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; - - GPIO_InitStructure.GPIO_Mode = DeInit ? GPIO_Mode_IN_FLOATING : GPIO_Mode_AF_PP; - GPIO_InitStructure.GPIO_Pin = SCK_GPIO_Pin[port]; //SCK - GPIO_Init(SCK_GPIO_Port[port],&GPIO_InitStructure); - - GPIO_InitStructure.GPIO_Pin = MISO_GPIO_Pin[port]; //MISO - GPIO_Init(MISO_GPIO_Port[port],&GPIO_InitStructure); - - GPIO_InitStructure.GPIO_Pin = MOSI_GPIO_Pin[port]; //MOSI - GPIO_Init(MOSI_GPIO_Port[port],&GPIO_InitStructure); - - GPIO_InitStructure.GPIO_Mode = DeInit ? GPIO_Mode_IN_FLOATING : GPIO_Mode_Out_PP; - GPIO_InitStructure.GPIO_Pin = CS_GPIO_Pin[port]; //CS - GPIO_Init(CS_GPIO_Port[port],&GPIO_InitStructure); - GPIO_SetBits(CS_GPIO_Port[port],CS_GPIO_Pin[port]); -} - -// 硬件SPI协议初始化 -// baudrate的取值范围为 0-7 -// 传输速率为 2^(baudrate+1) 分频,2-256分频 -void SPI_Protocol_Init(uint8_t port, uint8_t baudrate) -{ - SPI_InitTypeDef SPI_InitStructure; - - switch(port) - { - case _SPI1: RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1,ENABLE); break; - case _SPI2: RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2,ENABLE); break; - case _SPI3: RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI3,ENABLE); break; - default: break; - } - - SPI_InitStructure.SPI_BaudRatePrescaler = baudrate<<3; - SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge; - SPI_InitStructure.SPI_CPOL = SPI_CPOL_High; - SPI_InitStructure.SPI_CRCPolynomial = 7; - SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; - SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; - SPI_InitStructure.SPI_FirstBit =SPI_FirstBit_MSB; - SPI_InitStructure.SPI_Mode = SPI_Mode_Master; - SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; - SPI_Init(spi[port], &SPI_InitStructure); - - SPI_Cmd(spi[port],ENABLE); -} - -void SPI_Config(uint8_t port) -{ - SPI_GPIO_Init(port, 0); - SPI_Protocol_Init(port,SPI_BaudRatePrescaler_2); -} - -void SPI_DeConfig(uint8_t port) -{ - SPI_GPIO_Init(port, 1); - switch(port) - { - case _SPI1: - RCC_APB2PeriphResetCmd(RCC_APB2Periph_SPI1,ENABLE); - RCC_APB2PeriphResetCmd(RCC_APB2Periph_SPI1,DISABLE); - break; - case _SPI2: - RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI2,ENABLE); - RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI2,DISABLE); - break; - case _SPI3: - RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI3,ENABLE); - RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI3,DISABLE); - break; - default: break; - } -} - -uint16_t SPI_Read_Write(uint8_t port, uint16_t d) -{ - while(SPI_I2S_GetFlagStatus(spi[port], SPI_I2S_FLAG_TXE) == RESET); - SPI_I2S_SendData(spi[port], d); - while(SPI_I2S_GetFlagStatus(spi[port], SPI_I2S_FLAG_RXNE) == RESET); - return SPI_I2S_ReceiveData(spi[port]); -} - -void SPI_CS_Set(uint8_t port, uint8_t level) -{ - if(level) - CS_GPIO_Port[port]->BSRR = CS_GPIO_Pin[port]; - else - CS_GPIO_Port[port]->BRR = CS_GPIO_Pin[port]; -} diff --git a/TFT/src/User/Hal/stm32f10x/GPIO_Init.c b/TFT/src/User/Hal/stm32f10x/GPIO_Init.c new file mode 100644 index 0000000000..0e41945b19 --- /dev/null +++ b/TFT/src/User/Hal/stm32f10x/GPIO_Init.c @@ -0,0 +1,56 @@ +#include "GPIO_Init.h" + +GPIO_TypeDef* GPIO_Port[] = {GPIOA, GPIOB, GPIOC, GPIOD, GPIOE, GPIOF, GPIOG}; + +void GPIO_InitSet(uint16_t io, GPIO_MODE mode, uint8_t AF) +{ + u16 port = GPIO_GET_PORT(io); + u16 pin = GPIO_GET_PIN(io); + + RCC->APB2ENR |= 1 << (port+2); //Enable GPIO Clock, GPIOA start at APB2 bit2 + + if (mode == MGPIO_MODE_IPD) + { + GPIO_Port[port]->BSRR = 1 << (pin+16); //set low + mode = MGPIO_MODE_IPU; + } + else if (mode == MGPIO_MODE_IPU) + { + GPIO_Port[port]->BSRR = 1 << pin; //set high + } + + if(pin <= 7) + { + GPIO_Port[port]->CRL &= ~(0xF << 4*(pin & 0x7)); //clear control reg bits + GPIO_Port[port]->CRL |= mode << 4*(pin & 0x7); //clear control reg bits + } + else + { + GPIO_Port[port]->CRH &= ~(0xF << 4*(pin & 0x7)); //clear control reg bits + GPIO_Port[port]->CRH |= mode << 4*(pin & 0x7); //clear control reg bits + } +} + +void GPIO_SetLevel(uint16_t io, uint8_t level) +{ + u16 port = GPIO_GET_PORT(io); + u16 pin = GPIO_GET_PIN(io); + + GPIO_Port[port]->BSRR = 1 << (level ? pin : (pin+16)); +} + +uint8_t GPIO_GetLevel(uint16_t io) +{ + u16 port = GPIO_GET_PORT(io); + u16 pin = GPIO_GET_PIN(io); + + if ((GPIO_Port[port]->IDR & (1 << pin)) != 0) + { + return 1; + } + else + { + return 0; + } +} + diff --git a/TFT/src/User/Hal/stm32f10x/GPIO_Init.h b/TFT/src/User/Hal/stm32f10x/GPIO_Init.h new file mode 100644 index 0000000000..f55b4a982a --- /dev/null +++ b/TFT/src/User/Hal/stm32f10x/GPIO_Init.h @@ -0,0 +1,28 @@ +#ifndef _GPIO_INIT_H_ +#define _GPIO_INIT_H_ + +#include "stm32f10x_conf.h" +#include "STM32Fxx_Pins.h" + +/* +bit 0:1 - 00:input(reset vale) 01:output 10MHz 10:output 2Mhz 11:output 50MHz +bit 2:3 - Input 00:Analog input 01:input floating(reset value) 10:pull up/down 11:Reserved + - Output 00:Output push-pull 01:Output open-drain 10:AF push-pull 11:AF open-drain +*/ +typedef enum +{ + MGPIO_MODE_AIN = (0<<2)|(0), + MGPIO_MODE_IPN = (1<<2)|(0), + MGPIO_MODE_IPU = (2<<2)|(0), + MGPIO_MODE_IPD = (3<<2)|(0), + MGPIO_MODE_OUT_PP = (0<<2)|(3), + MGPIO_MODE_OUT_OD = (1<<2)|(3), + MGPIO_MODE_AF_PP = (2<<2)|(3), + MGPIO_MODE_AF_OD = (3<<2)|(3), +}GPIO_MODE; + + +void GPIO_InitSet(uint16_t io, GPIO_MODE mode, uint8_t AF); +void GPIO_SetLevel(uint16_t io, uint8_t level); +uint8_t GPIO_GetLevel(uint16_t io); +#endif diff --git a/TFT/src/User/Hal/stm32f10x/STM32_Flash.c b/TFT/src/User/Hal/stm32f10x/STM32_Flash.c new file mode 100644 index 0000000000..2e3e76ab45 --- /dev/null +++ b/TFT/src/User/Hal/stm32f10x/STM32_Flash.c @@ -0,0 +1,27 @@ +#include "STM32_Flash.h" +#include "my_misc.h" +#include "stm32f10x.h" + +#define SIGN_ADDRESS (0x08040000 - 0x800) //reserve the last page (2KB) to save user parameters + +void STM32_FlashRead(u8 *data, u32 len) +{ + u32 i = 0; + for(i = 0; i < len; i++) + { + data[i] = *(vu8*)(SIGN_ADDRESS + i); + } +} + +void STM32_FlashWrite(u8 *data, u32 len) +{ + u32 i = 0; + FLASH_Unlock(); + FLASH_ErasePage(SIGN_ADDRESS); + for(i = 0; i < len; i += 2) + { + u16 data16 = data[i] | (data[MIN(i+1, len-1)] << 8); //stm32f10x needs to write at least 16 bits at a time + FLASH_ProgramHalfWord(SIGN_ADDRESS + i, data16); + } + FLASH_Lock(); +} diff --git a/TFT/src/User/Hal/stm32f10x/STM32_Flash.h b/TFT/src/User/Hal/stm32f10x/STM32_Flash.h new file mode 100644 index 0000000000..d9ddf1ff06 --- /dev/null +++ b/TFT/src/User/Hal/stm32f10x/STM32_Flash.h @@ -0,0 +1,9 @@ +#ifndef _STM32_FLASH_H_ +#define _STM32_FLASH_H_ + +#include "stm32f10x.h" + +void STM32_FlashRead(u8 *data, u32 len); +void STM32_FlashWrite(u8 *data, u32 len); + +#endif diff --git a/TFT/src/User/Hal/Serial.c b/TFT/src/User/Hal/stm32f10x/Serial.c similarity index 100% rename from TFT/src/User/Hal/Serial.c rename to TFT/src/User/Hal/stm32f10x/Serial.c diff --git a/TFT/src/User/Hal/Serial.h b/TFT/src/User/Hal/stm32f10x/Serial.h similarity index 100% rename from TFT/src/User/Hal/Serial.h rename to TFT/src/User/Hal/stm32f10x/Serial.h diff --git a/TFT/src/User/Hal/stm32f10x/lcd.c b/TFT/src/User/Hal/stm32f10x/lcd.c new file mode 100644 index 0000000000..382d60273f --- /dev/null +++ b/TFT/src/User/Hal/stm32f10x/lcd.c @@ -0,0 +1,185 @@ +#include "includes.h" +#include "lcd.h" + +#ifdef STM32_HAS_FSMC +u16 LCD_RD_DATA(void) +{ + vu16 ram; + ram=LCD->LCD_RAM; + return ram; +} + +void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue) +{ + LCD->LCD_REG = LCD_Reg; + LCD->LCD_RAM = LCD_RegValue; +} + +u16 LCD_ReadReg(u8 LCD_Reg) +{ + LCD_WR_REG(LCD_Reg); + Delay_us(5); + return LCD_RD_DATA(); +} + +void LCD_GPIO_Config(void) +{ + GPIO_InitTypeDef GPIO_InitStructure; + + RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD |RCC_APB2Periph_GPIOE ,ENABLE); + + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; + /* 配置FSMC相对应的数据线,FSMC-D0~D15: PD 14 15 0 1 8 9 10,PE 7 8 9 10 11 12 13 14 15*/ + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14 | GPIO_Pin_15 | GPIO_Pin_0 | GPIO_Pin_1 + | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10; + GPIO_Init(GPIOD, &GPIO_InitStructure); + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 + | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 + | GPIO_Pin_15 | GPIO_Pin_2; + GPIO_Init(GPIOE, &GPIO_InitStructure); + /* 配置FSMC相对应的控制线 + * PD4-FSMC_NOE :LCD-RD + * PD5-FSMC_NWE :LCD-WR + * PD7-FSMC_NE1 :LCD-CS + * PE2-FSMC_A23 :LCD-RS LCD-RS发送的数据代表是命令还是显示数据 + */ + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_7 | GPIO_Pin_11; + GPIO_Init(GPIOD, &GPIO_InitStructure); +} + +void LCD_FSMC_Config(void) +{ + FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure; + FSMC_NORSRAMTimingInitTypeDef readWriteTiming,writeTiming; + + RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); + RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE); + + readWriteTiming.FSMC_AddressSetupTime = 0x01; //地址建立时间(ADDSET)为2个HCLK 1/36M=27ns + readWriteTiming.FSMC_AddressHoldTime = 0x00; + readWriteTiming.FSMC_DataSetupTime = 0x0f; + readWriteTiming.FSMC_BusTurnAroundDuration = 0x00; + readWriteTiming.FSMC_CLKDivision = 0x00; + readWriteTiming.FSMC_DataLatency = 0x00; + readWriteTiming.FSMC_AccessMode = FSMC_AccessMode_A; //模式A + + writeTiming.FSMC_AddressSetupTime = 0x00; //地址建立时间(ADDSET)为1个HCLK + writeTiming.FSMC_AddressHoldTime = 0x00; + writeTiming.FSMC_DataSetupTime = 0x03; ////数据保存时间为4个HCLK + writeTiming.FSMC_BusTurnAroundDuration = 0x00; + writeTiming.FSMC_CLKDivision = 0x00; + writeTiming.FSMC_DataLatency = 0x00; + writeTiming.FSMC_AccessMode = FSMC_AccessMode_A; //模式A + + FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1; //选择外接存储区域的地址 + FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;//配置数据线和地址线是否复用 + FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM; + FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_NOR;//配置外接存储器的类型 + FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;//设置FSMC接口的数据宽度 + + FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;//配置访问模式 + FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;//配置等待信号的极性 + FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;//配置是否使用非对齐方式 + FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable; + FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;//配置等待信号什么时间产生 + FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;//配置是否使用等待信号 + FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;//配置是否允许突发写操作 + + FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;//配置写操作使能 + FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Enable ;//配置是否使用扩展模式 + + FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &readWriteTiming;//读时序 + FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &writeTiming; //写时序 + + FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure); + /* 使能 FSMC Bank1_SRAM Bank */ + FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE); +} + +void LCD_HardwareConfig(void) +{ + LCD_GPIO_Config(); + LCD_FSMC_Config(); +} + +#else +//写寄存器函数 +//data:寄存器值 +void LCD_WR_REG(u16 data) +{ + LCD_RS_CLR;//写地址 + LCD_CS_CLR; + DATAOUT(data); + LCD_WR_CLR; + LCD_WR_SET; + LCD_CS_SET; +} + +//写数据函数 +//可以替代LCD_WR_DATAX宏,拿时间换空间. +//data:寄存器值 +void LCD_WR_DATA(u16 data) +{ + LCD_RS_SET; + LCD_CS_CLR; + DATAOUT(data); + LCD_WR_CLR; + LCD_WR_SET; + LCD_CS_SET; +} + +//读LCD数据 +//返回值:读到的值 +u16 LCD_RD_DATA(void) +{ + vu16 ram; + GPIOC->CRL = 0X88888888; //PB0-7 上拉输入 + GPIOC->CRH = 0X88888888; //PB8-15 上拉输入 + GPIOC->ODR = 0X0000; //全部输出0 + + LCD_RS_SET; + LCD_CS_CLR; + //读取数据(读寄存器时,并不需要读2次) + LCD_RD_CLR; + + ram = DATAIN(); + LCD_RD_SET; + LCD_CS_SET; + + GPIOC->CRL = 0X33333333; //PC0-7 上拉输出 + GPIOC->CRH = 0X33333333; //PC8-15 上拉输出 + GPIOC->ODR = 0XFFFF; //全部输出高 + return ram; +} + +void LCD_GPIO_Config(void) +{ + GPIO_InitTypeDef GPIO_InitStructure; + + RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB |RCC_APB2Periph_GPIOC, ENABLE); + + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; + /*D0 - D15: PC0 - PC15 */ + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All; + GPIO_Init(GPIOC, &GPIO_InitStructure); + GPIO_SetBits(GPIOC, GPIO_Pin_All); + + /* 配置控制线 + * PB6 :LCD-RD + * PB7 :LCD-WR + * PB9 :LCD-CS + * PB8 :LCD-RS LCD-RS发送的数据代表是命令还是显示数据 + */ + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9; + GPIO_Init(GPIOB, &GPIO_InitStructure); + GPIO_SetBits(GPIOB, GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9); +} + +void LCD_HardwareConfig(void) +{ + LCD_GPIO_Config(); +} +#endif + diff --git a/TFT/src/User/Hal/lcd.h b/TFT/src/User/Hal/stm32f10x/lcd.h similarity index 82% rename from TFT/src/User/Hal/lcd.h rename to TFT/src/User/Hal/stm32f10x/lcd.h index d37ee5386c..6dea65b886 100644 --- a/TFT/src/User/Hal/lcd.h +++ b/TFT/src/User/Hal/stm32f10x/lcd.h @@ -2,7 +2,7 @@ #define _LCD_H_ #include "stdint.h" -#include "Configuration.h" +#include "variants.h" #ifdef STM32_HAS_FSMC @@ -45,15 +45,6 @@ #endif -//TFT35 V1.0 V1.1 RM68042 8bit -//TFT35 V1.2 ili9488 16bit -//TFT28 TFT24 ili9341 16bit -#if LCD_DATA_16BIT == 1 - #define LCD_WR_16BITS_DATA(c) do{ LCD_WR_DATA(c); }while(0) -#else - #define LCD_WR_16BITS_DATA(c) do{ LCD_WR_DATA(((c)>>8)&0xFF); LCD_WR_DATA((c)&0xFF); }while(0) -#endif - // #define WHITE 0xFFFF @@ -71,7 +62,7 @@ #define BRRED 0XFC07 // #define GRAY 0X8430 // - -void LCD_Init(void); // +void LCD_HardwareConfig(void); +uint16_t LCD_RD_DATA(void); #endif diff --git a/TFT/src/User/Hal/stm32f10x/lcd_dma.c b/TFT/src/User/Hal/stm32f10x/lcd_dma.c new file mode 100644 index 0000000000..32f313ec05 --- /dev/null +++ b/TFT/src/User/Hal/stm32f10x/lcd_dma.c @@ -0,0 +1,96 @@ +#include "lcd_dma.h" +#include "variants.h" +#include "lcd.h" +#include "GUI.h" +#include "delay.h" +#include "w25qxx.h" + +#ifdef STM32_HAS_FSMC +//Config for SPI Channel +#if W25Qxx_SPI == _SPI1 + #define W25QXX_SPI_NUM SPI1 + #define W25QXX_SPI_DMA_RCC_AHB RCC_AHBPeriph_DMA1 + #define W25QXX_SPI_DMA DMA1 + #define W25QXX_SPI_DMA_CHANNEL DMA1_Channel2 + #define W25QXX_SPI_DMA_IFCR_BIT 5 +#elif W25Qxx_SPI == _SPI2 + #define W25QXX_SPI_NUM SPI2 + #define W25QXX_SPI_DMA DMA1 + #define W25QXX_SPI_DMA_RCC_AHB RCC_AHBPeriph_DMA1 + #define W25QXX_SPI_DMA_CHANNEL DMA1_Channel4 + #define W25QXX_SPI_DMA_IFCR_BIT 13 +#elif W25Qxx_SPI == _SPI3 + #define W25QXX_SPI_NUM SPI3 + #define W25QXX_SPI_DMA DMA2 + #define W25QXX_SPI_DMA_RCC_AHB RCC_AHBPeriph_DMA2 + #define W25QXX_SPI_DMA_CHANNEL DMA2_Channel1 + #define W25QXX_SPI_DMA_IFCR_BIT 1 +#endif + +//SPI --> FSMC DMA (LCD_RAM) +//16bits, SPI_RX to LCD_RAM. +void LCD_DMA_Config(void) +{ + RCC->AHBENR |= W25QXX_SPI_DMA_RCC_AHB; //开启DMA时钟 + Delay_ms(5); //等待DMA时钟稳定 + W25QXX_SPI_DMA_CHANNEL->CPAR = (u32)&W25QXX_SPI_NUM->DR; //外设地址为:SPI->DR + W25QXX_SPI_DMA_CHANNEL->CMAR = (u32)&LCD->LCD_RAM;//目标地址为LCD_RAM + W25QXX_SPI_DMA_CHANNEL->CNDTR = 0; //DMA1,传输数据量,暂时设置为0 + W25QXX_SPI_DMA_CHANNEL->CCR = 0X00000000; //复位 + W25QXX_SPI_DMA_CHANNEL->CCR |= 0<<4; //从外设读 + W25QXX_SPI_DMA_CHANNEL->CCR |= 0<<5; //普通模式 + W25QXX_SPI_DMA_CHANNEL->CCR |= 0<<6; //外设地址非增量模式 + W25QXX_SPI_DMA_CHANNEL->CCR |= 0<<7; //存储器非增量模式 + W25QXX_SPI_DMA_CHANNEL->CCR |= LCD_DATA_16BIT<<8; //外设数据宽度为16位 + W25QXX_SPI_DMA_CHANNEL->CCR |= LCD_DATA_16BIT<<10; //存储器数据宽度16位 + W25QXX_SPI_DMA_CHANNEL->CCR |= 1<<12; //中等优先级 + W25QXX_SPI_DMA_CHANNEL->CCR |= 0<<14; //非存储器到存储器模式 +} + +#define LCD_DMA_MAX_TRANS 65535 //DMA 65535 bytes one frame +// start DMA transfer from SPI->DR to FSMC +// the max bytes of one frame is LCD_DMA_MAX_TRANS 65535 +void lcd_frame_segment_display(u16 size, u32 addr) +{ + W25QXX_SPI_DMA_CHANNEL->CNDTR = size; + + W25Qxx_SPI_CS_Set(0); + W25Qxx_SPI_Read_Write_Byte(CMD_FAST_READ_DATA); + W25Qxx_SPI_Read_Write_Byte((u8)((addr)>>16)); + W25Qxx_SPI_Read_Write_Byte((u8)((addr)>>8)); + W25Qxx_SPI_Read_Write_Byte((u8)addr); + W25Qxx_SPI_Read_Write_Byte(0XFF); //8 dummy clock + + //set SPI to 16bit DMA rx only mode + W25QXX_SPI_NUM->CR1 &= ~(1<<6); + W25QXX_SPI_NUM->CR2 |= 1<<0; //enable SPI rx DMA + W25QXX_SPI_NUM->CR1 |= LCD_DATA_16BIT<<11; //16bit data frame + W25QXX_SPI_NUM->CR1 |= 1<<10; //rx only + + W25QXX_SPI_DMA_CHANNEL->CCR |= 1<<0; //enable dma channel + W25QXX_SPI_NUM->CR1 |= 1<<6; //enable SPI + + while((W25QXX_SPI_DMA->ISR&(1<CCR &= (u32)(~(1<<0)); + W25QXX_SPI_DMA->IFCR |= (u32)(1<AIRCR; + temp&=0X0000F8FF; + temp|=0X05FA0000; + temp|=temp1; + SCB->AIRCR=temp; +} +void MY_NVIC_Init(u8 NVIC_PreemptionPriority,u8 NVIC_SubPriority,u8 NVIC_Channel,u8 NVIC_Group) +{ + u32 temp; + MY_NVIC_PriorityGroupConfig(NVIC_Group); + temp=NVIC_PreemptionPriority<<(4-NVIC_Group); + temp|=NVIC_SubPriority&(0x0f>>NVIC_Group); + temp&=0xf; + NVIC->ISER[NVIC_Channel/32]|=(1<IP[NVIC_Channel]|=temp<<4; +} + +#ifdef SD_CD_PIN +//SD_CD insert detect +void SD_CD_WP_Init(void) +{ + GPIO_InitSet(SD_CD_PIN, MGPIO_MODE_IPU, 0); +} +#endif + +uint8_t SD_CD_Inserted(void) +{ +#ifdef SD_CD_PIN + return !GPIO_GetLevel(SD_CD_PIN); +#else + return 0; +#endif +} + + +SD_Error SD_Init(void) +{ + u8 clkdiv=0; + SD_Error errorstatus=SD_OK; + +#ifdef SD_CD_PIN + SD_CD_WP_Init(); +#endif + + RCC->APB2ENR|=1<<4; + RCC->APB2ENR|=1<<5; + RCC->AHBENR|=1<<10; + RCC->AHBENR|=1<<1; + + GPIOC->CRH&=0XFFF00000; + GPIOC->CRH|=0X000BBBBB; //PC.8~12 + + GPIOD->CRL&=0XFFFFF0FF; + GPIOD->CRL|=0X00000B00; //PD2 PD7 + //SDIO + SDIO->POWER=0x00000000; + SDIO->CLKCR=0x00000000; + SDIO->ARG=0x00000000; + SDIO->CMD=0x00000000; + SDIO->DTIMER=0x00000000; + SDIO->DLEN=0x00000000; + SDIO->DCTRL=0x00000000; + SDIO->ICR=0x00C007FF; + SDIO->MASK=0x00000000; + MY_NVIC_Init(0,0,SDIO_IRQn,2); + errorstatus=SD_PowerON(); + if(errorstatus==SD_OK) errorstatus=SD_InitializeCards(); + if(errorstatus==SD_OK) errorstatus=SD_GetCardInfo(&SDCardInfo); + if(errorstatus==SD_OK) errorstatus=SD_SelectDeselect((u32)(SDCardInfo.RCA<<16)); + if(errorstatus==SD_OK) errorstatus=SD_EnableWideBusOperation(1); + if((errorstatus==SD_OK)||(SDIO_MULTIMEDIA_CARD==CardType)) + { + if(SDCardInfo.CardType==SDIO_STD_CAPACITY_SD_CARD_V1_1||SDCardInfo.CardType==SDIO_STD_CAPACITY_SD_CARD_V2_0) + { + clkdiv=SDIO_TRANSFER_CLK_DIV+6; //V1.1/V2.0 72/12=6Mhz + }else clkdiv=SDIO_TRANSFER_CLK_DIV; //SDHC 72/6=12Mhz + SDIO_Clock_Set(clkdiv); //SDIO_CK=SDIOCLK/[clkdiv+2]; 48Mhz + //errorstatus=SD_SetDeviceMode(SD_DMA_MODE); + errorstatus=SD_SetDeviceMode(SD_POLLING_MODE); + } + return errorstatus; +} + +void SD_DeInit(void) +{ + +} + +void SDIO_Clock_Set(u8 clkdiv) +{ + u32 tmpreg=SDIO->CLKCR; + tmpreg&=0XFFFFFF00; + tmpreg|=clkdiv; + SDIO->CLKCR=tmpreg; +} + +void SDIO_Send_Cmd(u8 cmdindex,u8 waitrsp,u32 arg) +{ + u32 tmpreg; + SDIO->ARG=arg; + tmpreg=SDIO->CMD; + tmpreg&=0XFFFFF800; + tmpreg|=cmdindex&0X3F; + tmpreg|=waitrsp<<6; + tmpreg|=0<<8; + tmpreg|=1<<10; + SDIO->CMD=tmpreg; +} + +void SDIO_Send_Data_Cfg(u32 datatimeout,u32 datalen,u8 blksize,u8 dir) +{ + u32 tmpreg; + SDIO->DTIMER=datatimeout; + SDIO->DLEN=datalen&0X1FFFFFF; + tmpreg=SDIO->DCTRL; + tmpreg&=0xFFFFFF08; + tmpreg|=blksize<<4; + tmpreg|=0<<2; + tmpreg|=(dir&0X01)<<1; + tmpreg|=1<<0; + SDIO->DCTRL=tmpreg; +} + +SD_Error SD_PowerON(void) +{ + u8 i=0; + SD_Error errorstatus=SD_OK; + u32 response=0,count=0,validvoltage=0; + u32 SDType=SD_STD_CAPACITY; + + SDIO->CLKCR=0; + SDIO->CLKCR|=0<<9; + SDIO->CLKCR|=0<<10; + SDIO->CLKCR|=0<<13; + SDIO->CLKCR|=0<<14; + SDIO_Clock_Set(SDIO_INIT_CLK_DIV); + SDIO->POWER=0X03; + SDIO->CLKCR|=1<<8; + for(i=0;i<74;i++) + { + SDIO_Send_Cmd(SD_CMD_GO_IDLE_STATE,0,0); + errorstatus=CmdError(); + if(errorstatus==SD_OK)break; + } + if(errorstatus)return errorstatus; + SDIO_Send_Cmd(SDIO_SEND_IF_COND,1,SD_CHECK_PATTERN); + + errorstatus=CmdResp7Error(); + if(errorstatus==SD_OK) + { + CardType=SDIO_STD_CAPACITY_SD_CARD_V2_0; + SDType=SD_HIGH_CAPACITY; + } + SDIO_Send_Cmd(SD_CMD_APP_CMD,1,0); + errorstatus=CmdResp1Error(SD_CMD_APP_CMD); + if(errorstatus==SD_OK)//SD2.0/SD 1.1 + { + while((!validvoltage)&&(countRESP1; + validvoltage=(((response>>31)==1)?1:0); + count++; + } + if(count>=SD_MAX_VOLT_TRIAL) + { + errorstatus=SD_INVALID_VOLTRANGE; + return errorstatus; + } + if(response&=SD_HIGH_CAPACITY) + { + CardType=SDIO_HIGH_CAPACITY_SD_CARD; + } + }else//MMC锟斤拷 + { + //MMC锟斤拷,锟斤拷锟斤拷CMD1 SDIO_SEND_OP_COND,锟斤拷锟斤拷为:0x80FF8000 + while((!validvoltage)&&(countRESP1;; //锟矫碉拷锟斤拷应 + validvoltage=(((response>>31)==1)?1:0); + count++; + } + if(count>=SD_MAX_VOLT_TRIAL) + { + errorstatus=SD_INVALID_VOLTRANGE; + return errorstatus; + } + CardType=SDIO_MULTIMEDIA_CARD; + } + return(errorstatus); +} +//SD锟斤拷 Power OFF +//锟斤拷锟斤拷值:锟斤拷锟斤拷锟斤拷锟;(0,锟睫达拷锟斤拷) +SD_Error SD_PowerOFF(void) +{ + SDIO->POWER&=~(3<<0);//SDIO锟斤拷源锟截憋拷,时锟斤拷停止 + return SD_OK; +} +//锟斤拷始锟斤拷锟斤拷锟叫的匡拷,锟斤拷锟矫匡拷锟斤拷锟斤拷锟斤拷锟阶刺 +//锟斤拷锟斤拷值:锟斤拷锟斤拷锟斤拷锟 +SD_Error SD_InitializeCards(void) +{ + SD_Error errorstatus=SD_OK; + u16 rca = 0x01; + if((SDIO->POWER&0X03)==0)return SD_REQUEST_NOT_APPLICABLE;//锟斤拷锟斤拷源状态,确锟斤拷为锟较碉拷状态 + if(SDIO_SECURE_DIGITAL_IO_CARD!=CardType) //锟斤拷SECURE_DIGITAL_IO_CARD + { + SDIO_Send_Cmd(SD_CMD_ALL_SEND_CID,3,0); //锟斤拷锟斤拷CMD2,取锟斤拷CID,锟斤拷锟斤拷应 + errorstatus=CmdResp2Error(); //锟饺达拷R2锟斤拷应 + if(errorstatus!=SD_OK)return errorstatus; //锟斤拷应锟斤拷锟斤拷 + CID_Tab[0]=SDIO->RESP1; + CID_Tab[1]=SDIO->RESP2; + CID_Tab[2]=SDIO->RESP3; + CID_Tab[3]=SDIO->RESP4; + } + if((SDIO_STD_CAPACITY_SD_CARD_V1_1==CardType)||(SDIO_STD_CAPACITY_SD_CARD_V2_0==CardType)||(SDIO_SECURE_DIGITAL_IO_COMBO_CARD==CardType)||(SDIO_HIGH_CAPACITY_SD_CARD==CardType))//锟叫断匡拷锟斤拷锟斤拷 + { + SDIO_Send_Cmd(SD_CMD_SET_REL_ADDR,1,0); //锟斤拷锟斤拷CMD3,锟斤拷锟斤拷应 + errorstatus=CmdResp6Error(SD_CMD_SET_REL_ADDR,&rca);//锟饺达拷R6锟斤拷应 + if(errorstatus!=SD_OK)return errorstatus; //锟斤拷应锟斤拷锟斤拷 + } + if (SDIO_MULTIMEDIA_CARD==CardType) + { + SDIO_Send_Cmd(SD_CMD_SET_REL_ADDR,1,(u32)(rca<<16));//锟斤拷锟斤拷CMD3,锟斤拷锟斤拷应 + errorstatus=CmdResp2Error(); //锟饺达拷R2锟斤拷应 + if(errorstatus!=SD_OK)return errorstatus; //锟斤拷应锟斤拷锟斤拷 + } + if (SDIO_SECURE_DIGITAL_IO_CARD!=CardType) //锟斤拷SECURE_DIGITAL_IO_CARD + { + RCA = rca; + SDIO_Send_Cmd(SD_CMD_SEND_CSD,3,(u32)(rca<<16));//锟斤拷锟斤拷CMD9+锟斤拷RCA,取锟斤拷CSD,锟斤拷锟斤拷应 + errorstatus=CmdResp2Error(); //锟饺达拷R2锟斤拷应 + if(errorstatus!=SD_OK)return errorstatus; //锟斤拷应锟斤拷锟斤拷 + CSD_Tab[0]=SDIO->RESP1; + CSD_Tab[1]=SDIO->RESP2; + CSD_Tab[2]=SDIO->RESP3; + CSD_Tab[3]=SDIO->RESP4; + } + return SD_OK;//锟斤拷锟斤拷始锟斤拷锟缴癸拷 +} +//锟矫碉拷锟斤拷锟斤拷息 +//cardinfo:锟斤拷锟斤拷息锟芥储锟斤拷 +//锟斤拷锟斤拷值:锟斤拷锟斤拷状态 +SD_Error SD_GetCardInfo(SD_CardInfo *cardinfo) +{ + SD_Error errorstatus=SD_OK; + u8 tmp=0; + cardinfo->CardType=(u8)CardType; //锟斤拷锟斤拷锟斤拷 + cardinfo->RCA=(u16)RCA; //锟斤拷RCA值 + tmp=(u8)((CSD_Tab[0]&0xFF000000)>>24); + cardinfo->SD_csd.CSDStruct=(tmp&0xC0)>>6; //CSD锟结构 + cardinfo->SD_csd.SysSpecVersion=(tmp&0x3C)>>2; //2.0协锟介还没锟斤拷锟斤拷锟解部锟斤拷(为锟斤拷锟斤拷),应锟斤拷锟角猴拷锟斤拷协锟介定锟斤拷锟 + cardinfo->SD_csd.Reserved1=tmp&0x03; //2锟斤拷锟斤拷锟斤拷位 + tmp=(u8)((CSD_Tab[0]&0x00FF0000)>>16); //锟斤拷1锟斤拷锟街斤拷 + cardinfo->SD_csd.TAAC=tmp; //锟斤拷锟捷讹拷时锟斤拷1 + tmp=(u8)((CSD_Tab[0]&0x0000FF00)>>8); //锟斤拷2锟斤拷锟街斤拷 + cardinfo->SD_csd.NSAC=tmp; //锟斤拷锟捷讹拷时锟斤拷2 + tmp=(u8)(CSD_Tab[0]&0x000000FF); //锟斤拷3锟斤拷锟街斤拷 + cardinfo->SD_csd.MaxBusClkFrec=tmp; //锟斤拷锟斤拷锟劫讹拷 + tmp=(u8)((CSD_Tab[1]&0xFF000000)>>24); //锟斤拷4锟斤拷锟街斤拷 + cardinfo->SD_csd.CardComdClasses=tmp<<4; //锟斤拷指锟斤拷锟斤拷锟斤拷锟轿 + tmp=(u8)((CSD_Tab[1]&0x00FF0000)>>16); //锟斤拷5锟斤拷锟街斤拷 + cardinfo->SD_csd.CardComdClasses|=(tmp&0xF0)>>4;//锟斤拷指锟斤拷锟斤拷锟斤拷锟轿 + cardinfo->SD_csd.RdBlockLen=tmp&0x0F; //锟斤拷锟斤拷取锟斤拷锟捷筹拷锟斤拷 + tmp=(u8)((CSD_Tab[1]&0x0000FF00)>>8); //锟斤拷6锟斤拷锟街斤拷 + cardinfo->SD_csd.PartBlockRead=(tmp&0x80)>>7; //锟斤拷锟斤拷锟街匡拷锟 + cardinfo->SD_csd.WrBlockMisalign=(tmp&0x40)>>6; //写锟斤拷锟轿 + cardinfo->SD_csd.RdBlockMisalign=(tmp&0x20)>>5; //锟斤拷锟斤拷锟轿 + cardinfo->SD_csd.DSRImpl=(tmp&0x10)>>4; + cardinfo->SD_csd.Reserved2=0; //锟斤拷锟斤拷 + if((CardType==SDIO_STD_CAPACITY_SD_CARD_V1_1)||(CardType==SDIO_STD_CAPACITY_SD_CARD_V2_0)||(SDIO_MULTIMEDIA_CARD==CardType))//锟斤拷准1.1/2.0锟斤拷/MMC锟斤拷 + { + cardinfo->SD_csd.DeviceSize=(tmp&0x03)<<10; //C_SIZE(12位) + tmp=(u8)(CSD_Tab[1]&0x000000FF); //锟斤拷7锟斤拷锟街斤拷 + cardinfo->SD_csd.DeviceSize|=(tmp)<<2; + tmp=(u8)((CSD_Tab[2]&0xFF000000)>>24); //锟斤拷8锟斤拷锟街斤拷 + cardinfo->SD_csd.DeviceSize|=(tmp&0xC0)>>6; + cardinfo->SD_csd.MaxRdCurrentVDDMin=(tmp&0x38)>>3; + cardinfo->SD_csd.MaxRdCurrentVDDMax=(tmp&0x07); + tmp=(u8)((CSD_Tab[2]&0x00FF0000)>>16); //锟斤拷9锟斤拷锟街斤拷 + cardinfo->SD_csd.MaxWrCurrentVDDMin=(tmp&0xE0)>>5; + cardinfo->SD_csd.MaxWrCurrentVDDMax=(tmp&0x1C)>>2; + cardinfo->SD_csd.DeviceSizeMul=(tmp&0x03)<<1;//C_SIZE_MULT + tmp=(u8)((CSD_Tab[2]&0x0000FF00)>>8); //锟斤拷10锟斤拷锟街斤拷 + cardinfo->SD_csd.DeviceSizeMul|=(tmp&0x80)>>7; + cardinfo->CardCapacity=(cardinfo->SD_csd.DeviceSize+1);//锟斤拷锟姐卡锟斤拷锟斤拷 + cardinfo->CardCapacity*=(1<<(cardinfo->SD_csd.DeviceSizeMul+2)); + cardinfo->CardBlockSize=1<<(cardinfo->SD_csd.RdBlockLen);//锟斤拷锟叫 + cardinfo->CardCapacity*=cardinfo->CardBlockSize; + }else if(CardType==SDIO_HIGH_CAPACITY_SD_CARD) //锟斤拷锟斤拷锟斤拷锟斤拷 + { + tmp=(u8)(CSD_Tab[1]&0x000000FF); //锟斤拷7锟斤拷锟街斤拷 + cardinfo->SD_csd.DeviceSize=(tmp&0x3F)<<16;//C_SIZE + tmp=(u8)((CSD_Tab[2]&0xFF000000)>>24); //锟斤拷8锟斤拷锟街斤拷 + cardinfo->SD_csd.DeviceSize|=(tmp<<8); + tmp=(u8)((CSD_Tab[2]&0x00FF0000)>>16); //锟斤拷9锟斤拷锟街斤拷 + cardinfo->SD_csd.DeviceSize|=(tmp); + tmp=(u8)((CSD_Tab[2]&0x0000FF00)>>8); //锟斤拷10锟斤拷锟街斤拷 + cardinfo->CardCapacity=(long long)(cardinfo->SD_csd.DeviceSize+1)*512*1024;//锟斤拷锟姐卡锟斤拷锟斤拷 + cardinfo->CardBlockSize=512; //锟斤拷锟叫★拷潭锟轿512锟街斤拷 + } + cardinfo->SD_csd.EraseGrSize=(tmp&0x40)>>6; + cardinfo->SD_csd.EraseGrMul=(tmp&0x3F)<<1; + tmp=(u8)(CSD_Tab[2]&0x000000FF); //锟斤拷11锟斤拷锟街斤拷 + cardinfo->SD_csd.EraseGrMul|=(tmp&0x80)>>7; + cardinfo->SD_csd.WrProtectGrSize=(tmp&0x7F); + tmp=(u8)((CSD_Tab[3]&0xFF000000)>>24); //锟斤拷12锟斤拷锟街斤拷 + cardinfo->SD_csd.WrProtectGrEnable=(tmp&0x80)>>7; + cardinfo->SD_csd.ManDeflECC=(tmp&0x60)>>5; + cardinfo->SD_csd.WrSpeedFact=(tmp&0x1C)>>2; + cardinfo->SD_csd.MaxWrBlockLen=(tmp&0x03)<<2; + tmp=(u8)((CSD_Tab[3]&0x00FF0000)>>16); //锟斤拷13锟斤拷锟街斤拷 + cardinfo->SD_csd.MaxWrBlockLen|=(tmp&0xC0)>>6; + cardinfo->SD_csd.WriteBlockPaPartial=(tmp&0x20)>>5; + cardinfo->SD_csd.Reserved3=0; + cardinfo->SD_csd.ContentProtectAppli=(tmp&0x01); + tmp=(u8)((CSD_Tab[3]&0x0000FF00)>>8); //锟斤拷14锟斤拷锟街斤拷 + cardinfo->SD_csd.FileFormatGrouop=(tmp&0x80)>>7; + cardinfo->SD_csd.CopyFlag=(tmp&0x40)>>6; + cardinfo->SD_csd.PermWrProtect=(tmp&0x20)>>5; + cardinfo->SD_csd.TempWrProtect=(tmp&0x10)>>4; + cardinfo->SD_csd.FileFormat=(tmp&0x0C)>>2; + cardinfo->SD_csd.ECC=(tmp&0x03); + tmp=(u8)(CSD_Tab[3]&0x000000FF); //锟斤拷15锟斤拷锟街斤拷 + cardinfo->SD_csd.CSD_CRC=(tmp&0xFE)>>1; + cardinfo->SD_csd.Reserved4=1; + tmp=(u8)((CID_Tab[0]&0xFF000000)>>24); //锟斤拷0锟斤拷锟街斤拷 + cardinfo->SD_cid.ManufacturerID=tmp; + tmp=(u8)((CID_Tab[0]&0x00FF0000)>>16); //锟斤拷1锟斤拷锟街斤拷 + cardinfo->SD_cid.OEM_AppliID=tmp<<8; + tmp=(u8)((CID_Tab[0]&0x000000FF00)>>8); //锟斤拷2锟斤拷锟街斤拷 + cardinfo->SD_cid.OEM_AppliID|=tmp; + tmp=(u8)(CID_Tab[0]&0x000000FF); //锟斤拷3锟斤拷锟街斤拷 + cardinfo->SD_cid.ProdName1=tmp<<24; + tmp=(u8)((CID_Tab[1]&0xFF000000)>>24); //锟斤拷4锟斤拷锟街斤拷 + cardinfo->SD_cid.ProdName1|=tmp<<16; + tmp=(u8)((CID_Tab[1]&0x00FF0000)>>16); //锟斤拷5锟斤拷锟街斤拷 + cardinfo->SD_cid.ProdName1|=tmp<<8; + tmp=(u8)((CID_Tab[1]&0x0000FF00)>>8); //锟斤拷6锟斤拷锟街斤拷 + cardinfo->SD_cid.ProdName1|=tmp; + tmp=(u8)(CID_Tab[1]&0x000000FF); //锟斤拷7锟斤拷锟街斤拷 + cardinfo->SD_cid.ProdName2=tmp; + tmp=(u8)((CID_Tab[2]&0xFF000000)>>24); //锟斤拷8锟斤拷锟街斤拷 + cardinfo->SD_cid.ProdRev=tmp; + tmp=(u8)((CID_Tab[2]&0x00FF0000)>>16); //锟斤拷9锟斤拷锟街斤拷 + cardinfo->SD_cid.ProdSN=tmp<<24; + tmp=(u8)((CID_Tab[2]&0x0000FF00)>>8); //锟斤拷10锟斤拷锟街斤拷 + cardinfo->SD_cid.ProdSN|=tmp<<16; + tmp=(u8)(CID_Tab[2]&0x000000FF); //锟斤拷11锟斤拷锟街斤拷 + cardinfo->SD_cid.ProdSN|=tmp<<8; + tmp=(u8)((CID_Tab[3]&0xFF000000)>>24); //锟斤拷12锟斤拷锟街斤拷 + cardinfo->SD_cid.ProdSN|=tmp; + tmp=(u8)((CID_Tab[3]&0x00FF0000)>>16); //锟斤拷13锟斤拷锟街斤拷 + cardinfo->SD_cid.Reserved1|=(tmp&0xF0)>>4; + cardinfo->SD_cid.ManufactDate=(tmp&0x0F)<<8; + tmp=(u8)((CID_Tab[3]&0x0000FF00)>>8); //锟斤拷14锟斤拷锟街斤拷 + cardinfo->SD_cid.ManufactDate|=tmp; + tmp=(u8)(CID_Tab[3]&0x000000FF); //锟斤拷15锟斤拷锟街斤拷 + cardinfo->SD_cid.CID_CRC=(tmp&0xFE)>>1; + cardinfo->SD_cid.Reserved2=1; + return errorstatus; +} +//锟斤拷锟斤拷SDIO锟斤拷锟竭匡拷锟斤拷(MMC锟斤拷锟斤拷支锟斤拷4bit模式) +//wmode:位锟斤拷模式.0,1位锟斤拷锟捷匡拷锟斤拷;1,4位锟斤拷锟捷匡拷锟斤拷;2,8位锟斤拷锟捷匡拷锟斤拷 +//锟斤拷锟斤拷值:SD锟斤拷锟斤拷锟斤拷状态 +SD_Error SD_EnableWideBusOperation(u32 wmode) +{ + SD_Error errorstatus=SD_OK; + if(SDIO_MULTIMEDIA_CARD==CardType)return SD_UNSUPPORTED_FEATURE;//MMC锟斤拷锟斤拷支锟斤拷 + else if((SDIO_STD_CAPACITY_SD_CARD_V1_1==CardType)||(SDIO_STD_CAPACITY_SD_CARD_V2_0==CardType)||(SDIO_HIGH_CAPACITY_SD_CARD==CardType)) + { + if(wmode>=2)return SD_UNSUPPORTED_FEATURE;//锟斤拷支锟斤拷8位模式 + else + { + errorstatus=SDEnWideBus(wmode); + if(SD_OK==errorstatus) + { + SDIO->CLKCR&=~(3<<11); //锟斤拷锟街帮拷锟轿伙拷锟斤拷锟斤拷锟 + SDIO->CLKCR|=(u16)wmode<<11;//1位/4位锟斤拷锟竭匡拷锟斤拷 + SDIO->CLKCR|=0<<14; //锟斤拷锟斤拷锟斤拷硬锟斤拷锟斤拷锟斤拷锟斤拷 + } + } + } + return errorstatus; +} +//锟斤拷锟斤拷SD锟斤拷锟斤拷锟斤拷模式 +//Mode: +//锟斤拷锟斤拷值:锟斤拷锟斤拷状态 +SD_Error SD_SetDeviceMode(u32 Mode) +{ + SD_Error errorstatus = SD_OK; + if((Mode==SD_DMA_MODE)||(Mode==SD_POLLING_MODE))DeviceMode=Mode; + else errorstatus=SD_INVALID_PARAMETER; + return errorstatus; +} +//选锟斤拷 +//锟斤拷锟斤拷CMD7,选锟斤拷锟斤拷缘锟街(rca)为addr锟侥匡拷,取锟斤拷锟斤拷锟斤拷锟斤拷.锟斤拷锟轿0,锟津都诧拷选锟斤拷. +//addr:锟斤拷锟斤拷RCA锟斤拷址 +SD_Error SD_SelectDeselect(u32 addr) +{ + SDIO_Send_Cmd(SD_CMD_SEL_DESEL_CARD,1,addr); //锟斤拷锟斤拷CMD7,选锟斤拷,锟斤拷锟斤拷应 + return CmdResp1Error(SD_CMD_SEL_DESEL_CARD); +} +//SD锟斤拷锟斤拷取一锟斤拷锟斤拷 +//buf:锟斤拷锟斤拷锟捷伙拷锟斤拷锟斤拷(锟斤拷锟斤拷4锟街节讹拷锟斤拷!!) +//addr:锟斤拷取锟斤拷址 +//blksize:锟斤拷锟叫 +SD_Error SD_ReadBlock(u8 *buf,long long addr,u16 blksize) +{ + SD_Error errorstatus=SD_OK; + u8 power; + u32 count=0,*tempbuff=(u32*)buf;//转锟斤拷为u32指锟斤拷 + u32 timeout=SDIO_DATATIMEOUT; + if(NULL==buf) return SD_INVALID_PARAMETER; + SDIO->DCTRL=0x0; //锟斤拷锟捷匡拷锟狡寄达拷锟斤拷锟斤拷锟斤拷(锟斤拷DMA) + if(CardType==SDIO_HIGH_CAPACITY_SD_CARD)//锟斤拷锟斤拷锟斤拷锟斤拷 + { + blksize=512; + addr>>=9; + } + SDIO_Send_Data_Cfg(SD_DATATIMEOUT,0,0,0); //锟斤拷锟紻PSM状态锟斤拷锟斤拷锟斤拷 + if(SDIO->RESP1&SD_CARD_LOCKED)return SD_LOCK_UNLOCK_FAILED;//锟斤拷锟斤拷锟斤拷 + if((blksize>0)&&(blksize<=2048)&&((blksize&(blksize-1))==0)) + { + power=convert_from_bytes_to_power_of_two(blksize); + SDIO_Send_Cmd(SD_CMD_SET_BLOCKLEN,1,blksize); //锟斤拷锟斤拷CMD16+锟斤拷锟斤拷锟斤拷锟捷筹拷锟斤拷为blksize,锟斤拷锟斤拷应 + errorstatus=CmdResp1Error(SD_CMD_SET_BLOCKLEN); //锟饺达拷R1锟斤拷应 + if(errorstatus!=SD_OK)return errorstatus; //锟斤拷应锟斤拷锟斤拷 + }else return SD_INVALID_PARAMETER; + SDIO_Send_Data_Cfg(SD_DATATIMEOUT,blksize,power,1); //blksize,锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 + SDIO_Send_Cmd(SD_CMD_READ_SINGLE_BLOCK,1,addr); //锟斤拷锟斤拷CMD17+锟斤拷addr锟斤拷址锟斤拷锟斤拷取锟斤拷锟斤拷,锟斤拷锟斤拷应 + errorstatus=CmdResp1Error(SD_CMD_READ_SINGLE_BLOCK);//锟饺达拷R1锟斤拷应 + if(errorstatus!=SD_OK)return errorstatus; //锟斤拷应锟斤拷锟斤拷 + if(DeviceMode==SD_POLLING_MODE) //锟斤拷询模式,锟斤拷询锟斤拷锟斤拷 + { + INTX_DISABLE();//锟截憋拷锟斤拷锟叫讹拷(POLLING模式,锟较斤拷锟叫断达拷锟絊DIO锟斤拷写锟斤拷锟斤拷!!!) + while(!(SDIO->STA&((1<<5)|(1<<1)|(1<<3)|(1<<10)|(1<<9))))//锟斤拷锟斤拷锟斤拷/CRC/锟斤拷时/锟斤拷锟(锟斤拷志)/锟斤拷始位锟斤拷锟斤拷 + { + if(SDIO->STA&(1<<15)) //锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷,锟斤拷示锟斤拷锟劫达拷锟斤拷8锟斤拷锟斤拷 + { + for(count=0;count<8;count++) //循锟斤拷锟斤拷取锟斤拷锟斤拷 + { + *(tempbuff+count)=SDIO->FIFO; + } + tempbuff+=8; + timeout=0X7FFFFF; //锟斤拷锟斤拷锟斤拷锟斤拷锟绞憋拷锟 + }else //锟斤拷锟斤拷锟斤拷时 + { + if(timeout==0)return SD_DATA_TIMEOUT; + timeout--; + } + } + if(SDIO->STA&(1<<3)) //锟斤拷锟捷筹拷时锟斤拷锟斤拷 + { + SDIO->ICR|=1<<3; //锟斤拷锟斤拷锟斤拷志 + return SD_DATA_TIMEOUT; + }else if(SDIO->STA&(1<<1)) //锟斤拷锟捷匡拷CRC锟斤拷锟斤拷 + { + SDIO->ICR|=1<<1; //锟斤拷锟斤拷锟斤拷志 + return SD_DATA_CRC_FAIL; + }else if(SDIO->STA&(1<<5)) //锟斤拷锟斤拷fifo锟斤拷锟斤拷锟斤拷锟 + { + SDIO->ICR|=1<<5; //锟斤拷锟斤拷锟斤拷志 + return SD_RX_OVERRUN; + }else if(SDIO->STA&(1<<9)) //锟斤拷锟斤拷锟斤拷始位锟斤拷锟斤拷 + { + SDIO->ICR|=1<<9; //锟斤拷锟斤拷锟斤拷志 + return SD_START_BIT_ERR; + } + while(SDIO->STA&(1<<21)) //FIFO锟斤拷锟斤拷,锟斤拷锟斤拷锟节匡拷锟斤拷锟斤拷锟斤拷 + { + *tempbuff=SDIO->FIFO; //循锟斤拷锟斤拷取锟斤拷锟斤拷 + tempbuff++; + } + INTX_ENABLE();//锟斤拷锟斤拷锟斤拷锟叫讹拷 + SDIO->ICR=0X5FF; //锟斤拷锟斤拷锟斤拷斜锟斤拷 + }else if(DeviceMode==SD_DMA_MODE) + { + SD_DMA_Config((u32*)buf,blksize,0); + TransferError=SD_OK; + StopCondition=0; //锟斤拷锟斤拷锟,锟斤拷锟斤拷要锟斤拷锟斤拷停止锟斤拷锟斤拷指锟斤拷 + TransferEnd=0; //锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟轿伙拷锟斤拷锟斤拷卸戏锟斤拷锟斤拷锟1 + SDIO->MASK|=(1<<1)|(1<<3)|(1<<8)|(1<<5)|(1<<9); //锟斤拷锟斤拷锟斤拷要锟斤拷锟叫讹拷 + SDIO->DCTRL|=1<<3; //SDIO DMA使锟斤拷 + while(((DMA2->ISR&0X2000)==RESET)&&(TransferEnd==0)&&(TransferError==SD_OK)&&timeout)timeout--;//锟饺达拷锟斤拷锟斤拷锟斤拷锟 + if(timeout==0)return SD_DATA_TIMEOUT;//锟斤拷时 + if(TransferError!=SD_OK)errorstatus=TransferError; + } + return errorstatus; +} + +u32 *tempbuff; +SD_Error SD_ReadMultiBlocks(u8 *buf,long long addr,u16 blksize,u32 nblks) +{ + SD_Error errorstatus=SD_OK; + u8 power; + u32 count=0; + u32 timeout=SDIO_DATATIMEOUT; + tempbuff=(u32*)buf;//转锟斤拷为u32指锟斤拷 + + SDIO->DCTRL=0x0; //锟斤拷锟捷匡拷锟狡寄达拷锟斤拷锟斤拷锟斤拷(锟斤拷DMA) + if(CardType==SDIO_HIGH_CAPACITY_SD_CARD)//锟斤拷锟斤拷锟斤拷锟斤拷 + { + blksize=512; + addr>>=9; + } + SDIO_Send_Data_Cfg(SD_DATATIMEOUT,0,0,0); //锟斤拷锟紻PSM状态锟斤拷锟斤拷锟斤拷 + if(SDIO->RESP1&SD_CARD_LOCKED)return SD_LOCK_UNLOCK_FAILED;//锟斤拷锟斤拷锟斤拷 + if((blksize>0)&&(blksize<=2048)&&((blksize&(blksize-1))==0)) + { + power=convert_from_bytes_to_power_of_two(blksize); + SDIO_Send_Cmd(SD_CMD_SET_BLOCKLEN,1,blksize); //锟斤拷锟斤拷CMD16+锟斤拷锟斤拷锟斤拷锟捷筹拷锟斤拷为blksize,锟斤拷锟斤拷应 + errorstatus=CmdResp1Error(SD_CMD_SET_BLOCKLEN); //锟饺达拷R1锟斤拷应 + if(errorstatus!=SD_OK)return errorstatus; //锟斤拷应锟斤拷锟斤拷 + }else return SD_INVALID_PARAMETER; + if(nblks>1) //锟斤拷锟斤拷 + { + if(nblks*blksize>SD_MAX_DATA_LENGTH) return SD_INVALID_PARAMETER;//锟叫讹拷锟角否超癸拷锟斤拷锟斤拷锟秸筹拷锟斤拷 + SDIO_Send_Data_Cfg(SD_DATATIMEOUT,nblks*blksize,power,1);//nblks*blksize,512锟斤拷锟叫,锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 + SDIO_Send_Cmd(SD_CMD_READ_MULT_BLOCK,1,addr); //锟斤拷锟斤拷CMD18+锟斤拷addr锟斤拷址锟斤拷锟斤拷取锟斤拷锟斤拷,锟斤拷锟斤拷应 + errorstatus=CmdResp1Error(SD_CMD_READ_MULT_BLOCK);//锟饺达拷R1锟斤拷应 + if(errorstatus!=SD_OK)return errorstatus; //锟斤拷应锟斤拷锟斤拷 + if(DeviceMode==SD_POLLING_MODE) + { + INTX_DISABLE();//锟截憋拷锟斤拷锟叫讹拷(POLLING模式,锟较斤拷锟叫断达拷锟絊DIO锟斤拷写锟斤拷锟斤拷!!!) + while(!(SDIO->STA&((1<<5)|(1<<1)|(1<<3)|(1<<8)|(1<<9))))//锟斤拷锟斤拷锟斤拷/CRC/锟斤拷时/锟斤拷锟(锟斤拷志)/锟斤拷始位锟斤拷锟斤拷 + { + if(SDIO->STA&(1<<15)) //锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷,锟斤拷示锟斤拷锟劫达拷锟斤拷8锟斤拷锟斤拷 + { + for(count=0;count<8;count++) //循锟斤拷锟斤拷取锟斤拷锟斤拷 + { + *(tempbuff+count)=SDIO->FIFO; + } + tempbuff+=8; + timeout=0X7FFFFF; //锟斤拷锟斤拷锟斤拷锟斤拷锟绞憋拷锟 + }else //锟斤拷锟斤拷锟斤拷时 + { + if(timeout==0)return SD_DATA_TIMEOUT; + timeout--; + } + } + if(SDIO->STA&(1<<3)) //锟斤拷锟捷筹拷时锟斤拷锟斤拷 + { + SDIO->ICR|=1<<3; //锟斤拷锟斤拷锟斤拷志 + return SD_DATA_TIMEOUT; + }else if(SDIO->STA&(1<<1)) //锟斤拷锟捷匡拷CRC锟斤拷锟斤拷 + { + SDIO->ICR|=1<<1; //锟斤拷锟斤拷锟斤拷志 + return SD_DATA_CRC_FAIL; + }else if(SDIO->STA&(1<<5)) //锟斤拷锟斤拷fifo锟斤拷锟斤拷锟斤拷锟 + { + SDIO->ICR|=1<<5; //锟斤拷锟斤拷锟斤拷志 + return SD_RX_OVERRUN; + }else if(SDIO->STA&(1<<9)) //锟斤拷锟斤拷锟斤拷始位锟斤拷锟斤拷 + { + SDIO->ICR|=1<<9; //锟斤拷锟斤拷锟斤拷志 + return SD_START_BIT_ERR; + } + while(SDIO->STA&(1<<21)) //FIFO锟斤拷锟斤拷,锟斤拷锟斤拷锟节匡拷锟斤拷锟斤拷锟斤拷 + { + *tempbuff=SDIO->FIFO; //循锟斤拷锟斤拷取锟斤拷锟斤拷 + tempbuff++; + } + if(SDIO->STA&(1<<8)) //锟斤拷锟秸斤拷锟斤拷 + { + if((SDIO_STD_CAPACITY_SD_CARD_V1_1==CardType)||(SDIO_STD_CAPACITY_SD_CARD_V2_0==CardType)||(SDIO_HIGH_CAPACITY_SD_CARD==CardType)) + { + SDIO_Send_Cmd(SD_CMD_STOP_TRANSMISSION,1,0); //锟斤拷锟斤拷CMD12+锟斤拷锟斤拷锟斤拷锟斤拷 + errorstatus=CmdResp1Error(SD_CMD_STOP_TRANSMISSION);//锟饺达拷R1锟斤拷应 + if(errorstatus!=SD_OK)return errorstatus; + } + } + INTX_ENABLE();//锟斤拷锟斤拷锟斤拷锟叫讹拷 + SDIO->ICR=0X5FF; //锟斤拷锟斤拷锟斤拷斜锟斤拷 + }else if(DeviceMode==SD_DMA_MODE) + { + SD_DMA_Config((u32*)buf,nblks*blksize,0); + TransferError=SD_OK; + StopCondition=1; //锟斤拷锟斤拷,锟斤拷要锟斤拷锟斤拷停止锟斤拷锟斤拷指锟斤拷 + TransferEnd=0; //锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟轿伙拷锟斤拷锟斤拷卸戏锟斤拷锟斤拷锟1 + SDIO->MASK|=(1<<1)|(1<<3)|(1<<8)|(1<<5)|(1<<9); //锟斤拷锟斤拷锟斤拷要锟斤拷锟叫讹拷 + SDIO->DCTRL|=1<<3; //SDIO DMA使锟斤拷 + while(((DMA2->ISR&0X2000)==RESET)&&timeout)timeout--;//锟饺达拷锟斤拷锟斤拷锟斤拷锟 + if(timeout==0)return SD_DATA_TIMEOUT;//锟斤拷时 + while((TransferEnd==0)&&(TransferError==SD_OK)); + if(TransferError!=SD_OK)errorstatus=TransferError; + } + } + return errorstatus; +} +//SD锟斤拷写1锟斤拷锟斤拷 +//buf:锟斤拷锟捷伙拷锟斤拷锟斤拷 +//addr:写锟斤拷址 +//blksize:锟斤拷锟叫 +//锟斤拷锟斤拷值:锟斤拷锟斤拷状态 +SD_Error SD_WriteBlock(u8 *buf,long long addr, u16 blksize) +{ + SD_Error errorstatus = SD_OK; + u8 power=0,cardstate=0; + u32 timeout=0,bytestransferred=0; + u32 cardstatus=0,count=0,restwords=0; + u32 tlen=blksize; //锟杰筹拷锟斤拷(锟街斤拷) + u32*tempbuff=(u32*)buf; + if(buf==NULL)return SD_INVALID_PARAMETER;//锟斤拷锟斤拷锟斤拷锟斤拷 + SDIO->DCTRL=0x0; //锟斤拷锟捷匡拷锟狡寄达拷锟斤拷锟斤拷锟斤拷(锟斤拷DMA) + SDIO_Send_Data_Cfg(SD_DATATIMEOUT,0,0,0); //锟斤拷锟紻PSM状态锟斤拷锟斤拷锟斤拷 + if(SDIO->RESP1&SD_CARD_LOCKED)return SD_LOCK_UNLOCK_FAILED;//锟斤拷锟斤拷锟斤拷 + if(CardType==SDIO_HIGH_CAPACITY_SD_CARD) //锟斤拷锟斤拷锟斤拷锟斤拷 + { + blksize=512; + addr>>=9; + } + if((blksize>0)&&(blksize<=2048)&&((blksize&(blksize-1))==0)) + { + power=convert_from_bytes_to_power_of_two(blksize); + SDIO_Send_Cmd(SD_CMD_SET_BLOCKLEN,1,blksize); //锟斤拷锟斤拷CMD16+锟斤拷锟斤拷锟斤拷锟捷筹拷锟斤拷为blksize,锟斤拷锟斤拷应 + errorstatus=CmdResp1Error(SD_CMD_SET_BLOCKLEN); //锟饺达拷R1锟斤拷应 + if(errorstatus!=SD_OK)return errorstatus; //锟斤拷应锟斤拷锟斤拷 + }else return SD_INVALID_PARAMETER; + SDIO_Send_Cmd(SD_CMD_SEND_STATUS,1,(u32)RCA<<16); //锟斤拷锟斤拷CMD13,锟斤拷询锟斤拷锟斤拷状态,锟斤拷锟斤拷应 + errorstatus=CmdResp1Error(SD_CMD_SEND_STATUS); //锟饺达拷R1锟斤拷应 + if(errorstatus!=SD_OK)return errorstatus; + cardstatus=SDIO->RESP1; + timeout=SD_DATATIMEOUT; + while(((cardstatus&0x00000100)==0)&&(timeout>0)) //锟斤拷锟絉EADY_FOR_DATA位锟角凤拷锟斤拷位 + { + timeout--; + SDIO_Send_Cmd(SD_CMD_SEND_STATUS,1,(u32)RCA<<16);//锟斤拷锟斤拷CMD13,锟斤拷询锟斤拷锟斤拷状态,锟斤拷锟斤拷应 + errorstatus=CmdResp1Error(SD_CMD_SEND_STATUS); //锟饺达拷R1锟斤拷应 + if(errorstatus!=SD_OK)return errorstatus; + cardstatus=SDIO->RESP1; + } + if(timeout==0)return SD_ERROR; + SDIO_Send_Cmd(SD_CMD_WRITE_SINGLE_BLOCK,1,addr); //锟斤拷锟斤拷CMD24,写锟斤拷锟斤拷指锟斤拷,锟斤拷锟斤拷应 + errorstatus=CmdResp1Error(SD_CMD_WRITE_SINGLE_BLOCK);//锟饺达拷R1锟斤拷应 + if(errorstatus!=SD_OK)return errorstatus; + StopCondition=0; //锟斤拷锟斤拷写,锟斤拷锟斤拷要锟斤拷锟斤拷停止锟斤拷锟斤拷指锟斤拷 + SDIO_Send_Data_Cfg(SD_DATATIMEOUT,blksize,power,0); //blksize, 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 + timeout=SDIO_DATATIMEOUT; + if (DeviceMode == SD_POLLING_MODE) + { + INTX_DISABLE();//锟截憋拷锟斤拷锟叫讹拷(POLLING模式,锟较斤拷锟叫断达拷锟絊DIO锟斤拷写锟斤拷锟斤拷!!!) + while(!(SDIO->STA&((1<<10)|(1<<4)|(1<<1)|(1<<3)|(1<<9))))//锟斤拷锟捷块发锟酵成癸拷/锟斤拷锟斤拷/CRC/锟斤拷时/锟斤拷始位锟斤拷锟斤拷 + { + if(SDIO->STA&(1<<14)) //锟斤拷锟斤拷锟斤拷锟斤拷锟,锟斤拷示锟斤拷锟劫达拷锟斤拷8锟斤拷锟斤拷 + { + if((tlen-bytestransferred)FIFO=*tempbuff; + } + }else + { + for(count=0;count<8;count++) + { + SDIO->FIFO=*(tempbuff+count); + } + tempbuff+=8; + bytestransferred+=32; + } + timeout=0X3FFFFFFF; //写锟斤拷锟斤拷锟斤拷锟绞憋拷锟 + }else + { + if(timeout==0)return SD_DATA_TIMEOUT; + timeout--; + } + } + if(SDIO->STA&(1<<3)) //锟斤拷锟捷筹拷时锟斤拷锟斤拷 + { + SDIO->ICR|=1<<3; //锟斤拷锟斤拷锟斤拷志 + return SD_DATA_TIMEOUT; + }else if(SDIO->STA&(1<<1)) //锟斤拷锟捷匡拷CRC锟斤拷锟斤拷 + { + SDIO->ICR|=1<<1; //锟斤拷锟斤拷锟斤拷志 + return SD_DATA_CRC_FAIL; + }else if(SDIO->STA&(1<<4)) //锟斤拷锟斤拷fifo锟斤拷锟斤拷锟斤拷锟 + { + SDIO->ICR|=1<<4; //锟斤拷锟斤拷锟斤拷志 + return SD_TX_UNDERRUN; + }else if(SDIO->STA&(1<<9)) //锟斤拷锟斤拷锟斤拷始位锟斤拷锟斤拷 + { + SDIO->ICR|=1<<9; //锟斤拷锟斤拷锟斤拷志 + return SD_START_BIT_ERR; + } + INTX_ENABLE();//锟斤拷锟斤拷锟斤拷锟叫讹拷 + SDIO->ICR=0X5FF; //锟斤拷锟斤拷锟斤拷斜锟斤拷 + }else if(DeviceMode==SD_DMA_MODE) + { + SD_DMA_Config((u32*)buf,blksize,1);//SDIO DMA锟斤拷锟斤拷 + TransferError=SD_OK; + StopCondition=0; //锟斤拷锟斤拷写,锟斤拷锟斤拷要锟斤拷锟斤拷停止锟斤拷锟斤拷指锟斤拷 + TransferEnd=0; //锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟轿伙拷锟斤拷锟斤拷卸戏锟斤拷锟斤拷锟1 + SDIO->MASK|=(1<<1)|(1<<3)|(1<<8)|(1<<4)|(1<<9); //锟斤拷锟矫诧拷锟斤拷锟斤拷锟捷斤拷锟斤拷锟斤拷锟斤拷卸锟 + SDIO->DCTRL|=1<<3; //SDIO DMA使锟斤拷. + while(((DMA2->ISR&0X2000)==RESET)&&timeout)timeout--;//锟饺达拷锟斤拷锟斤拷锟斤拷锟 + if(timeout==0) + { + SD_Init(); //锟斤拷锟铰筹拷始锟斤拷SD锟斤拷,锟斤拷锟皆斤拷锟叫达拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟 + return SD_DATA_TIMEOUT; //锟斤拷时 + } + timeout=SDIO_DATATIMEOUT; + while((TransferEnd==0)&&(TransferError==SD_OK)&&timeout)timeout--; + if(timeout==0)return SD_DATA_TIMEOUT; //锟斤拷时 + if(TransferError!=SD_OK)return TransferError; + } + SDIO->ICR=0X5FF; //锟斤拷锟斤拷锟斤拷斜锟斤拷 + errorstatus=IsCardProgramming(&cardstate); + while((errorstatus==SD_OK)&&((cardstate==SD_CARD_PROGRAMMING)||(cardstate==SD_CARD_RECEIVING))) + { + errorstatus=IsCardProgramming(&cardstate); + } + return errorstatus; +} +//SD锟斤拷写锟斤拷锟斤拷锟 +//buf:锟斤拷锟捷伙拷锟斤拷锟斤拷 +//addr:写锟斤拷址 +//blksize:锟斤拷锟叫 +//nblks:要写锟斤拷目锟斤拷锟 +//锟斤拷锟斤拷值:锟斤拷锟斤拷状态 +SD_Error SD_WriteMultiBlocks(u8 *buf,long long addr,u16 blksize,u32 nblks) +{ + SD_Error errorstatus = SD_OK; + u8 power = 0, cardstate = 0; + u32 timeout=0,bytestransferred=0; + u32 count = 0, restwords = 0; + u32 tlen=nblks*blksize; //锟杰筹拷锟斤拷(锟街斤拷) + u32 *tempbuff = (u32*)buf; + if(buf==NULL)return SD_INVALID_PARAMETER; //锟斤拷锟斤拷锟斤拷锟斤拷 + SDIO->DCTRL=0x0; //锟斤拷锟捷匡拷锟狡寄达拷锟斤拷锟斤拷锟斤拷(锟斤拷DMA) + SDIO_Send_Data_Cfg(SD_DATATIMEOUT,0,0,0); //锟斤拷锟紻PSM状态锟斤拷锟斤拷锟斤拷 + if(SDIO->RESP1&SD_CARD_LOCKED)return SD_LOCK_UNLOCK_FAILED;//锟斤拷锟斤拷锟斤拷 + if(CardType==SDIO_HIGH_CAPACITY_SD_CARD)//锟斤拷锟斤拷锟斤拷锟斤拷 + { + blksize=512; + addr>>=9; + } + if((blksize>0)&&(blksize<=2048)&&((blksize&(blksize-1))==0)) + { + power=convert_from_bytes_to_power_of_two(blksize); + SDIO_Send_Cmd(SD_CMD_SET_BLOCKLEN,1,blksize); //锟斤拷锟斤拷CMD16+锟斤拷锟斤拷锟斤拷锟捷筹拷锟斤拷为blksize,锟斤拷锟斤拷应 + errorstatus=CmdResp1Error(SD_CMD_SET_BLOCKLEN); //锟饺达拷R1锟斤拷应 + if(errorstatus!=SD_OK)return errorstatus; //锟斤拷应锟斤拷锟斤拷 + }else return SD_INVALID_PARAMETER; + if(nblks>1) + { + if(nblks*blksize>SD_MAX_DATA_LENGTH)return SD_INVALID_PARAMETER; + if((SDIO_STD_CAPACITY_SD_CARD_V1_1==CardType)||(SDIO_STD_CAPACITY_SD_CARD_V2_0==CardType)||(SDIO_HIGH_CAPACITY_SD_CARD==CardType)) + { + //锟斤拷锟斤拷锟斤拷锟 + SDIO_Send_Cmd(SD_CMD_APP_CMD,1,(u32)RCA<<16); //锟斤拷锟斤拷ACMD55,锟斤拷锟斤拷应 + errorstatus=CmdResp1Error(SD_CMD_APP_CMD); //锟饺达拷R1锟斤拷应 + if(errorstatus!=SD_OK)return errorstatus; + SDIO_Send_Cmd(SD_CMD_SET_BLOCK_COUNT,1,nblks); //锟斤拷锟斤拷CMD23,锟斤拷锟矫匡拷锟斤拷锟斤拷,锟斤拷锟斤拷应 + errorstatus=CmdResp1Error(SD_CMD_SET_BLOCK_COUNT);//锟饺达拷R1锟斤拷应 + if(errorstatus!=SD_OK)return errorstatus; + } + SDIO_Send_Cmd(SD_CMD_WRITE_MULT_BLOCK,1,addr); //锟斤拷锟斤拷CMD25,锟斤拷锟叫粗革拷锟,锟斤拷锟斤拷应 + errorstatus=CmdResp1Error(SD_CMD_WRITE_MULT_BLOCK); //锟饺达拷R1锟斤拷应 + if(errorstatus!=SD_OK)return errorstatus; + SDIO_Send_Data_Cfg(SD_DATATIMEOUT,nblks*blksize,power,0);//blksize, 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 + if(DeviceMode==SD_POLLING_MODE) + { + timeout=SDIO_DATATIMEOUT; + INTX_DISABLE();//锟截憋拷锟斤拷锟叫讹拷(POLLING模式,锟较斤拷锟叫断达拷锟絊DIO锟斤拷写锟斤拷锟斤拷!!!) + while(!(SDIO->STA&((1<<4)|(1<<1)|(1<<8)|(1<<3)|(1<<9))))//锟斤拷锟斤拷/CRC/锟斤拷锟捷斤拷锟斤拷/锟斤拷时/锟斤拷始位锟斤拷锟斤拷 + { + if(SDIO->STA&(1<<14)) //锟斤拷锟斤拷锟斤拷锟斤拷锟,锟斤拷示锟斤拷锟劫达拷锟斤拷8锟斤拷(32锟街斤拷) + { + if((tlen-bytestransferred)FIFO=*tempbuff; + } + }else //锟斤拷锟斤拷锟斤拷锟斤拷锟,锟斤拷锟皆凤拷锟斤拷锟斤拷锟斤拷8锟斤拷(32锟街斤拷)锟斤拷锟斤拷 + { + for(count=0;countFIFO=*(tempbuff+count); + } + tempbuff+=SD_HALFFIFO; + bytestransferred+=SD_HALFFIFOBYTES; + } + timeout=0X3FFFFFFF; //写锟斤拷锟斤拷锟斤拷锟绞憋拷锟 + }else + { + if(timeout==0)return SD_DATA_TIMEOUT; + timeout--; + } + } + if(SDIO->STA&(1<<3)) //锟斤拷锟捷筹拷时锟斤拷锟斤拷 + { + SDIO->ICR|=1<<3; //锟斤拷锟斤拷锟斤拷志 + return SD_DATA_TIMEOUT; + }else if(SDIO->STA&(1<<1)) //锟斤拷锟捷匡拷CRC锟斤拷锟斤拷 + { + SDIO->ICR|=1<<1; //锟斤拷锟斤拷锟斤拷志 + return SD_DATA_CRC_FAIL; + }else if(SDIO->STA&(1<<4)) //锟斤拷锟斤拷fifo锟斤拷锟斤拷锟斤拷锟 + { + SDIO->ICR|=1<<4; //锟斤拷锟斤拷锟斤拷志 + return SD_TX_UNDERRUN; + }else if(SDIO->STA&(1<<9)) //锟斤拷锟斤拷锟斤拷始位锟斤拷锟斤拷 + { + SDIO->ICR|=1<<9; //锟斤拷锟斤拷锟斤拷志 + return SD_START_BIT_ERR; + } + if(SDIO->STA&(1<<8)) //锟斤拷锟酵斤拷锟斤拷 + { + if((SDIO_STD_CAPACITY_SD_CARD_V1_1==CardType)||(SDIO_STD_CAPACITY_SD_CARD_V2_0==CardType)||(SDIO_HIGH_CAPACITY_SD_CARD==CardType)) + { + SDIO_Send_Cmd(SD_CMD_STOP_TRANSMISSION,1,0); //锟斤拷锟斤拷CMD12+锟斤拷锟斤拷锟斤拷锟斤拷 + errorstatus=CmdResp1Error(SD_CMD_STOP_TRANSMISSION);//锟饺达拷R1锟斤拷应 + if(errorstatus!=SD_OK)return errorstatus; + } + } + INTX_ENABLE();//锟斤拷锟斤拷锟斤拷锟叫讹拷 + SDIO->ICR=0X5FF; //锟斤拷锟斤拷锟斤拷斜锟斤拷 + }else if(DeviceMode==SD_DMA_MODE) + { + SD_DMA_Config((u32*)buf,nblks*blksize,1);//SDIO DMA锟斤拷锟斤拷 + TransferError=SD_OK; + StopCondition=1; //锟斤拷锟叫,锟斤拷要锟斤拷锟斤拷停止锟斤拷锟斤拷指锟斤拷 + TransferEnd=0; //锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟轿伙拷锟斤拷锟斤拷卸戏锟斤拷锟斤拷锟1 + SDIO->MASK|=(1<<1)|(1<<3)|(1<<8)|(1<<4)|(1<<9); //锟斤拷锟矫诧拷锟斤拷锟斤拷锟捷斤拷锟斤拷锟斤拷锟斤拷卸锟 + SDIO->DCTRL|=1<<3; //SDIO DMA使锟斤拷. + timeout=SDIO_DATATIMEOUT; + while(((DMA2->ISR&0X2000)==RESET)&&timeout)timeout--;//锟饺达拷锟斤拷锟斤拷锟斤拷锟 + if(timeout==0) //锟斤拷时 + { + SD_Init(); //锟斤拷锟铰筹拷始锟斤拷SD锟斤拷,锟斤拷锟皆斤拷锟叫达拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟 + return SD_DATA_TIMEOUT; //锟斤拷时 + } + timeout=SDIO_DATATIMEOUT; + while((TransferEnd==0)&&(TransferError==SD_OK)&&timeout)timeout--; + if(timeout==0)return SD_DATA_TIMEOUT; //锟斤拷时 + if(TransferError!=SD_OK)return TransferError; + } + } + SDIO->ICR=0X5FF; //锟斤拷锟斤拷锟斤拷斜锟斤拷 + errorstatus=IsCardProgramming(&cardstate); + while((errorstatus==SD_OK)&&((cardstate==SD_CARD_PROGRAMMING)||(cardstate==SD_CARD_RECEIVING))) + { + errorstatus=IsCardProgramming(&cardstate); + } + return errorstatus; +} +//SDIO锟叫断凤拷锟斤拷锟斤拷 +void SDIO_IRQHandler(void) +{ + SD_ProcessIRQSrc();//锟斤拷锟斤拷锟斤拷锟斤拷SDIO锟斤拷锟斤拷卸锟 +} +//SDIO锟叫断达拷锟斤拷锟斤拷锟斤拷 +//锟斤拷锟斤拷SDIO锟斤拷锟斤拷锟斤拷锟斤拷械母锟斤拷锟斤拷卸锟斤拷锟斤拷锟 +//锟斤拷锟斤拷值:锟斤拷锟斤拷锟斤拷锟 +SD_Error SD_ProcessIRQSrc(void) +{ + if(SDIO->STA&(1<<8))//锟斤拷锟斤拷锟斤拷锟斤拷卸锟 + { + if (StopCondition==1) + { + SDIO_Send_Cmd(SD_CMD_STOP_TRANSMISSION,1,0); //锟斤拷锟斤拷CMD12,锟斤拷锟斤拷锟斤拷锟斤拷 + TransferError=CmdResp1Error(SD_CMD_STOP_TRANSMISSION); + }else TransferError = SD_OK; + SDIO->ICR|=1<<8;//锟斤拷锟斤拷锟斤拷锟叫断憋拷锟 + SDIO->MASK&=~((1<<1)|(1<<3)|(1<<8)|(1<<14)|(1<<15)|(1<<4)|(1<<5)|(1<<9));//锟截憋拷锟斤拷锟斤拷卸锟 + TransferEnd = 1; + return(TransferError); + } + if(SDIO->STA&(1<<1))//锟斤拷锟斤拷CRC锟斤拷锟斤拷 + { + SDIO->ICR|=1<<1;//锟斤拷锟斤拷卸媳锟斤拷 + SDIO->MASK&=~((1<<1)|(1<<3)|(1<<8)|(1<<14)|(1<<15)|(1<<4)|(1<<5)|(1<<9));//锟截憋拷锟斤拷锟斤拷卸锟 + TransferError = SD_DATA_CRC_FAIL; + return(SD_DATA_CRC_FAIL); + } + if(SDIO->STA&(1<<3))//锟斤拷锟捷筹拷时锟斤拷锟斤拷 + { + SDIO->ICR|=1<<3;//锟斤拷锟斤拷卸媳锟斤拷 + SDIO->MASK&=~((1<<1)|(1<<3)|(1<<8)|(1<<14)|(1<<15)|(1<<4)|(1<<5)|(1<<9));//锟截憋拷锟斤拷锟斤拷卸锟 + TransferError = SD_DATA_TIMEOUT; + return(SD_DATA_TIMEOUT); + } + if(SDIO->STA&(1<<5))//FIFO锟斤拷锟斤拷锟斤拷锟 + { + SDIO->ICR|=1<<5;//锟斤拷锟斤拷卸媳锟斤拷 + SDIO->MASK&=~((1<<1)|(1<<3)|(1<<8)|(1<<14)|(1<<15)|(1<<4)|(1<<5)|(1<<9));//锟截憋拷锟斤拷锟斤拷卸锟 + TransferError = SD_RX_OVERRUN; + return(SD_RX_OVERRUN); + } + if(SDIO->STA&(1<<4))//FIFO锟斤拷锟斤拷锟斤拷锟 + { + SDIO->ICR|=1<<4;//锟斤拷锟斤拷卸媳锟斤拷 + SDIO->MASK&=~((1<<1)|(1<<3)|(1<<8)|(1<<14)|(1<<15)|(1<<4)|(1<<5)|(1<<9));//锟截憋拷锟斤拷锟斤拷卸锟 + TransferError = SD_TX_UNDERRUN; + return(SD_TX_UNDERRUN); + } + if(SDIO->STA&(1<<9))//锟斤拷始位锟斤拷锟斤拷 + { + SDIO->ICR|=1<<9;//锟斤拷锟斤拷卸媳锟斤拷 + SDIO->MASK&=~((1<<1)|(1<<3)|(1<<8)|(1<<14)|(1<<15)|(1<<4)|(1<<5)|(1<<9));//锟截憋拷锟斤拷锟斤拷卸锟 + TransferError = SD_START_BIT_ERR; + return(SD_START_BIT_ERR); + } + return(SD_OK); +} + +//锟斤拷锟紺MD0锟斤拷执锟斤拷状态 +//锟斤拷锟斤拷值:sd锟斤拷锟斤拷锟斤拷锟斤拷 +SD_Error CmdError(void) +{ + SD_Error errorstatus = SD_OK; + u32 timeout=SDIO_CMD0TIMEOUT; + while(timeout--) + { + if(SDIO->STA&(1<<7))break; //锟斤拷锟斤拷锟窖凤拷锟斤拷(锟斤拷锟斤拷锟斤拷应) + } + if(timeout==0)return SD_CMD_RSP_TIMEOUT; + SDIO->ICR=0X5FF; //锟斤拷锟斤拷锟斤拷 + return errorstatus; +} +//锟斤拷锟絉7锟斤拷应锟侥达拷锟斤拷状态 +//锟斤拷锟斤拷值:sd锟斤拷锟斤拷锟斤拷锟斤拷 +SD_Error CmdResp7Error(void) +{ + SD_Error errorstatus=SD_OK; + u32 status; + u32 timeout=SDIO_CMD0TIMEOUT; + while(timeout--) + { + status=SDIO->STA; + if(status&((1<<0)|(1<<2)|(1<<6)))break;//CRC锟斤拷锟斤拷/锟斤拷锟斤拷锟斤拷应锟斤拷时/锟窖撅拷锟秸碉拷锟斤拷应(CRC校锟斤拷晒锟) + } + if((timeout==0)||(status&(1<<2))) //锟斤拷应锟斤拷时 + { + errorstatus=SD_CMD_RSP_TIMEOUT; //锟斤拷前锟斤拷锟斤拷锟斤拷2.0锟斤拷锟捷匡拷,锟斤拷锟竭诧拷支锟斤拷锟借定锟侥碉拷压锟斤拷围 + SDIO->ICR|=1<<2; //锟斤拷锟斤拷锟斤拷锟斤拷锟接︼拷锟绞憋拷锟街 + return errorstatus; + } + if(status&1<<6) //锟缴癸拷锟斤拷锟秸碉拷锟斤拷应 + { + errorstatus=SD_OK; + SDIO->ICR|=1<<6; //锟斤拷锟斤拷锟接︼拷锟街 + } + return errorstatus; +} +//锟斤拷锟絉1锟斤拷应锟侥达拷锟斤拷状态 +//cmd:锟斤拷前锟斤拷锟斤拷 +//锟斤拷锟斤拷值:sd锟斤拷锟斤拷锟斤拷锟斤拷 +SD_Error CmdResp1Error(u8 cmd) +{ + u32 status; + while(1) + { + status=SDIO->STA; + if(status&((1<<0)|(1<<2)|(1<<6)))break;//CRC锟斤拷锟斤拷/锟斤拷锟斤拷锟斤拷应锟斤拷时/锟窖撅拷锟秸碉拷锟斤拷应(CRC校锟斤拷晒锟) + } + if(status&(1<<2)) //锟斤拷应锟斤拷时 + { + SDIO->ICR=1<<2; //锟斤拷锟斤拷锟斤拷锟斤拷锟接︼拷锟绞憋拷锟街 + return SD_CMD_RSP_TIMEOUT; + } + if(status&(1<<0)) //CRC锟斤拷锟斤拷 + { + SDIO->ICR=1<<0; //锟斤拷锟斤拷锟街 + return SD_CMD_CRC_FAIL; + } + if(SDIO->RESPCMD!=cmd)return SD_ILLEGAL_CMD;//锟斤拷锟筋不匹锟斤拷 + SDIO->ICR=0X5FF; //锟斤拷锟斤拷锟斤拷 + return (SD_Error)(SDIO->RESP1&SD_OCR_ERRORBITS);//锟斤拷锟截匡拷锟斤拷应 +} +//锟斤拷锟絉3锟斤拷应锟侥达拷锟斤拷状态 +//锟斤拷锟斤拷值:锟斤拷锟斤拷状态 +SD_Error CmdResp3Error(void) +{ + u32 status; + while(1) + { + status=SDIO->STA; + if(status&((1<<0)|(1<<2)|(1<<6)))break;//CRC锟斤拷锟斤拷/锟斤拷锟斤拷锟斤拷应锟斤拷时/锟窖撅拷锟秸碉拷锟斤拷应(CRC校锟斤拷晒锟) + } + if(status&(1<<2)) //锟斤拷应锟斤拷时 + { + SDIO->ICR|=1<<2; //锟斤拷锟斤拷锟斤拷锟斤拷锟接︼拷锟绞憋拷锟街 + return SD_CMD_RSP_TIMEOUT; + } + SDIO->ICR=0X5FF; //锟斤拷锟斤拷锟斤拷 + return SD_OK; +} +//锟斤拷锟絉2锟斤拷应锟侥达拷锟斤拷状态 +//锟斤拷锟斤拷值:锟斤拷锟斤拷状态 +SD_Error CmdResp2Error(void) +{ + SD_Error errorstatus=SD_OK; + u32 status; + u32 timeout=SDIO_CMD0TIMEOUT; + while(timeout--) + { + status=SDIO->STA; + if(status&((1<<0)|(1<<2)|(1<<6)))break;//CRC锟斤拷锟斤拷/锟斤拷锟斤拷锟斤拷应锟斤拷时/锟窖撅拷锟秸碉拷锟斤拷应(CRC校锟斤拷晒锟) + } + if((timeout==0)||(status&(1<<2))) //锟斤拷应锟斤拷时 + { + errorstatus=SD_CMD_RSP_TIMEOUT; + SDIO->ICR|=1<<2; //锟斤拷锟斤拷锟斤拷锟斤拷锟接︼拷锟绞憋拷锟街 + return errorstatus; + } + if(status&1<<0) //CRC锟斤拷锟斤拷 + { + errorstatus=SD_CMD_CRC_FAIL; + SDIO->ICR|=1<<0; //锟斤拷锟斤拷锟接︼拷锟街 + } + SDIO->ICR=0X5FF; //锟斤拷锟斤拷锟斤拷 + return errorstatus; +} +//锟斤拷锟絉6锟斤拷应锟侥达拷锟斤拷状态 +//cmd:之前锟斤拷锟酵碉拷锟斤拷锟斤拷 +//prca:锟斤拷锟斤拷锟截碉拷RCA锟斤拷址 +//锟斤拷锟斤拷值:锟斤拷锟斤拷状态 +SD_Error CmdResp6Error(u8 cmd,u16*prca) +{ + SD_Error errorstatus=SD_OK; + u32 status; + u32 rspr1; + while(1) + { + status=SDIO->STA; + if(status&((1<<0)|(1<<2)|(1<<6)))break;//CRC锟斤拷锟斤拷/锟斤拷锟斤拷锟斤拷应锟斤拷时/锟窖撅拷锟秸碉拷锟斤拷应(CRC校锟斤拷晒锟) + } + if(status&(1<<2)) //锟斤拷应锟斤拷时 + { + SDIO->ICR|=1<<2; //锟斤拷锟斤拷锟斤拷锟斤拷锟接︼拷锟绞憋拷锟街 + return SD_CMD_RSP_TIMEOUT; + } + if(status&1<<0) //CRC锟斤拷锟斤拷 + { + SDIO->ICR|=1<<0; //锟斤拷锟斤拷锟接︼拷锟街 + return SD_CMD_CRC_FAIL; + } + if(SDIO->RESPCMD!=cmd) //锟叫讹拷锟角凤拷锟斤拷应cmd锟斤拷锟斤拷 + { + return SD_ILLEGAL_CMD; + } + SDIO->ICR=0X5FF; //锟斤拷锟斤拷锟斤拷斜锟斤拷 + rspr1=SDIO->RESP1; //锟矫碉拷锟斤拷应 + if(SD_ALLZERO==(rspr1&(SD_R6_GENERAL_UNKNOWN_ERROR|SD_R6_ILLEGAL_CMD|SD_R6_COM_CRC_FAILED))) + { + *prca=(u16)(rspr1>>16); //锟斤拷锟斤拷16位锟矫碉拷,rca + return errorstatus; + } + if(rspr1&SD_R6_GENERAL_UNKNOWN_ERROR)return SD_GENERAL_UNKNOWN_ERROR; + if(rspr1&SD_R6_ILLEGAL_CMD)return SD_ILLEGAL_CMD; + if(rspr1&SD_R6_COM_CRC_FAILED)return SD_COM_CRC_FAILED; + return errorstatus; +} + +//SDIO使锟杰匡拷锟斤拷锟斤拷模式 +//enx:0,锟斤拷使锟斤拷;1,使锟斤拷; +//锟斤拷锟斤拷值:锟斤拷锟斤拷状态 +SD_Error SDEnWideBus(u8 enx) +{ + SD_Error errorstatus = SD_OK; + u32 scr[2]={0,0}; + u8 arg=0X00; + if(enx)arg=0X02; + else arg=0X00; + if(SDIO->RESP1&SD_CARD_LOCKED)return SD_LOCK_UNLOCK_FAILED;//SD锟斤拷锟斤拷锟斤拷LOCKED状态 + errorstatus=FindSCR(RCA,scr); //锟矫碉拷SCR锟侥达拷锟斤拷锟斤拷锟斤拷 + if(errorstatus!=SD_OK)return errorstatus; + if((scr[1]&SD_WIDE_BUS_SUPPORT)!=SD_ALLZERO) //支锟街匡拷锟斤拷锟斤拷 + { + SDIO_Send_Cmd(SD_CMD_APP_CMD,1,(u32)RCA<<16); //锟斤拷锟斤拷CMD55+RCA,锟斤拷锟斤拷应 + errorstatus=CmdResp1Error(SD_CMD_APP_CMD); + if(errorstatus!=SD_OK)return errorstatus; + SDIO_Send_Cmd(SD_CMD_APP_SD_SET_BUSWIDTH,1,arg);//锟斤拷锟斤拷ACMD6,锟斤拷锟斤拷应,锟斤拷锟斤拷:10,4位;00,1位. + errorstatus=CmdResp1Error(SD_CMD_APP_SD_SET_BUSWIDTH); + return errorstatus; + }else return SD_REQUEST_NOT_APPLICABLE; //锟斤拷支锟街匡拷锟斤拷锟斤拷锟斤拷锟斤拷 +} +//锟斤拷榭拷欠锟斤拷锟斤拷锟街达拷锟叫达拷锟斤拷锟 +//pstatus:锟斤拷前状态. +//锟斤拷锟斤拷值:锟斤拷锟斤拷锟斤拷锟 +SD_Error IsCardProgramming(u8 *pstatus) +{ + vu32 respR1 = 0, status = 0; + SDIO_Send_Cmd(SD_CMD_SEND_STATUS,1,(u32)RCA<<16); //锟斤拷锟斤拷CMD13 + status=SDIO->STA; + while(!(status&((1<<0)|(1<<6)|(1<<2))))status=SDIO->STA;//锟饺达拷锟斤拷锟斤拷锟斤拷锟 + if(status&(1<<0)) //CRC锟斤拷锟绞э拷锟 + { + SDIO->ICR|=1<<0; //锟斤拷锟斤拷锟斤拷锟斤拷锟 + return SD_CMD_CRC_FAIL; + } + if(status&(1<<2)) //锟斤拷锟筋超时 + { + SDIO->ICR|=1<<2; //锟斤拷锟斤拷锟斤拷锟斤拷锟 + return SD_CMD_RSP_TIMEOUT; + } + if(SDIO->RESPCMD!=SD_CMD_SEND_STATUS)return SD_ILLEGAL_CMD; + SDIO->ICR=0X5FF; //锟斤拷锟斤拷锟斤拷斜锟斤拷 + respR1=SDIO->RESP1; + *pstatus=(u8)((respR1>>9)&0x0000000F); + return SD_OK; +} +//锟斤拷取锟斤拷前锟斤拷状态 +//pcardstatus:锟斤拷状态 +//锟斤拷锟斤拷值:锟斤拷锟斤拷锟斤拷锟 +SD_Error SD_SendStatus(uint32_t *pcardstatus) +{ + SD_Error errorstatus = SD_OK; + if(pcardstatus==NULL) + { + errorstatus=SD_INVALID_PARAMETER; + return errorstatus; + } + SDIO_Send_Cmd(SD_CMD_SEND_STATUS,1,RCA<<16); //锟斤拷锟斤拷CMD13,锟斤拷锟斤拷应 + errorstatus=CmdResp1Error(SD_CMD_SEND_STATUS); //锟斤拷询锟斤拷应状态 + if(errorstatus!=SD_OK)return errorstatus; + *pcardstatus=SDIO->RESP1;//锟斤拷取锟斤拷应值 + return errorstatus; +} +//锟斤拷锟斤拷SD锟斤拷锟斤拷状态 +//锟斤拷锟斤拷值:SD锟斤拷状态 +SDCardState SD_GetState(void) +{ + u32 resp1=0; + if(SD_SendStatus(&resp1)!=SD_OK)return SD_CARD_ERROR; + else return (SDCardState)((resp1>>9) & 0x0F); +} +//锟斤拷锟斤拷SD锟斤拷锟斤拷SCR锟侥达拷锟斤拷值 +//rca:锟斤拷锟斤拷缘锟街 +//pscr:锟斤拷锟捷伙拷锟斤拷锟斤拷(锟芥储SCR锟斤拷锟斤拷) +//锟斤拷锟斤拷值:锟斤拷锟斤拷状态 +SD_Error FindSCR(u16 rca,u32 *pscr) +{ + u32 index = 0; + SD_Error errorstatus = SD_OK; + u32 tempscr[2]={0,0}; + SDIO_Send_Cmd(SD_CMD_SET_BLOCKLEN,1,8); //锟斤拷锟斤拷CMD16,锟斤拷锟斤拷应,锟斤拷锟斤拷Block Size为8锟街斤拷 + errorstatus=CmdResp1Error(SD_CMD_SET_BLOCKLEN); + if(errorstatus!=SD_OK)return errorstatus; + SDIO_Send_Cmd(SD_CMD_APP_CMD,1,(u32)rca<<16); //锟斤拷锟斤拷CMD55,锟斤拷锟斤拷应 + errorstatus=CmdResp1Error(SD_CMD_APP_CMD); + if(errorstatus!=SD_OK)return errorstatus; + SDIO_Send_Data_Cfg(SD_DATATIMEOUT,8,3,1); //8锟斤拷锟街节筹拷锟斤拷,block为8锟街斤拷,SD锟斤拷锟斤拷SDIO. + SDIO_Send_Cmd(SD_CMD_SD_APP_SEND_SCR,1,0); //锟斤拷锟斤拷ACMD51,锟斤拷锟斤拷应,锟斤拷锟斤拷为0 + errorstatus=CmdResp1Error(SD_CMD_SD_APP_SEND_SCR); + if(errorstatus!=SD_OK)return errorstatus; + while(!(SDIO->STA&(SDIO_FLAG_RXOVERR|SDIO_FLAG_DCRCFAIL|SDIO_FLAG_DTIMEOUT|SDIO_FLAG_DBCKEND|SDIO_FLAG_STBITERR))) + { + if(SDIO->STA&(1<<21))//锟斤拷锟斤拷FIFO锟斤拷锟捷匡拷锟斤拷 + { + *(tempscr+index)=SDIO->FIFO; //锟斤拷取FIFO锟斤拷锟斤拷 + index++; + if(index>=2)break; + } + } + if(SDIO->STA&(1<<3)) //锟斤拷锟斤拷锟斤拷锟捷筹拷时 + { + SDIO->ICR|=1<<3; //锟斤拷锟斤拷锟斤拷 + return SD_DATA_TIMEOUT; + } + else if(SDIO->STA&(1<<1)) //锟窖凤拷锟斤拷/锟斤拷锟秸碉拷锟斤拷锟捷匡拷CRC校锟斤拷锟斤拷锟 + { + SDIO->ICR|=1<<1; //锟斤拷锟斤拷锟斤拷 + return SD_DATA_CRC_FAIL; + } + else if(SDIO->STA&(1<<5)) //锟斤拷锟斤拷FIFO锟斤拷锟 + { + SDIO->ICR|=1<<5; //锟斤拷锟斤拷锟斤拷 + return SD_RX_OVERRUN; + } + else if(SDIO->STA&(1<<9)) //锟斤拷始位锟斤拷锟斤拷锟斤拷 + { + SDIO->ICR|=1<<9; //锟斤拷锟斤拷锟斤拷 + return SD_START_BIT_ERR; + } + SDIO->ICR=0X5FF; //锟斤拷锟斤拷锟斤拷 + //锟斤拷锟斤拷锟斤拷顺锟斤拷8位为锟斤拷位锟斤拷锟斤拷锟斤拷. + *(pscr+1)=((tempscr[0]&SD_0TO7BITS)<<24)|((tempscr[0]&SD_8TO15BITS)<<8)|((tempscr[0]&SD_16TO23BITS)>>8)|((tempscr[0]&SD_24TO31BITS)>>24); + *(pscr)=((tempscr[1]&SD_0TO7BITS)<<24)|((tempscr[1]&SD_8TO15BITS)<<8)|((tempscr[1]&SD_16TO23BITS)>>8)|((tempscr[1]&SD_24TO31BITS)>>24); + return errorstatus; +} +//锟矫碉拷NumberOfBytes锟斤拷2为锟阶碉拷指锟斤拷. +//NumberOfBytes:锟街斤拷锟斤拷. +//锟斤拷锟斤拷值:锟斤拷2为锟阶碉拷指锟斤拷值 +u8 convert_from_bytes_to_power_of_two(u16 NumberOfBytes) +{ + u8 count=0; + while(NumberOfBytes!=1) + { + NumberOfBytes>>=1; + count++; + } + return count; +} +//锟斤拷锟斤拷SDIO DMA +//mbuf:锟芥储锟斤拷锟斤拷址 +//bufsize:锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 +//dir:锟斤拷锟斤拷;1,锟芥储锟斤拷-->SDIO(写锟斤拷锟斤拷);0,SDIO-->锟芥储锟斤拷(锟斤拷锟斤拷锟斤拷); +void SD_DMA_Config(u32*mbuf,u32 bufsize,u8 dir) +{ + DMA2->IFCR|=(0XF<<12); //锟斤拷锟紻MA2通锟斤拷4锟侥革拷锟街憋拷锟 + DMA2_Channel4->CCR&=~(1<<0); //锟截憋拷DMA 通锟斤拷4 + DMA2_Channel4->CCR&=~(0X7FF<<4); //锟斤拷锟街帮拷锟斤拷锟斤拷锟,DIR,CIRC,PINC,MINC,PSIZE,MSIZE,PL,MEM2MEM + DMA2_Channel4->CCR|=dir<<4; //锟接存储锟斤拷锟斤拷 + DMA2_Channel4->CCR|=0<<5; //锟斤拷通模式 + DMA2_Channel4->CCR|=0<<6; //锟斤拷锟斤拷锟街凤拷锟斤拷锟斤拷锟侥J + DMA2_Channel4->CCR|=1<<7; //锟芥储锟斤拷锟斤拷锟斤拷模式 + DMA2_Channel4->CCR|=2<<8; //锟斤拷锟斤拷锟斤拷锟捷匡拷锟斤拷为32位 + DMA2_Channel4->CCR|=2<<10; //锟芥储锟斤拷锟斤拷锟捷匡拷锟斤拷32位 + DMA2_Channel4->CCR|=2<<12; //锟斤拷锟斤拷锟饺硷拷 + DMA2_Channel4->CNDTR=bufsize/4; //DMA2,锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 + DMA2_Channel4->CPAR=(u32)&SDIO->FIFO;//DMA2 锟斤拷锟斤拷锟街 + DMA2_Channel4->CMAR=(u32)mbuf; //DMA2,锟芥储锟斤拷锟斤拷址 + DMA2_Channel4->CCR|=1<<0; //锟斤拷锟斤拷DMA通锟斤拷 +} +//锟斤拷SD锟斤拷 +//buf:锟斤拷锟斤拷锟捷伙拷锟斤拷锟斤拷 +//sector:锟斤拷锟斤拷锟斤拷址 +//cnt:锟斤拷锟斤拷锟斤拷锟斤拷 +//锟斤拷锟斤拷值:锟斤拷锟斤拷状态;0,锟斤拷锟斤拷;锟斤拷锟斤拷,锟斤拷锟斤拷锟斤拷锟; +u8 SD_ReadDisk(u8*buf,u32 sector,u8 cnt) +{ + u8 sta=SD_OK; + long long lsector=sector; + u8 n; + lsector<<=9; + if((u32)buf%4!=0) + { + for(n=0;nPR = 1<<12; } + +#endif diff --git a/TFT/src/User/Hal/spi_slave.h b/TFT/src/User/Hal/stm32f10x/spi_slave.h similarity index 100% rename from TFT/src/User/Hal/spi_slave.h rename to TFT/src/User/Hal/stm32f10x/spi_slave.h diff --git a/TFT/src/User/Hal/stm32f10x/usart.c b/TFT/src/User/Hal/stm32f10x/usart.c new file mode 100644 index 0000000000..1eaeed0390 --- /dev/null +++ b/TFT/src/User/Hal/stm32f10x/usart.c @@ -0,0 +1,111 @@ +#include "usart.h" +#include "GPIO_Init.h" + +static USART_TypeDef *usart[_USART_CNT] = { + USART1, //TX--PA9 RX--PA10 + USART2, //TX--PA2 RX--PA3 + USART3, //TX--PB10 RX--PB11 + UART4, //TX--PC10 RX--PC11 + UART5}; //TX--PC12 RX--PD2 + +static const uint16_t uart_tx[_USART_CNT] = {PA9, PA2, PB10, PC10, PC12}; //TX +static const uint16_t uart_rx[_USART_CNT] = {PA10, PA3, PB11, PC11, PD2}; //RX + +void USART_GPIO_Init(uint8_t port) +{ + GPIO_InitSet(uart_tx[port], MGPIO_MODE_AF_PP, 0); + GPIO_InitSet(uart_rx[port], MGPIO_MODE_IPU, 0); +} + +void USART_GPIO_DeInit(uint8_t port) +{ + //set tx/rx to input + GPIO_InitSet(uart_tx[port], MGPIO_MODE_IPN, 0); + GPIO_InitSet(uart_rx[port], MGPIO_MODE_IPN, 0); +} + +void USART_Protocol_Init(uint8_t port,uint32_t baud) +{ + USART_InitTypeDef USART_InitStructure; + switch(port) + { + case _USART1: RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); break; + case _USART2: RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); break; + case _USART3: RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); break; + case _UART4: RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4, ENABLE); break; + case _UART5: RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART5, ENABLE); break; + } + USART_InitStructure.USART_BaudRate = baud; + USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; + USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; + USART_InitStructure.USART_Parity = USART_Parity_No; + USART_InitStructure.USART_StopBits = USART_StopBits_1; + USART_InitStructure.USART_WordLength = USART_WordLength_8b; + USART_Init(usart[port],&USART_InitStructure); + + USART_Cmd(usart[port],ENABLE); +} + +void USART_IRQ_Init(uint8_t port, uint16_t usart_it) +{ + uint32_t IRQ_Channel[_USART_CNT] = {USART1_IRQn, USART2_IRQn, USART3_IRQn, UART4_IRQn, UART5_IRQn}; + + NVIC_InitTypeDef NVIC_InitStructure; + NVIC_InitStructure.NVIC_IRQChannel = IRQ_Channel[port]; + NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; + NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; + NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; + NVIC_Init(&NVIC_InitStructure); + + USART_ITConfig(usart[port], usart_it, ENABLE); + USART_ClearITPendingBit(usart[port], usart_it); +} + +void USART_Config(uint8_t port, uint32_t baud, uint16_t usart_it) +{ + USART_Protocol_Init(port, baud); + USART_IRQ_Init(port, usart_it); + USART_GPIO_Init(port); //所有初始化完成后,再使能IO, 否则上电后会自动发送一个 0xFF +} + +void USART_DeConfig(uint8_t port) +{ + USART_GPIO_DeInit(port); + switch(port) + { + case _USART1: + RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, ENABLE); + RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, DISABLE); + break; + case _USART2: + RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); + RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, DISABLE); + break; + case _USART3: + RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); + RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, DISABLE); + break; + case _UART4: + RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4, ENABLE); + RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4, DISABLE); + break; + case _UART5: + RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART5, ENABLE); + RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART5, DISABLE); + break; + } +} + +void USART_Write(uint8_t port, uint8_t d) +{ + while((usart[port]->SR & USART_FLAG_TC) == (uint16_t)RESET); + usart[port]->DR = ((u16)d & (uint16_t)0x01FF); +} +void USART_Puts(uint8_t port, uint8_t *str) +{ + while (*str) + { + while((usart[port]->SR & USART_FLAG_TC) == (uint16_t)RESET); + usart[port]->DR = ((u16)*str++ & (uint16_t)0x01FF); + } +} diff --git a/TFT/src/User/Hal/usart.h b/TFT/src/User/Hal/stm32f10x/usart.h similarity index 100% rename from TFT/src/User/Hal/usart.h rename to TFT/src/User/Hal/stm32f10x/usart.h diff --git a/TFT/src/User/Hal/sw_spi.c b/TFT/src/User/Hal/sw_spi.c index 082452abfd..4171e45cb1 100644 --- a/TFT/src/User/Hal/sw_spi.c +++ b/TFT/src/User/Hal/sw_spi.c @@ -1,95 +1,33 @@ #include "sw_spi.h" +#include "GPIO_Init.h" -void GPIO_RCC_Set(GPIO_TypeDef *port) +void SW_SPI_Config(_SW_SPI *sw_spi, _SPI_MODE mode, u8 dataSize, +uint16_t cs, +uint16_t sck, +uint16_t miso, +uint16_t mosi) { - if(port == GPIOA) - { - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); - } - else if(port == GPIOB) - { - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); - } - else if(port == GPIOC) - { - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); - } - else if(port == GPIOD) - { - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); - } - else if(port == GPIOE) - { - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE); - } - else if(port == GPIOF) - { - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF, ENABLE); - } - else if(port == GPIOG) - { - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG, ENABLE); - } -} - - -void SW_SPI_Config(_SW_SPI *sw_spi, _SPI_MODE mode, -GPIO_TypeDef *cs_port, uint16_t cs_pin, -GPIO_TypeDef *sck_port, uint16_t sck_pin, -GPIO_TypeDef *miso_port, uint16_t miso_pin, -GPIO_TypeDef *mosi_port, uint16_t mosi_pin) -{ -// uint32_t RCC_Define[_SPI_CNT] = {RCC_APB2Periph_GPIOA, -// RCC_APB2Periph_GPIOB, -// RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB}; - GPIO_InitTypeDef GPIO_InitStructure; - - sw_spi->cs_port = cs_port; - sw_spi->cs_pin = cs_pin; - sw_spi->sck_port = sck_port; - sw_spi->sck_pin = sck_pin; - sw_spi->miso_port = miso_port; - sw_spi->miso_pin = miso_pin; - sw_spi->mosi_port = mosi_port; - sw_spi->mosi_pin = mosi_pin; - sw_spi->mode = mode; - - GPIO_RCC_Set(sw_spi->cs_port); - GPIO_RCC_Set(sw_spi->sck_port); - GPIO_RCC_Set(sw_spi->miso_port); - GPIO_RCC_Set(sw_spi->mosi_port); - - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; - - if(sw_spi->mode == _SPI_MODE0 || sw_spi->mode == _SPI_MODE1) - GPIO_ResetBits(sw_spi->sck_port, sw_spi->sck_pin); - else - GPIO_SetBits(sw_spi->sck_port, sw_spi->sck_pin); - GPIO_InitStructure.GPIO_Pin = sw_spi->sck_pin; //SCK - GPIO_Init(sw_spi->sck_port, &GPIO_InitStructure); - - GPIO_InitStructure.GPIO_Pin = sw_spi->mosi_pin; //MOSI - GPIO_Init(sw_spi->mosi_port, &GPIO_InitStructure); - GPIO_SetBits(sw_spi->mosi_port, sw_spi->mosi_pin); - - GPIO_InitStructure.GPIO_Pin = sw_spi->cs_pin; //CS - GPIO_Init(sw_spi->cs_port, &GPIO_InitStructure); - GPIO_SetBits(sw_spi->cs_port, sw_spi->cs_pin); + sw_spi->cs = cs; + sw_spi->sck = sck; + sw_spi->miso = miso; + sw_spi->mosi = mosi; + sw_spi->mode = mode; + sw_spi->dataSize = dataSize; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; - GPIO_InitStructure.GPIO_Pin = sw_spi->miso_pin; //MISO - GPIO_Init(sw_spi->miso_port, &GPIO_InitStructure); + GPIO_InitSet(sw_spi->cs, MGPIO_MODE_OUT_PP, 0); //CS + GPIO_InitSet(sw_spi->sck, MGPIO_MODE_OUT_PP, 0); //SCK + GPIO_InitSet(sw_spi->miso, MGPIO_MODE_IPN, 0); //MISO + GPIO_InitSet(sw_spi->mosi, MGPIO_MODE_OUT_PP, 0); //MOSI } -#define SCK_HIGH() GPIO_SetBits(sw_spi->sck_port, sw_spi->sck_pin) -#define SCK_LOW() GPIO_ResetBits(sw_spi->sck_port, sw_spi->sck_pin) -#define MOSI_WRITE(n) do{if(n) GPIO_SetBits(sw_spi->mosi_port, sw_spi->mosi_pin); else GPIO_ResetBits(sw_spi->mosi_port, sw_spi->mosi_pin);}while(0) -#define MISO_READ() GPIO_ReadInputDataBit(sw_spi->miso_port, sw_spi->miso_pin) +#define SCK_HIGH() GPIO_SetLevel(sw_spi->sck, 1) +#define SCK_LOW() GPIO_SetLevel(sw_spi->sck, 0) +#define MOSI_WRITE(n) GPIO_SetLevel(sw_spi->mosi, n) +#define MISO_READ() GPIO_GetLevel(sw_spi->miso) uint16_t SW_SPI_Read_Write(_SW_SPI *sw_spi, uint16_t d) { - uint8_t data_bits = 8; + uint8_t data_bits = sw_spi->dataSize; uint8_t i=0; uint16_t rcv=0; switch(sw_spi->mode) @@ -144,8 +82,5 @@ uint16_t SW_SPI_Read_Write(_SW_SPI *sw_spi, uint16_t d) void SW_SPI_CS_Set(_SW_SPI *sw_spi, uint8_t level) { - if(level) - GPIO_SetBits(sw_spi->cs_port, sw_spi->cs_pin); - else - GPIO_ResetBits(sw_spi->cs_port, sw_spi->cs_pin); + GPIO_SetLevel(sw_spi->cs, level); } diff --git a/TFT/src/User/Hal/sw_spi.h b/TFT/src/User/Hal/sw_spi.h index 00cf828d06..4314c775d4 100644 --- a/TFT/src/User/Hal/sw_spi.h +++ b/TFT/src/User/Hal/sw_spi.h @@ -1,7 +1,7 @@ #ifndef _SW_SPI_H_ #define _SW_SPI_H_ -#include "stm32f10x_conf.h" +#include "variants.h" typedef enum { @@ -13,23 +13,19 @@ typedef enum typedef struct { - GPIO_TypeDef *cs_port; - uint16_t cs_pin; - GPIO_TypeDef *sck_port; - uint16_t sck_pin; - GPIO_TypeDef *miso_port; - uint16_t miso_pin; - GPIO_TypeDef *mosi_port; - uint16_t mosi_pin; - _SPI_MODE mode; + uint16_t cs; + uint16_t sck; + uint16_t miso; + uint16_t mosi; + _SPI_MODE mode; + uint8_t dataSize; }_SW_SPI; - -void SW_SPI_Config(_SW_SPI *sw_spi, _SPI_MODE mode, - GPIO_TypeDef *cs_port, uint16_t cs_pin, - GPIO_TypeDef *sck_port, uint16_t sck_pin, - GPIO_TypeDef *miso_port, uint16_t miso_pin, - GPIO_TypeDef *mosi_port, uint16_t mosi_pin); +void SW_SPI_Config(_SW_SPI *sw_spi, _SPI_MODE mode, u8 dataSize, +uint16_t cs, +uint16_t sck, +uint16_t miso, +uint16_t mosi); uint16_t SW_SPI_Read_Write(_SW_SPI *sw_spi, uint16_t d); void SW_SPI_CS_Set(_SW_SPI *sw_spi, uint8_t level); diff --git a/TFT/src/User/Hal/usart.c b/TFT/src/User/Hal/usart.c deleted file mode 100644 index a111b09b3e..0000000000 --- a/TFT/src/User/Hal/usart.c +++ /dev/null @@ -1,120 +0,0 @@ -#include "usart.h" - -static USART_TypeDef *usart[_USART_CNT] = {USART1, //TX--PA9 RX--PA10 - USART2, //TX--PA2 RX--PA3 - USART3, //TX--PB10 RX--PB11 - UART4, //TX--PC10 RX--PC11 - UART5}; //TX--PC12 RX--PD2 - -void USART_GPIO_Init(uint8_t port, uint8_t deInit) -{ - uint32_t RCC_Define[_USART_CNT] = {RCC_APB2Periph_GPIOA, - RCC_APB2Periph_GPIOA, - RCC_APB2Periph_GPIOB, - RCC_APB2Periph_GPIOC, - RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD}; - GPIO_TypeDef *TX_GPIO_Port[_USART_CNT] = {GPIOA, GPIOA, GPIOB, GPIOC, GPIOC}; //TX - uint16_t TX_GPIO_Pin[_USART_CNT] = {GPIO_Pin_9, GPIO_Pin_2, GPIO_Pin_10, GPIO_Pin_10, GPIO_Pin_12}; - GPIO_TypeDef *RX_GPIO_Port[_USART_CNT] = {GPIOA, GPIOA, GPIOB, GPIOC, GPIOD}; //RX - uint16_t RX_GPIO_Pin[_USART_CNT] = {GPIO_Pin_10, GPIO_Pin_3, GPIO_Pin_11, GPIO_Pin_11, GPIO_Pin_2}; - - GPIO_InitTypeDef GPIO_InitStructure; - - RCC_APB2PeriphClockCmd(RCC_Define[port],ENABLE); - - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; - - GPIO_InitStructure.GPIO_Mode = deInit ? GPIO_Mode_IN_FLOATING : GPIO_Mode_AF_PP; - GPIO_InitStructure.GPIO_Pin = TX_GPIO_Pin[port]; - GPIO_Init(TX_GPIO_Port[port],&GPIO_InitStructure); - - GPIO_InitStructure.GPIO_Mode = deInit ? GPIO_Mode_IN_FLOATING : GPIO_Mode_IPU; - GPIO_InitStructure.GPIO_Pin = RX_GPIO_Pin[port]; - GPIO_Init(RX_GPIO_Port[port],&GPIO_InitStructure); -} - -void USART_Protocol_Init(uint8_t port,uint32_t baud) -{ - USART_InitTypeDef USART_InitStructure; - switch(port) - { - case _USART1: RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); break; - case _USART2: RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); break; - case _USART3: RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); break; - case _UART4: RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4, ENABLE); break; - case _UART5: RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART5, ENABLE); break; - } - USART_InitStructure.USART_BaudRate = baud; - USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; - USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; - USART_InitStructure.USART_Parity = USART_Parity_No; - USART_InitStructure.USART_StopBits = USART_StopBits_1; - USART_InitStructure.USART_WordLength = USART_WordLength_8b; - USART_Init(usart[port],&USART_InitStructure); - - USART_Cmd(usart[port],ENABLE); -} - -void USART_IRQ_Init(uint8_t port, uint16_t usart_it) -{ - uint32_t IRQ_Channel[_USART_CNT] = {USART1_IRQn, USART2_IRQn, USART3_IRQn, UART4_IRQn, UART5_IRQn}; - - NVIC_InitTypeDef NVIC_InitStructure; - NVIC_InitStructure.NVIC_IRQChannel = IRQ_Channel[port]; - NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; - NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; - NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; - NVIC_Init(&NVIC_InitStructure); - - USART_ITConfig(usart[port], usart_it, ENABLE); - USART_ClearITPendingBit(usart[port], usart_it); -} - -void USART_Config(uint8_t port, uint32_t baud, uint16_t usart_it) -{ - USART_Protocol_Init(port, baud); - USART_IRQ_Init(port, usart_it); - USART_GPIO_Init(port, 0); //所有初始化完成后,再使能IO, 否则上电后会自动发送一个 0xFF -} - -void USART_DeConfig(uint8_t port) -{ - USART_GPIO_Init(port, 1); - switch(port) - { - case _USART1: - RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, ENABLE); - RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, DISABLE); - break; - case _USART2: - RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); - RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, DISABLE); - break; - case _USART3: - RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); - RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, DISABLE); - break; - case _UART4: - RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4, ENABLE); - RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4, DISABLE); - break; - case _UART5: - RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART5, ENABLE); - RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART5, DISABLE); - break; - } -} - -void USART_Write(uint8_t port, uint8_t d) -{ - while((usart[port]->SR & USART_FLAG_TC) == (uint16_t)RESET); - usart[port]->DR = ((u16)d & (uint16_t)0x01FF); -} -void USART_Puts(uint8_t port, uint8_t *str) -{ - while (*str) - { - while((usart[port]->SR & USART_FLAG_TC) == (uint16_t)RESET); - usart[port]->DR = ((u16)*str++ & (uint16_t)0x01FF); - } -} diff --git a/TFT/src/User/Hal/xpt2046.c b/TFT/src/User/Hal/xpt2046.c index 8da57ff25b..f1db218b13 100644 --- a/TFT/src/User/Hal/xpt2046.c +++ b/TFT/src/User/Hal/xpt2046.c @@ -1,5 +1,5 @@ #include "xpt2046.h" - +#include "GPIO_Init.h" /***************************************** XPT2046 SPI 模式底层移植的接口********************************************/ //XPT2046 SPI相关 - 使用模拟SPI _SW_SPI xpt2046; @@ -20,17 +20,13 @@ u8 XPT2046_ReadWriteByte(u8 TxData) void XPT2046_Init(void) { //PA15-TPEN - GPIO_InitTypeDef GPIO_InitStructure; - RCC_APB2PeriphClockCmd(XPT2046_GPIO_RCC, ENABLE); - GPIO_InitStructure.GPIO_Pin = XPT2046_TPEN_PIN; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; - GPIO_Init(XPT2046_TPEN_PORT, &GPIO_InitStructure); + GPIO_InitSet(XPT2046_TPEN, MGPIO_MODE_IPN, 0); - SW_SPI_Config(&xpt2046, _SPI_MODE3, - XPT2046_CS_PORT, XPT2046_CS_PIN, //CS - XPT2046_SCK_PORT, XPT2046_SCK_PIN, //SCK - XPT2046_MISO_PORT, XPT2046_MISO_PIN, //MISO - XPT2046_MOSI_PORT, XPT2046_MOSI_PIN //MOSI + SW_SPI_Config(&xpt2046, _SPI_MODE3, 8, // 8bit + XPT2046_CS, //CS + XPT2046_SCK, //SCK + XPT2046_MISO, //MISO + XPT2046_MOSI //MOSI ); XPT2046_CS_Set(1); } @@ -38,7 +34,7 @@ void XPT2046_Init(void) //读笔中断 u8 XPT2046_Read_Pen(void) { - return GPIO_ReadInputDataBit(XPT2046_TPEN_PORT, XPT2046_TPEN_PIN); + return GPIO_GetLevel(XPT2046_TPEN); } /******************************************************************************************************************/ diff --git a/TFT/src/User/Menu/BabyStep.c b/TFT/src/User/Menu/BabyStep.c index 1e88a607aa..5b315acb84 100644 --- a/TFT/src/User/Menu/BabyStep.c +++ b/TFT/src/User/Menu/BabyStep.c @@ -58,11 +58,11 @@ static float baby_step_value=0.0; void showBabyStep(void) { - GUI_DispFloat(CENTER_X - 3*BYTE_WIDTH/2, CENTER_Y, baby_step_value,1,2,1,RIGHT); + GUI_DispFloat(CENTER_X - 3*BYTE_WIDTH/2, CENTER_Y, baby_step_value, 1, 2, 1, RIGHT); } void babyStepReDraw(void) { - GUI_DispFloat(CENTER_X - 3*BYTE_WIDTH/2, CENTER_Y, baby_step_value,1,2,1,RIGHT); + GUI_DispFloat(CENTER_X - 3*BYTE_WIDTH/2, CENTER_Y, baby_step_value, 1, 2, 1, RIGHT); } diff --git a/TFT/src/User/Menu/Mode.c b/TFT/src/User/Menu/Mode.c index 8ba6f06925..b2c71c456c 100644 --- a/TFT/src/User/Menu/Mode.c +++ b/TFT/src/User/Menu/Mode.c @@ -7,7 +7,7 @@ void Serial_ReSourceDeInit(void) memset(&infoHost, 0, sizeof(infoHost)); resetInfoFile(); SD_DeInit(); -#ifdef BUZZER_SUPPORT +#ifdef BUZZER_PIN Buzzer_DeConfig(); #endif Serial_DeConfig(); @@ -15,7 +15,7 @@ void Serial_ReSourceDeInit(void) void Serial_ReSourceInit(void) { -#ifdef BUZZER_SUPPORT +#ifdef BUZZER_PIN Buzzer_Config(); #endif Serial_Config(infoSettings.baudrate); @@ -46,13 +46,15 @@ void infoMenuSelect(void) break; } + #ifdef ST7920_SPI case LCD12864: infoMenu.menu[infoMenu.cur] = menuST7920; - break; + break; + #endif } } -#ifdef LCD_ENCODER_SUPPORT +#if LCD_ENCODER_SUPPORT void menuMode(void) { RADIO modeRadio = { diff --git a/TFT/src/User/Menu/Popup.c b/TFT/src/User/Menu/Popup.c index d1b24b3980..6f39d5a7f7 100644 --- a/TFT/src/User/Menu/Popup.c +++ b/TFT/src/User/Menu/Popup.c @@ -81,8 +81,11 @@ void menuPopup(void) } } - - - - - +void popupReminder(u8* info, u8* context) +{ + popupDrawPage(&bottomSingleBtn , info, context, textSelect(LABEL_CONFIRM), NULL); + if(infoMenu.menu[infoMenu.cur] != menuPopup) + { + infoMenu.menu[++infoMenu.cur] = menuPopup; + } +} diff --git a/TFT/src/User/Menu/Popup.h b/TFT/src/User/Menu/Popup.h index c792d69ab6..23443206ab 100644 --- a/TFT/src/User/Menu/Popup.h +++ b/TFT/src/User/Menu/Popup.h @@ -40,6 +40,6 @@ extern WINDOW window; void windowSetButton(const BUTTON *btn); void windowReDrawButton(uint8_t positon, uint8_t is_press); void popupDrawPage(BUTTON *btn, const uint8_t *title, const uint8_t *context, const uint8_t *yes, const uint8_t *no); -void menuPopup(void); +void popupReminder(u8* info, u8* context); #endif diff --git a/TFT/src/User/Menu/PowerFailed.c b/TFT/src/User/Menu/PowerFailed.c index 414a680222..01de7a8406 100644 --- a/TFT/src/User/Menu/PowerFailed.c +++ b/TFT/src/User/Menu/PowerFailed.c @@ -27,9 +27,11 @@ FIL fpPowerFailed; bool powerFailedCreate(char *path) { UINT br; + create_ok = false; - if(infoFile.source != TFT_SD) return false; + if(infoFile.source != TFT_SD) return false;//support SD Card only now + if(f_open(&fpPowerFailed, powerFailedFileName, FA_OPEN_ALWAYS | FA_WRITE) != FR_OK) return false; f_write(&fpPowerFailed, path, MAX_PATH_LEN, &br); @@ -40,7 +42,6 @@ bool powerFailedCreate(char *path) return true; } - void powerFailedCache(u32 offset) { UINT br; @@ -86,17 +87,20 @@ void powerFailedCache(u32 offset) void powerFailedClose(void) { + FRESULT rst; if(create_ok==false) return; - f_close(&fpPowerFailed); + rst = f_close(&fpPowerFailed); +// printf("close:%d\r\n", rst); } void powerFailedDelete(void) -{ +{ + FRESULT rst; if(create_ok==false) return; - f_close(&fpPowerFailed); - f_unlink(powerFailedFileName); + rst = f_unlink(powerFailedFileName); +// printf("unlink:%d\r\n", rst); clearPowerFailed(); } diff --git a/TFT/src/User/Menu/PowerFailed.h b/TFT/src/User/Menu/PowerFailed.h index bbd4d3b55e..c092258781 100644 --- a/TFT/src/User/Menu/PowerFailed.h +++ b/TFT/src/User/Menu/PowerFailed.h @@ -1,7 +1,7 @@ #ifndef _POWERFAILED_H_ #define _POWERFAILED_H_ -#include "stm32f10x.h" +#include "variants.h" #include "heat.h" #include "coordinate.h" #include "ff.h" diff --git a/TFT/src/User/Menu/Print.c b/TFT/src/User/Menu/Print.c index 19ef881819..41d99b11e6 100644 --- a/TFT/src/User/Menu/Print.c +++ b/TFT/src/User/Menu/Print.c @@ -118,7 +118,7 @@ void menuPrintFromSource(void) u8 update=0; GUI_Clear(BK_COLOR); - GUI_DispString((LCD_WIDTH - my_strlen(textSelect(LABEL_LOADING))*BYTE_WIDTH)/2, LCD_HEIGHT/2 - BYTE_HEIGHT, textSelect(LABEL_LOADING),1); + GUI_DispStringInRect(0, 0, LCD_WIDTH, LCD_HEIGHT, textSelect(LABEL_LOADING), 1); if (mountFS() == true && scanPrintFiles() == true) { @@ -127,15 +127,15 @@ void menuPrintFromSource(void) } else { - GUI_DispString((LCD_WIDTH-my_strlen(textSelect(labelVolumeError[infoFile.source]))*BYTE_WIDTH)/2, LCD_HEIGHT/2, textSelect(labelVolumeError[infoFile.source]),1); + GUI_DispStringInRect(0, 0, LCD_WIDTH, LCD_HEIGHT, textSelect(labelVolumeError[infoFile.source]), 1); Delay_ms(1000); infoMenu.cur--; } while(infoMenu.menu[infoMenu.cur] == menuPrintFromSource) { - Scroll_DispString(&titleScroll,1,LEFT); //锟斤拷锟斤拷锟斤拷示路锟斤拷锟斤拷 - Scroll_DispString(&gcodeScroll,1,CENTER); //锟斤拷锟斤拷锟斤拷示锟侥硷拷锟斤拷 + Scroll_DispString(&titleScroll,1,LEFT); // + Scroll_DispString(&gcodeScroll,1,CENTER); // key_num = menuKeyGetValue(); diff --git a/TFT/src/User/Menu/Printing.c b/TFT/src/User/Menu/Printing.c index 967570b09c..27faa2cd01 100644 --- a/TFT/src/User/Menu/Printing.c +++ b/TFT/src/User/Menu/Printing.c @@ -179,9 +179,12 @@ void resumeToPause(bool is_pause) bool setPrintPause(bool is_pause) { - if(!isPrinting()) return false; - if(infoPrinting.pause == is_pause) return false; + static bool pauseLock = false; + if(pauseLock) return false; + if(!isPrinting()) return false; + if(infoPrinting.pause == is_pause) return false; + pauseLock = true; switch (infoFile.source) { case BOARD_SD: @@ -238,6 +241,7 @@ bool setPrintPause(bool is_pause) break; } resumeToPause(is_pause); + pauseLock = false; return true; } @@ -266,7 +270,7 @@ void reDrawTime(void) min = infoPrinting.time%3600/60, sec = infoPrinting.time%60; - GUI_DispChar(progressRect.x0 + 2 * BYTE_WIDTH, TIME_Y, hour/10%10+'0',0); + GUI_DispChar(progressRect.x0 + 2 * BYTE_WIDTH, TIME_Y, hour/10%10+'0',1); GUI_DispChar(progressRect.x0 + 3 * BYTE_WIDTH, TIME_Y, hour%10+'0', 1); GUI_DispChar(progressRect.x0 + 5 * BYTE_WIDTH, TIME_Y, min/10+'0',1); GUI_DispChar(progressRect.x0 + 6 * BYTE_WIDTH, TIME_Y, min%10+'0',1); @@ -432,6 +436,7 @@ void completePrinting(void) break; } infoPrinting.printing = false; + powerFailedClose(); powerFailedDelete(); endGcodeExecute(); } diff --git a/TFT/src/User/Menu/Printing.h b/TFT/src/User/Menu/Printing.h index 7e99a88a20..6f3dfcdd93 100644 --- a/TFT/src/User/Menu/Printing.h +++ b/TFT/src/User/Menu/Printing.h @@ -1,6 +1,6 @@ #ifndef _PRINTING_H_ #define _PRINTING_H_ -#include "stm32f10x.h" +#include "variants.h" #include "stdbool.h" #include "ff.h" diff --git a/TFT/src/User/Menu/Settings.c b/TFT/src/User/Menu/Settings.c index 6f2588cca5..e3dcbec581 100644 --- a/TFT/src/User/Menu/Settings.c +++ b/TFT/src/User/Menu/Settings.c @@ -31,13 +31,13 @@ void menuDisconnect(void) GUI_Clear(BLACK); GUI_DispStringInRect(20, 0, LCD_WIDTH-20, LCD_HEIGHT, textSelect(LABEL_DISCONNECT_INFO), 0); - GPIOA->CRH &= 0xFFFFF00F; - GPIOA->CRH |= 0x00000440;// PA9/PA10 +// GPIOA->CRH &= 0xFFFFF00F; +// GPIOA->CRH |= 0x00000440;// PA9/PA10 - while(!isPress()); - while(isPress()); - GPIOA->CRH &= 0xFFFFF00F; - GPIOA->CRH |= 0x000008B0; +// while(!isPress()); +// while(isPress()); +// GPIOA->CRH &= 0xFFFFF00F; +// GPIOA->CRH |= 0x000008B0; infoMenu.cur--; } diff --git a/TFT/src/User/Menu/menu.c b/TFT/src/User/Menu/menu.c index a0f01d0b52..df7cdf4950 100644 --- a/TFT/src/User/Menu/menu.c +++ b/TFT/src/User/Menu/menu.c @@ -211,7 +211,6 @@ void itemDrawIconPress(u8 positon, u8 is_press) ICON_ReadDisplay(rect->x0, rect->y0, curMenuItems->items[positon].icon); } - //Get button value KEY_VALUES menuKeyGetValue(void) { @@ -222,12 +221,10 @@ KEY_VALUES menuKeyGetValue(void) void loopProcess(void) { getGcodeFromFile(); //Get Gcode command from the file to be printed - - parseQueueCmd(); //Parse Gcode command before Send - - sendQueueCmd(); //Process and send Gcode commands in the queue + + sendQueueCmd(); //Parse and send Gcode commands in the queue - parseACK(); //Parsing the received slave response information + parseACK(); //Parse the received slave response information loopCheckHeater(); //Temperature related settings @@ -247,8 +244,11 @@ void loopProcess(void) USBH_Process(&USB_OTG_Core, &USB_Host); #endif -#ifdef LCD_ENCODER_SUPPORT - if(!isPrinting()) - loopCheckMode(); +#if LCD_ENCODER_SUPPORT + loopCheckMode(); +#endif + +#ifdef FIL_RUNOUT_PIN + loopFILRunoutDetect(); #endif } diff --git a/TFT/src/User/delay.c b/TFT/src/User/delay.c index 74eaffa4d0..9ec3874fdb 100644 --- a/TFT/src/User/delay.c +++ b/TFT/src/User/delay.c @@ -1,4 +1,4 @@ -#include "stm32f10x.h" +#include "variants.h" static u16 fac_ms=0; static u8 fac_us=0; diff --git a/TFT/src/User/includes.h b/TFT/src/User/includes.h index ef5e0ac840..140011e202 100644 --- a/TFT/src/User/includes.h +++ b/TFT/src/User/includes.h @@ -10,13 +10,15 @@ #include #include "my_misc.h" -#include "stm32f10x.h" +#include "variants.h" #include "os_timer.h" #include "delay.h" #include "boot.h" #include "lcd.h" +#include "lcd_init.h" +#include "lcd_dma.h" #include "GUI.h" #include "language.h" @@ -48,6 +50,7 @@ #include "flashStore.h" #include "parseACK.h" +#include "extend.h" //menu #include "menu.h" diff --git a/TFT/src/User/main.c b/TFT/src/User/main.c index f4cf65091f..05726f82bb 100644 --- a/TFT/src/User/main.c +++ b/TFT/src/User/main.c @@ -3,12 +3,11 @@ HOST infoHost; // Information interaction with Marlin MENU infoMenu; // Menu structure - void Hardware_GenericInit(void) { NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); - Delay_init(72); - OS_TimerInit(9999,71); // System clock timer, cycle 10ms + Delay_init(F_CPUM); + OS_TimerInit(9999, F_CPUM-1); // System clock timer, cycle 10ms #ifdef DISABLE_DEBUG RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO , ENABLE); @@ -24,10 +23,18 @@ void Hardware_GenericInit(void) W25Qxx_Init(); LCD_Init(); -#ifdef LCD_ENCODER_SUPPORT +#if LCD_ENCODER_SUPPORT LCD_EncoderInit(); #endif - + +#ifdef PS_ON_PIN + PS_ON_Init(); +#endif + +#ifdef FIL_RUNOUT_PIN + FIL_Runout_Init(); +#endif + if(readStoredPara() == false) { TSC_Calibration(); @@ -42,7 +49,7 @@ void Hardware_GenericInit(void) int main(void) { - SCB->VTOR = FLASH_BASE | 0x6000; + SCB->VTOR = VECT_TAB_FLASH; Hardware_GenericInit(); diff --git a/TFT/src/User/variants.h b/TFT/src/User/variants.h index 64d01af32f..7c948e1bed 100644 --- a/TFT/src/User/variants.h +++ b/TFT/src/User/variants.h @@ -1,24 +1,33 @@ #ifndef _VARIANTS_H_ #define _VARIANTS_H_ +#define USE_STDPERIPH_DRIVER /* * hardware source * TIM4 for os timer * TIM3 for buzzer timer */ -//MCU type (STM32F103VC - HD, STM32F105 - CL) -#if defined(TFT35_V1_0) || defined(TFT35_V1_1) || defined(TFT35_V1_2) || defined(TFT28) - #define STM32F10X_HD -#elif defined(TFT24_V1_1) - #define STM32F10X_CL -#endif - +//MCU type (STM32F103VC - HD, STM32F105 - CL, STM32F207VC) //HSE crystal frequency #if defined(TFT35_V1_0) || defined(TFT35_V1_1) || defined(TFT35_V1_2)|| defined(TFT28) + #define VECT_TAB_FLASH 0x08006000 + #define HSE_VALUE ((uint32_t)16000000) //16Mhz + #define F_CPUM 72 + #define STM32F10X_HD + #include "stm32f10x.h" +#elif defined(TFT35_V2_0) + #define VECT_TAB_FLASH 0x08003000 #define HSE_VALUE ((uint32_t)16000000) //16Mhz + #define F_CPUM 72 + #define STM32F10X_HD + #include "stm32f10x.h" #elif defined(TFT24_V1_1) + #define VECT_TAB_FLASH 0x08006000 #define HSE_VALUE ((uint32_t)8000000) //8Mhz + #define F_CPUM 72 + #define STM32F10X_CL + #include "stm32f10x.h" #endif //LCD interface @@ -26,7 +35,7 @@ #define RM68042 #define STM32_HAS_FSMC #define LCD_DATA_16BIT 0 -#elif defined(TFT35_V1_2) +#elif defined(TFT35_V1_2) || defined(TFT35_V2_0) #define ILI9488 #define STM32_HAS_FSMC #define LCD_DATA_16BIT 1 @@ -36,142 +45,123 @@ #define LCD_DATA_16BIT 1 #elif defined(TFT24_V1_1) #define ILI9341 -// #define STM32_HAS_FSMC #define LCD_DATA_16BIT 1 #endif //LCD Backlight pin (PWM can adjust brightness) -#if defined(TFT35_V1_0) || defined(TFT35_V1_1) || defined(TFT35_V1_2) || defined(TFT28) - //don't support LCD Backlight pin -#elif defined(TFT24_V1_1) - #define LCD_LED_SUPPORT - #define LCD_LED_RCC RCC_APB2Periph_GPIOA - #define LCD_LED_PORT GPIOA - #define LCD_LED_PIN GPIO_Pin_8 +#if defined(TFT24_V1_1) + #define LCD_LED_PIN PA8 #endif -#if defined(TFT35_V1_0) || defined(TFT35_V1_1) || defined(TFT35_V1_2) || defined(TFT28) || defined(TFT24_V1_1) +#if defined(TFT35_V1_0) || defined(TFT35_V1_1) || defined(TFT35_V1_2) || defined(TFT28) || defined(TFT24_V1_1) || defined(TFT35_V2_0) #define SERIAL_PORT _USART1 //default usart port #endif //XPT2046 Software SPI Pins (touch screen ic) //need CS/SCK/MISO/MOSI for Software SPI, and TPEN for pen interrupt #if defined(TFT35_V1_0) || defined(TFT35_V1_1) || defined(TFT35_V1_2) || defined(TFT28) - #define XPT2046_GPIO_RCC RCC_APB2Periph_GPIOC - #define XPT2046_CS_PORT GPIOC - #define XPT2046_CS_PIN GPIO_Pin_0 - #define XPT2046_SCK_PORT GPIOC - #define XPT2046_SCK_PIN GPIO_Pin_1 - #define XPT2046_MISO_PORT GPIOC - #define XPT2046_MISO_PIN GPIO_Pin_2 - #define XPT2046_MOSI_PORT GPIOC - #define XPT2046_MOSI_PIN GPIO_Pin_3 - #define XPT2046_TPEN_PORT GPIOC - #define XPT2046_TPEN_PIN GPIO_Pin_4 -#elif defined(TFT24_V1_1) - #define XPT2046_GPIO_RCC RCC_APB2Periph_GPIOA - #define XPT2046_CS_PORT GPIOA - #define XPT2046_CS_PIN GPIO_Pin_3 - #define XPT2046_SCK_PORT GPIOA - #define XPT2046_SCK_PIN GPIO_Pin_2 - #define XPT2046_MISO_PORT GPIOA - #define XPT2046_MISO_PIN GPIO_Pin_1 - #define XPT2046_MOSI_PORT GPIOA - #define XPT2046_MOSI_PIN GPIO_Pin_0 - #define XPT2046_TPEN_PORT GPIOA - #define XPT2046_TPEN_PIN GPIO_Pin_15 + #define XPT2046_CS PC0 + #define XPT2046_SCK PC1 + #define XPT2046_MISO PC2 + #define XPT2046_MOSI PC3 + #define XPT2046_TPEN PC4 +#elif defined(TFT24_V1_1) + #define XPT2046_CS PA3 + #define XPT2046_SCK PA2 + #define XPT2046_MISO PA1 + #define XPT2046_MOSI PA0 + #define XPT2046_TPEN PA15 +#elif defined(TFT35_V2_0) + #define XPT2046_CS PC0 + #define XPT2046_SCK PB3 + #define XPT2046_MISO PB4 + #define XPT2046_MOSI PB5 + #define XPT2046_TPEN PC1 #else #error "xpt2046 need to Implement here by yourself." #endif //SD Card SPI pins #if defined(TFT35_V1_0) || defined(TFT35_V1_1) || defined(TFT35_V1_2) || defined(TFT28) + #define SD_SPI_SUPPORT #define SD_LOW_SPEED 7 #define SD_HIGH_SPEED 0 #define SD_SPI _SPI2 - #define SPI2_CS_RCC RCC_APB2Periph_GPIOB - #define SPI2_CS_PORT GPIOB - #define SPI2_CS_PIN GPIO_Pin_12 + #define SPI2_CS_PIN PB12 #elif defined(TFT24_V1_1) + #define SD_SPI_SUPPORT #define SD_LOW_SPEED 7 #define SD_HIGH_SPEED 1 #define SD_SPI _SPI1 - #define SPI1_CS_RCC RCC_APB2Periph_GPIOA - #define SPI1_CS_PORT GPIOA - #define SPI1_CS_PIN GPIO_Pin_4 + #define SPI1_CS_PIN PA4 +#elif defined(TFT35_V2_0) + #define SD_SDIO_SUPPORT #endif //SD Card CD detect pin -#if defined(TFT35_V1_0) || defined(TFT35_V1_1) || defined(TFT35_V1_2) - //don't support SD CD(insert/remove) detect -#elif defined(TFT28) - #define SD_CD_SUPPROT - #define SD_CD_RCC RCC_APB2Periph_GPIOB - #define SD_CD_PORT GPIOB - #define SD_CD_PIN GPIO_Pin_0 -#elif defined(TFT24_V1_1) - #define SD_CD_SUPPROT - #define SD_CD_RCC RCC_APB2Periph_GPIOA - #define SD_CD_PORT GPIOA - #define SD_CD_PIN GPIO_Pin_13 +#if defined(TFT28) + #define SD_CD_PIN PB0 +#elif defined(TFT24_V1_1) + #define SD_CD_PIN PA13 +#elif defined(TFT35_V2_0) + #define SD_CD_PIN PC6 #endif //W25Qxx SPI pins -#if defined(TFT35_V1_0) || defined(TFT35_V1_1) || defined(TFT35_V1_2) || defined(TFT28) +#if defined(TFT35_V1_0) || defined(TFT35_V1_1) || defined(TFT35_V1_2) || defined(TFT28) || defined(TFT35_V2_0) #define W25Qxx_SPEED 1 #define W25Qxx_SPI _SPI1 - #define SPI1_CS_RCC RCC_APB2Periph_GPIOA - #define SPI1_CS_PORT GPIOA - #define SPI1_CS_PIN GPIO_Pin_4 + #define SPI1_CS_PIN PA4 #elif defined(TFT24_V1_1) #define W25Qxx_SPEED 0 #define W25Qxx_SPI _SPI3 - #define SPI3_CS_RCC RCC_APB2Periph_GPIOD - #define SPI3_CS_PORT GPIOD - #define SPI3_CS_PIN GPIO_Pin_2 + #define SPI3_CS_PIN PD2 #endif //ST7920 Simulator SPI pins -#if defined(TFT35_V1_0) || defined(TFT35_V1_1) || defined(TFT35_V1_2) || defined(TFT28) - //don't support ST7920 Simulator -#elif defined(TFT24_V1_1) - #define ST7920_SPI _SPI2 +#if defined(TFT24_V1_1) + #define ST7920_SPI _SPI2 #endif //buzzer support -#if defined(TFT35_V1_0) || defined(TFT35_V1_1) || defined(TFT35_V1_2) || defined(TFT28) - //don't support buzzer -#elif defined(TFT24_V1_1) - #define BUZZER_SUPPORT - #define BUZZER_RCC RCC_APB2Periph_GPIOA - #define BUZZER_PORT GPIOA - #define BUZZER_PIN GPIO_Pin_14 +#if defined(TFT24_V1_1) + #define BUZZER_PIN PA14 +#elif defined(TFT35_V2_0) + #define BUZZER_PIN PB2 #endif //LCD Encoder support -#if defined(TFT35_V1_0) || defined(TFT35_V1_1) || defined(TFT35_V1_2) || defined(TFT28) - //don't support LCD Encoder -#elif defined(TFT24_V1_1) - #define LCD_ENCODER_SUPPORT +#if defined(TFT24_V1_1) //PB0:ENC-A PB1:ENC-B PB2:BTN - #define LCD_ENCODER_RCC RCC_APB2Periph_GPIOB - #define LCD_ENCA_PORT GPIOB - #define LCD_ENCA_PIN GPIO_Pin_0 - #define LCD_ENCB_PORT GPIOB - #define LCD_ENCB_PIN GPIO_Pin_1 - #define LCD_BTN_PORT GPIOB - #define LCD_BTN_PIN GPIO_Pin_2 + #define LCD_ENCA_PIN PB0 + #define LCD_ENCB_PIN PB1 + #define LCD_BTN_PIN PB2 #endif +#define LCD_ENCODER_SUPPORT (defined(LCD_ENCA_PIN) && defined(LCD_ENCB_PIN) && defined(LCD_BTN_PIN)) //U disk support -#if defined(TFT35_V1_0) || defined(TFT35_V1_1) || defined(TFT35_V1_2) || defined(TFT28) -#elif defined(TFT24_V1_1) +#if defined(TFT24_V1_1) #define U_DISK_SUPPROT #define USE_USB_OTG_FS #endif +//extend function(PS_ON, filament_detect) +#define PS_ACTIVE_HIGH true // Set 'false' for ATX (1), 'true' for X-Box (2) +#define FIL_RUNOUT_INVERTING true // Set to false to invert the logic of the sensor. +#if defined(TFT35_V2_0) + #define PS_ON_PIN PE5 + #define FIL_RUNOUT_PIN PE6 +#endif + +//Debug disable, free pins for other function +#if defined(TFT35_V1_0) || defined(TFT35_V1_1) || defined(TFT35_V1_2) || defined(TFT28) || defined(TFT35_V2_0) + #define DISABLE_JTAG //free JTAG(PB3/PB4) for SPI3 +#elif defined(TFT24_V1_1) + #define DISABLE_DEBUG // +#endif + //LCD resolution, font and icon size -#if defined(TFT35_V1_0) || defined(TFT35_V1_1) || defined(TFT35_V1_2) +#if defined(TFT35_V1_0) || defined(TFT35_V1_1) || defined(TFT35_V1_2) || defined(TFT35_V2_0) #define LCD_WIDTH 480 #define LCD_HEIGHT 320 #define BYTE_HEIGHT 24 @@ -189,17 +179,18 @@ #define TITLE_END_Y 40 #endif -//Debug disable, free pins for other function -#if defined(TFT35_V1_0) || defined(TFT35_V1_1) || defined(TFT35_V1_2) || defined(TFT28) - #define DISABLE_JTAG //free JTAG(PB3/PB4) for SPI3 +#if defined(TFT35_V1_0) || defined(TFT35_V1_1) || defined(TFT35_V1_2)|| defined(TFT35_V2_0) + #define ROOT_DIR "TFT35" +#elif defined(TFT28) + #define ROOT_DIR "TFT28" #elif defined(TFT24_V1_1) - #define DISABLE_DEBUG // + #define ROOT_DIR "TFT24" #endif //hardware version config #ifndef HARDWARE_VERSION #if defined(TFT35_V1_0) - #define HARDWARE_VERSION "TFT35_V1.0" + #define HARDWARE_VERSION "TFT35_V1.0" #elif defined(TFT35_V1_1) #define HARDWARE_VERSION "TFT35_V1.1" #elif defined(TFT35_V1_2) @@ -208,6 +199,8 @@ #define HARDWARE_VERSION "TFT28" #elif defined(TFT24_V1_1) #define HARDWARE_VERSION "TFT24_V1.1" + #elif defined(TFT35_V2_0) + #define HARDWARE_VERSION "TFT35_V2.0" #endif #endif diff --git a/buildroot/boards/STM32F207VC.json b/buildroot/boards/STM32F207VC.json new file mode 100644 index 0000000000..e3b9ade71b --- /dev/null +++ b/buildroot/boards/STM32F207VC.json @@ -0,0 +1,51 @@ +{ + "build": { + "core": "stm32", + "cpu": "cortex-m3", + "extra_flags": "-DSTM32F207xC", + "f_cpu": "120000000L", + "hwids": [ + [ + "0x1EAF", + "0x0003" + ], + [ + "0x1EAF", + "0x0004" + ] + ], + "ldscript": "BIGTREE_TFT35_V1.ld", + "mcu": "stm32f207vct6", + "variant": "stm32f2" + }, + "debug": { + "jlink_device": "STM32F207VC", + "openocd_target": "stm32f2x", + "svd_path": "STM32F207xx.svd" + }, + "frameworks": [ + "arduino", + "libopencm3", + "stm32cube" + ], + "name": "STM32F207VC (48k RAM. 256k Flash)", + "upload": { + "disable_flushing": false, + "maximum_ram_size": 49152, + "maximum_size": 262144, + "protocol": "cmsis-dap", + "protocols": [ + "cmsis-dap", + "jlink", + "stlink", + "blackmagic", + "serial", + "dfu" + ], + "require_upload_port": true, + "use_1200bps_touch": false, + "wait_for_upload_port": false + }, + "url": "http://www.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32f2-series/stm32f207/stm32f207vc.html", + "vendor": "Generic" +} diff --git a/buildroot/ldscripts/stm32f10x_0x3000_iap.ld b/buildroot/ldscripts/stm32f10x_0x3000_iap.ld new file mode 100644 index 0000000000..aa272e5169 --- /dev/null +++ b/buildroot/ldscripts/stm32f10x_0x3000_iap.ld @@ -0,0 +1,170 @@ +/* +***************************************************************************** +** +** File : stm32_flash.ld +** +** Abstract : Linker script for STM32F103VC Device with +** 256KByte FLASH, 48KByte RAM +** +** Set heap size, stack size and stack location according +** to application requirements. +** +** Set memory bank area and size if external memory is used. +** +** Target : STMicroelectronics STM32 +** +** Environment : Atollic TrueSTUDIO(R) +** +** Distribution: The file is distributed 揳s is, without any warranty +** of any kind. +** +** (c)Copyright Atollic AB. +** You may use this file as-is or modify it according to the needs of your +** project. Distribution of this file (unmodified or modified) is not +** permitted. Atollic AB permit registered Atollic TrueSTUDIO(R) users the +** rights to distribute the assembled, compiled & linked contents of this +** file as part of an application binary file, provided that it is built +** using the Atollic TrueSTUDIO(R) toolchain. +** +***************************************************************************** +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +/* Highest address of the user mode stack */ +_estack = 0x2000C000; /* end of 64K RAM */ + +/* Generate a link error if heap and stack don't fit into RAM */ +_Min_Heap_Size = 0x2000; /* required amount of heap */ +_Min_Stack_Size = 0x2000; /* required amount of stack */ + +/* Specify the memory areas */ +MEMORY +{ + FLASH (rx) : ORIGIN = 0x08003000, LENGTH = 256K - 12K + RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 48K + MEMORY_B1 (rx) : ORIGIN = 0x60000000, LENGTH = 0K +} + +/* Define output sections */ +SECTIONS +{ + /* The startup code goes first into FLASH */ + .isr_vector : + { + . = ALIGN(4); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + } >FLASH + + /* The program code and other data goes into FLASH */ + .text : + { + . = ALIGN(4); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + + KEEP (*(.init)) + KEEP (*(.fini)) + + . = ALIGN(4); + _etext = .; /* define a global symbols at end of code */ + } >FLASH + + + .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH + .ARM : { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } >FLASH + + .ARM.attributes : { *(.ARM.attributes) } > FLASH + + .preinit_array : + { + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + } >FLASH + .init_array : + { + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + } >FLASH + .fini_array : + { + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(.fini_array*)) + KEEP (*(SORT(.fini_array.*))) + PROVIDE_HIDDEN (__fini_array_end = .); + } >FLASH + + /* used by the startup to initialize data */ + _sidata = .; + + /* Initialized data sections goes into RAM, load LMA copy after code */ + .data : AT ( _sidata ) + { + . = ALIGN(4); + _sdata = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + + . = ALIGN(4); + _edata = .; /* define a global symbol at data end */ + } >RAM + + /* Uninitialized data section */ + . = ALIGN(4); + .bss : + { + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; /* define a global symbol at bss start */ + __bss_start__ = _sbss; + *(.bss) + *(.bss*) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end */ + __bss_end__ = _ebss; + } >RAM + + PROVIDE ( end = _ebss ); + PROVIDE ( _end = _ebss ); + + /* User_heap_stack section, used to check that there is enough RAM left */ + ._user_heap_stack : + { + . = ALIGN(4); + . = . + _Min_Heap_Size; + . = . + _Min_Stack_Size; + . = ALIGN(4); + } >RAM + + /* MEMORY_bank1 section, code must be located here explicitly */ + /* Example: extern int foo(void) __attribute__ ((section (".mb1text"))); */ + .memory_b1_text : + { + *(.mb1text) /* .mb1text sections (code) */ + *(.mb1text*) /* .mb1text* sections (code) */ + *(.mb1rodata) /* read-only data (constants) */ + *(.mb1rodata*) + } >MEMORY_B1 + + /* Remove information from the standard libraries */ + /DISCARD/ : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } +} diff --git a/buildroot/ldscripts/BIGTREE_TFT35_V1.ld b/buildroot/ldscripts/stm32f10x_0x6000_iap.ld similarity index 100% rename from buildroot/ldscripts/BIGTREE_TFT35_V1.ld rename to buildroot/ldscripts/stm32f10x_0x6000_iap.ld diff --git a/buildroot/ldscripts/stm32f2xx_0x8000_iap.ld b/buildroot/ldscripts/stm32f2xx_0x8000_iap.ld new file mode 100644 index 0000000000..68ff959993 --- /dev/null +++ b/buildroot/ldscripts/stm32f2xx_0x8000_iap.ld @@ -0,0 +1,170 @@ +/* +***************************************************************************** +** +** File : stm32_flash.ld +** +** Abstract : Linker script for STM32F103VC Device with +** 256KByte FLASH, 48KByte RAM +** +** Set heap size, stack size and stack location according +** to application requirements. +** +** Set memory bank area and size if external memory is used. +** +** Target : STMicroelectronics STM32 +** +** Environment : Atollic TrueSTUDIO(R) +** +** Distribution: The file is distributed 揳s is, without any warranty +** of any kind. +** +** (c)Copyright Atollic AB. +** You may use this file as-is or modify it according to the needs of your +** project. Distribution of this file (unmodified or modified) is not +** permitted. Atollic AB permit registered Atollic TrueSTUDIO(R) users the +** rights to distribute the assembled, compiled & linked contents of this +** file as part of an application binary file, provided that it is built +** using the Atollic TrueSTUDIO(R) toolchain. +** +***************************************************************************** +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +/* Highest address of the user mode stack */ +_estack = 0x2000C000; /* end of 64K RAM */ + +/* Generate a link error if heap and stack don't fit into RAM */ +_Min_Heap_Size = 0x2000; /* required amount of heap */ +_Min_Stack_Size = 0x2000; /* required amount of stack */ + +/* Specify the memory areas */ +MEMORY +{ + FLASH (rx) : ORIGIN = 0x08008000, LENGTH = 256K - 32K + RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 48K + MEMORY_B1 (rx) : ORIGIN = 0x60000000, LENGTH = 0K +} + +/* Define output sections */ +SECTIONS +{ + /* The startup code goes first into FLASH */ + .isr_vector : + { + . = ALIGN(4); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + } >FLASH + + /* The program code and other data goes into FLASH */ + .text : + { + . = ALIGN(4); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + + KEEP (*(.init)) + KEEP (*(.fini)) + + . = ALIGN(4); + _etext = .; /* define a global symbols at end of code */ + } >FLASH + + + .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH + .ARM : { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } >FLASH + + .ARM.attributes : { *(.ARM.attributes) } > FLASH + + .preinit_array : + { + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + } >FLASH + .init_array : + { + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + } >FLASH + .fini_array : + { + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(.fini_array*)) + KEEP (*(SORT(.fini_array.*))) + PROVIDE_HIDDEN (__fini_array_end = .); + } >FLASH + + /* used by the startup to initialize data */ + _sidata = .; + + /* Initialized data sections goes into RAM, load LMA copy after code */ + .data : AT ( _sidata ) + { + . = ALIGN(4); + _sdata = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + + . = ALIGN(4); + _edata = .; /* define a global symbol at data end */ + } >RAM + + /* Uninitialized data section */ + . = ALIGN(4); + .bss : + { + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; /* define a global symbol at bss start */ + __bss_start__ = _sbss; + *(.bss) + *(.bss*) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end */ + __bss_end__ = _ebss; + } >RAM + + PROVIDE ( end = _ebss ); + PROVIDE ( _end = _ebss ); + + /* User_heap_stack section, used to check that there is enough RAM left */ + ._user_heap_stack : + { + . = ALIGN(4); + . = . + _Min_Heap_Size; + . = . + _Min_Stack_Size; + . = ALIGN(4); + } >RAM + + /* MEMORY_bank1 section, code must be located here explicitly */ + /* Example: extern int foo(void) __attribute__ ((section (".mb1text"))); */ + .memory_b1_text : + { + *(.mb1text) /* .mb1text sections (code) */ + *(.mb1text*) /* .mb1text* sections (code) */ + *(.mb1rodata) /* read-only data (constants) */ + *(.mb1rodata*) + } >MEMORY_B1 + + /* Remove information from the standard libraries */ + /DISCARD/ : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } +} diff --git a/buildroot/scripts/stm32f10x_0x3000_iap.py b/buildroot/scripts/stm32f10x_0x3000_iap.py new file mode 100644 index 0000000000..556dd2d52b --- /dev/null +++ b/buildroot/scripts/stm32f10x_0x3000_iap.py @@ -0,0 +1,8 @@ +Import("env") + +# Relocate firmware from 0x08000000 to 0x08003000 +for define in env['CPPDEFINES']: + if define[0] == "VECT_TAB_ADDR": + env['CPPDEFINES'].remove(define) +env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08003000")) +env.Replace(LDSCRIPT_PATH="buildroot/ldscripts/stm32f10x_0x3000_iap.ld") diff --git a/buildroot/scripts/iap.py b/buildroot/scripts/stm32f10x_0x6000_iap.py similarity index 76% rename from buildroot/scripts/iap.py rename to buildroot/scripts/stm32f10x_0x6000_iap.py index bcdaa2eca1..90ea1176f1 100644 --- a/buildroot/scripts/iap.py +++ b/buildroot/scripts/stm32f10x_0x6000_iap.py @@ -5,4 +5,4 @@ if define[0] == "VECT_TAB_ADDR": env['CPPDEFINES'].remove(define) env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08006000")) -env.Replace(LDSCRIPT_PATH="buildroot/ldscripts/BIGTREE_TFT35_V1.ld") +env.Replace(LDSCRIPT_PATH="buildroot/ldscripts/stm32f10x_0x6000_iap.ld") diff --git a/platformio.ini b/platformio.ini index ba44521832..7153fc6362 100644 --- a/platformio.ini +++ b/platformio.ini @@ -15,20 +15,16 @@ build_dir = .pioenvs lib_dir = .piolib libdeps_dir = .piolibdeps boards_dir = buildroot/boards -env_default = BIGTREE_TFT35_V1_2 +env_default = BIGTREE_TFT35_V2_0 [common] -default_src_filter = + - -extra_scripts = pre:buildroot/scripts/custom_filename.py - buildroot/scripts/iap.py +default_src_filter = + - - build_flags = -fmax-errors=5 -g -ggdb -DUSE_STDPERIPH_DRIVER= -D__STATIC_INLINE= - -ITFT/src/Libraries/cmsis - -ITFT/src/Libraries/fwlib - -ITFT/src/Libraries/fwlib/inc + -ITFT/src/Libraries/cmsis/Core-CM3 -ITFT/src/User/Fatfs -ITFT/src/User/Hal -ITFT/src/User/Menu @@ -38,25 +34,34 @@ build_flags = -fmax-errors=5 -ITFT/src/User/API/Gcode -ITFT/src/User/API/Language -ITFT/src/User/API/Vfs - -ITFT/src/User/STM32_USB_HOST_Library/Core/inc - -ITFT/src/User/STM32_USB_HOST_Library/Class/MSC/inc - -ITFT/src/User/STM32_USB_HOST_Library/Usr/inc - -ITFT/src/User/STM32_USB_OTG_Driver/inc - -DSOFTWARE_VERSION=21 + -ITFT/src/User/Hal + -ITFT/src/User/Hal/STM32_USB_HOST_Library/Core/inc + -ITFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/inc + -ITFT/src/User/Hal/STM32_USB_HOST_Library/Usr/inc + -ITFT/src/User/Hal/STM32_USB_OTG_Driver/inc + -DSOFTWARE_VERSION=22 + +[stm32f10x] +default_src_filter = + + + +build_flags = -ITFT/src/Libraries/cmsis/stm32f10x + -ITFT/src/Libraries/fwlib/stm32f10x + -ITFT/src/Libraries/fwlib/stm32f10x/inc + -ITFT/src/User/Hal/stm32f10x # -# BIGTREE_TFT35_V1.2 +# BIGTREE_TFT35_V1.0 # -[env:BIGTREE_TFT35_V1_2] +[env:BIGTREE_TFT35_V1_0] platform = ststm32 framework = stm32cube board = STM32F103VC upload_protocol = cmsis-dap -src_filter = ${common.default_src_filter} + -extra_scripts = ${common.extra_scripts} -build_flags = ${common.build_flags} - -DHARDWARE="BIQU_TFT35_V1.2" - -DTFT35_V1_2= +src_filter = ${common.default_src_filter} +${stm32f10x.default_src_filter} + +extra_scripts = pre:buildroot/scripts/custom_filename.py + buildroot/scripts/stm32f10x_0x6000_iap.py +build_flags = ${common.build_flags} ${stm32f10x.build_flags} + -DHARDWARE="BIQU_TFT35_V1.0" + -DTFT35_V1_0= # # BIGTREE_TFT35_V1.1 @@ -66,25 +71,42 @@ platform = ststm32 framework = stm32cube board = STM32F103VC upload_protocol = cmsis-dap -src_filter = ${common.default_src_filter} + -extra_scripts = ${common.extra_scripts} -build_flags = ${common.build_flags} +src_filter = ${common.default_src_filter} +${stm32f10x.default_src_filter} + +extra_scripts = pre:buildroot/scripts/custom_filename.py + buildroot/scripts/stm32f10x_0x6000_iap.py +build_flags = ${common.build_flags} ${stm32f10x.build_flags} -DHARDWARE="BIQU_TFT35_V1.1" -DTFT35_V1_1= # -# BIGTREE_TFT35_V1.0 +# BIGTREE_TFT35_V1.2 # -[env:BIGTREE_TFT35_V1_0] +[env:BIGTREE_TFT35_V1_2] platform = ststm32 framework = stm32cube board = STM32F103VC upload_protocol = cmsis-dap -src_filter = ${common.default_src_filter} + -extra_scripts = ${common.extra_scripts} -build_flags = ${common.build_flags} - -DHARDWARE="BIQU_TFT35_V1.0" - -DTFT35_V1_0= +src_filter = ${common.default_src_filter} +${stm32f10x.default_src_filter} + +extra_scripts = pre:buildroot/scripts/custom_filename.py + buildroot/scripts/stm32f10x_0x6000_iap.py +build_flags = ${common.build_flags} ${stm32f10x.build_flags} + -DHARDWARE="BIQU_TFT35_V1.2" + -DTFT35_V1_2= + +# +# BIGTREE_TFT35_V2.0 +# +[env:BIGTREE_TFT35_V2_0] +platform = ststm32 +framework = stm32cube +board = STM32F103VC +upload_protocol = cmsis-dap +src_filter = ${common.default_src_filter} +${stm32f10x.default_src_filter} + +extra_scripts = pre:buildroot/scripts/custom_filename.py + buildroot/scripts/stm32f10x_0x3000_iap.py +build_flags = ${common.build_flags} ${stm32f10x.build_flags} + -DHARDWARE="BIQU_TFT35_APP1_V2.0" + -DTFT35_V2_0= # # BIGTREE_TFT28 @@ -94,13 +116,14 @@ platform = ststm32 framework = stm32cube board = STM32F103VC upload_protocol = cmsis-dap -src_filter = ${common.default_src_filter} + -extra_scripts = ${common.extra_scripts} -build_flags = ${common.build_flags} +src_filter = ${common.default_src_filter} +${stm32f10x.default_src_filter} + +extra_scripts = pre:buildroot/scripts/custom_filename.py + buildroot/scripts/stm32f10x_0x6000_iap.py +build_flags = ${common.build_flags} ${stm32f10x.build_flags} -DHARDWARE="BIQU_TFT28_V1.0" -DTFT28= - # +# # BIGTREE_TFT24_V1_1 # [env:BIGTREE_TFT24_V1_1] @@ -108,8 +131,9 @@ platform = ststm32 framework = stm32cube board = STM32F105RC upload_protocol = cmsis-dap -src_filter = ${common.default_src_filter} + -extra_scripts = ${common.extra_scripts} -build_flags = ${common.build_flags} +src_filter = ${common.default_src_filter} +${stm32f10x.default_src_filter} + +extra_scripts = pre:buildroot/scripts/custom_filename.py + buildroot/scripts/stm32f10x_0x6000_iap.py +build_flags = ${common.build_flags} ${stm32f10x.build_flags} -DHARDWARE="BIGTREE_TFT24_V1.1" - -DTFT24_V1_1= \ No newline at end of file + -DTFT24_V1_1=

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