├── .cproject
├── .gitattributes
├── .gitignore
├── .mxproject
├── .project
├── .settings
├── com.atollic.truestudio.debug.hardware_device.prefs
├── language.settings.xml
├── org.eclipse.cdt.managedbuilder.core.prefs
└── org.eclipse.core.resources.prefs
├── Debug
├── Drivers
│ └── STM32F7xx_HAL_Driver
│ │ └── Src
│ │ ├── stm32f7xx_hal.su
│ │ ├── stm32f7xx_hal_cortex.su
│ │ ├── stm32f7xx_hal_dcmi.su
│ │ ├── stm32f7xx_hal_dcmi_ex.su
│ │ ├── stm32f7xx_hal_dma.su
│ │ ├── stm32f7xx_hal_dma_ex.su
│ │ ├── stm32f7xx_hal_eth.su
│ │ ├── stm32f7xx_hal_flash.su
│ │ ├── stm32f7xx_hal_flash_ex.su
│ │ ├── stm32f7xx_hal_gpio.su
│ │ ├── stm32f7xx_hal_i2c.su
│ │ ├── stm32f7xx_hal_i2c_ex.su
│ │ ├── stm32f7xx_hal_pcd.su
│ │ ├── stm32f7xx_hal_pcd_ex.su
│ │ ├── stm32f7xx_hal_pwr.su
│ │ ├── stm32f7xx_hal_pwr_ex.su
│ │ ├── stm32f7xx_hal_rcc.su
│ │ ├── stm32f7xx_hal_rcc_ex.su
│ │ ├── stm32f7xx_hal_tim.su
│ │ ├── stm32f7xx_hal_tim_ex.su
│ │ ├── stm32f7xx_hal_uart.su
│ │ └── stm32f7xx_ll_usb.su
├── Src
│ ├── main.su
│ ├── ov2640.su
│ ├── stm32f7xx_hal_msp.su
│ ├── stm32f7xx_it.su
│ └── system_stm32f7xx.su
├── Test_DCMI.elf
├── Test_DCMI.hex
├── Test_DCMI.list
└── Test_DCMI.map
├── Documentation.pdf
├── Drivers
├── CMSIS
│ ├── Device
│ │ └── ST
│ │ │ └── STM32F7xx
│ │ │ └── Include
│ │ │ ├── stm32f767xx.h
│ │ │ ├── stm32f7xx.h
│ │ │ └── system_stm32f7xx.h
│ └── Include
│ │ ├── arm_common_tables.h
│ │ ├── arm_const_structs.h
│ │ ├── arm_math.h
│ │ ├── cmsis_armcc.h
│ │ ├── cmsis_armcc_V6.h
│ │ ├── cmsis_armclang.h
│ │ ├── cmsis_compiler.h
│ │ ├── cmsis_gcc.h
│ │ ├── cmsis_iccarm.h
│ │ ├── cmsis_version.h
│ │ ├── core_armv8mbl.h
│ │ ├── core_armv8mml.h
│ │ ├── core_cm0.h
│ │ ├── core_cm0plus.h
│ │ ├── core_cm1.h
│ │ ├── core_cm23.h
│ │ ├── core_cm3.h
│ │ ├── core_cm33.h
│ │ ├── core_cm4.h
│ │ ├── core_cm7.h
│ │ ├── core_cmFunc.h
│ │ ├── core_cmInstr.h
│ │ ├── core_cmSimd.h
│ │ ├── core_sc000.h
│ │ ├── core_sc300.h
│ │ ├── mpu_armv7.h
│ │ ├── mpu_armv8.h
│ │ └── tz_context.h
└── STM32F7xx_HAL_Driver
│ ├── Inc
│ ├── Legacy
│ │ └── stm32_hal_legacy.h
│ ├── stm32f7xx_hal.h
│ ├── stm32f7xx_hal_cortex.h
│ ├── stm32f7xx_hal_dcmi.h
│ ├── stm32f7xx_hal_dcmi_ex.h
│ ├── stm32f7xx_hal_def.h
│ ├── stm32f7xx_hal_dma.h
│ ├── stm32f7xx_hal_dma_ex.h
│ ├── stm32f7xx_hal_exti.h
│ ├── stm32f7xx_hal_flash.h
│ ├── stm32f7xx_hal_flash_ex.h
│ ├── stm32f7xx_hal_gpio.h
│ ├── stm32f7xx_hal_gpio_ex.h
│ ├── stm32f7xx_hal_i2c.h
│ ├── stm32f7xx_hal_i2c_ex.h
│ ├── stm32f7xx_hal_pwr.h
│ ├── stm32f7xx_hal_pwr_ex.h
│ ├── stm32f7xx_hal_rcc.h
│ ├── stm32f7xx_hal_rcc_ex.h
│ ├── stm32f7xx_hal_tim.h
│ ├── stm32f7xx_hal_tim_ex.h
│ ├── stm32f7xx_hal_uart.h
│ └── stm32f7xx_hal_uart_ex.h
│ └── Src
│ ├── stm32f7xx_hal.c
│ ├── stm32f7xx_hal_cortex.c
│ ├── stm32f7xx_hal_dcmi.c
│ ├── stm32f7xx_hal_dcmi_ex.c
│ ├── stm32f7xx_hal_dma.c
│ ├── stm32f7xx_hal_dma_ex.c
│ ├── stm32f7xx_hal_exti.c
│ ├── stm32f7xx_hal_flash.c
│ ├── stm32f7xx_hal_flash_ex.c
│ ├── stm32f7xx_hal_gpio.c
│ ├── stm32f7xx_hal_i2c.c
│ ├── stm32f7xx_hal_i2c_ex.c
│ ├── stm32f7xx_hal_pwr.c
│ ├── stm32f7xx_hal_pwr_ex.c
│ ├── stm32f7xx_hal_rcc.c
│ ├── stm32f7xx_hal_rcc_ex.c
│ ├── stm32f7xx_hal_tim.c
│ ├── stm32f7xx_hal_tim_ex.c
│ ├── stm32f7xx_hal_uart.c
│ └── stm32f7xx_hal_uart_ex.c
├── Inc
├── main.h
├── ov2640.h
├── stm32f7xx_hal_conf.h
└── stm32f7xx_it.h
├── LICENSE
├── README.md
├── STM32F767ZI_FLASH.ld
├── Src
├── main.c
├── ov2640.c
├── stm32f7xx_hal_msp.c
├── stm32f7xx_it.c
└── system_stm32f7xx.c
├── Test_DCMI.elf.launch
├── Test_DCMI.ioc
├── Test_DCMI.launch
├── Test_DCMI_converter.log
├── mx.scratch
├── readme
├── 1.png
├── 2.png
├── 3.png
├── 4.png
├── 5.png
├── 6.png
├── 7.jpg
├── FullRes.jpg
└── MinRes.jpg
├── startup
└── startup_stm32f767xx.s
└── syscalls.c
/.gitattributes:
--------------------------------------------------------------------------------
1 | Src/* linguist-generated=true
2 | Inc/* linguist-generated=true
3 | *.c linguist-language=c
4 | *.h linguist-language=c
5 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Prerequisites
2 | *.d
3 |
4 | # Compiled Object files
5 | *.slo
6 | *.lo
7 | *.o
8 | *.obj
9 |
10 | # Precompiled Headers
11 | *.gch
12 | *.pch
13 |
14 | # Compiled Dynamic libraries
15 | *.so
16 | *.dylib
17 | *.dll
18 |
19 | # Fortran module files
20 | *.mod
21 | *.smod
22 |
23 | # Compiled Static libraries
24 | *.lai
25 | *.la
26 | *.a
27 | *.lib
28 |
29 | # Executables
30 | *.exe
31 | *.out
32 | *.app
33 |
--------------------------------------------------------------------------------
/.mxproject:
--------------------------------------------------------------------------------
1 | [PreviousGenFiles]
2 | HeaderPath=E:/githebn/Test_DCMI/Inc
3 | HeaderFiles=stm32f7xx_it.h;stm32f7xx_hal_conf.h;main.h;
4 | SourcePath=E:/githebn/Test_DCMI/Src
5 | SourceFiles=stm32f7xx_it.c;stm32f7xx_hal_msp.c;main.c;
6 |
7 | [PreviousLibFiles]
8 | LibFiles=Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_cortex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dcmi.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dcmi_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_i2c.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_i2c_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_tim.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_tim_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_uart.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_uart_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_rcc.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_rcc_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_flash.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_flash_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_gpio.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_gpio_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dma.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dma_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_pwr.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_pwr_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_def.h;Drivers/STM32F7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_cortex.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dcmi.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dcmi_ex.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c_ex.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim_ex.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc_ex.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash_ex.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_gpio.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma_ex.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr_ex.c;Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal.c;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_cortex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dcmi.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dcmi_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_i2c.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_i2c_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_tim.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_tim_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_uart.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_uart_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_rcc.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_rcc_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_flash.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_flash_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_gpio.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_gpio_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dma.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dma_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_pwr.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_pwr_ex.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal.h;Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_def.h;Drivers/STM32F7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f767xx.h;Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f7xx.h;Drivers/CMSIS/Device/ST/STM32F7xx/Include/system_stm32f7xx.h;Drivers/CMSIS/Device/ST/STM32F7xx/Source/Templates/system_stm32f7xx.c;Drivers/CMSIS/Include/arm_common_tables.h;Drivers/CMSIS/Include/arm_const_structs.h;Drivers/CMSIS/Include/arm_math.h;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/cmsis_armcc_V6.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/core_cmFunc.h;Drivers/CMSIS/Include/core_cmInstr.h;Drivers/CMSIS/Include/core_cmSimd.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_sc300.h;
9 |
10 | [PreviousUsedTStudioFiles]
11 | SourceFiles=..\Src\main.c;..\Src\stm32f7xx_it.c;..\Src\stm32f7xx_hal_msp.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_cortex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dcmi.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dcmi_ex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c_ex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim_ex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc_ex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash_ex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_gpio.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma_ex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr_ex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal.c;../\Src/system_stm32f7xx.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_cortex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dcmi.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dcmi_ex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c_ex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim_ex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc_ex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash_ex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_gpio.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma_ex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr_ex.c;../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal.c;../\Src/system_stm32f7xx.c;../Drivers/CMSIS/Device/ST/STM32F7xx/Source/Templates/system_stm32f7xx.c;E:/githebn/Test_DCMI//startup/startup_stm32f767xx.s;
12 | HeaderPath=..\Drivers\STM32F7xx_HAL_Driver\Inc;..\Drivers\STM32F7xx_HAL_Driver\Inc\Legacy;..\Drivers\CMSIS\Device\ST\STM32F7xx\Include;..\Drivers\CMSIS\Include;..\Inc;
13 | CDefines=__weak:__attribute__((weak));__packed:__attribute__((__packed__));
14 |
15 |
--------------------------------------------------------------------------------
/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | Test_DCMI
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder
10 | clean,full,incremental,
11 |
12 |
13 | ?children?
14 | ?name?=outputEntries\|?children?=?name?=entry\\\\\\\|\\\|\||
15 |
16 |
17 | ?name?
18 |
19 |
20 |
21 | org.eclipse.cdt.make.core.append_environment
22 | true
23 |
24 |
25 | org.eclipse.cdt.make.core.buildArguments
26 |
27 |
28 |
29 | org.eclipse.cdt.make.core.buildCommand
30 | make
31 |
32 |
33 | org.eclipse.cdt.make.core.buildLocation
34 | ${workspace_loc:/STM32100B-EVAL/Debug}
35 |
36 |
37 | org.eclipse.cdt.make.core.contents
38 | org.eclipse.cdt.make.core.activeConfigSettings
39 |
40 |
41 | org.eclipse.cdt.make.core.enableAutoBuild
42 | false
43 |
44 |
45 | org.eclipse.cdt.make.core.enableCleanBuild
46 | true
47 |
48 |
49 | org.eclipse.cdt.make.core.enableFullBuild
50 | true
51 |
52 |
53 | org.eclipse.cdt.make.core.stopOnError
54 | true
55 |
56 |
57 | org.eclipse.cdt.make.core.useDefaultBuildCmd
58 | true
59 |
60 |
61 |
62 |
63 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
64 |
65 |
66 |
67 |
68 |
69 | org.eclipse.cdt.core.cnature
70 | org.eclipse.cdt.managedbuilder.core.managedBuildNature
71 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
72 |
73 |
74 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/.settings/com.atollic.truestudio.debug.hardware_device.prefs:
--------------------------------------------------------------------------------
1 | BOARD=None
2 | CODE_LOCATION=FLASH
3 | ENDIAN=Little-endian
4 | MCU=STM32F767ZI
5 | MCU_VENDOR=STMicroelectronics
6 | MODEL=Lite
7 | PROBE=ST-LINK
8 | PROJECT_FORMAT_VERSION=2
9 | TARGET=ARM\u00AE
10 | VERSION=4.1.0
11 | eclipse.preferences.version=1
12 |
--------------------------------------------------------------------------------
/.settings/language.settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/.settings/org.eclipse.cdt.managedbuilder.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.1518366166/CPATH/delimiter=;
3 | environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.1518366166/CPATH/operation=remove
4 | environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.1518366166/C_INCLUDE_PATH/delimiter=;
5 | environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.1518366166/C_INCLUDE_PATH/operation=remove
6 | environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.1518366166/append=true
7 | environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.1518366166/appendContributed=true
8 | environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.1518366166/LIBRARY_PATH/delimiter=;
9 | environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.1518366166/LIBRARY_PATH/operation=remove
10 | environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.1518366166/append=true
11 | environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.1518366166/appendContributed=true
12 |
--------------------------------------------------------------------------------
/.settings/org.eclipse.core.resources.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | encoding//Src/ov2640.c=UTF-8
3 |
--------------------------------------------------------------------------------
/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal.su:
--------------------------------------------------------------------------------
1 | stm32f7xx_hal.c:213:13:HAL_MspInit 0 static
2 | stm32f7xx_hal.c:224:13:HAL_MspDeInit 0 static
3 | stm32f7xx_hal.c:184:19:HAL_DeInit 8 static
4 | stm32f7xx_hal.c:247:26:HAL_InitTick 16 static
5 | stm32f7xx_hal.c:154:19:HAL_Init 8 static
6 | stm32f7xx_hal.c:306:13:HAL_IncTick 0 static
7 | stm32f7xx_hal.c:317:17:HAL_GetTick 0 static
8 | stm32f7xx_hal.c:326:10:HAL_GetTickPrio 0 static
9 | stm32f7xx_hal.c:335:19:HAL_SetTickFreq 8 static
10 | stm32f7xx_hal.c:355:21:HAL_GetTickFreq 0 static
11 | stm32f7xx_hal.c:371:13:HAL_Delay 16 static
12 | stm32f7xx_hal.c:397:13:HAL_SuspendTick 0 static
13 | stm32f7xx_hal.c:413:13:HAL_ResumeTick 0 static
14 | stm32f7xx_hal.c:423:10:HAL_GetHalVersion 0 static
15 | stm32f7xx_hal.c:432:10:HAL_GetREVID 0 static
16 | stm32f7xx_hal.c:441:10:HAL_GetDEVID 0 static
17 | stm32f7xx_hal.c:450:10:HAL_GetUIDw0 0 static
18 | stm32f7xx_hal.c:459:10:HAL_GetUIDw1 0 static
19 | stm32f7xx_hal.c:468:10:HAL_GetUIDw2 0 static
20 | stm32f7xx_hal.c:477:6:HAL_DBGMCU_EnableDBGSleepMode 0 static
21 | stm32f7xx_hal.c:486:6:HAL_DBGMCU_DisableDBGSleepMode 0 static
22 | stm32f7xx_hal.c:495:6:HAL_DBGMCU_EnableDBGStopMode 0 static
23 | stm32f7xx_hal.c:504:6:HAL_DBGMCU_DisableDBGStopMode 0 static
24 | stm32f7xx_hal.c:513:6:HAL_DBGMCU_EnableDBGStandbyMode 0 static
25 | stm32f7xx_hal.c:522:6:HAL_DBGMCU_DisableDBGStandbyMode 0 static
26 | stm32f7xx_hal.c:533:6:HAL_EnableCompensationCell 0 static
27 | stm32f7xx_hal.c:544:6:HAL_DisableCompensationCell 0 static
28 | stm32f7xx_hal.c:557:6:HAL_EnableFMCMemorySwapping 0 static
29 | stm32f7xx_hal.c:570:6:HAL_DisableFMCMemorySwapping 0 static
30 | stm32f7xx_hal.c:587:6:HAL_EnableMemorySwappingBank 0 static
31 | stm32f7xx_hal.c:602:6:HAL_DisableMemorySwappingBank 0 static
32 |
--------------------------------------------------------------------------------
/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_cortex.su:
--------------------------------------------------------------------------------
1 | stm32f7xx_hal_cortex.c:159:6:HAL_NVIC_SetPriorityGrouping 0 static
2 | stm32f7xx_hal_cortex.c:181:6:HAL_NVIC_SetPriority 12 static
3 | stm32f7xx_hal_cortex.c:203:6:HAL_NVIC_EnableIRQ 0 static
4 | stm32f7xx_hal_cortex.c:219:6:HAL_NVIC_DisableIRQ 0 static
5 | stm32f7xx_hal_cortex.c:232:6:HAL_NVIC_SystemReset 0 static
6 | stm32f7xx_hal_cortex.c:245:10:HAL_SYSTICK_Config 0 static
7 | stm32f7xx_hal_cortex.c:274:6:HAL_MPU_Disable 0 static
8 | stm32f7xx_hal_cortex.c:297:6:HAL_MPU_Enable 0 static
9 | stm32f7xx_hal_cortex.c:316:6:HAL_MPU_ConfigRegion 8 static
10 | stm32f7xx_hal_cortex.c:360:10:HAL_NVIC_GetPriorityGrouping 0 static
11 | stm32f7xx_hal_cortex.c:387:6:HAL_NVIC_GetPriority 16 static
12 | stm32f7xx_hal_cortex.c:402:6:HAL_NVIC_SetPendingIRQ 0 static
13 | stm32f7xx_hal_cortex.c:420:10:HAL_NVIC_GetPendingIRQ 0 static
14 | stm32f7xx_hal_cortex.c:436:6:HAL_NVIC_ClearPendingIRQ 0 static
15 | stm32f7xx_hal_cortex.c:453:10:HAL_NVIC_GetActive 0 static
16 | stm32f7xx_hal_cortex.c:470:6:HAL_SYSTICK_CLKSourceConfig 0 static
17 | stm32f7xx_hal_cortex.c:497:13:HAL_SYSTICK_Callback 0 static
18 | stm32f7xx_hal_cortex.c:488:6:HAL_SYSTICK_IRQHandler 8 static
19 |
--------------------------------------------------------------------------------
/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dcmi.su:
--------------------------------------------------------------------------------
1 | stm32f7xx_hal_dcmi.c:806:13:DCMI_DMAXferCplt 8 static
2 | stm32f7xx_hal_dcmi.c:239:13:HAL_DCMI_MspInit 0 static
3 | stm32f7xx_hal_dcmi.c:143:19:HAL_DCMI_Init 16 static
4 | stm32f7xx_hal_dcmi.c:255:13:HAL_DCMI_MspDeInit 0 static
5 | stm32f7xx_hal_dcmi.c:216:19:HAL_DCMI_DeInit 8 static
6 | stm32f7xx_hal_dcmi.c:294:19:HAL_DCMI_Start_DMA 32 static
7 | stm32f7xx_hal_dcmi.c:377:19:HAL_DCMI_Stop 16 static
8 | stm32f7xx_hal_dcmi.c:430:19:HAL_DCMI_Suspend 0 static
9 | stm32f7xx_hal_dcmi.c:476:19:HAL_DCMI_Resume 0 static
10 | stm32f7xx_hal_dcmi.c:587:13:HAL_DCMI_ErrorCallback 0 static
11 | stm32f7xx_hal_dcmi.c:863:13:DCMI_DMAError 8 static
12 | stm32f7xx_hal_dcmi.c:603:13:HAL_DCMI_LineEventCallback 0 static
13 | stm32f7xx_hal_dcmi.c:616:13:HAL_DCMI_VsyncEventCallback 0 static
14 | stm32f7xx_hal_dcmi.c:632:13:HAL_DCMI_FrameEventCallback 0 static
15 | stm32f7xx_hal_dcmi.c:502:6:HAL_DCMI_IRQHandler 16 static
16 | stm32f7xx_hal_dcmi.c:672:19:HAL_DCMI_ConfigCrop 12 static
17 | stm32f7xx_hal_dcmi.c:705:19:HAL_DCMI_DisableCrop 0 static
18 | stm32f7xx_hal_dcmi.c:731:19:HAL_DCMI_EnableCrop 0 static
19 | stm32f7xx_hal_dcmi.c:777:23:HAL_DCMI_GetState 0 static
20 | stm32f7xx_hal_dcmi.c:788:10:HAL_DCMI_GetError 0 static
21 |
--------------------------------------------------------------------------------
/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dcmi_ex.su:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimpleMethod/STM32-OV2640/843864d2e7246e003addb0a3829ca20914ab06e2/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dcmi_ex.su
--------------------------------------------------------------------------------
/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma.su:
--------------------------------------------------------------------------------
1 | stm32f7xx_hal_dma.c:1202:17:DMA_CalcBaseAndBitshift 0 static
2 | stm32f7xx_hal_dma.c:188:19:HAL_DMA_Init 16 static
3 | stm32f7xx_hal_dma.c:327:19:HAL_DMA_DeInit 16 static
4 | stm32f7xx_hal_dma.c:425:19:HAL_DMA_Start 12 static
5 | stm32f7xx_hal_dma.c:469:19:HAL_DMA_Start_IT 16 static
6 | stm32f7xx_hal_dma.c:532:19:HAL_DMA_Abort 16 static
7 | stm32f7xx_hal_dma.c:599:19:HAL_DMA_Abort_IT 0 static
8 | stm32f7xx_hal_dma.c:629:19:HAL_DMA_PollForTransfer 40 static
9 | stm32f7xx_hal_dma.c:765:6:HAL_DMA_IRQHandler 32 static
10 | stm32f7xx_hal_dma.c:986:19:HAL_DMA_RegisterCallback 8 static
11 | stm32f7xx_hal_dma.c:1046:19:HAL_DMA_UnRegisterCallback 0 static
12 | stm32f7xx_hal_dma.c:1131:22:HAL_DMA_GetState 0 static
13 | stm32f7xx_hal_dma.c:1142:10:HAL_DMA_GetError 0 static
14 |
--------------------------------------------------------------------------------
/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma_ex.su:
--------------------------------------------------------------------------------
1 | stm32f7xx_hal_dma_ex.c:119:19:HAL_DMAEx_MultiBufferStart 12 static
2 | stm32f7xx_hal_dma_ex.c:173:19:HAL_DMAEx_MultiBufferStart_IT 16 static
3 | stm32f7xx_hal_dma_ex.c:251:19:HAL_DMAEx_ChangeMemory 0 static
4 |
--------------------------------------------------------------------------------
/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_eth.su:
--------------------------------------------------------------------------------
1 | stm32f7xx_hal_eth.c:2015:13:ETH_FlushTransmitFIFO 24 static
2 | stm32f7xx_hal_eth.c:1600:13:ETH_MACDMAConfig 16 static
3 | stm32f7xx_hal_eth.c:472:19:HAL_ETH_DMATxDescListInit 20 static
4 | stm32f7xx_hal_eth.c:539:19:HAL_ETH_DMARxDescListInit 24 static
5 | stm32f7xx_hal_eth.c:606:13:HAL_ETH_MspInit 0 static
6 | stm32f7xx_hal_eth.c:622:13:HAL_ETH_MspDeInit 0 static
7 | stm32f7xx_hal_eth.c:445:19:HAL_ETH_DeInit 8 static
8 | stm32f7xx_hal_eth.c:666:19:HAL_ETH_TransmitFrame 20 static
9 | stm32f7xx_hal_eth.c:779:19:HAL_ETH_GetReceivedFrame 12 static
10 | stm32f7xx_hal_eth.c:859:19:HAL_ETH_GetReceivedFrame_IT 12 static
11 | stm32f7xx_hal_eth.c:1004:13:HAL_ETH_TxCpltCallback 0 static
12 | stm32f7xx_hal_eth.c:1020:13:HAL_ETH_RxCpltCallback 0 static
13 | stm32f7xx_hal_eth.c:1036:13:HAL_ETH_ErrorCallback 0 static
14 | stm32f7xx_hal_eth.c:944:6:HAL_ETH_IRQHandler 16 static
15 | stm32f7xx_hal_eth.c:1058:19:HAL_ETH_ReadPHYRegister 24 static
16 | stm32f7xx_hal_eth.c:1130:19:HAL_ETH_WritePHYRegister 16 static
17 | stm32f7xx_hal_eth.c:172:19:HAL_ETH_Init 32 static
18 | stm32f7xx_hal_eth.c:1222:19:HAL_ETH_Start 24 static
19 | stm32f7xx_hal_eth.c:1261:19:HAL_ETH_Stop 24 static
20 | stm32f7xx_hal_eth.c:1301:19:HAL_ETH_ConfigMAC 24 static
21 | stm32f7xx_hal_eth.c:1468:19:HAL_ETH_ConfigDMA 24 static
22 | stm32f7xx_hal_eth.c:1575:22:HAL_ETH_GetState 0 static
23 |
--------------------------------------------------------------------------------
/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.su:
--------------------------------------------------------------------------------
1 | stm32f7xx_hal_flash.c:669:13:FLASH_Program_DoubleWord 8 static
2 | stm32f7xx_hal_flash.c:701:13:FLASH_Program_Word 0 static
3 | stm32f7xx_hal_flash.c:730:13:FLASH_Program_HalfWord 0 static
4 | stm32f7xx_hal_flash.c:760:13:FLASH_Program_Byte 0 static
5 | stm32f7xx_hal_flash.c:781:13:FLASH_SetErrorCode 0 static
6 | stm32f7xx_hal_flash.c:249:19:HAL_FLASH_Program_IT 16 static
7 | stm32f7xx_hal_flash.c:446:13:HAL_FLASH_EndOfOperationCallback 0 static
8 | stm32f7xx_hal_flash.c:464:13:HAL_FLASH_OperationErrorCallback 0 static
9 | stm32f7xx_hal_flash.c:311:6:HAL_FLASH_IRQHandler 16 static
10 | stm32f7xx_hal_flash.c:496:19:HAL_FLASH_Unlock 0 static
11 | stm32f7xx_hal_flash.c:520:19:HAL_FLASH_Lock 0 static
12 | stm32f7xx_hal_flash.c:532:19:HAL_FLASH_OB_Unlock 0 static
13 | stm32f7xx_hal_flash.c:552:19:HAL_FLASH_OB_Lock 0 static
14 | stm32f7xx_hal_flash.c:600:10:HAL_FLASH_GetError 0 static
15 | stm32f7xx_hal_flash.c:614:19:FLASH_WaitForLastOperation 16 static
16 | stm32f7xx_hal_flash.c:180:19:HAL_FLASH_Program 24 static
17 | stm32f7xx_hal_flash.c:564:19:HAL_FLASH_OB_Launch 0 static
18 |
--------------------------------------------------------------------------------
/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash_ex.su:
--------------------------------------------------------------------------------
1 | stm32f7xx_hal_flash_ex.c:458:13:FLASH_MassErase 0 static
2 | stm32f7xx_hal_flash_ex.c:303:19:HAL_FLASHEx_OBProgram 16 static
3 | stm32f7xx_hal_flash_ex.c:402:6:HAL_FLASHEx_OBGetConfig 0 static
4 | stm32f7xx_hal_flash_ex.c:504:6:FLASH_Erase_Sector 0 static
5 | stm32f7xx_hal_flash_ex.c:174:19:HAL_FLASHEx_Erase 32 static
6 | stm32f7xx_hal_flash_ex.c:247:19:HAL_FLASHEx_Erase_IT 8 static
7 |
--------------------------------------------------------------------------------
/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_gpio.su:
--------------------------------------------------------------------------------
1 | stm32f7xx_hal_gpio.c:185:6:HAL_GPIO_Init 56 static
2 | stm32f7xx_hal_gpio.c:310:6:HAL_GPIO_DeInit 36 static
3 | stm32f7xx_hal_gpio.c:390:15:HAL_GPIO_ReadPin 0 static
4 | stm32f7xx_hal_gpio.c:424:6:HAL_GPIO_WritePin 0 static
5 | stm32f7xx_hal_gpio.c:446:6:HAL_GPIO_TogglePin 0 static
6 | stm32f7xx_hal_gpio.c:465:19:HAL_GPIO_LockPin 8 static
7 | stm32f7xx_hal_gpio.c:513:13:HAL_GPIO_EXTI_Callback 0 static
8 | stm32f7xx_hal_gpio.c:498:6:HAL_GPIO_EXTI_IRQHandler 8 static
9 |
--------------------------------------------------------------------------------
/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.su:
--------------------------------------------------------------------------------
1 | stm32f7xx_hal_i2c.c:4292:13:I2C_Flush_TXDR 0 static
2 | stm32f7xx_hal_i2c.c:4412:13:I2C_DMASlaveReceiveCplt 0 static
3 | stm32f7xx_hal_i2c.c:4709:13:I2C_TransferConfig 12 static
4 | stm32f7xx_hal_i2c.c:4728:26:I2C_Enable_IRQ 12 static
5 | stm32f7xx_hal_i2c.c:4801:26:I2C_Disable_IRQ 0 static
6 | stm32f7xx_hal_i2c.c:4480:26:I2C_WaitOnFlagUntilTimeout 24 static
7 | stm32f7xx_hal_i2c.c:4313:13:I2C_DMAMasterTransmitCplt 8 static
8 | stm32f7xx_hal_i2c.c:4370:13:I2C_DMAMasterReceiveCplt 8 static
9 | stm32f7xx_hal_i2c.c:4643:26:I2C_IsAcknowledgeFailed 16 static
10 | stm32f7xx_hal_i2c.c:4580:26:I2C_WaitOnRXNEFlagUntilTimeout 16 static
11 | stm32f7xx_hal_i2c.c:4509:26:I2C_WaitOnTXISFlagUntilTimeout 16 static
12 | stm32f7xx_hal_i2c.c:3648:26:I2C_RequestMemoryWrite 32 static
13 | stm32f7xx_hal_i2c.c:3715:26:I2C_RequestMemoryRead 32 static
14 | stm32f7xx_hal_i2c.c:4355:13:I2C_DMASlaveTransmitCplt 0 static
15 | stm32f7xx_hal_i2c.c:4546:26:I2C_WaitOnSTOPFlagUntilTimeout 16 static
16 | stm32f7xx_hal_i2c.c:533:13:HAL_I2C_MspInit 0 static
17 | stm32f7xx_hal_i2c.c:410:19:HAL_I2C_Init 8 static
18 | stm32f7xx_hal_i2c.c:549:13:HAL_I2C_MspDeInit 0 static
19 | stm32f7xx_hal_i2c.c:497:19:HAL_I2C_DeInit 8 static
20 | stm32f7xx_hal_i2c.c:633:19:HAL_I2C_Master_Transmit 40 static
21 | stm32f7xx_hal_i2c.c:757:19:HAL_I2C_Master_Receive 40 static
22 | stm32f7xx_hal_i2c.c:880:19:HAL_I2C_Slave_Transmit 40 static
23 | stm32f7xx_hal_i2c.c:1020:19:HAL_I2C_Slave_Receive 40 static
24 | stm32f7xx_hal_i2c.c:1152:19:HAL_I2C_Master_Transmit_IT 24 static
25 | stm32f7xx_hal_i2c.c:1221:19:HAL_I2C_Master_Receive_IT 24 static
26 | stm32f7xx_hal_i2c.c:1288:19:HAL_I2C_Slave_Transmit_IT 16 static
27 | stm32f7xx_hal_i2c.c:1337:19:HAL_I2C_Slave_Receive_IT 16 static
28 | stm32f7xx_hal_i2c.c:1388:19:HAL_I2C_Master_Transmit_DMA 32 static
29 | stm32f7xx_hal_i2c.c:1496:19:HAL_I2C_Master_Receive_DMA 32 static
30 | stm32f7xx_hal_i2c.c:1601:19:HAL_I2C_Slave_Transmit_DMA 16 static
31 | stm32f7xx_hal_i2c.c:1667:19:HAL_I2C_Slave_Receive_DMA 16 static
32 | stm32f7xx_hal_i2c.c:1737:19:HAL_I2C_Mem_Write 56 static
33 | stm32f7xx_hal_i2c.c:1890:19:HAL_I2C_Mem_Read 56 static
34 | stm32f7xx_hal_i2c.c:2034:19:HAL_I2C_Mem_Write_IT 40 static
35 | stm32f7xx_hal_i2c.c:2133:19:HAL_I2C_Mem_Read_IT 40 static
36 | stm32f7xx_hal_i2c.c:2231:19:HAL_I2C_Mem_Write_DMA 40 static
37 | stm32f7xx_hal_i2c.c:2347:19:HAL_I2C_Mem_Read_DMA 40 static
38 | stm32f7xx_hal_i2c.c:2461:19:HAL_I2C_IsDeviceReady 48 static
39 | stm32f7xx_hal_i2c.c:2581:19:HAL_I2C_Master_Sequential_Transmit_IT 24 static
40 | stm32f7xx_hal_i2c.c:2654:19:HAL_I2C_Master_Sequential_Receive_IT 24 static
41 | stm32f7xx_hal_i2c.c:2725:19:HAL_I2C_Slave_Sequential_Transmit_IT 24 static
42 | stm32f7xx_hal_i2c.c:2799:19:HAL_I2C_Slave_Sequential_Receive_IT 24 static
43 | stm32f7xx_hal_i2c.c:2869:19:HAL_I2C_EnableListen_IT 8 static
44 | stm32f7xx_hal_i2c.c:2893:19:HAL_I2C_DisableListen_IT 8 static
45 | stm32f7xx_hal_i2c.c:2926:19:HAL_I2C_Master_Abort_IT 24 static
46 | stm32f7xx_hal_i2c.c:2976:6:HAL_I2C_EV_IRQHandler 0 static
47 | stm32f7xx_hal_i2c.c:3040:13:HAL_I2C_MasterTxCpltCallback 0 static
48 | stm32f7xx_hal_i2c.c:3056:13:HAL_I2C_MasterRxCpltCallback 0 static
49 | stm32f7xx_hal_i2c.c:3859:13:I2C_ITMasterSequentialCplt 16 static
50 | stm32f7xx_hal_i2c.c:3071:13:HAL_I2C_SlaveTxCpltCallback 0 static
51 | stm32f7xx_hal_i2c.c:3087:13:HAL_I2C_SlaveRxCpltCallback 0 static
52 | stm32f7xx_hal_i2c.c:3904:13:I2C_ITSlaveSequentialCplt 16 static
53 | stm32f7xx_hal_i2c.c:3105:13:HAL_I2C_AddrCallback 0 static
54 | stm32f7xx_hal_i2c.c:3123:13:HAL_I2C_ListenCpltCallback 0 static
55 | stm32f7xx_hal_i2c.c:4146:13:I2C_ITListenCplt 8 static
56 | stm32f7xx_hal_i2c.c:3139:13:HAL_I2C_MemTxCpltCallback 0 static
57 | stm32f7xx_hal_i2c.c:3155:13:HAL_I2C_MemRxCpltCallback 0 static
58 | stm32f7xx_hal_i2c.c:3171:13:HAL_I2C_ErrorCallback 0 static
59 | stm32f7xx_hal_i2c.c:3187:13:HAL_I2C_AbortCpltCallback 0 static
60 | stm32f7xx_hal_i2c.c:4190:13:I2C_ITError 8 static
61 | stm32f7xx_hal_i2c.c:4040:13:I2C_ITSlaveCplt 16 static
62 | stm32f7xx_hal_i2c.c:3391:26:I2C_Slave_ISR_IT 32 static
63 | stm32f7xx_hal_i2c.c:3593:26:I2C_Slave_ISR_DMA 8 static
64 | stm32f7xx_hal_i2c.c:3948:13:I2C_ITMasterCplt 8 static
65 | stm32f7xx_hal_i2c.c:3270:26:I2C_Master_ISR_IT 24 static
66 | stm32f7xx_hal_i2c.c:3504:26:I2C_Master_ISR_DMA 16 static
67 | stm32f7xx_hal_i2c.c:4427:13:I2C_DMAError 0 static
68 | stm32f7xx_hal_i2c.c:2995:6:HAL_I2C_ER_IRQHandler 4 static
69 | stm32f7xx_hal_i2c.c:4444:13:I2C_DMAAbort 8 static
70 | stm32f7xx_hal_i2c.c:3222:22:HAL_I2C_GetState 0 static
71 | stm32f7xx_hal_i2c.c:3234:21:HAL_I2C_GetMode 0 static
72 | stm32f7xx_hal_i2c.c:3245:10:HAL_I2C_GetError 0 static
73 |
--------------------------------------------------------------------------------
/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c_ex.su:
--------------------------------------------------------------------------------
1 | stm32f7xx_hal_i2c_ex.c:108:19:HAL_I2CEx_ConfigAnalogFilter 8 static
2 | stm32f7xx_hal_i2c_ex.c:152:19:HAL_I2CEx_ConfigDigitalFilter 8 static
3 | stm32f7xx_hal_i2c_ex.c:215:6:HAL_I2CEx_EnableFastModePlus 8 static
4 | stm32f7xx_hal_i2c_ex.c:244:6:HAL_I2CEx_DisableFastModePlus 8 static
5 |
--------------------------------------------------------------------------------
/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pcd.su:
--------------------------------------------------------------------------------
1 | stm32f7xx_hal_pcd.c:249:13:HAL_PCD_MspInit 0 static
2 | stm32f7xx_hal_pcd.c:143:19:HAL_PCD_Init 64 static
3 | stm32f7xx_hal_pcd.c:264:13:HAL_PCD_MspDeInit 0 static
4 | stm32f7xx_hal_pcd.c:298:19:HAL_PCD_Start 8 static
5 | stm32f7xx_hal_pcd.c:312:19:HAL_PCD_Stop 8 static
6 | stm32f7xx_hal_pcd.c:223:19:HAL_PCD_DeInit 8 static
7 | stm32f7xx_hal_pcd.c:778:13:HAL_PCD_DataOutStageCallback 0 static
8 | stm32f7xx_hal_pcd.c:795:13:HAL_PCD_DataInStageCallback 0 static
9 | stm32f7xx_hal_pcd.c:810:13:HAL_PCD_SetupStageCallback 0 static
10 | stm32f7xx_hal_pcd.c:825:13:HAL_PCD_SOFCallback 0 static
11 | stm32f7xx_hal_pcd.c:840:13:HAL_PCD_ResetCallback 0 static
12 | stm32f7xx_hal_pcd.c:855:13:HAL_PCD_SuspendCallback 0 static
13 | stm32f7xx_hal_pcd.c:870:13:HAL_PCD_ResumeCallback 0 static
14 | stm32f7xx_hal_pcd.c:886:13:HAL_PCD_ISOOUTIncompleteCallback 0 static
15 | stm32f7xx_hal_pcd.c:903:13:HAL_PCD_ISOINIncompleteCallback 0 static
16 | stm32f7xx_hal_pcd.c:919:13:HAL_PCD_ConnectCallback 0 static
17 | stm32f7xx_hal_pcd.c:934:13:HAL_PCD_DisconnectCallback 0 static
18 | stm32f7xx_hal_pcd.c:327:6:HAL_PCD_IRQHandler 64 static
19 | stm32f7xx_hal_pcd.c:968:19:HAL_PCD_DevConnect 8 static
20 | stm32f7xx_hal_pcd.c:981:19:HAL_PCD_DevDisconnect 8 static
21 | stm32f7xx_hal_pcd.c:995:19:HAL_PCD_SetAddress 8 static
22 | stm32f7xx_hal_pcd.c:1011:19:HAL_PCD_EP_Open 16 static
23 | stm32f7xx_hal_pcd.c:1055:19:HAL_PCD_EP_Close 8 static
24 | stm32f7xx_hal_pcd.c:1086:19:HAL_PCD_EP_Receive 16 static
25 | stm32f7xx_hal_pcd.c:1122:10:HAL_PCD_EP_GetRxCount 0 static
26 | stm32f7xx_hal_pcd.c:1134:19:HAL_PCD_EP_Transmit 16 static
27 | stm32f7xx_hal_pcd.c:1170:19:HAL_PCD_EP_SetStall 16 static
28 | stm32f7xx_hal_pcd.c:1211:19:HAL_PCD_EP_ClrStall 16 static
29 | stm32f7xx_hal_pcd.c:1247:19:HAL_PCD_EP_Flush 8 static
30 | stm32f7xx_hal_pcd.c:1270:19:HAL_PCD_ActivateRemoteWakeup 0 static
31 | stm32f7xx_hal_pcd.c:1280:19:HAL_PCD_DeActivateRemoteWakeup 0 static
32 | stm32f7xx_hal_pcd.c:1309:18:HAL_PCD_GetState 0 static
33 |
--------------------------------------------------------------------------------
/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pcd_ex.su:
--------------------------------------------------------------------------------
1 | stm32f7xx_hal_pcd_ex.c:86:19:HAL_PCDEx_SetTxFiFo 16 static
2 | stm32f7xx_hal_pcd_ex.c:128:19:HAL_PCDEx_SetRxFiFo 0 static
3 | stm32f7xx_hal_pcd_ex.c:140:19:HAL_PCDEx_ActivateLPM 0 static
4 | stm32f7xx_hal_pcd_ex.c:157:19:HAL_PCDEx_DeActivateLPM 0 static
5 | stm32f7xx_hal_pcd_ex.c:176:13:HAL_PCDEx_LPM_Callback 0 static
6 | stm32f7xx_hal_pcd_ex.c:193:13:HAL_PCDEx_BCD_Callback 0 static
7 |
--------------------------------------------------------------------------------
/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr.su:
--------------------------------------------------------------------------------
1 | stm32f7xx_hal_pwr.c:116:6:HAL_PWR_DeInit 0 static
2 | stm32f7xx_hal_pwr.c:129:6:HAL_PWR_EnableBkUpAccess 0 static
3 | stm32f7xx_hal_pwr.c:142:6:HAL_PWR_DisableBkUpAccess 0 static
4 | stm32f7xx_hal_pwr.c:276:6:HAL_PWR_ConfigPVD 0 static
5 | stm32f7xx_hal_pwr.c:319:6:HAL_PWR_EnablePVD 0 static
6 | stm32f7xx_hal_pwr.c:329:6:HAL_PWR_DisablePVD 0 static
7 | stm32f7xx_hal_pwr.c:352:6:HAL_PWR_EnableWakeUpPin 8 static
8 | stm32f7xx_hal_pwr.c:376:6:HAL_PWR_DisableWakeUpPin 0 static
9 | stm32f7xx_hal_pwr.c:403:6:HAL_PWR_EnterSLEEPMode 0 static
10 | stm32f7xx_hal_pwr.c:450:6:HAL_PWR_EnterSTOPMode 0 static
11 | stm32f7xx_hal_pwr.c:503:6:HAL_PWR_EnterSTANDBYMode 0 static
12 | stm32f7xx_hal_pwr.c:541:13:HAL_PWR_PVDCallback 0 static
13 | stm32f7xx_hal_pwr.c:524:6:HAL_PWR_PVD_IRQHandler 8 static
14 | stm32f7xx_hal_pwr.c:556:6:HAL_PWR_EnableSleepOnExit 0 static
15 | stm32f7xx_hal_pwr.c:568:6:HAL_PWR_DisableSleepOnExit 0 static
16 | stm32f7xx_hal_pwr.c:580:6:HAL_PWR_EnableSEVOnPend 0 static
17 | stm32f7xx_hal_pwr.c:592:6:HAL_PWR_DisableSEVOnPend 0 static
18 |
--------------------------------------------------------------------------------
/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr_ex.su:
--------------------------------------------------------------------------------
1 | stm32f7xx_hal_pwr_ex.c:151:19:HAL_PWREx_EnableBkUpReg 16 static
2 | stm32f7xx_hal_pwr_ex.c:180:19:HAL_PWREx_DisableBkUpReg 16 static
3 | stm32f7xx_hal_pwr_ex.c:209:6:HAL_PWREx_EnableFlashPowerDown 0 static
4 | stm32f7xx_hal_pwr_ex.c:219:6:HAL_PWREx_DisableFlashPowerDown 0 static
5 | stm32f7xx_hal_pwr_ex.c:229:6:HAL_PWREx_EnableMainRegulatorLowVoltage 0 static
6 | stm32f7xx_hal_pwr_ex.c:239:6:HAL_PWREx_DisableMainRegulatorLowVoltage 0 static
7 | stm32f7xx_hal_pwr_ex.c:249:6:HAL_PWREx_EnableLowRegulatorLowVoltage 0 static
8 | stm32f7xx_hal_pwr_ex.c:259:6:HAL_PWREx_DisableLowRegulatorLowVoltage 0 static
9 | stm32f7xx_hal_pwr_ex.c:275:19:HAL_PWREx_EnableOverDrive 24 static
10 | stm32f7xx_hal_pwr_ex.c:321:19:HAL_PWREx_DisableOverDrive 24 static
11 | stm32f7xx_hal_pwr_ex.c:395:19:HAL_PWREx_EnterUnderDriveSTOPMode 32 static
12 | stm32f7xx_hal_pwr_ex.c:461:10:HAL_PWREx_GetVoltageRange 0 static
13 | stm32f7xx_hal_pwr_ex.c:493:19:HAL_PWREx_ControlVoltageScaling 24 static
14 |
--------------------------------------------------------------------------------
/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc.su:
--------------------------------------------------------------------------------
1 | stm32f7xx_hal_rcc.c:214:19:HAL_RCC_DeInit 16 static
2 | stm32f7xx_hal_rcc.c:360:19:HAL_RCC_OscConfig 32 static
3 | stm32f7xx_hal_rcc.c:900:6:HAL_RCC_MCOConfig 48 static
4 | stm32f7xx_hal_rcc.c:954:6:HAL_RCC_EnableCSS 0 static
5 | stm32f7xx_hal_rcc.c:963:6:HAL_RCC_DisableCSS 0 static
6 | stm32f7xx_hal_rcc.c:998:10:HAL_RCC_GetSysClockFreq 8 static
7 | stm32f7xx_hal_rcc.c:719:19:HAL_RCC_ClockConfig 24 static
8 | stm32f7xx_hal_rcc.c:1052:10:HAL_RCC_GetHCLKFreq 0 static
9 | stm32f7xx_hal_rcc.c:1063:10:HAL_RCC_GetPCLK1Freq 0 static
10 | stm32f7xx_hal_rcc.c:1075:10:HAL_RCC_GetPCLK2Freq 0 static
11 | stm32f7xx_hal_rcc.c:1088:6:HAL_RCC_GetOscConfig 0 static
12 | stm32f7xx_hal_rcc.c:1170:6:HAL_RCC_GetClockConfig 0 static
13 | stm32f7xx_hal_rcc.c:1213:13:HAL_RCC_CSSCallback 0 static
14 | stm32f7xx_hal_rcc.c:1196:6:HAL_RCC_NMI_IRQHandler 8 static
15 |
--------------------------------------------------------------------------------
/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc_ex.su:
--------------------------------------------------------------------------------
1 | stm32f7xx_hal_rcc_ex.c:123:19:HAL_RCCEx_PeriphCLKConfig 40 static
2 | stm32f7xx_hal_rcc_ex.c:683:6:HAL_RCCEx_GetPeriphCLKConfig 0 static
3 | stm32f7xx_hal_rcc_ex.c:1401:10:HAL_RCCEx_GetPeriphCLKFreq 0 static
4 | stm32f7xx_hal_rcc_ex.c:1604:19:HAL_RCCEx_EnablePLLI2S 16 static
5 | stm32f7xx_hal_rcc_ex.c:1665:19:HAL_RCCEx_DisablePLLI2S 16 static
6 | stm32f7xx_hal_rcc_ex.c:1692:19:HAL_RCCEx_EnablePLLSAI 16 static
7 | stm32f7xx_hal_rcc_ex.c:1754:19:HAL_RCCEx_DisablePLLSAI 16 static
8 |
--------------------------------------------------------------------------------
/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim.su:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimpleMethod/STM32-OV2640/843864d2e7246e003addb0a3829ca20914ab06e2/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim.su
--------------------------------------------------------------------------------
/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim_ex.su:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimpleMethod/STM32-OV2640/843864d2e7246e003addb0a3829ca20914ab06e2/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim_ex.su
--------------------------------------------------------------------------------
/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart.su:
--------------------------------------------------------------------------------
1 | stm32f7xx_hal_uart.c:1700:13:UART_EndRxTransfer 0 static
2 | stm32f7xx_hal_uart.c:623:13:HAL_UART_MspInit 0 static
3 | stm32f7xx_hal_uart.c:638:13:HAL_UART_MspDeInit 0 static
4 | stm32f7xx_hal_uart.c:585:19:HAL_UART_DeInit 16 static
5 | stm32f7xx_hal_uart.c:856:19:HAL_UART_Transmit_IT 0 static
6 | stm32f7xx_hal_uart.c:897:19:HAL_UART_Receive_IT 0 static
7 | stm32f7xx_hal_uart.c:944:19:HAL_UART_Transmit_DMA 16 static
8 | stm32f7xx_hal_uart.c:1009:19:HAL_UART_Receive_DMA 16 static
9 | stm32f7xx_hal_uart.c:1072:19:HAL_UART_DMAPause 0 static
10 | stm32f7xx_hal_uart.c:1105:19:HAL_UART_DMAResume 0 static
11 | stm32f7xx_hal_uart.c:1143:19:HAL_UART_DMAStop 8 static
12 | stm32f7xx_hal_uart.c:1335:19:UART_WaitOnFlagUntilTimeout 24 static
13 | stm32f7xx_hal_uart.c:716:19:HAL_UART_Transmit 32 static
14 | stm32f7xx_hal_uart.c:785:19:HAL_UART_Receive 32 static
15 | stm32f7xx_hal_uart.c:1488:14:HAL_UART_TxCpltCallback 0 static
16 | stm32f7xx_hal_uart.c:1366:13:UART_DMATransmitCplt 8 static
17 | stm32f7xx_hal_uart.c:1503:14:HAL_UART_TxHalfCpltCallback 0 static
18 | stm32f7xx_hal_uart.c:1394:13:UART_DMATxHalfCplt 8 static
19 | stm32f7xx_hal_uart.c:1518:13:HAL_UART_RxCpltCallback 0 static
20 | stm32f7xx_hal_uart.c:1406:13:UART_DMAReceiveCplt 8 static
21 | stm32f7xx_hal_uart.c:1633:26:UART_Receive_IT 8 static
22 | stm32f7xx_hal_uart.c:1533:13:HAL_UART_RxHalfCpltCallback 0 static
23 | stm32f7xx_hal_uart.c:1434:13:UART_DMARxHalfCplt 8 static
24 | stm32f7xx_hal_uart.c:1548:14:HAL_UART_ErrorCallback 0 static
25 | stm32f7xx_hal_uart.c:1446:13:UART_DMAError 8 static
26 | stm32f7xx_hal_uart.c:1190:6:HAL_UART_IRQHandler 16 static
27 | stm32f7xx_hal_uart.c:1474:13:UART_DMAAbortOnError 8 static
28 | stm32f7xx_hal_uart.c:1788:6:HAL_MultiProcessor_EnterMuteMode 0 static
29 | stm32f7xx_hal_uart.c:1800:23:HAL_UART_GetState 0 static
30 | stm32f7xx_hal_uart.c:1815:10:HAL_UART_GetError 0 static
31 | stm32f7xx_hal_uart.c:1825:19:UART_SetConfig 16 static
32 | stm32f7xx_hal_uart.c:1936:6:UART_AdvFeatureConfig 8 static
33 | stm32f7xx_hal_uart.c:2011:19:UART_CheckIdleState 24 static
34 | stm32f7xx_hal_uart.c:241:19:HAL_UART_Init 8 static
35 | stm32f7xx_hal_uart.c:304:19:HAL_HalfDuplex_Init 8 static
36 | stm32f7xx_hal_uart.c:364:19:HAL_LIN_Init 16 static
37 | stm32f7xx_hal_uart.c:438:19:HAL_MultiProcessor_Init 16 static
38 | stm32f7xx_hal_uart.c:516:19:HAL_RS485Ex_Init 24 static
39 | stm32f7xx_hal_uart.c:1746:19:HAL_MultiProcessor_EnableMuteMode 0 static
40 | stm32f7xx_hal_uart.c:1767:19:HAL_MultiProcessor_DisableMuteMode 0 static
41 | stm32f7xx_hal_uart.c:2048:19:HAL_HalfDuplex_EnableTransmitter 0 static
42 | stm32f7xx_hal_uart.c:2071:19:HAL_HalfDuplex_EnableReceiver 0 static
43 | stm32f7xx_hal_uart.c:2095:19:HAL_LIN_SendBreak 0 static
44 | stm32f7xx_hal_uart.c:2129:19:HAL_MultiProcessorEx_AddressLength_Set 0 static
45 |
--------------------------------------------------------------------------------
/Debug/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_ll_usb.su:
--------------------------------------------------------------------------------
1 | stm32f7xx_ll_usb.c:1206:26:USB_CoreReset 0 static
2 | stm32f7xx_ll_usb.c:102:19:USB_CoreInit 16 static
3 | stm32f7xx_ll_usb.c:174:19:USB_EnableGlobalInt 0 static
4 | stm32f7xx_ll_usb.c:186:19:USB_DisableGlobalInt 0 static
5 | stm32f7xx_ll_usb.c:202:19:USB_SetCurrentMode 8 static
6 | stm32f7xx_ll_usb.c:397:19:USB_FlushTxFifo 0 static
7 | stm32f7xx_ll_usb.c:420:19:USB_FlushRxFifo 0 static
8 | stm32f7xx_ll_usb.c:450:19:USB_SetDevSpeed 0 static
9 | stm32f7xx_ll_usb.c:231:19:USB_DevInit 32 static
10 | stm32f7xx_ll_usb.c:467:9:USB_GetDevSpeed 0 static
11 | stm32f7xx_ll_usb.c:500:19:USB_ActivateEndpoint 16 static
12 | stm32f7xx_ll_usb.c:538:19:USB_ActivateDedicatedEndpoint 20 static
13 | stm32f7xx_ll_usb.c:577:19:USB_DeactivateEndpoint 12 static
14 | stm32f7xx_ll_usb.c:612:19:USB_DeactivateDedicatedEndpoint 12 static
15 | stm32f7xx_ll_usb.c:767:19:USB_EP0StartXfer 20 static
16 | stm32f7xx_ll_usb.c:858:19:USB_WritePacket 8 static
17 | stm32f7xx_ll_usb.c:642:19:USB_EPStartXfer 32 static
18 | stm32f7xx_ll_usb.c:889:7:USB_ReadPacket 0 static
19 | stm32f7xx_ll_usb.c:911:19:USB_EPSetStall 0 static
20 | stm32f7xx_ll_usb.c:942:19:USB_EPClearStall 0 static
21 | stm32f7xx_ll_usb.c:971:19:USB_StopDevice 16 static
22 | stm32f7xx_ll_usb.c:1002:20:USB_SetDevAddress 0 static
23 | stm32f7xx_ll_usb.c:1017:20:USB_DevConnect 8 static
24 | stm32f7xx_ll_usb.c:1032:20:USB_DevDisconnect 8 static
25 | stm32f7xx_ll_usb.c:1047:11:USB_ReadInterrupts 0 static
26 | stm32f7xx_ll_usb.c:1062:10:USB_ReadDevAllOutEpInterrupt 0 static
27 | stm32f7xx_ll_usb.c:1078:10:USB_ReadDevAllInEpInterrupt 0 static
28 | stm32f7xx_ll_usb.c:1096:10:USB_ReadDevOutEPInterrupt 0 static
29 | stm32f7xx_ll_usb.c:1114:10:USB_ReadDevInEPInterrupt 8 static
30 | stm32f7xx_ll_usb.c:1133:7:USB_ClearInterrupts 0 static
31 | stm32f7xx_ll_usb.c:1146:10:USB_GetMode 0 static
32 | stm32f7xx_ll_usb.c:1156:20:USB_ActivateSetup 0 static
33 | stm32f7xx_ll_usb.c:1182:19:USB_EP0_OutStart 8 static
34 | stm32f7xx_ll_usb.c:1388:19:USB_InitFSLSPClkSel 8 static
35 | stm32f7xx_ll_usb.c:1418:19:USB_ResetPort 24 static
36 | stm32f7xx_ll_usb.c:1445:19:USB_DriveVbus 8 static
37 | stm32f7xx_ll_usb.c:1306:19:USB_HostInit 16 static
38 | stm32f7xx_ll_usb.c:1475:10:USB_GetHostSpeed 8 static
39 | stm32f7xx_ll_usb.c:1489:10:USB_GetCurrentFrame 0 static
40 | stm32f7xx_ll_usb.c:1520:19:USB_HC_Init 24 static
41 | stm32f7xx_ll_usb.c:1769:10:USB_HC_ReadInterrupt 0 static
42 | stm32f7xx_ll_usb.c:1783:19:USB_HC_Halt 0 static
43 | stm32f7xx_ll_usb.c:1848:19:USB_DoPing 0 static
44 | stm32f7xx_ll_usb.c:1641:19:USB_HC_StartXfer 32 static
45 | stm32f7xx_ll_usb.c:1872:19:USB_StopHost 8 static
46 | stm32f7xx_ll_usb.c:1928:19:USB_ActivateRemoteWakeup 0 static
47 | stm32f7xx_ll_usb.c:1946:19:USB_DeActivateRemoteWakeup 0 static
48 |
--------------------------------------------------------------------------------
/Debug/Src/main.su:
--------------------------------------------------------------------------------
1 | main.c:119:6:vprint 208 static
2 | main.c:127:6:my_printf 16 static
3 | main.c:203:6:SystemClock_Config 232 static
4 | main.c:140:5:main 88 static
5 | main.c:480:6:HAL_DCMI_FrameEventCallback 8 static
6 | main.c:485:6:HAL_DCMI_LineEventCallback 0 static
7 | main.c:490:6:HAL_DCMI_ErrorCallback 0 static
8 | main.c:500:6:Error_Handler 0 static
9 |
--------------------------------------------------------------------------------
/Debug/Src/ov2640.su:
--------------------------------------------------------------------------------
1 | ov2640.c:195:6:sccb_write 24 static
2 | ov2640.c:208:6:sccb_read 32 static
3 | ov2640.c:170:6:load_config 32 static
4 | ov2640.c:136:6:ov2640_conf 8 static
5 | ov2640.c:225:6:ov2640_stop_dcmi 8 static
6 | ov2640.c:109:6:ov2640_init 8 static
7 | ov2640.c:230:6:ov2640_capture_snapshot 16 static
8 |
--------------------------------------------------------------------------------
/Debug/Src/stm32f7xx_hal_msp.su:
--------------------------------------------------------------------------------
1 | stm32f7xx_hal_msp.c:87:6:HAL_MspInit 8 static
2 | stm32f7xx_hal_msp.c:109:6:HAL_DCMI_MspInit 72 static
3 | stm32f7xx_hal_msp.c:213:6:HAL_DCMI_MspDeInit 8 static
4 | stm32f7xx_hal_msp.c:265:6:HAL_I2C_MspInit 40 static
5 | stm32f7xx_hal_msp.c:303:6:HAL_I2C_MspDeInit 0 static
6 | stm32f7xx_hal_msp.c:333:6:HAL_UART_MspInit 48 static
7 | stm32f7xx_hal_msp.c:396:6:HAL_UART_MspDeInit 8 static
8 |
--------------------------------------------------------------------------------
/Debug/Src/stm32f7xx_it.su:
--------------------------------------------------------------------------------
1 | stm32f7xx_it.c:88:6:NMI_Handler 0 static
2 | stm32f7xx_it.c:101:6:HardFault_Handler 0 static
3 | stm32f7xx_it.c:116:6:MemManage_Handler 0 static
4 | stm32f7xx_it.c:131:6:BusFault_Handler 0 static
5 | stm32f7xx_it.c:146:6:UsageFault_Handler 0 static
6 | stm32f7xx_it.c:161:6:SVC_Handler 0 static
7 | stm32f7xx_it.c:174:6:DebugMon_Handler 0 static
8 | stm32f7xx_it.c:187:6:PendSV_Handler 0 static
9 | stm32f7xx_it.c:200:6:SysTick_Handler 0 static
10 | stm32f7xx_it.c:221:6:DMA1_Stream3_IRQHandler 0 static
11 | stm32f7xx_it.c:235:6:USART3_IRQHandler 0 static
12 | stm32f7xx_it.c:249:6:DMA2_Stream1_IRQHandler 0 static
13 | stm32f7xx_it.c:263:6:DCMI_IRQHandler 0 static
14 |
--------------------------------------------------------------------------------
/Debug/Src/system_stm32f7xx.su:
--------------------------------------------------------------------------------
1 | system_stm32f7xx.c:150:6:SystemInit 0 static
2 | system_stm32f7xx.c:219:6:SystemCoreClockUpdate 8 static
3 |
--------------------------------------------------------------------------------
/Debug/Test_DCMI.elf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimpleMethod/STM32-OV2640/843864d2e7246e003addb0a3829ca20914ab06e2/Debug/Test_DCMI.elf
--------------------------------------------------------------------------------
/Documentation.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimpleMethod/STM32-OV2640/843864d2e7246e003addb0a3829ca20914ab06e2/Documentation.pdf
--------------------------------------------------------------------------------
/Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f767xx.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimpleMethod/STM32-OV2640/843864d2e7246e003addb0a3829ca20914ab06e2/Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f767xx.h
--------------------------------------------------------------------------------
/Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f7xx.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimpleMethod/STM32-OV2640/843864d2e7246e003addb0a3829ca20914ab06e2/Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f7xx.h
--------------------------------------------------------------------------------
/Drivers/CMSIS/Device/ST/STM32F7xx/Include/system_stm32f7xx.h:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file system_stm32f7xx.h
4 | * @author MCD Application Team
5 | * @brief CMSIS Cortex-M7 Device System Source File for STM32F7xx devices.
6 | ******************************************************************************
7 | * @attention
8 | *
9 | *
© COPYRIGHT(c) 2016 STMicroelectronics
10 | *
11 | * Redistribution and use in source and binary forms, with or without modification,
12 | * are permitted provided that the following conditions are met:
13 | * 1. Redistributions of source code must retain the above copyright notice,
14 | * this list of conditions and the following disclaimer.
15 | * 2. Redistributions in binary form must reproduce the above copyright notice,
16 | * this list of conditions and the following disclaimer in the documentation
17 | * and/or other materials provided with the distribution.
18 | * 3. Neither the name of STMicroelectronics nor the names of its contributors
19 | * may be used to endorse or promote products derived from this software
20 | * without specific prior written permission.
21 | *
22 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
25 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
26 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
28 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 | *
33 | ******************************************************************************
34 | */
35 |
36 | /** @addtogroup CMSIS
37 | * @{
38 | */
39 |
40 | /** @addtogroup stm32f7xx_system
41 | * @{
42 | */
43 |
44 | /**
45 | * @brief Define to prevent recursive inclusion
46 | */
47 | #ifndef __SYSTEM_STM32F7XX_H
48 | #define __SYSTEM_STM32F7XX_H
49 |
50 | #ifdef __cplusplus
51 | extern "C" {
52 | #endif
53 |
54 | /** @addtogroup STM32F7xx_System_Includes
55 | * @{
56 | */
57 |
58 | /**
59 | * @}
60 | */
61 |
62 |
63 | /** @addtogroup STM32F7xx_System_Exported_Variables
64 | * @{
65 | */
66 | /* The SystemCoreClock variable is updated in three ways:
67 | 1) by calling CMSIS function SystemCoreClockUpdate()
68 | 2) by calling HAL API function HAL_RCC_GetSysClockFreq()
69 | 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency
70 | Note: If you use this function to configure the system clock; then there
71 | is no need to call the 2 first functions listed above, since SystemCoreClock
72 | variable is updated automatically.
73 | */
74 | extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */
75 |
76 | extern const uint8_t AHBPrescTable[16]; /*!< AHB prescalers table values */
77 | extern const uint8_t APBPrescTable[8]; /*!< APB prescalers table values */
78 |
79 |
80 | /**
81 | * @}
82 | */
83 |
84 | /** @addtogroup STM32F7xx_System_Exported_Constants
85 | * @{
86 | */
87 |
88 | /**
89 | * @}
90 | */
91 |
92 | /** @addtogroup STM32F7xx_System_Exported_Macros
93 | * @{
94 | */
95 |
96 | /**
97 | * @}
98 | */
99 |
100 | /** @addtogroup STM32F7xx_System_Exported_Functions
101 | * @{
102 | */
103 |
104 | extern void SystemInit(void);
105 | extern void SystemCoreClockUpdate(void);
106 | /**
107 | * @}
108 | */
109 |
110 | #ifdef __cplusplus
111 | }
112 | #endif
113 |
114 | #endif /*__SYSTEM_STM32F7XX_H */
115 |
116 | /**
117 | * @}
118 | */
119 |
120 | /**
121 | * @}
122 | */
123 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
124 |
--------------------------------------------------------------------------------
/Drivers/CMSIS/Include/arm_common_tables.h:
--------------------------------------------------------------------------------
1 | /* ----------------------------------------------------------------------
2 | * Copyright (C) 2010-2014 ARM Limited. All rights reserved.
3 | *
4 | * $Date: 19. October 2015
5 | * $Revision: V.1.4.5 a
6 | *
7 | * Project: CMSIS DSP Library
8 | * Title: arm_common_tables.h
9 | *
10 | * Description: This file has extern declaration for common tables like Bitreverse, reciprocal etc which are used across different functions
11 | *
12 | * Target Processor: Cortex-M4/Cortex-M3
13 | *
14 | * Redistribution and use in source and binary forms, with or without
15 | * modification, are permitted provided that the following conditions
16 | * are met:
17 | * - Redistributions of source code must retain the above copyright
18 | * notice, this list of conditions and the following disclaimer.
19 | * - Redistributions in binary form must reproduce the above copyright
20 | * notice, this list of conditions and the following disclaimer in
21 | * the documentation and/or other materials provided with the
22 | * distribution.
23 | * - Neither the name of ARM LIMITED nor the names of its contributors
24 | * may be used to endorse or promote products derived from this
25 | * software without specific prior written permission.
26 | *
27 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
28 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
29 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
30 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
31 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
32 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
33 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
34 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
35 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
36 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
37 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
38 | * POSSIBILITY OF SUCH DAMAGE.
39 | * -------------------------------------------------------------------- */
40 |
41 | #ifndef _ARM_COMMON_TABLES_H
42 | #define _ARM_COMMON_TABLES_H
43 |
44 | #include "arm_math.h"
45 |
46 | extern const uint16_t armBitRevTable[1024];
47 | extern const q15_t armRecipTableQ15[64];
48 | extern const q31_t armRecipTableQ31[64];
49 | /* extern const q31_t realCoefAQ31[1024]; */
50 | /* extern const q31_t realCoefBQ31[1024]; */
51 | extern const float32_t twiddleCoef_16[32];
52 | extern const float32_t twiddleCoef_32[64];
53 | extern const float32_t twiddleCoef_64[128];
54 | extern const float32_t twiddleCoef_128[256];
55 | extern const float32_t twiddleCoef_256[512];
56 | extern const float32_t twiddleCoef_512[1024];
57 | extern const float32_t twiddleCoef_1024[2048];
58 | extern const float32_t twiddleCoef_2048[4096];
59 | extern const float32_t twiddleCoef_4096[8192];
60 | #define twiddleCoef twiddleCoef_4096
61 | extern const q31_t twiddleCoef_16_q31[24];
62 | extern const q31_t twiddleCoef_32_q31[48];
63 | extern const q31_t twiddleCoef_64_q31[96];
64 | extern const q31_t twiddleCoef_128_q31[192];
65 | extern const q31_t twiddleCoef_256_q31[384];
66 | extern const q31_t twiddleCoef_512_q31[768];
67 | extern const q31_t twiddleCoef_1024_q31[1536];
68 | extern const q31_t twiddleCoef_2048_q31[3072];
69 | extern const q31_t twiddleCoef_4096_q31[6144];
70 | extern const q15_t twiddleCoef_16_q15[24];
71 | extern const q15_t twiddleCoef_32_q15[48];
72 | extern const q15_t twiddleCoef_64_q15[96];
73 | extern const q15_t twiddleCoef_128_q15[192];
74 | extern const q15_t twiddleCoef_256_q15[384];
75 | extern const q15_t twiddleCoef_512_q15[768];
76 | extern const q15_t twiddleCoef_1024_q15[1536];
77 | extern const q15_t twiddleCoef_2048_q15[3072];
78 | extern const q15_t twiddleCoef_4096_q15[6144];
79 | extern const float32_t twiddleCoef_rfft_32[32];
80 | extern const float32_t twiddleCoef_rfft_64[64];
81 | extern const float32_t twiddleCoef_rfft_128[128];
82 | extern const float32_t twiddleCoef_rfft_256[256];
83 | extern const float32_t twiddleCoef_rfft_512[512];
84 | extern const float32_t twiddleCoef_rfft_1024[1024];
85 | extern const float32_t twiddleCoef_rfft_2048[2048];
86 | extern const float32_t twiddleCoef_rfft_4096[4096];
87 |
88 |
89 | /* floating-point bit reversal tables */
90 | #define ARMBITREVINDEXTABLE__16_TABLE_LENGTH ((uint16_t)20 )
91 | #define ARMBITREVINDEXTABLE__32_TABLE_LENGTH ((uint16_t)48 )
92 | #define ARMBITREVINDEXTABLE__64_TABLE_LENGTH ((uint16_t)56 )
93 | #define ARMBITREVINDEXTABLE_128_TABLE_LENGTH ((uint16_t)208 )
94 | #define ARMBITREVINDEXTABLE_256_TABLE_LENGTH ((uint16_t)440 )
95 | #define ARMBITREVINDEXTABLE_512_TABLE_LENGTH ((uint16_t)448 )
96 | #define ARMBITREVINDEXTABLE1024_TABLE_LENGTH ((uint16_t)1800)
97 | #define ARMBITREVINDEXTABLE2048_TABLE_LENGTH ((uint16_t)3808)
98 | #define ARMBITREVINDEXTABLE4096_TABLE_LENGTH ((uint16_t)4032)
99 |
100 | extern const uint16_t armBitRevIndexTable16[ARMBITREVINDEXTABLE__16_TABLE_LENGTH];
101 | extern const uint16_t armBitRevIndexTable32[ARMBITREVINDEXTABLE__32_TABLE_LENGTH];
102 | extern const uint16_t armBitRevIndexTable64[ARMBITREVINDEXTABLE__64_TABLE_LENGTH];
103 | extern const uint16_t armBitRevIndexTable128[ARMBITREVINDEXTABLE_128_TABLE_LENGTH];
104 | extern const uint16_t armBitRevIndexTable256[ARMBITREVINDEXTABLE_256_TABLE_LENGTH];
105 | extern const uint16_t armBitRevIndexTable512[ARMBITREVINDEXTABLE_512_TABLE_LENGTH];
106 | extern const uint16_t armBitRevIndexTable1024[ARMBITREVINDEXTABLE1024_TABLE_LENGTH];
107 | extern const uint16_t armBitRevIndexTable2048[ARMBITREVINDEXTABLE2048_TABLE_LENGTH];
108 | extern const uint16_t armBitRevIndexTable4096[ARMBITREVINDEXTABLE4096_TABLE_LENGTH];
109 |
110 | /* fixed-point bit reversal tables */
111 | #define ARMBITREVINDEXTABLE_FIXED___16_TABLE_LENGTH ((uint16_t)12 )
112 | #define ARMBITREVINDEXTABLE_FIXED___32_TABLE_LENGTH ((uint16_t)24 )
113 | #define ARMBITREVINDEXTABLE_FIXED___64_TABLE_LENGTH ((uint16_t)56 )
114 | #define ARMBITREVINDEXTABLE_FIXED__128_TABLE_LENGTH ((uint16_t)112 )
115 | #define ARMBITREVINDEXTABLE_FIXED__256_TABLE_LENGTH ((uint16_t)240 )
116 | #define ARMBITREVINDEXTABLE_FIXED__512_TABLE_LENGTH ((uint16_t)480 )
117 | #define ARMBITREVINDEXTABLE_FIXED_1024_TABLE_LENGTH ((uint16_t)992 )
118 | #define ARMBITREVINDEXTABLE_FIXED_2048_TABLE_LENGTH ((uint16_t)1984)
119 | #define ARMBITREVINDEXTABLE_FIXED_4096_TABLE_LENGTH ((uint16_t)4032)
120 |
121 | extern const uint16_t armBitRevIndexTable_fixed_16[ARMBITREVINDEXTABLE_FIXED___16_TABLE_LENGTH];
122 | extern const uint16_t armBitRevIndexTable_fixed_32[ARMBITREVINDEXTABLE_FIXED___32_TABLE_LENGTH];
123 | extern const uint16_t armBitRevIndexTable_fixed_64[ARMBITREVINDEXTABLE_FIXED___64_TABLE_LENGTH];
124 | extern const uint16_t armBitRevIndexTable_fixed_128[ARMBITREVINDEXTABLE_FIXED__128_TABLE_LENGTH];
125 | extern const uint16_t armBitRevIndexTable_fixed_256[ARMBITREVINDEXTABLE_FIXED__256_TABLE_LENGTH];
126 | extern const uint16_t armBitRevIndexTable_fixed_512[ARMBITREVINDEXTABLE_FIXED__512_TABLE_LENGTH];
127 | extern const uint16_t armBitRevIndexTable_fixed_1024[ARMBITREVINDEXTABLE_FIXED_1024_TABLE_LENGTH];
128 | extern const uint16_t armBitRevIndexTable_fixed_2048[ARMBITREVINDEXTABLE_FIXED_2048_TABLE_LENGTH];
129 | extern const uint16_t armBitRevIndexTable_fixed_4096[ARMBITREVINDEXTABLE_FIXED_4096_TABLE_LENGTH];
130 |
131 | /* Tables for Fast Math Sine and Cosine */
132 | extern const float32_t sinTable_f32[FAST_MATH_TABLE_SIZE + 1];
133 | extern const q31_t sinTable_q31[FAST_MATH_TABLE_SIZE + 1];
134 | extern const q15_t sinTable_q15[FAST_MATH_TABLE_SIZE + 1];
135 |
136 | #endif /* ARM_COMMON_TABLES_H */
137 |
--------------------------------------------------------------------------------
/Drivers/CMSIS/Include/arm_const_structs.h:
--------------------------------------------------------------------------------
1 | /* ----------------------------------------------------------------------
2 | * Copyright (C) 2010-2014 ARM Limited. All rights reserved.
3 | *
4 | * $Date: 19. March 2015
5 | * $Revision: V.1.4.5
6 | *
7 | * Project: CMSIS DSP Library
8 | * Title: arm_const_structs.h
9 | *
10 | * Description: This file has constant structs that are initialized for
11 | * user convenience. For example, some can be given as
12 | * arguments to the arm_cfft_f32() function.
13 | *
14 | * Target Processor: Cortex-M4/Cortex-M3
15 | *
16 | * Redistribution and use in source and binary forms, with or without
17 | * modification, are permitted provided that the following conditions
18 | * are met:
19 | * - Redistributions of source code must retain the above copyright
20 | * notice, this list of conditions and the following disclaimer.
21 | * - Redistributions in binary form must reproduce the above copyright
22 | * notice, this list of conditions and the following disclaimer in
23 | * the documentation and/or other materials provided with the
24 | * distribution.
25 | * - Neither the name of ARM LIMITED nor the names of its contributors
26 | * may be used to endorse or promote products derived from this
27 | * software without specific prior written permission.
28 | *
29 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
30 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
31 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
32 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
33 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
34 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
35 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
36 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
37 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
38 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
39 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
40 | * POSSIBILITY OF SUCH DAMAGE.
41 | * -------------------------------------------------------------------- */
42 |
43 | #ifndef _ARM_CONST_STRUCTS_H
44 | #define _ARM_CONST_STRUCTS_H
45 |
46 | #include "arm_math.h"
47 | #include "arm_common_tables.h"
48 |
49 | extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len16;
50 | extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len32;
51 | extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len64;
52 | extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len128;
53 | extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len256;
54 | extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len512;
55 | extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len1024;
56 | extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len2048;
57 | extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len4096;
58 |
59 | extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len16;
60 | extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len32;
61 | extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len64;
62 | extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len128;
63 | extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len256;
64 | extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len512;
65 | extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len1024;
66 | extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len2048;
67 | extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len4096;
68 |
69 | extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len16;
70 | extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len32;
71 | extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len64;
72 | extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len128;
73 | extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len256;
74 | extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len512;
75 | extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len1024;
76 | extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len2048;
77 | extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len4096;
78 |
79 | #endif
80 |
--------------------------------------------------------------------------------
/Drivers/CMSIS/Include/cmsis_compiler.h:
--------------------------------------------------------------------------------
1 | /**************************************************************************//**
2 | * @file cmsis_compiler.h
3 | * @brief CMSIS compiler generic header file
4 | * @version V5.0.4
5 | * @date 10. January 2018
6 | ******************************************************************************/
7 | /*
8 | * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
9 | *
10 | * SPDX-License-Identifier: Apache-2.0
11 | *
12 | * Licensed under the Apache License, Version 2.0 (the License); you may
13 | * not use this file except in compliance with the License.
14 | * You may obtain a copy of the License at
15 | *
16 | * www.apache.org/licenses/LICENSE-2.0
17 | *
18 | * Unless required by applicable law or agreed to in writing, software
19 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT
20 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 | * See the License for the specific language governing permissions and
22 | * limitations under the License.
23 | */
24 |
25 | #ifndef __CMSIS_COMPILER_H
26 | #define __CMSIS_COMPILER_H
27 |
28 | #include
29 |
30 | /*
31 | * Arm Compiler 4/5
32 | */
33 | #if defined ( __CC_ARM )
34 | #include "cmsis_armcc.h"
35 |
36 |
37 | /*
38 | * Arm Compiler 6 (armclang)
39 | */
40 | #elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
41 | #include "cmsis_armclang.h"
42 |
43 |
44 | /*
45 | * GNU Compiler
46 | */
47 | #elif defined ( __GNUC__ )
48 | #include "cmsis_gcc.h"
49 |
50 |
51 | /*
52 | * IAR Compiler
53 | */
54 | #elif defined ( __ICCARM__ )
55 | #include
56 |
57 |
58 | /*
59 | * TI Arm Compiler
60 | */
61 | #elif defined ( __TI_ARM__ )
62 | #include
63 |
64 | #ifndef __ASM
65 | #define __ASM __asm
66 | #endif
67 | #ifndef __INLINE
68 | #define __INLINE inline
69 | #endif
70 | #ifndef __STATIC_INLINE
71 | #define __STATIC_INLINE static inline
72 | #endif
73 | #ifndef __STATIC_FORCEINLINE
74 | #define __STATIC_FORCEINLINE __STATIC_INLINE
75 | #endif
76 | #ifndef __NO_RETURN
77 | #define __NO_RETURN __attribute__((noreturn))
78 | #endif
79 | #ifndef __USED
80 | #define __USED __attribute__((used))
81 | #endif
82 | #ifndef __WEAK
83 | #define __WEAK __attribute__((weak))
84 | #endif
85 | #ifndef __PACKED
86 | #define __PACKED __attribute__((packed))
87 | #endif
88 | #ifndef __PACKED_STRUCT
89 | #define __PACKED_STRUCT struct __attribute__((packed))
90 | #endif
91 | #ifndef __PACKED_UNION
92 | #define __PACKED_UNION union __attribute__((packed))
93 | #endif
94 | #ifndef __UNALIGNED_UINT32 /* deprecated */
95 | struct __attribute__((packed)) T_UINT32 { uint32_t v; };
96 | #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
97 | #endif
98 | #ifndef __UNALIGNED_UINT16_WRITE
99 | __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; };
100 | #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void*)(addr))->v) = (val))
101 | #endif
102 | #ifndef __UNALIGNED_UINT16_READ
103 | __PACKED_STRUCT T_UINT16_READ { uint16_t v; };
104 | #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v)
105 | #endif
106 | #ifndef __UNALIGNED_UINT32_WRITE
107 | __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; };
108 | #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val))
109 | #endif
110 | #ifndef __UNALIGNED_UINT32_READ
111 | __PACKED_STRUCT T_UINT32_READ { uint32_t v; };
112 | #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v)
113 | #endif
114 | #ifndef __ALIGNED
115 | #define __ALIGNED(x) __attribute__((aligned(x)))
116 | #endif
117 | #ifndef __RESTRICT
118 | #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored.
119 | #define __RESTRICT
120 | #endif
121 |
122 |
123 | /*
124 | * TASKING Compiler
125 | */
126 | #elif defined ( __TASKING__ )
127 | /*
128 | * The CMSIS functions have been implemented as intrinsics in the compiler.
129 | * Please use "carm -?i" to get an up to date list of all intrinsics,
130 | * Including the CMSIS ones.
131 | */
132 |
133 | #ifndef __ASM
134 | #define __ASM __asm
135 | #endif
136 | #ifndef __INLINE
137 | #define __INLINE inline
138 | #endif
139 | #ifndef __STATIC_INLINE
140 | #define __STATIC_INLINE static inline
141 | #endif
142 | #ifndef __STATIC_FORCEINLINE
143 | #define __STATIC_FORCEINLINE __STATIC_INLINE
144 | #endif
145 | #ifndef __NO_RETURN
146 | #define __NO_RETURN __attribute__((noreturn))
147 | #endif
148 | #ifndef __USED
149 | #define __USED __attribute__((used))
150 | #endif
151 | #ifndef __WEAK
152 | #define __WEAK __attribute__((weak))
153 | #endif
154 | #ifndef __PACKED
155 | #define __PACKED __packed__
156 | #endif
157 | #ifndef __PACKED_STRUCT
158 | #define __PACKED_STRUCT struct __packed__
159 | #endif
160 | #ifndef __PACKED_UNION
161 | #define __PACKED_UNION union __packed__
162 | #endif
163 | #ifndef __UNALIGNED_UINT32 /* deprecated */
164 | struct __packed__ T_UINT32 { uint32_t v; };
165 | #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
166 | #endif
167 | #ifndef __UNALIGNED_UINT16_WRITE
168 | __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; };
169 | #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val))
170 | #endif
171 | #ifndef __UNALIGNED_UINT16_READ
172 | __PACKED_STRUCT T_UINT16_READ { uint16_t v; };
173 | #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v)
174 | #endif
175 | #ifndef __UNALIGNED_UINT32_WRITE
176 | __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; };
177 | #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val))
178 | #endif
179 | #ifndef __UNALIGNED_UINT32_READ
180 | __PACKED_STRUCT T_UINT32_READ { uint32_t v; };
181 | #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v)
182 | #endif
183 | #ifndef __ALIGNED
184 | #define __ALIGNED(x) __align(x)
185 | #endif
186 | #ifndef __RESTRICT
187 | #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored.
188 | #define __RESTRICT
189 | #endif
190 |
191 |
192 | /*
193 | * COSMIC Compiler
194 | */
195 | #elif defined ( __CSMC__ )
196 | #include
197 |
198 | #ifndef __ASM
199 | #define __ASM _asm
200 | #endif
201 | #ifndef __INLINE
202 | #define __INLINE inline
203 | #endif
204 | #ifndef __STATIC_INLINE
205 | #define __STATIC_INLINE static inline
206 | #endif
207 | #ifndef __STATIC_FORCEINLINE
208 | #define __STATIC_FORCEINLINE __STATIC_INLINE
209 | #endif
210 | #ifndef __NO_RETURN
211 | // NO RETURN is automatically detected hence no warning here
212 | #define __NO_RETURN
213 | #endif
214 | #ifndef __USED
215 | #warning No compiler specific solution for __USED. __USED is ignored.
216 | #define __USED
217 | #endif
218 | #ifndef __WEAK
219 | #define __WEAK __weak
220 | #endif
221 | #ifndef __PACKED
222 | #define __PACKED @packed
223 | #endif
224 | #ifndef __PACKED_STRUCT
225 | #define __PACKED_STRUCT @packed struct
226 | #endif
227 | #ifndef __PACKED_UNION
228 | #define __PACKED_UNION @packed union
229 | #endif
230 | #ifndef __UNALIGNED_UINT32 /* deprecated */
231 | @packed struct T_UINT32 { uint32_t v; };
232 | #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
233 | #endif
234 | #ifndef __UNALIGNED_UINT16_WRITE
235 | __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; };
236 | #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val))
237 | #endif
238 | #ifndef __UNALIGNED_UINT16_READ
239 | __PACKED_STRUCT T_UINT16_READ { uint16_t v; };
240 | #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v)
241 | #endif
242 | #ifndef __UNALIGNED_UINT32_WRITE
243 | __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; };
244 | #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val))
245 | #endif
246 | #ifndef __UNALIGNED_UINT32_READ
247 | __PACKED_STRUCT T_UINT32_READ { uint32_t v; };
248 | #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v)
249 | #endif
250 | #ifndef __ALIGNED
251 | #warning No compiler specific solution for __ALIGNED. __ALIGNED is ignored.
252 | #define __ALIGNED(x)
253 | #endif
254 | #ifndef __RESTRICT
255 | #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored.
256 | #define __RESTRICT
257 | #endif
258 |
259 |
260 | #else
261 | #error Unknown compiler.
262 | #endif
263 |
264 |
265 | #endif /* __CMSIS_COMPILER_H */
266 |
267 |
--------------------------------------------------------------------------------
/Drivers/CMSIS/Include/cmsis_version.h:
--------------------------------------------------------------------------------
1 | /**************************************************************************//**
2 | * @file cmsis_version.h
3 | * @brief CMSIS Core(M) Version definitions
4 | * @version V5.0.2
5 | * @date 19. April 2017
6 | ******************************************************************************/
7 | /*
8 | * Copyright (c) 2009-2017 ARM Limited. All rights reserved.
9 | *
10 | * SPDX-License-Identifier: Apache-2.0
11 | *
12 | * Licensed under the Apache License, Version 2.0 (the License); you may
13 | * not use this file except in compliance with the License.
14 | * You may obtain a copy of the License at
15 | *
16 | * www.apache.org/licenses/LICENSE-2.0
17 | *
18 | * Unless required by applicable law or agreed to in writing, software
19 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT
20 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 | * See the License for the specific language governing permissions and
22 | * limitations under the License.
23 | */
24 |
25 | #if defined ( __ICCARM__ )
26 | #pragma system_include /* treat file as system include file for MISRA check */
27 | #elif defined (__clang__)
28 | #pragma clang system_header /* treat file as system include file */
29 | #endif
30 |
31 | #ifndef __CMSIS_VERSION_H
32 | #define __CMSIS_VERSION_H
33 |
34 | /* CMSIS Version definitions */
35 | #define __CM_CMSIS_VERSION_MAIN ( 5U) /*!< [31:16] CMSIS Core(M) main version */
36 | #define __CM_CMSIS_VERSION_SUB ( 1U) /*!< [15:0] CMSIS Core(M) sub version */
37 | #define __CM_CMSIS_VERSION ((__CM_CMSIS_VERSION_MAIN << 16U) | \
38 | __CM_CMSIS_VERSION_SUB ) /*!< CMSIS Core(M) version number */
39 | #endif
40 |
--------------------------------------------------------------------------------
/Drivers/CMSIS/Include/core_cmFunc.h:
--------------------------------------------------------------------------------
1 | /**************************************************************************//**
2 | * @file core_cmFunc.h
3 | * @brief CMSIS Cortex-M Core Function Access Header File
4 | * @version V4.30
5 | * @date 20. October 2015
6 | ******************************************************************************/
7 | /* Copyright (c) 2009 - 2015 ARM LIMITED
8 |
9 | All rights reserved.
10 | Redistribution and use in source and binary forms, with or without
11 | modification, are permitted provided that the following conditions are met:
12 | - Redistributions of source code must retain the above copyright
13 | notice, this list of conditions and the following disclaimer.
14 | - Redistributions in binary form must reproduce the above copyright
15 | notice, this list of conditions and the following disclaimer in the
16 | documentation and/or other materials provided with the distribution.
17 | - Neither the name of ARM nor the names of its contributors may be used
18 | to endorse or promote products derived from this software without
19 | specific prior written permission.
20 | *
21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 | ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
25 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 | POSSIBILITY OF SUCH DAMAGE.
32 | ---------------------------------------------------------------------------*/
33 |
34 |
35 | #if defined ( __ICCARM__ )
36 | #pragma system_include /* treat file as system include file for MISRA check */
37 | #elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
38 | #pragma clang system_header /* treat file as system include file */
39 | #endif
40 |
41 | #ifndef __CORE_CMFUNC_H
42 | #define __CORE_CMFUNC_H
43 |
44 |
45 | /* ########################### Core Function Access ########################### */
46 | /** \ingroup CMSIS_Core_FunctionInterface
47 | \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions
48 | @{
49 | */
50 |
51 | /*------------------ RealView Compiler -----------------*/
52 | #if defined ( __CC_ARM )
53 | #include "cmsis_armcc.h"
54 |
55 | /*------------------ ARM Compiler V6 -------------------*/
56 | #elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
57 | #include "cmsis_armcc_V6.h"
58 |
59 | /*------------------ GNU Compiler ----------------------*/
60 | #elif defined ( __GNUC__ )
61 | #include "cmsis_gcc.h"
62 |
63 | /*------------------ ICC Compiler ----------------------*/
64 | #elif defined ( __ICCARM__ )
65 | #include
66 |
67 | /*------------------ TI CCS Compiler -------------------*/
68 | #elif defined ( __TMS470__ )
69 | #include
70 |
71 | /*------------------ TASKING Compiler ------------------*/
72 | #elif defined ( __TASKING__ )
73 | /*
74 | * The CMSIS functions have been implemented as intrinsics in the compiler.
75 | * Please use "carm -?i" to get an up to date list of all intrinsics,
76 | * Including the CMSIS ones.
77 | */
78 |
79 | /*------------------ COSMIC Compiler -------------------*/
80 | #elif defined ( __CSMC__ )
81 | #include
82 |
83 | #endif
84 |
85 | /*@} end of CMSIS_Core_RegAccFunctions */
86 |
87 | #endif /* __CORE_CMFUNC_H */
88 |
--------------------------------------------------------------------------------
/Drivers/CMSIS/Include/core_cmInstr.h:
--------------------------------------------------------------------------------
1 | /**************************************************************************//**
2 | * @file core_cmInstr.h
3 | * @brief CMSIS Cortex-M Core Instruction Access Header File
4 | * @version V4.30
5 | * @date 20. October 2015
6 | ******************************************************************************/
7 | /* Copyright (c) 2009 - 2015 ARM LIMITED
8 |
9 | All rights reserved.
10 | Redistribution and use in source and binary forms, with or without
11 | modification, are permitted provided that the following conditions are met:
12 | - Redistributions of source code must retain the above copyright
13 | notice, this list of conditions and the following disclaimer.
14 | - Redistributions in binary form must reproduce the above copyright
15 | notice, this list of conditions and the following disclaimer in the
16 | documentation and/or other materials provided with the distribution.
17 | - Neither the name of ARM nor the names of its contributors may be used
18 | to endorse or promote products derived from this software without
19 | specific prior written permission.
20 | *
21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 | ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
25 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 | POSSIBILITY OF SUCH DAMAGE.
32 | ---------------------------------------------------------------------------*/
33 |
34 |
35 | #if defined ( __ICCARM__ )
36 | #pragma system_include /* treat file as system include file for MISRA check */
37 | #elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
38 | #pragma clang system_header /* treat file as system include file */
39 | #endif
40 |
41 | #ifndef __CORE_CMINSTR_H
42 | #define __CORE_CMINSTR_H
43 |
44 |
45 | /* ########################## Core Instruction Access ######################### */
46 | /** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface
47 | Access to dedicated instructions
48 | @{
49 | */
50 |
51 | /*------------------ RealView Compiler -----------------*/
52 | #if defined ( __CC_ARM )
53 | #include "cmsis_armcc.h"
54 |
55 | /*------------------ ARM Compiler V6 -------------------*/
56 | #elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
57 | #include "cmsis_armcc_V6.h"
58 |
59 | /*------------------ GNU Compiler ----------------------*/
60 | #elif defined ( __GNUC__ )
61 | #include "cmsis_gcc.h"
62 |
63 | /*------------------ ICC Compiler ----------------------*/
64 | #elif defined ( __ICCARM__ )
65 | #include
66 |
67 | /*------------------ TI CCS Compiler -------------------*/
68 | #elif defined ( __TMS470__ )
69 | #include
70 |
71 | /*------------------ TASKING Compiler ------------------*/
72 | #elif defined ( __TASKING__ )
73 | /*
74 | * The CMSIS functions have been implemented as intrinsics in the compiler.
75 | * Please use "carm -?i" to get an up to date list of all intrinsics,
76 | * Including the CMSIS ones.
77 | */
78 |
79 | /*------------------ COSMIC Compiler -------------------*/
80 | #elif defined ( __CSMC__ )
81 | #include
82 |
83 | #endif
84 |
85 | /*@}*/ /* end of group CMSIS_Core_InstructionInterface */
86 |
87 | #endif /* __CORE_CMINSTR_H */
88 |
--------------------------------------------------------------------------------
/Drivers/CMSIS/Include/core_cmSimd.h:
--------------------------------------------------------------------------------
1 | /**************************************************************************//**
2 | * @file core_cmSimd.h
3 | * @brief CMSIS Cortex-M SIMD Header File
4 | * @version V4.30
5 | * @date 20. October 2015
6 | ******************************************************************************/
7 | /* Copyright (c) 2009 - 2015 ARM LIMITED
8 |
9 | All rights reserved.
10 | Redistribution and use in source and binary forms, with or without
11 | modification, are permitted provided that the following conditions are met:
12 | - Redistributions of source code must retain the above copyright
13 | notice, this list of conditions and the following disclaimer.
14 | - Redistributions in binary form must reproduce the above copyright
15 | notice, this list of conditions and the following disclaimer in the
16 | documentation and/or other materials provided with the distribution.
17 | - Neither the name of ARM nor the names of its contributors may be used
18 | to endorse or promote products derived from this software without
19 | specific prior written permission.
20 | *
21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 | ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
25 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 | POSSIBILITY OF SUCH DAMAGE.
32 | ---------------------------------------------------------------------------*/
33 |
34 |
35 | #if defined ( __ICCARM__ )
36 | #pragma system_include /* treat file as system include file for MISRA check */
37 | #elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
38 | #pragma clang system_header /* treat file as system include file */
39 | #endif
40 |
41 | #ifndef __CORE_CMSIMD_H
42 | #define __CORE_CMSIMD_H
43 |
44 | #ifdef __cplusplus
45 | extern "C" {
46 | #endif
47 |
48 |
49 | /* ################### Compiler specific Intrinsics ########################### */
50 | /** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics
51 | Access to dedicated SIMD instructions
52 | @{
53 | */
54 |
55 | /*------------------ RealView Compiler -----------------*/
56 | #if defined ( __CC_ARM )
57 | #include "cmsis_armcc.h"
58 |
59 | /*------------------ ARM Compiler V6 -------------------*/
60 | #elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
61 | #include "cmsis_armcc_V6.h"
62 |
63 | /*------------------ GNU Compiler ----------------------*/
64 | #elif defined ( __GNUC__ )
65 | #include "cmsis_gcc.h"
66 |
67 | /*------------------ ICC Compiler ----------------------*/
68 | #elif defined ( __ICCARM__ )
69 | #include
70 |
71 | /*------------------ TI CCS Compiler -------------------*/
72 | #elif defined ( __TMS470__ )
73 | #include
74 |
75 | /*------------------ TASKING Compiler ------------------*/
76 | #elif defined ( __TASKING__ )
77 | /*
78 | * The CMSIS functions have been implemented as intrinsics in the compiler.
79 | * Please use "carm -?i" to get an up to date list of all intrinsics,
80 | * Including the CMSIS ones.
81 | */
82 |
83 | /*------------------ COSMIC Compiler -------------------*/
84 | #elif defined ( __CSMC__ )
85 | #include
86 |
87 | #endif
88 |
89 | /*@} end of group CMSIS_SIMD_intrinsics */
90 |
91 |
92 | #ifdef __cplusplus
93 | }
94 | #endif
95 |
96 | #endif /* __CORE_CMSIMD_H */
97 |
--------------------------------------------------------------------------------
/Drivers/CMSIS/Include/tz_context.h:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * @file tz_context.h
3 | * @brief Context Management for Armv8-M TrustZone
4 | * @version V1.0.1
5 | * @date 10. January 2018
6 | ******************************************************************************/
7 | /*
8 | * Copyright (c) 2017-2018 Arm Limited. All rights reserved.
9 | *
10 | * SPDX-License-Identifier: Apache-2.0
11 | *
12 | * Licensed under the Apache License, Version 2.0 (the License); you may
13 | * not use this file except in compliance with the License.
14 | * You may obtain a copy of the License at
15 | *
16 | * www.apache.org/licenses/LICENSE-2.0
17 | *
18 | * Unless required by applicable law or agreed to in writing, software
19 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT
20 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 | * See the License for the specific language governing permissions and
22 | * limitations under the License.
23 | */
24 |
25 | #if defined ( __ICCARM__ )
26 | #pragma system_include /* treat file as system include file for MISRA check */
27 | #elif defined (__clang__)
28 | #pragma clang system_header /* treat file as system include file */
29 | #endif
30 |
31 | #ifndef TZ_CONTEXT_H
32 | #define TZ_CONTEXT_H
33 |
34 | #include
35 |
36 | #ifndef TZ_MODULEID_T
37 | #define TZ_MODULEID_T
38 | /// \details Data type that identifies secure software modules called by a process.
39 | typedef uint32_t TZ_ModuleId_t;
40 | #endif
41 |
42 | /// \details TZ Memory ID identifies an allocated memory slot.
43 | typedef uint32_t TZ_MemoryId_t;
44 |
45 | /// Initialize secure context memory system
46 | /// \return execution status (1: success, 0: error)
47 | uint32_t TZ_InitContextSystem_S (void);
48 |
49 | /// Allocate context memory for calling secure software modules in TrustZone
50 | /// \param[in] module identifies software modules called from non-secure mode
51 | /// \return value != 0 id TrustZone memory slot identifier
52 | /// \return value 0 no memory available or internal error
53 | TZ_MemoryId_t TZ_AllocModuleContext_S (TZ_ModuleId_t module);
54 |
55 | /// Free context memory that was previously allocated with \ref TZ_AllocModuleContext_S
56 | /// \param[in] id TrustZone memory slot identifier
57 | /// \return execution status (1: success, 0: error)
58 | uint32_t TZ_FreeModuleContext_S (TZ_MemoryId_t id);
59 |
60 | /// Load secure context (called on RTOS thread context switch)
61 | /// \param[in] id TrustZone memory slot identifier
62 | /// \return execution status (1: success, 0: error)
63 | uint32_t TZ_LoadContext_S (TZ_MemoryId_t id);
64 |
65 | /// Store secure context (called on RTOS thread context switch)
66 | /// \param[in] id TrustZone memory slot identifier
67 | /// \return execution status (1: success, 0: error)
68 | uint32_t TZ_StoreContext_S (TZ_MemoryId_t id);
69 |
70 | #endif // TZ_CONTEXT_H
71 |
--------------------------------------------------------------------------------
/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dcmi_ex.h:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file stm32f7xx_hal_dcmi_ex.h
4 | * @author MCD Application Team
5 | * @brief Header file of DCMI Extension HAL module.
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * © Copyright (c) 2017 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software component is licensed by ST under BSD 3-Clause license,
13 | * the "License"; You may not use this file except in compliance with the
14 | * License. You may obtain a copy of the License at:
15 | * opensource.org/licenses/BSD-3-Clause
16 | *
17 | ******************************************************************************
18 | */
19 |
20 | /* Define to prevent recursive inclusion -------------------------------------*/
21 | #ifndef __STM32F7xx_HAL_DCMI_EX_H
22 | #define __STM32F7xx_HAL_DCMI_EX_H
23 |
24 | /* Includes ------------------------------------------------------------------*/
25 | /* Exported types ------------------------------------------------------------*/
26 | /* Exported constants --------------------------------------------------------*/
27 | /* Exported macro ------------------------------------------------------------*/
28 | /* Exported functions --------------------------------------------------------*/
29 | /* Private types -------------------------------------------------------------*/
30 | /* Private variables ---------------------------------------------------------*/
31 | /* Private constants ---------------------------------------------------------*/
32 | /* Private macro -------------------------------------------------------------*/
33 | /* Private functions ---------------------------------------------------------*/
34 |
35 | #endif /* __STM32F7xx_HAL_DCMI_H */
36 |
37 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
38 |
--------------------------------------------------------------------------------
/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_def.h:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file stm32f7xx_hal_def.h
4 | * @author MCD Application Team
5 | * @brief This file contains HAL common defines, enumeration, macros and
6 | * structures definitions.
7 | ******************************************************************************
8 | * @attention
9 | *
10 | * © Copyright (c) 2017 STMicroelectronics.
11 | * All rights reserved.
12 | *
13 | * This software component is licensed by ST under BSD 3-Clause license,
14 | * the "License"; You may not use this file except in compliance with the
15 | * License. You may obtain a copy of the License at:
16 | * opensource.org/licenses/BSD-3-Clause
17 | *
18 | ******************************************************************************
19 | */
20 |
21 | /* Define to prevent recursive inclusion -------------------------------------*/
22 | #ifndef __STM32F7xx_HAL_DEF
23 | #define __STM32F7xx_HAL_DEF
24 |
25 | #ifdef __cplusplus
26 | extern "C" {
27 | #endif
28 |
29 | /* Includes ------------------------------------------------------------------*/
30 | #include "stm32f7xx.h"
31 | #include "Legacy/stm32_hal_legacy.h"
32 | #include
33 |
34 | /* Exported types ------------------------------------------------------------*/
35 |
36 | /**
37 | * @brief HAL Status structures definition
38 | */
39 | typedef enum
40 | {
41 | HAL_OK = 0x00U,
42 | HAL_ERROR = 0x01U,
43 | HAL_BUSY = 0x02U,
44 | HAL_TIMEOUT = 0x03U
45 | } HAL_StatusTypeDef;
46 |
47 | /**
48 | * @brief HAL Lock structures definition
49 | */
50 | typedef enum
51 | {
52 | HAL_UNLOCKED = 0x00U,
53 | HAL_LOCKED = 0x01U
54 | } HAL_LockTypeDef;
55 |
56 | /* Exported macro ------------------------------------------------------------*/
57 |
58 | #define UNUSED(X) (void)X /* To avoid gcc/g++ warnings */
59 |
60 | #define HAL_MAX_DELAY 0xFFFFFFFFU
61 |
62 | #define HAL_IS_BIT_SET(REG, BIT) (((REG) & (BIT)) == (BIT))
63 | #define HAL_IS_BIT_CLR(REG, BIT) (((REG) & (BIT)) == 0U)
64 |
65 | #define __HAL_LINKDMA(__HANDLE__, __PPP_DMA_FIELD__, __DMA_HANDLE__) \
66 | do{ \
67 | (__HANDLE__)->__PPP_DMA_FIELD__ = &(__DMA_HANDLE__); \
68 | (__DMA_HANDLE__).Parent = (__HANDLE__); \
69 | } while(0)
70 |
71 | /** @brief Reset the Handle's State field.
72 | * @param __HANDLE__ specifies the Peripheral Handle.
73 | * @note This macro can be used for the following purpose:
74 | * - When the Handle is declared as local variable; before passing it as parameter
75 | * to HAL_PPP_Init() for the first time, it is mandatory to use this macro
76 | * to set to 0 the Handle's "State" field.
77 | * Otherwise, "State" field may have any random value and the first time the function
78 | * HAL_PPP_Init() is called, the low level hardware initialization will be missed
79 | * (i.e. HAL_PPP_MspInit() will not be executed).
80 | * - When there is a need to reconfigure the low level hardware: instead of calling
81 | * HAL_PPP_DeInit() then HAL_PPP_Init(), user can make a call to this macro then HAL_PPP_Init().
82 | * In this later function, when the Handle's "State" field is set to 0, it will execute the function
83 | * HAL_PPP_MspInit() which will reconfigure the low level hardware.
84 | * @retval None
85 | */
86 | #define __HAL_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = 0U)
87 |
88 | #if (USE_RTOS == 1U)
89 | /* Reserved for future use */
90 | #error "USE_RTOS should be 0 in the current HAL release"
91 | #else
92 | #define __HAL_LOCK(__HANDLE__) \
93 | do{ \
94 | if((__HANDLE__)->Lock == HAL_LOCKED) \
95 | { \
96 | return HAL_BUSY; \
97 | } \
98 | else \
99 | { \
100 | (__HANDLE__)->Lock = HAL_LOCKED; \
101 | } \
102 | }while (0U)
103 |
104 | #define __HAL_UNLOCK(__HANDLE__) \
105 | do{ \
106 | (__HANDLE__)->Lock = HAL_UNLOCKED; \
107 | }while (0U)
108 | #endif /* USE_RTOS */
109 |
110 | #if defined ( __GNUC__ ) && !defined (__CC_ARM) /* GNU Compiler */
111 | #ifndef __weak
112 | #define __weak __attribute__((weak))
113 | #endif /* __weak */
114 | #ifndef __packed
115 | #define __packed __attribute__((__packed__))
116 | #endif /* __packed */
117 | #endif /* __GNUC__ */
118 |
119 |
120 | /* Macro to get variable aligned on 4-bytes, for __ICCARM__ the directive "#pragma data_alignment=4" must be used instead */
121 | #if defined ( __GNUC__ ) && !defined (__CC_ARM) /* GNU Compiler */
122 | #ifndef __ALIGN_END
123 | #define __ALIGN_END __attribute__ ((aligned (4)))
124 | #endif /* __ALIGN_END */
125 | #ifndef __ALIGN_BEGIN
126 | #define __ALIGN_BEGIN
127 | #endif /* __ALIGN_BEGIN */
128 | #else
129 | #ifndef __ALIGN_END
130 | #define __ALIGN_END
131 | #endif /* __ALIGN_END */
132 | #ifndef __ALIGN_BEGIN
133 | #if defined (__CC_ARM) /* ARM Compiler */
134 | #define __ALIGN_BEGIN __align(4)
135 | #elif defined (__ICCARM__) /* IAR Compiler */
136 | #define __ALIGN_BEGIN
137 | #endif /* __CC_ARM */
138 | #endif /* __ALIGN_BEGIN */
139 | #endif /* __GNUC__ */
140 |
141 | /* Macro to get variable aligned on 32-bytes,needed for cache maintenance purpose */
142 | #if defined (__GNUC__) /* GNU Compiler */
143 | #define ALIGN_32BYTES(buf) buf __attribute__ ((aligned (32)))
144 | #elif defined (__ICCARM__) /* IAR Compiler */
145 | #define ALIGN_32BYTES(buf) _Pragma("data_alignment=32") buf
146 | #elif defined (__CC_ARM) /* ARM Compiler */
147 | #define ALIGN_32BYTES(buf) __align(32) buf
148 | #endif
149 |
150 | /**
151 | * @brief __RAM_FUNC definition
152 | */
153 | #if defined ( __CC_ARM )
154 | /* ARM Compiler
155 | ------------
156 | RAM functions are defined using the toolchain options.
157 | Functions that are executed in RAM should reside in a separate source module.
158 | Using the 'Options for File' dialog you can simply change the 'Code / Const'
159 | area of a module to a memory space in physical RAM.
160 | Available memory areas are declared in the 'Target' tab of the 'Options for Target'
161 | dialog.
162 | */
163 | #define __RAM_FUNC
164 |
165 | #elif defined ( __ICCARM__ )
166 | /* ICCARM Compiler
167 | ---------------
168 | RAM functions are defined using a specific toolchain keyword "__ramfunc".
169 | */
170 | #define __RAM_FUNC __ramfunc
171 |
172 | #elif defined ( __GNUC__ )
173 | /* GNU Compiler
174 | ------------
175 | RAM functions are defined using a specific toolchain attribute
176 | "__attribute__((section(".RamFunc")))".
177 | */
178 | #define __RAM_FUNC __attribute__((section(".RamFunc")))
179 |
180 | #endif
181 |
182 | /**
183 | * @brief __NOINLINE definition
184 | */
185 | #if defined ( __CC_ARM ) || defined ( __GNUC__ )
186 | /* ARM & GNUCompiler
187 | ----------------
188 | */
189 | #define __NOINLINE __attribute__ ( (noinline) )
190 |
191 | #elif defined ( __ICCARM__ )
192 | /* ICCARM Compiler
193 | ---------------
194 | */
195 | #define __NOINLINE _Pragma("optimize = no_inline")
196 |
197 | #endif
198 |
199 | #ifdef __cplusplus
200 | }
201 | #endif
202 |
203 | #endif /* ___STM32F7xx_HAL_DEF */
204 |
205 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
206 |
--------------------------------------------------------------------------------
/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dma_ex.h:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file stm32f7xx_hal_dma_ex.h
4 | * @author MCD Application Team
5 | * @brief Header file of DMA HAL extension module.
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * © Copyright (c) 2017 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software component is licensed by ST under BSD 3-Clause license,
13 | * the "License"; You may not use this file except in compliance with the
14 | * License. You may obtain a copy of the License at:
15 | * opensource.org/licenses/BSD-3-Clause
16 | *
17 | ******************************************************************************
18 | */
19 |
20 | /* Define to prevent recursive inclusion -------------------------------------*/
21 | #ifndef __STM32F7xx_HAL_DMA_EX_H
22 | #define __STM32F7xx_HAL_DMA_EX_H
23 |
24 | #ifdef __cplusplus
25 | extern "C" {
26 | #endif
27 |
28 | /* Includes ------------------------------------------------------------------*/
29 | #include "stm32f7xx_hal_def.h"
30 |
31 | /** @addtogroup STM32F7xx_HAL_Driver
32 | * @{
33 | */
34 |
35 | /** @addtogroup DMAEx
36 | * @{
37 | */
38 |
39 | /* Exported types ------------------------------------------------------------*/
40 | /** @defgroup DMAEx_Exported_Types DMAEx Exported Types
41 | * @brief DMAEx Exported types
42 | * @{
43 | */
44 |
45 | /**
46 | * @brief HAL DMA Memory definition
47 | */
48 | typedef enum
49 | {
50 | MEMORY0 = 0x00U, /*!< Memory 0 */
51 | MEMORY1 = 0x01U, /*!< Memory 1 */
52 |
53 | }HAL_DMA_MemoryTypeDef;
54 |
55 | /**
56 | * @}
57 | */
58 |
59 | /* Exported constants --------------------------------------------------------*/
60 |
61 | /** @defgroup DMA_Exported_Constants DMA Exported Constants
62 | * @brief DMA Exported constants
63 | * @{
64 | */
65 |
66 | /** @defgroup DMAEx_Channel_selection DMA Channel selection
67 | * @brief DMAEx channel selection
68 | * @{
69 | */
70 | #define DMA_CHANNEL_0 0x00000000U /*!< DMA Channel 0 */
71 | #define DMA_CHANNEL_1 0x02000000U /*!< DMA Channel 1 */
72 | #define DMA_CHANNEL_2 0x04000000U /*!< DMA Channel 2 */
73 | #define DMA_CHANNEL_3 0x06000000U /*!< DMA Channel 3 */
74 | #define DMA_CHANNEL_4 0x08000000U /*!< DMA Channel 4 */
75 | #define DMA_CHANNEL_5 0x0A000000U /*!< DMA Channel 5 */
76 | #define DMA_CHANNEL_6 0x0C000000U /*!< DMA Channel 6 */
77 | #define DMA_CHANNEL_7 0x0E000000U /*!< DMA Channel 7 */
78 | #if defined (STM32F722xx) || defined (STM32F723xx) || defined (STM32F732xx) || defined (STM32F733xx) ||\
79 | defined (STM32F765xx) || defined (STM32F767xx) || defined (STM32F769xx) || defined (STM32F777xx) ||\
80 | defined (STM32F779xx) || defined (STM32F730xx)
81 | #define DMA_CHANNEL_8 0x10000000U /*!< DMA Channel 8 */
82 | #define DMA_CHANNEL_9 0x12000000U /*!< DMA Channel 9 */
83 | #define DMA_CHANNEL_10 0x14000000U /*!< DMA Channel 10*/
84 | #define DMA_CHANNEL_11 0x16000000U /*!< DMA Channel 11*/
85 | #define DMA_CHANNEL_12 0x18000000U /*!< DMA Channel 12*/
86 | #define DMA_CHANNEL_13 0x1A000000U /*!< DMA Channel 13*/
87 | #define DMA_CHANNEL_14 0x1C000000U /*!< DMA Channel 14*/
88 | #define DMA_CHANNEL_15 0x1E000000U /*!< DMA Channel 15*/
89 | #endif /* STM32F722xx || STM32F723xx || STM32F732xx || STM32F733xx || STM32F765xx || STM32F767xx ||
90 | STM32F769xx || STM32F777xx || STM32F779xx || STM32F730xx */
91 |
92 | /**
93 | * @}
94 | */
95 |
96 | /**
97 | * @}
98 | */
99 |
100 | /* Exported functions --------------------------------------------------------*/
101 | /** @defgroup DMAEx_Exported_Functions DMAEx Exported Functions
102 | * @brief DMAEx Exported functions
103 | * @{
104 | */
105 |
106 | /** @defgroup DMAEx_Exported_Functions_Group1 Extended features functions
107 | * @brief Extended features functions
108 | * @{
109 | */
110 |
111 | /* IO operation functions *******************************************************/
112 | HAL_StatusTypeDef HAL_DMAEx_MultiBufferStart(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t SecondMemAddress, uint32_t DataLength);
113 | HAL_StatusTypeDef HAL_DMAEx_MultiBufferStart_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t SecondMemAddress, uint32_t DataLength);
114 | HAL_StatusTypeDef HAL_DMAEx_ChangeMemory(DMA_HandleTypeDef *hdma, uint32_t Address, HAL_DMA_MemoryTypeDef memory);
115 |
116 | /**
117 | * @}
118 | */
119 | /**
120 | * @}
121 | */
122 |
123 | /* Private macros ------------------------------------------------------------*/
124 | /** @defgroup DMAEx_Private_Macros DMA Private Macros
125 | * @brief DMAEx private macros
126 | * @{
127 | */
128 | #if defined (STM32F722xx) || defined (STM32F723xx) || defined (STM32F732xx) || defined (STM32F733xx) ||\
129 | defined (STM32F765xx) || defined (STM32F767xx) || defined (STM32F769xx) || defined (STM32F777xx) ||\
130 | defined (STM32F779xx) || defined (STM32F730xx)
131 | #define IS_DMA_CHANNEL(CHANNEL) (((CHANNEL) == DMA_CHANNEL_0) || \
132 | ((CHANNEL) == DMA_CHANNEL_1) || \
133 | ((CHANNEL) == DMA_CHANNEL_2) || \
134 | ((CHANNEL) == DMA_CHANNEL_3) || \
135 | ((CHANNEL) == DMA_CHANNEL_4) || \
136 | ((CHANNEL) == DMA_CHANNEL_5) || \
137 | ((CHANNEL) == DMA_CHANNEL_6) || \
138 | ((CHANNEL) == DMA_CHANNEL_7) || \
139 | ((CHANNEL) == DMA_CHANNEL_8) || \
140 | ((CHANNEL) == DMA_CHANNEL_9) || \
141 | ((CHANNEL) == DMA_CHANNEL_10) || \
142 | ((CHANNEL) == DMA_CHANNEL_11) || \
143 | ((CHANNEL) == DMA_CHANNEL_12) || \
144 | ((CHANNEL) == DMA_CHANNEL_13) || \
145 | ((CHANNEL) == DMA_CHANNEL_14) || \
146 | ((CHANNEL) == DMA_CHANNEL_15))
147 | #else
148 | #define IS_DMA_CHANNEL(CHANNEL) (((CHANNEL) == DMA_CHANNEL_0) || \
149 | ((CHANNEL) == DMA_CHANNEL_1) || \
150 | ((CHANNEL) == DMA_CHANNEL_2) || \
151 | ((CHANNEL) == DMA_CHANNEL_3) || \
152 | ((CHANNEL) == DMA_CHANNEL_4) || \
153 | ((CHANNEL) == DMA_CHANNEL_5) || \
154 | ((CHANNEL) == DMA_CHANNEL_6) || \
155 | ((CHANNEL) == DMA_CHANNEL_7))
156 | #endif /* STM32F722xx || STM32F723xx || STM32F732xx || STM32F733xx || STM32F765xx || STM32F767xx ||
157 | STM32F769xx || STM32F777xx || STM32F779xx || STM32F730xx*/
158 | /**
159 | * @}
160 | */
161 |
162 | /* Private functions ---------------------------------------------------------*/
163 | /** @defgroup DMAEx_Private_Functions DMAEx Private Functions
164 | * @brief DMAEx Private functions
165 | * @{
166 | */
167 | /**
168 | * @}
169 | */
170 |
171 | /**
172 | * @}
173 | */
174 |
175 | /**
176 | * @}
177 | */
178 |
179 | #ifdef __cplusplus
180 | }
181 | #endif
182 |
183 | #endif /* __STM32F7xx_HAL_DMA_H */
184 |
185 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
186 |
--------------------------------------------------------------------------------
/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_i2c_ex.h:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file stm32f7xx_hal_i2c_ex.h
4 | * @author MCD Application Team
5 | * @brief Header file of I2C HAL Extended module.
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * © Copyright (c) 2017 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software component is licensed by ST under BSD 3-Clause license,
13 | * the "License"; You may not use this file except in compliance with the
14 | * License. You may obtain a copy of the License at:
15 | * opensource.org/licenses/BSD-3-Clause
16 | *
17 | ******************************************************************************
18 | */
19 |
20 | /* Define to prevent recursive inclusion -------------------------------------*/
21 | #ifndef STM32F7xx_HAL_I2C_EX_H
22 | #define STM32F7xx_HAL_I2C_EX_H
23 |
24 | #ifdef __cplusplus
25 | extern "C" {
26 | #endif
27 |
28 | /* Includes ------------------------------------------------------------------*/
29 | #include "stm32f7xx_hal_def.h"
30 |
31 | /** @addtogroup STM32F7xx_HAL_Driver
32 | * @{
33 | */
34 |
35 | /** @addtogroup I2CEx
36 | * @{
37 | */
38 |
39 | /* Exported types ------------------------------------------------------------*/
40 | /* Exported constants --------------------------------------------------------*/
41 |
42 | /** @defgroup I2CEx_Exported_Constants I2C Extended Exported Constants
43 | * @{
44 | */
45 |
46 | /** @defgroup I2CEx_Analog_Filter I2C Extended Analog Filter
47 | * @{
48 | */
49 | #define I2C_ANALOGFILTER_ENABLE 0x00000000U
50 | #define I2C_ANALOGFILTER_DISABLE I2C_CR1_ANFOFF
51 | /**
52 | * @}
53 | */
54 |
55 | /** @defgroup I2CEx_FastModePlus I2C Extended Fast Mode Plus
56 | * @{
57 | */
58 | #define I2C_FMP_NOT_SUPPORTED 0xAAAA0000U /*!< Fast Mode Plus not supported */
59 | #if defined(SYSCFG_PMC_I2C_PB6_FMP)
60 | #define I2C_FASTMODEPLUS_PB6 SYSCFG_PMC_I2C_PB6_FMP /*!< Enable Fast Mode Plus on PB6 */
61 | #define I2C_FASTMODEPLUS_PB7 SYSCFG_PMC_I2C_PB7_FMP /*!< Enable Fast Mode Plus on PB7 */
62 | #else
63 | #define I2C_FASTMODEPLUS_PB6 (uint32_t)(0x00000004U | I2C_FMP_NOT_SUPPORTED) /*!< Fast Mode Plus PB6 not supported */
64 | #define I2C_FASTMODEPLUS_PB7 (uint32_t)(0x00000008U | I2C_FMP_NOT_SUPPORTED) /*!< Fast Mode Plus PB7 not supported */
65 | #endif
66 | #if defined(SYSCFG_PMC_I2C_PB8_FMP)
67 | #define I2C_FASTMODEPLUS_PB8 SYSCFG_PMC_I2C_PB8_FMP /*!< Enable Fast Mode Plus on PB8 */
68 | #define I2C_FASTMODEPLUS_PB9 SYSCFG_PMC_I2C_PB9_FMP /*!< Enable Fast Mode Plus on PB9 */
69 | #else
70 | #define I2C_FASTMODEPLUS_PB8 (uint32_t)(0x00000010U | I2C_FMP_NOT_SUPPORTED) /*!< Fast Mode Plus PB8 not supported */
71 | #define I2C_FASTMODEPLUS_PB9 (uint32_t)(0x00000012U | I2C_FMP_NOT_SUPPORTED) /*!< Fast Mode Plus PB9 not supported */
72 | #endif
73 | #if defined(SYSCFG_PMC_I2C1_FMP)
74 | #define I2C_FASTMODEPLUS_I2C1 SYSCFG_PMC_I2C1_FMP /*!< Enable Fast Mode Plus on I2C1 pins */
75 | #else
76 | #define I2C_FASTMODEPLUS_I2C1 (uint32_t)(0x00000100U | I2C_FMP_NOT_SUPPORTED) /*!< Fast Mode Plus I2C1 not supported */
77 | #endif
78 | #if defined(SYSCFG_PMC_I2C2_FMP)
79 | #define I2C_FASTMODEPLUS_I2C2 SYSCFG_PMC_I2C2_FMP /*!< Enable Fast Mode Plus on I2C2 pins */
80 | #else
81 | #define I2C_FASTMODEPLUS_I2C2 (uint32_t)(0x00000200U | I2C_FMP_NOT_SUPPORTED) /*!< Fast Mode Plus I2C2 not supported */
82 | #endif
83 | #if defined(SYSCFG_PMC_I2C3_FMP)
84 | #define I2C_FASTMODEPLUS_I2C3 SYSCFG_PMC_I2C3_FMP /*!< Enable Fast Mode Plus on I2C3 pins */
85 | #else
86 | #define I2C_FASTMODEPLUS_I2C3 (uint32_t)(0x00000400U | I2C_FMP_NOT_SUPPORTED) /*!< Fast Mode Plus I2C3 not supported */
87 | #endif
88 | #if defined(SYSCFG_PMC_I2C4_FMP)
89 | #define I2C_FASTMODEPLUS_I2C4 SYSCFG_PMC_I2C4_FMP /*!< Enable Fast Mode Plus on I2C4 pins */
90 | #else
91 | #define I2C_FASTMODEPLUS_I2C4 (uint32_t)(0x00000800U | I2C_FMP_NOT_SUPPORTED) /*!< Fast Mode Plus I2C4 not supported */
92 | #endif
93 | /**
94 | * @}
95 | */
96 |
97 | /**
98 | * @}
99 | */
100 |
101 | /* Exported macro ------------------------------------------------------------*/
102 | /* Exported functions --------------------------------------------------------*/
103 |
104 | /** @addtogroup I2CEx_Exported_Functions I2C Extended Exported Functions
105 | * @{
106 | */
107 |
108 | /** @addtogroup I2CEx_Exported_Functions_Group1 Extended features functions
109 | * @brief Extended features functions
110 | * @{
111 | */
112 |
113 | /* Peripheral Control functions ************************************************/
114 | HAL_StatusTypeDef HAL_I2CEx_ConfigAnalogFilter(I2C_HandleTypeDef *hi2c, uint32_t AnalogFilter);
115 | HAL_StatusTypeDef HAL_I2CEx_ConfigDigitalFilter(I2C_HandleTypeDef *hi2c, uint32_t DigitalFilter);
116 | #if (defined(SYSCFG_PMC_I2C_PB6_FMP) || defined(SYSCFG_PMC_I2C_PB7_FMP)) || (defined(SYSCFG_PMC_I2C_PB8_FMP) || defined(SYSCFG_PMC_I2C_PB9_FMP)) || (defined(SYSCFG_PMC_I2C1_FMP)) || (defined(SYSCFG_PMC_I2C2_FMP)) || defined(SYSCFG_PMC_I2C3_FMP) || defined(SYSCFG_PMC_I2C4_FMP)
117 | void HAL_I2CEx_EnableFastModePlus(uint32_t ConfigFastModePlus);
118 | void HAL_I2CEx_DisableFastModePlus(uint32_t ConfigFastModePlus);
119 | #endif
120 |
121 | /* Private constants ---------------------------------------------------------*/
122 | /** @defgroup I2CEx_Private_Constants I2C Extended Private Constants
123 | * @{
124 | */
125 |
126 | /**
127 | * @}
128 | */
129 |
130 | /* Private macros ------------------------------------------------------------*/
131 | /** @defgroup I2CEx_Private_Macro I2C Extended Private Macros
132 | * @{
133 | */
134 | #define IS_I2C_ANALOG_FILTER(FILTER) (((FILTER) == I2C_ANALOGFILTER_ENABLE) || \
135 | ((FILTER) == I2C_ANALOGFILTER_DISABLE))
136 |
137 | #define IS_I2C_DIGITAL_FILTER(FILTER) ((FILTER) <= 0x0000000FU)
138 |
139 | #if (defined(SYSCFG_PMC_I2C1_FMP) && defined(SYSCFG_PMC_I2C2_FMP) && defined(SYSCFG_PMC_I2C3_FMP) && defined(SYSCFG_PMC_I2C4_FMP))
140 | #define IS_I2C_FASTMODEPLUS(__CONFIG__) ((((__CONFIG__) & I2C_FASTMODEPLUS_PB6) == I2C_FASTMODEPLUS_PB6) || \
141 | (((__CONFIG__) & I2C_FASTMODEPLUS_PB7) == I2C_FASTMODEPLUS_PB7) || \
142 | (((__CONFIG__) & I2C_FASTMODEPLUS_PB8) == I2C_FASTMODEPLUS_PB8) || \
143 | (((__CONFIG__) & I2C_FASTMODEPLUS_PB9) == I2C_FASTMODEPLUS_PB9) || \
144 | (((__CONFIG__) & I2C_FASTMODEPLUS_I2C1) == I2C_FASTMODEPLUS_I2C1) || \
145 | (((__CONFIG__) & I2C_FASTMODEPLUS_I2C2) == I2C_FASTMODEPLUS_I2C2) || \
146 | (((__CONFIG__) & I2C_FASTMODEPLUS_I2C3) == I2C_FASTMODEPLUS_I2C3) || \
147 | (((__CONFIG__) & I2C_FASTMODEPLUS_I2C4) == I2C_FASTMODEPLUS_I2C4))
148 | #elif defined(SYSCFG_PMC_I2C1_FMP) && defined(SYSCFG_PMC_I2C2_FMP) && defined(SYSCFG_PMC_I2C3_FMP)
149 | #define IS_I2C_FASTMODEPLUS(__CONFIG__) ((((__CONFIG__) & I2C_FASTMODEPLUS_PB6) == I2C_FASTMODEPLUS_PB6) || \
150 | (((__CONFIG__) & I2C_FASTMODEPLUS_PB7) == I2C_FASTMODEPLUS_PB7) || \
151 | (((__CONFIG__) & I2C_FASTMODEPLUS_PB8) == I2C_FASTMODEPLUS_PB8) || \
152 | (((__CONFIG__) & I2C_FASTMODEPLUS_PB9) == I2C_FASTMODEPLUS_PB9) || \
153 | (((__CONFIG__) & I2C_FASTMODEPLUS_I2C1) == I2C_FASTMODEPLUS_I2C1) || \
154 | (((__CONFIG__) & I2C_FASTMODEPLUS_I2C2) == I2C_FASTMODEPLUS_I2C2) || \
155 | (((__CONFIG__) & I2C_FASTMODEPLUS_I2C3) == I2C_FASTMODEPLUS_I2C3))
156 | #elif defined(SYSCFG_PMC_I2C1_FMP) && defined(SYSCFG_PMC_I2C2_FMP)
157 | #define IS_I2C_FASTMODEPLUS(__CONFIG__) ((((__CONFIG__) & I2C_FASTMODEPLUS_PB6) == I2C_FASTMODEPLUS_PB6) || \
158 | (((__CONFIG__) & I2C_FASTMODEPLUS_PB7) == I2C_FASTMODEPLUS_PB7) || \
159 | (((__CONFIG__) & I2C_FASTMODEPLUS_PB8) == I2C_FASTMODEPLUS_PB8) || \
160 | (((__CONFIG__) & I2C_FASTMODEPLUS_PB9) == I2C_FASTMODEPLUS_PB9) || \
161 | (((__CONFIG__) & I2C_FASTMODEPLUS_I2C1) == I2C_FASTMODEPLUS_I2C1) || \
162 | (((__CONFIG__) & I2C_FASTMODEPLUS_I2C2) == I2C_FASTMODEPLUS_I2C2))
163 | #elif defined(SYSCFG_PMC_I2C1_FMP)
164 | #define IS_I2C_FASTMODEPLUS(__CONFIG__) ((((__CONFIG__) & I2C_FASTMODEPLUS_PB6) == I2C_FASTMODEPLUS_PB6) || \
165 | (((__CONFIG__) & I2C_FASTMODEPLUS_PB7) == I2C_FASTMODEPLUS_PB7) || \
166 | (((__CONFIG__) & I2C_FASTMODEPLUS_PB8) == I2C_FASTMODEPLUS_PB8) || \
167 | (((__CONFIG__) & I2C_FASTMODEPLUS_PB9) == I2C_FASTMODEPLUS_PB9) || \
168 | (((__CONFIG__) & I2C_FASTMODEPLUS_I2C1) == I2C_FASTMODEPLUS_I2C1))
169 | #endif /* SYSCFG_PMC_I2C1_FMP && SYSCFG_PMC_I2C2_FMP && SYSCFG_PMC_I2C3_FMP && SYSCFG_PMC_I2C4_FMP */
170 |
171 |
172 |
173 | /**
174 | * @}
175 | */
176 |
177 | /* Private Functions ---------------------------------------------------------*/
178 | /** @defgroup I2CEx_Private_Functions I2C Extended Private Functions
179 | * @{
180 | */
181 | /* Private functions are defined in stm32f7xx_hal_i2c_ex.c file */
182 | /**
183 | * @}
184 | */
185 |
186 | /**
187 | * @}
188 | */
189 |
190 | /**
191 | * @}
192 | */
193 |
194 | /**
195 | * @}
196 | */
197 |
198 | /**
199 | * @}
200 | */
201 |
202 | #ifdef __cplusplus
203 | }
204 | #endif
205 |
206 | #endif /* STM32F7xx_HAL_I2C_EX_H */
207 |
208 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
209 |
--------------------------------------------------------------------------------
/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_pwr_ex.h:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file stm32f7xx_hal_pwr_ex.h
4 | * @author MCD Application Team
5 | * @brief Header file of PWR HAL Extension module.
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * © Copyright (c) 2017 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software component is licensed by ST under BSD 3-Clause license,
13 | * the "License"; You may not use this file except in compliance with the
14 | * License. You may obtain a copy of the License at:
15 | * opensource.org/licenses/BSD-3-Clause
16 | *
17 | ******************************************************************************
18 | */
19 |
20 | /* Define to prevent recursive inclusion -------------------------------------*/
21 | #ifndef __STM32F7xx_HAL_PWR_EX_H
22 | #define __STM32F7xx_HAL_PWR_EX_H
23 |
24 | #ifdef __cplusplus
25 | extern "C" {
26 | #endif
27 |
28 | /* Includes ------------------------------------------------------------------*/
29 | #include "stm32f7xx_hal_def.h"
30 |
31 | /** @addtogroup STM32F7xx_HAL_Driver
32 | * @{
33 | */
34 |
35 | /** @addtogroup PWREx
36 | * @{
37 | */
38 |
39 | /* Exported types ------------------------------------------------------------*/
40 | /* Exported constants --------------------------------------------------------*/
41 | /** @defgroup PWREx_Exported_Constants PWREx Exported Constants
42 | * @{
43 | */
44 | /** @defgroup PWREx_WakeUp_Pins PWREx Wake Up Pins
45 | * @{
46 | */
47 | #define PWR_WAKEUP_PIN1 PWR_CSR2_EWUP1
48 | #define PWR_WAKEUP_PIN2 PWR_CSR2_EWUP2
49 | #define PWR_WAKEUP_PIN3 PWR_CSR2_EWUP3
50 | #define PWR_WAKEUP_PIN4 PWR_CSR2_EWUP4
51 | #define PWR_WAKEUP_PIN5 PWR_CSR2_EWUP5
52 | #define PWR_WAKEUP_PIN6 PWR_CSR2_EWUP6
53 | #define PWR_WAKEUP_PIN1_HIGH PWR_CSR2_EWUP1
54 | #define PWR_WAKEUP_PIN2_HIGH PWR_CSR2_EWUP2
55 | #define PWR_WAKEUP_PIN3_HIGH PWR_CSR2_EWUP3
56 | #define PWR_WAKEUP_PIN4_HIGH PWR_CSR2_EWUP4
57 | #define PWR_WAKEUP_PIN5_HIGH PWR_CSR2_EWUP5
58 | #define PWR_WAKEUP_PIN6_HIGH PWR_CSR2_EWUP6
59 | #define PWR_WAKEUP_PIN1_LOW (uint32_t)((PWR_CR2_WUPP1<<6) | PWR_CSR2_EWUP1)
60 | #define PWR_WAKEUP_PIN2_LOW (uint32_t)((PWR_CR2_WUPP2<<6) | PWR_CSR2_EWUP2)
61 | #define PWR_WAKEUP_PIN3_LOW (uint32_t)((PWR_CR2_WUPP3<<6) | PWR_CSR2_EWUP3)
62 | #define PWR_WAKEUP_PIN4_LOW (uint32_t)((PWR_CR2_WUPP4<<6) | PWR_CSR2_EWUP4)
63 | #define PWR_WAKEUP_PIN5_LOW (uint32_t)((PWR_CR2_WUPP5<<6) | PWR_CSR2_EWUP5)
64 | #define PWR_WAKEUP_PIN6_LOW (uint32_t)((PWR_CR2_WUPP6<<6) | PWR_CSR2_EWUP6)
65 |
66 | /**
67 | * @}
68 | */
69 |
70 | /** @defgroup PWREx_Regulator_state_in_UnderDrive_mode PWREx Regulator state in UnderDrive mode
71 | * @{
72 | */
73 | #define PWR_MAINREGULATOR_UNDERDRIVE_ON PWR_CR1_MRUDS
74 | #define PWR_LOWPOWERREGULATOR_UNDERDRIVE_ON ((uint32_t)(PWR_CR1_LPDS | PWR_CR1_LPUDS))
75 | /**
76 | * @}
77 | */
78 |
79 | /** @defgroup PWREx_Over_Under_Drive_Flag PWREx Over Under Drive Flag
80 | * @{
81 | */
82 | #define PWR_FLAG_ODRDY PWR_CSR1_ODRDY
83 | #define PWR_FLAG_ODSWRDY PWR_CSR1_ODSWRDY
84 | #define PWR_FLAG_UDRDY PWR_CSR1_UDRDY
85 | /**
86 | * @}
87 | */
88 |
89 | /** @defgroup PWREx_Wakeup_Pins_Flag PWREx Wake Up Pin Flags
90 | * @{
91 | */
92 | #define PWR_WAKEUP_PIN_FLAG1 PWR_CSR2_WUPF1
93 | #define PWR_WAKEUP_PIN_FLAG2 PWR_CSR2_WUPF2
94 | #define PWR_WAKEUP_PIN_FLAG3 PWR_CSR2_WUPF3
95 | #define PWR_WAKEUP_PIN_FLAG4 PWR_CSR2_WUPF4
96 | #define PWR_WAKEUP_PIN_FLAG5 PWR_CSR2_WUPF5
97 | #define PWR_WAKEUP_PIN_FLAG6 PWR_CSR2_WUPF6
98 | /**
99 | * @}
100 | */
101 |
102 | /**
103 | * @}
104 | */
105 |
106 | /* Exported macro ------------------------------------------------------------*/
107 | /** @defgroup PWREx_Exported_Macro PWREx Exported Macro
108 | * @{
109 | */
110 | /** @brief Macros to enable or disable the Over drive mode.
111 | */
112 | #define __HAL_PWR_OVERDRIVE_ENABLE() (PWR->CR1 |= (uint32_t)PWR_CR1_ODEN)
113 | #define __HAL_PWR_OVERDRIVE_DISABLE() (PWR->CR1 &= (uint32_t)(~PWR_CR1_ODEN))
114 |
115 | /** @brief Macros to enable or disable the Over drive switching.
116 | */
117 | #define __HAL_PWR_OVERDRIVESWITCHING_ENABLE() (PWR->CR1 |= (uint32_t)PWR_CR1_ODSWEN)
118 | #define __HAL_PWR_OVERDRIVESWITCHING_DISABLE() (PWR->CR1 &= (uint32_t)(~PWR_CR1_ODSWEN))
119 |
120 | /** @brief Macros to enable or disable the Under drive mode.
121 | * @note This mode is enabled only with STOP low power mode.
122 | * In this mode, the 1.2V domain is preserved in reduced leakage mode. This
123 | * mode is only available when the main regulator or the low power regulator
124 | * is in low voltage mode.
125 | * @note If the Under-drive mode was enabled, it is automatically disabled after
126 | * exiting Stop mode.
127 | * When the voltage regulator operates in Under-drive mode, an additional
128 | * startup delay is induced when waking up from Stop mode.
129 | */
130 | #define __HAL_PWR_UNDERDRIVE_ENABLE() (PWR->CR1 |= (uint32_t)PWR_CR1_UDEN)
131 | #define __HAL_PWR_UNDERDRIVE_DISABLE() (PWR->CR1 &= (uint32_t)(~PWR_CR1_UDEN))
132 |
133 | /** @brief Check PWR flag is set or not.
134 | * @param __FLAG__ specifies the flag to check.
135 | * This parameter can be one of the following values:
136 | * @arg PWR_FLAG_ODRDY: This flag indicates that the Over-drive mode
137 | * is ready
138 | * @arg PWR_FLAG_ODSWRDY: This flag indicates that the Over-drive mode
139 | * switching is ready
140 | * @arg PWR_FLAG_UDRDY: This flag indicates that the Under-drive mode
141 | * is enabled in Stop mode
142 | * @retval The new state of __FLAG__ (TRUE or FALSE).
143 | */
144 | #define __HAL_PWR_GET_ODRUDR_FLAG(__FLAG__) ((PWR->CSR1 & (__FLAG__)) == (__FLAG__))
145 |
146 | /** @brief Clear the Under-Drive Ready flag.
147 | */
148 | #define __HAL_PWR_CLEAR_ODRUDR_FLAG() (PWR->CSR1 |= PWR_FLAG_UDRDY)
149 |
150 | /** @brief Check Wake Up flag is set or not.
151 | * @param __WUFLAG__ specifies the Wake Up flag to check.
152 | * This parameter can be one of the following values:
153 | * @arg PWR_WAKEUP_PIN_FLAG1: Wakeup Pin Flag for PA0
154 | * @arg PWR_WAKEUP_PIN_FLAG2: Wakeup Pin Flag for PA2
155 | * @arg PWR_WAKEUP_PIN_FLAG3: Wakeup Pin Flag for PC1
156 | * @arg PWR_WAKEUP_PIN_FLAG4: Wakeup Pin Flag for PC13
157 | * @arg PWR_WAKEUP_PIN_FLAG5: Wakeup Pin Flag for PI8
158 | * @arg PWR_WAKEUP_PIN_FLAG6: Wakeup Pin Flag for PI11
159 | */
160 | #define __HAL_PWR_GET_WAKEUP_FLAG(__WUFLAG__) (PWR->CSR2 & (__WUFLAG__))
161 |
162 | /** @brief Clear the WakeUp pins flags.
163 | * @param __WUFLAG__ specifies the Wake Up pin flag to clear.
164 | * This parameter can be one of the following values:
165 | * @arg PWR_WAKEUP_PIN_FLAG1: Wakeup Pin Flag for PA0
166 | * @arg PWR_WAKEUP_PIN_FLAG2: Wakeup Pin Flag for PA2
167 | * @arg PWR_WAKEUP_PIN_FLAG3: Wakeup Pin Flag for PC1
168 | * @arg PWR_WAKEUP_PIN_FLAG4: Wakeup Pin Flag for PC13
169 | * @arg PWR_WAKEUP_PIN_FLAG5: Wakeup Pin Flag for PI8
170 | * @arg PWR_WAKEUP_PIN_FLAG6: Wakeup Pin Flag for PI11
171 | */
172 | #define __HAL_PWR_CLEAR_WAKEUP_FLAG(__WUFLAG__) (PWR->CR2 |= (__WUFLAG__))
173 | /**
174 | * @}
175 | */
176 | /* Exported functions --------------------------------------------------------*/
177 | /** @addtogroup PWREx_Exported_Functions PWREx Exported Functions
178 | * @{
179 | */
180 |
181 | /** @addtogroup PWREx_Exported_Functions_Group1
182 | * @{
183 | */
184 | uint32_t HAL_PWREx_GetVoltageRange(void);
185 | HAL_StatusTypeDef HAL_PWREx_ControlVoltageScaling(uint32_t VoltageScaling);
186 |
187 | void HAL_PWREx_EnableFlashPowerDown(void);
188 | void HAL_PWREx_DisableFlashPowerDown(void);
189 | HAL_StatusTypeDef HAL_PWREx_EnableBkUpReg(void);
190 | HAL_StatusTypeDef HAL_PWREx_DisableBkUpReg(void);
191 |
192 | void HAL_PWREx_EnableMainRegulatorLowVoltage(void);
193 | void HAL_PWREx_DisableMainRegulatorLowVoltage(void);
194 | void HAL_PWREx_EnableLowRegulatorLowVoltage(void);
195 | void HAL_PWREx_DisableLowRegulatorLowVoltage(void);
196 |
197 | HAL_StatusTypeDef HAL_PWREx_EnableOverDrive(void);
198 | HAL_StatusTypeDef HAL_PWREx_DisableOverDrive(void);
199 | HAL_StatusTypeDef HAL_PWREx_EnterUnderDriveSTOPMode(uint32_t Regulator, uint8_t STOPEntry);
200 |
201 | /**
202 | * @}
203 | */
204 |
205 | /**
206 | * @}
207 | */
208 | /* Private types -------------------------------------------------------------*/
209 | /* Private variables ---------------------------------------------------------*/
210 | /* Private constants ---------------------------------------------------------*/
211 | /* Private macros ------------------------------------------------------------*/
212 | /** @defgroup PWREx_Private_Macros PWREx Private Macros
213 | * @{
214 | */
215 |
216 | /** @defgroup PWREx_IS_PWR_Definitions PWREx Private macros to check input parameters
217 | * @{
218 | */
219 | #define IS_PWR_REGULATOR_UNDERDRIVE(REGULATOR) (((REGULATOR) == PWR_MAINREGULATOR_UNDERDRIVE_ON) || \
220 | ((REGULATOR) == PWR_LOWPOWERREGULATOR_UNDERDRIVE_ON))
221 | #define IS_PWR_WAKEUP_PIN(__PIN__) (((__PIN__) == PWR_WAKEUP_PIN1) || \
222 | ((__PIN__) == PWR_WAKEUP_PIN2) || \
223 | ((__PIN__) == PWR_WAKEUP_PIN3) || \
224 | ((__PIN__) == PWR_WAKEUP_PIN4) || \
225 | ((__PIN__) == PWR_WAKEUP_PIN5) || \
226 | ((__PIN__) == PWR_WAKEUP_PIN6) || \
227 | ((__PIN__) == PWR_WAKEUP_PIN1_HIGH) || \
228 | ((__PIN__) == PWR_WAKEUP_PIN2_HIGH) || \
229 | ((__PIN__) == PWR_WAKEUP_PIN3_HIGH) || \
230 | ((__PIN__) == PWR_WAKEUP_PIN4_HIGH) || \
231 | ((__PIN__) == PWR_WAKEUP_PIN5_HIGH) || \
232 | ((__PIN__) == PWR_WAKEUP_PIN6_HIGH) || \
233 | ((__PIN__) == PWR_WAKEUP_PIN1_LOW) || \
234 | ((__PIN__) == PWR_WAKEUP_PIN2_LOW) || \
235 | ((__PIN__) == PWR_WAKEUP_PIN3_LOW) || \
236 | ((__PIN__) == PWR_WAKEUP_PIN4_LOW) || \
237 | ((__PIN__) == PWR_WAKEUP_PIN5_LOW) || \
238 | ((__PIN__) == PWR_WAKEUP_PIN6_LOW))
239 | /**
240 | * @}
241 | */
242 |
243 | /**
244 | * @}
245 | */
246 |
247 | /**
248 | * @}
249 | */
250 |
251 | /**
252 | * @}
253 | */
254 |
255 | #ifdef __cplusplus
256 | }
257 | #endif
258 |
259 |
260 | #endif /* __STM32F7xx_HAL_PWR_EX_H */
261 |
262 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
263 |
--------------------------------------------------------------------------------
/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dcmi_ex.c:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file stm32f7xx_hal_dcmi_ex.c
4 | * @author MCD Application Team
5 | * @brief Empty file; This file is no longer used to handle the Black&White
6 | * feature. Its content is now moved to common files
7 | * (stm32f7xx_hal_dcmi.c/.h) as there's no device's dependency within
8 | * this family. It's just kept for compatibility reasons.
9 | *
10 | ******************************************************************************
11 | * @attention
12 | *
13 | * © Copyright (c) 2017 STMicroelectronics.
14 | * All rights reserved.
15 | *
16 | * This software component is licensed by ST under BSD 3-Clause license,
17 | * the "License"; You may not use this file except in compliance with the
18 | * License. You may obtain a copy of the License at:
19 | * opensource.org/licenses/BSD-3-Clause
20 | *
21 | ******************************************************************************
22 | */
23 |
24 | /* Includes ------------------------------------------------------------------*/
25 | #include "stm32f7xx_hal.h"
26 | /* Private typedef -----------------------------------------------------------*/
27 | /* Private define ------------------------------------------------------------*/
28 | /* Private macro -------------------------------------------------------------*/
29 | /* Private variables ---------------------------------------------------------*/
30 | /* Private function prototypes -----------------------------------------------*/
31 | /* Exported functions --------------------------------------------------------*/
32 |
33 |
34 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
35 |
--------------------------------------------------------------------------------
/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma_ex.c:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file stm32f7xx_hal_dma_ex.c
4 | * @author MCD Application Team
5 | * @brief DMA Extension HAL module driver
6 | * This file provides firmware functions to manage the following
7 | * functionalities of the DMA Extension peripheral:
8 | * + Extended features functions
9 | *
10 | @verbatim
11 | ==============================================================================
12 | ##### How to use this driver #####
13 | ==============================================================================
14 | [..]
15 | The DMA Extension HAL driver can be used as follows:
16 | (+) Start a multi buffer transfer using the HAL_DMA_MultiBufferStart() function
17 | for polling mode or HAL_DMA_MultiBufferStart_IT() for interrupt mode.
18 |
19 | -@- In Memory-to-Memory transfer mode, Multi (Double) Buffer mode is not allowed.
20 | -@- When Multi (Double) Buffer mode is enabled, the transfer is circular by default.
21 | -@- In Multi (Double) buffer mode, it is possible to update the base address for
22 | the AHB memory port on the fly (DMA_SxM0AR or DMA_SxM1AR) when the stream is enabled.
23 |
24 | @endverbatim
25 | ******************************************************************************
26 | * @attention
27 | *
28 | * © Copyright (c) 2017 STMicroelectronics.
29 | * All rights reserved.
30 | *
31 | * This software component is licensed by ST under BSD 3-Clause license,
32 | * the "License"; You may not use this file except in compliance with the
33 | * License. You may obtain a copy of the License at:
34 | * opensource.org/licenses/BSD-3-Clause
35 | *
36 | ******************************************************************************
37 | */
38 |
39 | /* Includes ------------------------------------------------------------------*/
40 | #include "stm32f7xx_hal.h"
41 |
42 | /** @addtogroup STM32F7xx_HAL_Driver
43 | * @{
44 | */
45 |
46 | /** @defgroup DMAEx DMAEx
47 | * @brief DMA Extended HAL module driver
48 | * @{
49 | */
50 |
51 | #ifdef HAL_DMA_MODULE_ENABLED
52 |
53 | /* Private types -------------------------------------------------------------*/
54 | /* Private variables ---------------------------------------------------------*/
55 | /* Private Constants ---------------------------------------------------------*/
56 | /* Private macros ------------------------------------------------------------*/
57 | /* Private functions ---------------------------------------------------------*/
58 | /** @addtogroup DMAEx_Private_Functions
59 | * @{
60 | */
61 |
62 | static void DMA_MultiBufferSetConfig(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength);
63 |
64 | /**
65 | * @}
66 | */
67 |
68 | /* Exported functions ---------------------------------------------------------*/
69 |
70 | /** @addtogroup DMAEx_Exported_Functions
71 | * @{
72 | */
73 |
74 |
75 | /** @addtogroup DMAEx_Exported_Functions_Group1
76 | *
77 | @verbatim
78 | ===============================================================================
79 | ##### Extended features functions #####
80 | ===============================================================================
81 | [..] This section provides functions allowing to:
82 | (+) Configure the source, destination address and data length and
83 | Start MultiBuffer DMA transfer
84 | (+) Configure the source, destination address and data length and
85 | Start MultiBuffer DMA transfer with interrupt
86 | (+) Change on the fly the memory0 or memory1 address.
87 |
88 | @endverbatim
89 | * @{
90 | */
91 |
92 |
93 | /**
94 | * @brief Starts the multi_buffer DMA Transfer.
95 | * @param hdma pointer to a DMA_HandleTypeDef structure that contains
96 | * the configuration information for the specified DMA Stream.
97 | * @param SrcAddress The source memory Buffer address
98 | * @param DstAddress The destination memory Buffer address
99 | * @param SecondMemAddress The second memory Buffer address in case of multi buffer Transfer
100 | * @param DataLength The length of data to be transferred from source to destination
101 | * @retval HAL status
102 | */
103 | HAL_StatusTypeDef HAL_DMAEx_MultiBufferStart(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t SecondMemAddress, uint32_t DataLength)
104 | {
105 | HAL_StatusTypeDef status = HAL_OK;
106 |
107 | /* Check the parameters */
108 | assert_param(IS_DMA_BUFFER_SIZE(DataLength));
109 |
110 | /* Memory-to-memory transfer not supported in double buffering mode */
111 | if (hdma->Init.Direction == DMA_MEMORY_TO_MEMORY)
112 | {
113 | hdma->ErrorCode = HAL_DMA_ERROR_NOT_SUPPORTED;
114 | status = HAL_ERROR;
115 | }
116 | else
117 | {
118 | /* Process Locked */
119 | __HAL_LOCK(hdma);
120 |
121 | if(HAL_DMA_STATE_READY == hdma->State)
122 | {
123 | /* Change DMA peripheral state */
124 | hdma->State = HAL_DMA_STATE_BUSY;
125 |
126 | /* Enable the double buffer mode */
127 | hdma->Instance->CR |= (uint32_t)DMA_SxCR_DBM;
128 |
129 | /* Configure DMA Stream destination address */
130 | hdma->Instance->M1AR = SecondMemAddress;
131 |
132 | /* Configure the source, destination address and the data length */
133 | DMA_MultiBufferSetConfig(hdma, SrcAddress, DstAddress, DataLength);
134 |
135 | /* Enable the peripheral */
136 | __HAL_DMA_ENABLE(hdma);
137 | }
138 | else
139 | {
140 | /* Return error status */
141 | status = HAL_BUSY;
142 | }
143 | }
144 | return status;
145 | }
146 |
147 | /**
148 | * @brief Starts the multi_buffer DMA Transfer with interrupt enabled.
149 | * @param hdma pointer to a DMA_HandleTypeDef structure that contains
150 | * the configuration information for the specified DMA Stream.
151 | * @param SrcAddress The source memory Buffer address
152 | * @param DstAddress The destination memory Buffer address
153 | * @param SecondMemAddress The second memory Buffer address in case of multi buffer Transfer
154 | * @param DataLength The length of data to be transferred from source to destination
155 | * @retval HAL status
156 | */
157 | HAL_StatusTypeDef HAL_DMAEx_MultiBufferStart_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t SecondMemAddress, uint32_t DataLength)
158 | {
159 | HAL_StatusTypeDef status = HAL_OK;
160 |
161 | /* Check the parameters */
162 | assert_param(IS_DMA_BUFFER_SIZE(DataLength));
163 |
164 | /* Memory-to-memory transfer not supported in double buffering mode */
165 | if (hdma->Init.Direction == DMA_MEMORY_TO_MEMORY)
166 | {
167 | hdma->ErrorCode = HAL_DMA_ERROR_NOT_SUPPORTED;
168 | return HAL_ERROR;
169 | }
170 |
171 | /* Process locked */
172 | __HAL_LOCK(hdma);
173 |
174 | if(HAL_DMA_STATE_READY == hdma->State)
175 | {
176 | /* Change DMA peripheral state */
177 | hdma->State = HAL_DMA_STATE_BUSY;
178 |
179 | /* Initialize the error code */
180 | hdma->ErrorCode = HAL_DMA_ERROR_NONE;
181 |
182 | /* Enable the Double buffer mode */
183 | hdma->Instance->CR |= (uint32_t)DMA_SxCR_DBM;
184 |
185 | /* Configure DMA Stream destination address */
186 | hdma->Instance->M1AR = SecondMemAddress;
187 |
188 | /* Configure the source, destination address and the data length */
189 | DMA_MultiBufferSetConfig(hdma, SrcAddress, DstAddress, DataLength);
190 |
191 | /* Clear all flags */
192 | __HAL_DMA_CLEAR_FLAG (hdma, __HAL_DMA_GET_TC_FLAG_INDEX(hdma));
193 | __HAL_DMA_CLEAR_FLAG (hdma, __HAL_DMA_GET_HT_FLAG_INDEX(hdma));
194 | __HAL_DMA_CLEAR_FLAG (hdma, __HAL_DMA_GET_TE_FLAG_INDEX(hdma));
195 | __HAL_DMA_CLEAR_FLAG (hdma, __HAL_DMA_GET_DME_FLAG_INDEX(hdma));
196 | __HAL_DMA_CLEAR_FLAG (hdma, __HAL_DMA_GET_FE_FLAG_INDEX(hdma));
197 |
198 | /* Enable Common interrupts*/
199 | hdma->Instance->CR |= DMA_IT_TC | DMA_IT_TE | DMA_IT_DME;
200 | hdma->Instance->FCR |= DMA_IT_FE;
201 |
202 | if((hdma->XferHalfCpltCallback != NULL) || (hdma->XferM1HalfCpltCallback != NULL))
203 | {
204 | hdma->Instance->CR |= DMA_IT_HT;
205 | }
206 |
207 | /* Enable the peripheral */
208 | __HAL_DMA_ENABLE(hdma);
209 | }
210 | else
211 | {
212 | /* Process unlocked */
213 | __HAL_UNLOCK(hdma);
214 |
215 | /* Return error status */
216 | status = HAL_BUSY;
217 | }
218 | return status;
219 | }
220 |
221 | /**
222 | * @brief Change the memory0 or memory1 address on the fly.
223 | * @param hdma pointer to a DMA_HandleTypeDef structure that contains
224 | * the configuration information for the specified DMA Stream.
225 | * @param Address The new address
226 | * @param memory the memory to be changed, This parameter can be one of
227 | * the following values:
228 | * MEMORY0 /
229 | * MEMORY1
230 | * @note The MEMORY0 address can be changed only when the current transfer use
231 | * MEMORY1 and the MEMORY1 address can be changed only when the current
232 | * transfer use MEMORY0.
233 | * @retval HAL status
234 | */
235 | HAL_StatusTypeDef HAL_DMAEx_ChangeMemory(DMA_HandleTypeDef *hdma, uint32_t Address, HAL_DMA_MemoryTypeDef memory)
236 | {
237 | if(memory == MEMORY0)
238 | {
239 | /* change the memory0 address */
240 | hdma->Instance->M0AR = Address;
241 | }
242 | else
243 | {
244 | /* change the memory1 address */
245 | hdma->Instance->M1AR = Address;
246 | }
247 |
248 | return HAL_OK;
249 | }
250 |
251 | /**
252 | * @}
253 | */
254 |
255 | /**
256 | * @}
257 | */
258 |
259 | /** @addtogroup DMAEx_Private_Functions
260 | * @{
261 | */
262 |
263 | /**
264 | * @brief Set the DMA Transfer parameter.
265 | * @param hdma pointer to a DMA_HandleTypeDef structure that contains
266 | * the configuration information for the specified DMA Stream.
267 | * @param SrcAddress The source memory Buffer address
268 | * @param DstAddress The destination memory Buffer address
269 | * @param DataLength The length of data to be transferred from source to destination
270 | * @retval HAL status
271 | */
272 | static void DMA_MultiBufferSetConfig(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
273 | {
274 | /* Configure DMA Stream data length */
275 | hdma->Instance->NDTR = DataLength;
276 |
277 | /* Peripheral to Memory */
278 | if((hdma->Init.Direction) == DMA_MEMORY_TO_PERIPH)
279 | {
280 | /* Configure DMA Stream destination address */
281 | hdma->Instance->PAR = DstAddress;
282 |
283 | /* Configure DMA Stream source address */
284 | hdma->Instance->M0AR = SrcAddress;
285 | }
286 | /* Memory to Peripheral */
287 | else
288 | {
289 | /* Configure DMA Stream source address */
290 | hdma->Instance->PAR = SrcAddress;
291 |
292 | /* Configure DMA Stream destination address */
293 | hdma->Instance->M0AR = DstAddress;
294 | }
295 | }
296 |
297 | /**
298 | * @}
299 | */
300 |
301 | #endif /* HAL_DMA_MODULE_ENABLED */
302 | /**
303 | * @}
304 | */
305 |
306 | /**
307 | * @}
308 | */
309 |
310 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
311 |
--------------------------------------------------------------------------------
/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c_ex.c:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file stm32f7xx_hal_i2c_ex.c
4 | * @author MCD Application Team
5 | * @brief I2C Extended HAL module driver.
6 | * This file provides firmware functions to manage the following
7 | * functionalities of I2C Extended peripheral:
8 | * + Extended features functions
9 | *
10 | @verbatim
11 | ==============================================================================
12 | ##### I2C peripheral Extended features #####
13 | ==============================================================================
14 |
15 | [..] Comparing to other previous devices, the I2C interface for STM32F7xx
16 | devices contains the following additional features
17 |
18 | (+) Possibility to disable or enable Analog Noise Filter
19 | (+) Use of a configured Digital Noise Filter
20 | (+) Disable or enable Fast Mode Plus
21 |
22 | ##### How to use this driver #####
23 | ==============================================================================
24 | [..] This driver provides functions to:
25 | (#) Configure I2C Analog noise filter using the function HAL_I2CEx_ConfigAnalogFilter()
26 | (#) Configure I2C Digital noise filter using the function HAL_I2CEx_ConfigDigitalFilter()
27 | (#) Configure the enable or disable of fast mode plus driving capability using the functions :
28 | (++) HAL_I2CEx_EnableFastModePlus()
29 | (++) HAL_I2CEx_DisableFastModePlus()
30 | @endverbatim
31 | ******************************************************************************
32 | * @attention
33 | *
34 | * © Copyright (c) 2017 STMicroelectronics.
35 | * All rights reserved.
36 | *
37 | * This software component is licensed by ST under BSD 3-Clause license,
38 | * the "License"; You may not use this file except in compliance with the
39 | * License. You may obtain a copy of the License at:
40 | * opensource.org/licenses/BSD-3-Clause
41 | *
42 | ******************************************************************************
43 | */
44 |
45 | /* Includes ------------------------------------------------------------------*/
46 | #include "stm32f7xx_hal.h"
47 |
48 | /** @addtogroup STM32F7xx_HAL_Driver
49 | * @{
50 | */
51 |
52 | /** @defgroup I2CEx I2CEx
53 | * @brief I2C Extended HAL module driver
54 | * @{
55 | */
56 |
57 | #ifdef HAL_I2C_MODULE_ENABLED
58 |
59 | /* Private typedef -----------------------------------------------------------*/
60 | /* Private define ------------------------------------------------------------*/
61 | /* Private macro -------------------------------------------------------------*/
62 | /* Private variables ---------------------------------------------------------*/
63 | /* Private function prototypes -----------------------------------------------*/
64 | /* Private functions ---------------------------------------------------------*/
65 |
66 | /** @defgroup I2CEx_Exported_Functions I2C Extended Exported Functions
67 | * @{
68 | */
69 |
70 | /** @defgroup I2CEx_Exported_Functions_Group1 Extended features functions
71 | * @brief Extended features functions
72 | *
73 | @verbatim
74 | ===============================================================================
75 | ##### Extended features functions #####
76 | ===============================================================================
77 | [..] This section provides functions allowing to:
78 | (+) Configure Noise Filters
79 | (+) Configure Fast Mode Plus
80 |
81 | @endverbatim
82 | * @{
83 | */
84 |
85 | /**
86 | * @brief Configure I2C Analog noise filter.
87 | * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
88 | * the configuration information for the specified I2Cx peripheral.
89 | * @param AnalogFilter New state of the Analog filter.
90 | * @retval HAL status
91 | */
92 | HAL_StatusTypeDef HAL_I2CEx_ConfigAnalogFilter(I2C_HandleTypeDef *hi2c, uint32_t AnalogFilter)
93 | {
94 | /* Check the parameters */
95 | assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
96 | assert_param(IS_I2C_ANALOG_FILTER(AnalogFilter));
97 |
98 | if (hi2c->State == HAL_I2C_STATE_READY)
99 | {
100 | /* Process Locked */
101 | __HAL_LOCK(hi2c);
102 |
103 | hi2c->State = HAL_I2C_STATE_BUSY;
104 |
105 | /* Disable the selected I2C peripheral */
106 | __HAL_I2C_DISABLE(hi2c);
107 |
108 | /* Reset I2Cx ANOFF bit */
109 | hi2c->Instance->CR1 &= ~(I2C_CR1_ANFOFF);
110 |
111 | /* Set analog filter bit*/
112 | hi2c->Instance->CR1 |= AnalogFilter;
113 |
114 | __HAL_I2C_ENABLE(hi2c);
115 |
116 | hi2c->State = HAL_I2C_STATE_READY;
117 |
118 | /* Process Unlocked */
119 | __HAL_UNLOCK(hi2c);
120 |
121 | return HAL_OK;
122 | }
123 | else
124 | {
125 | return HAL_BUSY;
126 | }
127 | }
128 |
129 | /**
130 | * @brief Configure I2C Digital noise filter.
131 | * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
132 | * the configuration information for the specified I2Cx peripheral.
133 | * @param DigitalFilter Coefficient of digital noise filter between Min_Data=0x00 and Max_Data=0x0F.
134 | * @retval HAL status
135 | */
136 | HAL_StatusTypeDef HAL_I2CEx_ConfigDigitalFilter(I2C_HandleTypeDef *hi2c, uint32_t DigitalFilter)
137 | {
138 | uint32_t tmpreg;
139 |
140 | /* Check the parameters */
141 | assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
142 | assert_param(IS_I2C_DIGITAL_FILTER(DigitalFilter));
143 |
144 | if (hi2c->State == HAL_I2C_STATE_READY)
145 | {
146 | /* Process Locked */
147 | __HAL_LOCK(hi2c);
148 |
149 | hi2c->State = HAL_I2C_STATE_BUSY;
150 |
151 | /* Disable the selected I2C peripheral */
152 | __HAL_I2C_DISABLE(hi2c);
153 |
154 | /* Get the old register value */
155 | tmpreg = hi2c->Instance->CR1;
156 |
157 | /* Reset I2Cx DNF bits [11:8] */
158 | tmpreg &= ~(I2C_CR1_DNF);
159 |
160 | /* Set I2Cx DNF coefficient */
161 | tmpreg |= DigitalFilter << 8U;
162 |
163 | /* Store the new register value */
164 | hi2c->Instance->CR1 = tmpreg;
165 |
166 | __HAL_I2C_ENABLE(hi2c);
167 |
168 | hi2c->State = HAL_I2C_STATE_READY;
169 |
170 | /* Process Unlocked */
171 | __HAL_UNLOCK(hi2c);
172 |
173 | return HAL_OK;
174 | }
175 | else
176 | {
177 | return HAL_BUSY;
178 | }
179 | }
180 |
181 | #if (defined(SYSCFG_PMC_I2C_PB6_FMP) || defined(SYSCFG_PMC_I2C_PB7_FMP)) || (defined(SYSCFG_PMC_I2C_PB8_FMP) || defined(SYSCFG_PMC_I2C_PB9_FMP)) || (defined(SYSCFG_PMC_I2C1_FMP)) || (defined(SYSCFG_PMC_I2C2_FMP)) || defined(SYSCFG_PMC_I2C3_FMP) || defined(SYSCFG_PMC_I2C4_FMP)
182 | /**
183 | * @brief Enable the I2C fast mode plus driving capability.
184 | * @param ConfigFastModePlus Selects the pin.
185 | * This parameter can be one of the @ref I2CEx_FastModePlus values
186 | * @note For I2C1, fast mode plus driving capability can be enabled on all selected
187 | * I2C1 pins using I2C_FASTMODEPLUS_I2C1 parameter or independently
188 | * on each one of the following pins PB6, PB7, PB8 and PB9.
189 | * @note For remaining I2C1 pins (PA14, PA15...) fast mode plus driving capability
190 | * can be enabled only by using I2C_FASTMODEPLUS_I2C1 parameter.
191 | * @note For all I2C2 pins fast mode plus driving capability can be enabled
192 | * only by using I2C_FASTMODEPLUS_I2C2 parameter.
193 | * @note For all I2C3 pins fast mode plus driving capability can be enabled
194 | * only by using I2C_FASTMODEPLUS_I2C3 parameter.
195 | * @note For all I2C4 pins fast mode plus driving capability can be enabled
196 | * only by using I2C_FASTMODEPLUS_I2C4 parameter.
197 | * @retval None
198 | */
199 | void HAL_I2CEx_EnableFastModePlus(uint32_t ConfigFastModePlus)
200 | {
201 | /* Check the parameter */
202 | assert_param(IS_I2C_FASTMODEPLUS(ConfigFastModePlus));
203 |
204 | /* Enable SYSCFG clock */
205 | __HAL_RCC_SYSCFG_CLK_ENABLE();
206 |
207 | /* Enable fast mode plus driving capability for selected pin */
208 | SET_BIT(SYSCFG->PMC, (uint32_t)ConfigFastModePlus);
209 | }
210 |
211 | /**
212 | * @brief Disable the I2C fast mode plus driving capability.
213 | * @param ConfigFastModePlus Selects the pin.
214 | * This parameter can be one of the @ref I2CEx_FastModePlus values
215 | * @note For I2C1, fast mode plus driving capability can be disabled on all selected
216 | * I2C1 pins using I2C_FASTMODEPLUS_I2C1 parameter or independently
217 | * on each one of the following pins PB6, PB7, PB8 and PB9.
218 | * @note For remaining I2C1 pins (PA14, PA15...) fast mode plus driving capability
219 | * can be disabled only by using I2C_FASTMODEPLUS_I2C1 parameter.
220 | * @note For all I2C2 pins fast mode plus driving capability can be disabled
221 | * only by using I2C_FASTMODEPLUS_I2C2 parameter.
222 | * @note For all I2C3 pins fast mode plus driving capability can be disabled
223 | * only by using I2C_FASTMODEPLUS_I2C3 parameter.
224 | * @note For all I2C4 pins fast mode plus driving capability can be disabled
225 | * only by using I2C_FASTMODEPLUS_I2C4 parameter.
226 | * @retval None
227 | */
228 | void HAL_I2CEx_DisableFastModePlus(uint32_t ConfigFastModePlus)
229 | {
230 | /* Check the parameter */
231 | assert_param(IS_I2C_FASTMODEPLUS(ConfigFastModePlus));
232 |
233 | /* Enable SYSCFG clock */
234 | __HAL_RCC_SYSCFG_CLK_ENABLE();
235 |
236 | /* Disable fast mode plus driving capability for selected pin */
237 | CLEAR_BIT(SYSCFG->PMC, (uint32_t)ConfigFastModePlus);
238 | }
239 |
240 | #endif
241 | /**
242 | * @}
243 | */
244 |
245 | /**
246 | * @}
247 | */
248 |
249 | #endif /* HAL_I2C_MODULE_ENABLED */
250 | /**
251 | * @}
252 | */
253 |
254 | /**
255 | * @}
256 | */
257 |
258 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
259 |
--------------------------------------------------------------------------------
/Inc/main.h:
--------------------------------------------------------------------------------
1 | /* USER CODE BEGIN Header */
2 | /**
3 | ******************************************************************************
4 | * @file : main.h
5 | * @brief : Header for main.c file.
6 | * This file contains the common defines of the application.
7 | ******************************************************************************
8 | * @attention
9 | *
10 | *Copyright 2019 SimpleMethod
11 | *
12 | *Permission is hereby granted, free of charge, to any person obtaining a copy of
13 | *this software and associated documentation files (the "Software"), to deal in
14 | *the Software without restriction, including without limitation the rights to
15 | *use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
16 | *of the Software, and to permit persons to whom the Software is furnished to do
17 | *so, subject to the following conditions:
18 | *
19 | *The above copyright notice and this permission notice shall be included in all
20 | *copies or substantial portions of the Software.
21 | *
22 | *THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23 | *IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24 | *FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25 | *AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26 | *LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27 | *OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
28 | *THE SOFTWARE.
29 | ******************************************************************************
30 | */
31 | /* USER CODE END Header */
32 |
33 | /* Define to prevent recursive inclusion -------------------------------------*/
34 | #ifndef __MAIN_H
35 | #define __MAIN_H
36 |
37 | #ifdef __cplusplus
38 | extern "C" {
39 | #endif
40 |
41 | /* Includes ------------------------------------------------------------------*/
42 | #include "stm32f7xx_hal.h"
43 |
44 | /* Private includes ----------------------------------------------------------*/
45 | /* USER CODE BEGIN Includes */
46 |
47 | /* USER CODE END Includes */
48 |
49 | /* Exported types ------------------------------------------------------------*/
50 | /* USER CODE BEGIN ET */
51 |
52 | /* USER CODE END ET */
53 |
54 | /* Exported constants --------------------------------------------------------*/
55 | /* USER CODE BEGIN EC */
56 |
57 | /* USER CODE END EC */
58 |
59 | /* Exported macro ------------------------------------------------------------*/
60 | /* USER CODE BEGIN EM */
61 |
62 | /* USER CODE END EM */
63 |
64 | /* Exported functions prototypes ---------------------------------------------*/
65 | void Error_Handler(void);
66 |
67 | /* USER CODE BEGIN EFP */
68 |
69 | /* USER CODE END EFP */
70 |
71 | /* Private defines -----------------------------------------------------------*/
72 | #define USER_Btn_Pin GPIO_PIN_13
73 | #define USER_Btn_GPIO_Port GPIOC
74 | #define MCO_Pin GPIO_PIN_0
75 | #define MCO_GPIO_Port GPIOH
76 | #define LD1_Pin GPIO_PIN_0
77 | #define LD1_GPIO_Port GPIOB
78 | #define CAMERA_RESET_Pin GPIO_PIN_0
79 | #define CAMERA_RESET_GPIO_Port GPIOG
80 | #define CAMERA_PWDN_Pin GPIO_PIN_1
81 | #define CAMERA_PWDN_GPIO_Port GPIOG
82 | #define LD3_Pin GPIO_PIN_14
83 | #define LD3_GPIO_Port GPIOB
84 | #define STLK_RX_Pin GPIO_PIN_8
85 | #define STLK_RX_GPIO_Port GPIOD
86 | #define STLK_TX_Pin GPIO_PIN_9
87 | #define STLK_TX_GPIO_Port GPIOD
88 | #define USB_PowerSwitchOn_Pin GPIO_PIN_6
89 | #define USB_PowerSwitchOn_GPIO_Port GPIOG
90 | #define USB_OverCurrent_Pin GPIO_PIN_7
91 | #define USB_OverCurrent_GPIO_Port GPIOG
92 | #define DCMI_XCLX_Pin GPIO_PIN_8
93 | #define DCMI_XCLX_GPIO_Port GPIOA
94 | #define TMS_Pin GPIO_PIN_13
95 | #define TMS_GPIO_Port GPIOA
96 | #define TCK_Pin GPIO_PIN_14
97 | #define TCK_GPIO_Port GPIOA
98 | #define LD2_Pin GPIO_PIN_7
99 | #define LD2_GPIO_Port GPIOB
100 | /* USER CODE BEGIN Private defines */
101 |
102 | /* USER CODE END Private defines */
103 |
104 | #ifdef __cplusplus
105 | }
106 | #endif
107 |
108 | #endif /* __MAIN_H */
109 |
110 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
111 |
--------------------------------------------------------------------------------
/Inc/ov2640.h:
--------------------------------------------------------------------------------
1 | /**
2 | * ov2640.h
3 | *
4 | * Created on: 23.02.2019
5 | * Modified on: 23.02.2021
6 | *
7 | * Copyright 2021 SimpleMethod
8 | *
9 | *Permission is hereby granted, free of charge, to any person obtaining a copy of
10 | *this software and associated documentation files (the "Software"), to deal in
11 | *the Software without restriction, including without limitation the rights to
12 | *use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
13 | *of the Software, and to permit persons to whom the Software is furnished to do
14 | *so, subject to the following conditions:
15 | *
16 | *The above copyright notice and this permission notice shall be included in all
17 | *copies or substantial portions of the Software.
18 | *
19 | *THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | *IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | *FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | *AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | *LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | *OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | *THE SOFTWARE.
26 | ******************************************************************************
27 | */
28 |
29 | #ifndef OV2640_H_
30 | #define OV2640_H_
31 |
32 | #include "main.h"
33 | #include "stm32f7xx.h"
34 |
35 |
36 |
37 | enum specialEffect{Antique=0, Bluish=1, Greenish=2, Reddish=3, BlackWhite=4, Negative=5, NegativeBlackWhite=6,Normal=7};
38 | enum imageResolution{RES_160X120=15533,RES_320X240=15534,RES_640X480=15535,RES_800x600=25535,RES_1024x768=45535,RES_1280x960=65535};
39 | enum imageContrast{Contrast2=2,Contrast1=1,Contrast0=0,Contrast_1=3,Contrast_2=4};
40 | enum imageSaturation{Saturation2=2,Saturation1=1,Saturation0=0,Saturation_1=3,Saturation_2=4};
41 | enum imageBrightness{Brightness2=2,Brightness1=1,Brightness0=0,Brightness_1=3,Brightness_2=4};
42 | enum imageLightMode{Auto=0,Sunny=1,Cloudy=2,Office=3,Home=4};
43 |
44 | short SCCB_Read(uint8_t reg_addr, uint8_t *pdata);
45 | short SCCB_Write(uint8_t reg_addr, uint8_t data);
46 |
47 |
48 | void OV2640_StopDCMI(void);
49 | void OV2640_CaptureSnapshot(uint32_t buf_addr, int len);
50 | void OV2640_ResolutionOptions(uint16_t opt);
51 | void OV2640_ResolutionConfiguration(short opt);
52 | void OV2640_Init(I2C_HandleTypeDef *p_hi2c, DCMI_HandleTypeDef *p_hdcmi);
53 | void OV2640_Configuration(const unsigned char arr[][2]);
54 | void OV2640_SpecialEffect(short specialEffect);
55 | void OV2640_Contrast(short contrast);
56 | void OV2640_Saturation(short saturation);
57 | void OV2640_Brightness(short brightness);
58 | void OV2640_LightMode(short lightMode);
59 | void OV2640_SimpleWhiteBalance();
60 | void OV2640_AdvancedWhiteBalance();
61 |
62 | #endif /* OV2640_H_ */
63 |
--------------------------------------------------------------------------------
/Inc/stm32f7xx_it.h:
--------------------------------------------------------------------------------
1 | /* USER CODE BEGIN Header */
2 | /**
3 | ******************************************************************************
4 | * @file stm32f7xx_it.h
5 | * @brief This file contains the headers of the interrupt handlers.
6 | ******************************************************************************
7 | *
8 | * COPYRIGHT(c) 2019 STMicroelectronics
9 | *
10 | * Redistribution and use in source and binary forms, with or without modification,
11 | * are permitted provided that the following conditions are met:
12 | * 1. Redistributions of source code must retain the above copyright notice,
13 | * this list of conditions and the following disclaimer.
14 | * 2. Redistributions in binary form must reproduce the above copyright notice,
15 | * this list of conditions and the following disclaimer in the documentation
16 | * and/or other materials provided with the distribution.
17 | * 3. Neither the name of STMicroelectronics nor the names of its contributors
18 | * may be used to endorse or promote products derived from this software
19 | * without specific prior written permission.
20 | *
21 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
25 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
27 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 | *
32 | ******************************************************************************
33 | */
34 | /* USER CODE END Header */
35 |
36 | /* Define to prevent recursive inclusion -------------------------------------*/
37 | #ifndef __STM32F7xx_IT_H
38 | #define __STM32F7xx_IT_H
39 |
40 | #ifdef __cplusplus
41 | extern "C" {
42 | #endif
43 |
44 | /* Private includes ----------------------------------------------------------*/
45 | /* USER CODE BEGIN Includes */
46 |
47 | /* USER CODE END Includes */
48 |
49 | /* Exported types ------------------------------------------------------------*/
50 | /* USER CODE BEGIN ET */
51 |
52 | /* USER CODE END ET */
53 |
54 | /* Exported constants --------------------------------------------------------*/
55 | /* USER CODE BEGIN EC */
56 |
57 | /* USER CODE END EC */
58 |
59 | /* Exported macro ------------------------------------------------------------*/
60 | /* USER CODE BEGIN EM */
61 |
62 | /* USER CODE END EM */
63 |
64 | /* Exported functions prototypes ---------------------------------------------*/
65 | void NMI_Handler(void);
66 | void HardFault_Handler(void);
67 | void MemManage_Handler(void);
68 | void BusFault_Handler(void);
69 | void UsageFault_Handler(void);
70 | void SVC_Handler(void);
71 | void DebugMon_Handler(void);
72 | void PendSV_Handler(void);
73 | void SysTick_Handler(void);
74 | void DMA1_Stream3_IRQHandler(void);
75 | void USART3_IRQHandler(void);
76 | void DMA2_Stream1_IRQHandler(void);
77 | void DCMI_IRQHandler(void);
78 | /* USER CODE BEGIN EFP */
79 |
80 | /* USER CODE END EFP */
81 |
82 | #ifdef __cplusplus
83 | }
84 | #endif
85 |
86 | #endif /* __STM32F7xx_IT_H */
87 |
88 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
89 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Fully implementation library support OV2640 camera on STM32 platform
2 | 
3 |
4 |
5 |
6 |
7 | # 🚀 Features
8 | ## Support for resolutions:
9 | - 160X120px,
10 | - 320X240px,
11 | - 640X480px,
12 | - 800x600px,
13 | - 1024x768px,
14 | - 1280x960px,
15 |
16 | ## Added support for extra special effects:
17 | - brightness,
18 | - saturation,
19 | - contrast,
20 | - light mode,
21 | - special effect such as: antique, bluish, greenish, reddish, black & white style, negative, Negative with black & white style and normal view.
22 |
23 |
24 | ## Support for libjpeg library. Branch with example: https://github.com/SimpleMethod/STM32-OV2640/tree/Imageoptimization
25 |
26 | Code optimization, now requires **10 times less space in buffer** than before!
27 |
28 | # 📚 Documentation
29 |
30 | ### The maximum size of the data buffer is 65535 bytes and this is also the maximum size of a single DCMI read. For higher resolutions, you must use the circular buffer and write own implementation in HAL_DCMI_IRQHandler. XCLX is actually the clock output from the MCU (RCC_MCO_1). The minimum speed is around 27MHz, but as high as possible is recommended for correct functioning.
31 |
32 | ## Pin configuration:
33 |
34 | | PERIPHERALS | MODES | FUNCTIONS | PINS |
35 | |-------------|-------------------------------|-----------------------|-------------------|
36 | | DCMI | Slave 8 bits External Synchro | DCMI_D0 | PC6 |
37 | | DCMI | Slave 8 bits External Synchro | DCMI_D1 | PC7 |
38 | | DCMI | Slave 8 bits External Synchro | DCMI_D2 | PC8 |
39 | | DCMI | Slave 8 bits External Synchro | DCMI_D3 | PC9 |
40 | | DCMI | Slave 8 bits External Synchro | DCMI_D4 | PE4 |
41 | | DCMI | Slave 8 bits External Synchro | DCMI_D5 | PD3 |
42 | | DCMI | Slave 8 bits External Synchro | DCMI_D6 | PE5 |
43 | | DCMI | Slave 8 bits External Synchro | DCMI_D7 | PE6 |
44 | | DCMI | Slave 8 bits External Synchro | DCMI_HSYNC | PA4 |
45 | | DCMI | Slave 8 bits External Synchro | DCMI_PIXCLK | PA6 |
46 | | DCMI | Slave 8 bits External Synchro | DCMI_VSYNC | PG9 |
47 | | I2C1 | I2C | I2C1_SCL | PB8 |
48 | | I2C1 | I2C | I2C1_SDA | PB9 |
49 | | RCC | BYPASS Clock Source | RCC_OSC_IN | PH0/OSC_IN |
50 | | RCC | BYPASS Clock Source | RCC_OSC_OUT | PH1/OSC_OUT |
51 | | RCC | Crystal/Ceramic Resonator | RCC_OSC32_IN | PC14/OSC32_IN |
52 | | RCC | Crystal/Ceramic Resonator | RCC_OSC32_OUT | PC15/OSC32_OUT |
53 | | RCC | Clock-out-1 | RCC_MCO_1 (DCMI_XCLX) | PA8 |
54 | | SYS | Serial Wire | SYS_JTCK-SWCLK | PA14 |
55 | | SYS | Serial Wire | SYS_JTMS-SWDIO | PA13 |
56 | | SYS | SysTick | SYS_VS_Systick | VP_SYS_VS_Systick |
57 | | USART3 | Asynchronous | USART3_RX | PD9 |
58 | | USART3 | Asynchronous | USART3_TX | PD8 |
59 | | GPIO | Output | CAMERA_RESET | PG0 |
60 | | GPIO | Output | CAMERA_PWDN | PG1 |
61 | | GPIO | EXTI13 | USER_Btn | PC13 |
62 |
63 |
64 | ## DCMI configuration:
65 |
66 | | OPTION | VALUE |
67 | |-------------------------------------|-------------------------|
68 | | Pixel clock polarity | Active on Rising edge |
69 | | Vertical synchronization polarity | Active Low |
70 | | Horizontal synchronization polarity | Active Low |
71 | | Frequency of frame capture | All frames are captured |
72 | | JPEG mode | Enabled |
73 |
74 | ## I2C configuration:
75 | | I2C Speed Mode | Standard Mode |
76 | |-----------------------------------|---------------|
77 | | I2C Speed Frequency (KHz) | 100 |
78 | | Rise Time (ns) | 0 |
79 | | Fall Time (ns) | 0 |
80 | | Coefficient of Digital Filter | 0 |
81 | | Analog Filter | 0 |
82 | | Timing | 0x1060669A |
83 | | Clock No Stretch Mode | Disabled |
84 | | General Call Address Detection | Disabled |
85 | | Primary Address Length selection | 7-bit |
86 | | Primary slave address | 0 |
87 |
88 | ## USART configuration:
89 |
90 | | OPTION | VALUE |
91 | |-------------------------------|--------------------------|
92 | | Baud Rate | 115200 |
93 | | Word Length | 8 Bits(including Parity) |
94 | | Parity | None |
95 | | Stop Bits | 1 |
96 | | Coefficient of Digital Filter | 0 |
97 | | Data Direction | Receive and Transmit |
98 | | Over Sampling | 16 Samples |
99 | | Single Sample | Disable |
100 | | Auto Baudrate | Disable |
101 | | TX Pin Active Level Inversion | Disable |
102 | | RX Pin Active Level Inversion | Disable |
103 | | Data Inversion | Disable |
104 | | TX and RX Pins | Swapping |
105 | | Overrun | Enable |
106 | | DMA on RX Error | Enable |
107 | | MSB First | Disable |
108 |
109 |
110 |
111 | ## DMA configuration:
112 | | DMA request | Stream | Direction | Priority |
113 | |-------------|--------------|----------------------|-----------|
114 | | DCMI | DMA2_Stream1 | PeripheralTo Memory | Very High |
115 | | USART3_TX | DMA1_Stream3 | Memory To Peripheral | Very High |
116 |
117 | ## DMA2_Stream1 DMA request settings:
118 |
119 | | OPTION | VALUE |
120 | |-----------------------|----------|
121 | | Mode | Circular |
122 | | Use fifo | Enable |
123 | | FIFO Threshold | Full |
124 | | Peripheral Increment | Disable |
125 | | Memory Increment | Enable |
126 | | Peripheral Data Width | Word |
127 | | Memory Data Width | Byte |
128 | | Peripheral Burst Size | Single |
129 | | Memory Burst Size | Single |
130 |
131 | ## DMA1_Stream3 DMA request settings
132 |
133 | | OPTION | VALUE |
134 | |-----------------------|---------|
135 | | Mode | Normal |
136 | | Use fifo | Enable |
137 | | FIFO Threshold | Full |
138 | | Peripheral Increment | Disable |
139 | | Memory Increment | Enable |
140 | | Peripheral Data Width | Byte |
141 | | Memory Data Width | Byte |
142 | | Peripheral Burst Size | Single |
143 | | Memory Burst Size | Single |
144 |
145 | ## NVIC configuration
146 |
147 | | Interrupt Table | Enable | Preenmption Priority | SubPriority |
148 | |-----------------------------------------|--------|----------------------|-------------|
149 | | Non maskable interrupt | true | 0 | 0 |
150 | | Hard fault interrupt | true | 0 | 0 |
151 | | Memory management fault | true | 0 | 0 |
152 | | Pre-fetch fault, memory access fault | true | 0 | 0 |
153 | | Undefined instruction or illegal state | true | 0 | 0 |
154 | | System service call via SWI instruction | true | 0 | 0 |
155 | | Debug monitor | true | 0 | 0 |
156 | | Pendable request for system service | true | 0 | 0 |
157 | | System tick timer | true | 0 | 0 |
158 | | DMA1 stream3 global interrupt | true | 0 | 0 |
159 | | USART3 global interrupt | true | 0 | 0 |
160 | | DMA2 stream1 global interrupt | true | 0 | 0 |
161 | | DCMI global interrupt | true | 0 | 0 |
162 | | PVD interrupt through EXTI line 16 | unused | | |
163 | | Flash global interrupt | unused | | |
164 | | RCC global interrupt | unused | | |
165 | | I2C1 event interrupt | unused | | |
166 | | I2C1 error interrupt | unused | | |
167 | | EXTI line[15:10]interrupts | unused | | |
168 | | FPU global interrupt | unused | | |
169 |
170 |
171 |
172 | # 📚 Example use
173 |
174 | ## 1. Receive the data using a terminal or other software, default speed is set to 115200 baud.
175 | ## 2. Save the data dump to a file.
176 | ## 3. Open the file and search for the beginning of the JPEG header, it must be FFF8 value.
177 | 
178 |
179 | ## 4. In the opened file search for the end of the data, this must be FFD9 value.
180 | 
181 |
182 | ## 5. Open the hexadecimal editor. The example uses https://hexed.it/ and copy the data from the data dump.
183 | 
184 |
185 | ## 6. Our data must start with FFD8 and end with FFD9.
186 | 
187 | 
188 | ## 7. Save and open the newly created file.
189 | 
190 |
191 | ## 8. Now it's all depending on you.
192 | 
193 | 
194 | 
195 |
196 |
197 | # 💀 My code doesn't work, nothing happens, what to do?
198 |
199 | You need to make sure that:
200 | 1. Using short connection wires , less than 10 cm (3.93 inches) - This is very, very, very important!,
201 | 2. All wires are properly connected,
202 | 3. Have a high enough clock speed for the MCU,
203 |
204 | **Use 320x240px resolution for testing - it always works :-)**
205 |
--------------------------------------------------------------------------------
/STM32F767ZI_FLASH.ld:
--------------------------------------------------------------------------------
1 | /*
2 | *****************************************************************************
3 | **
4 |
5 | ** File : stm32_flash.ld
6 | **
7 | ** Abstract : Linker script for STM32F767ZI Device with
8 | ** 2048KByte FLASH, 512KByte RAM
9 | **
10 | ** Set heap size, stack size and stack location according
11 | ** to application requirements.
12 | **
13 | ** Set memory bank area and size if external memory is used.
14 | **
15 | ** Target : STMicroelectronics STM32
16 | **
17 | ** Environment : Atollic TrueSTUDIO(R)
18 | **
19 | ** Distribution: The file is distributed as is, without any warranty
20 | ** of any kind.
21 | **
22 | ** (c)Copyright Atollic AB.
23 | ** You may use this file as-is or modify it according to the needs of your
24 | ** project. This file may only be built (assembled or compiled and linked)
25 | ** using the Atollic TrueSTUDIO(R) product. The use of this file together
26 | ** with other tools than Atollic TrueSTUDIO(R) is not permitted.
27 | **
28 | *****************************************************************************
29 | */
30 |
31 | /* Entry Point */
32 | ENTRY(Reset_Handler)
33 |
34 | /* Highest address of the user mode stack */
35 | _estack = 0x20080000; /* end of RAM */
36 | /* Generate a link error if heap and stack don't fit into RAM */
37 | _Min_Heap_Size = 0x200; /* required amount of heap */
38 | _Min_Stack_Size = 0x400; /* required amount of stack */
39 |
40 | /* Specify the memory areas */
41 | MEMORY
42 | {
43 | RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 512K
44 | FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 2048K
45 | }
46 |
47 | /* Define output sections */
48 | SECTIONS
49 | {
50 | /* The startup code goes first into FLASH */
51 | .isr_vector :
52 | {
53 | . = ALIGN(4);
54 | KEEP(*(.isr_vector)) /* Startup code */
55 | . = ALIGN(4);
56 | } >FLASH
57 |
58 | /* The program code and other data goes into FLASH */
59 | .text :
60 | {
61 | . = ALIGN(4);
62 | *(.text) /* .text sections (code) */
63 | *(.text*) /* .text* sections (code) */
64 | *(.glue_7) /* glue arm to thumb code */
65 | *(.glue_7t) /* glue thumb to arm code */
66 | *(.eh_frame)
67 |
68 | KEEP (*(.init))
69 | KEEP (*(.fini))
70 |
71 | . = ALIGN(4);
72 | _etext = .; /* define a global symbols at end of code */
73 | } >FLASH
74 |
75 | /* Constant data goes into FLASH */
76 | .rodata :
77 | {
78 | . = ALIGN(4);
79 | *(.rodata) /* .rodata sections (constants, strings, etc.) */
80 | *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
81 | . = ALIGN(4);
82 | } >FLASH
83 |
84 | .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
85 | .ARM : {
86 | __exidx_start = .;
87 | *(.ARM.exidx*)
88 | __exidx_end = .;
89 | } >FLASH
90 |
91 | .preinit_array :
92 | {
93 | PROVIDE_HIDDEN (__preinit_array_start = .);
94 | KEEP (*(.preinit_array*))
95 | PROVIDE_HIDDEN (__preinit_array_end = .);
96 | } >FLASH
97 | .init_array :
98 | {
99 | PROVIDE_HIDDEN (__init_array_start = .);
100 | KEEP (*(SORT(.init_array.*)))
101 | KEEP (*(.init_array*))
102 | PROVIDE_HIDDEN (__init_array_end = .);
103 | } >FLASH
104 | .fini_array :
105 | {
106 | PROVIDE_HIDDEN (__fini_array_start = .);
107 | KEEP (*(SORT(.fini_array.*)))
108 | KEEP (*(.fini_array*))
109 | PROVIDE_HIDDEN (__fini_array_end = .);
110 | } >FLASH
111 |
112 | /* used by the startup to initialize data */
113 | _sidata = LOADADDR(.data);
114 |
115 | /* Initialized data sections goes into RAM, load LMA copy after code */
116 | .data :
117 | {
118 | . = ALIGN(4);
119 | _sdata = .; /* create a global symbol at data start */
120 | *(.data) /* .data sections */
121 | *(.data*) /* .data* sections */
122 |
123 | . = ALIGN(4);
124 | _edata = .; /* define a global symbol at data end */
125 | } >RAM AT> FLASH
126 |
127 |
128 | /* Uninitialized data section */
129 | . = ALIGN(4);
130 | .bss :
131 | {
132 | /* This is used by the startup in order to initialize the .bss secion */
133 | _sbss = .; /* define a global symbol at bss start */
134 | __bss_start__ = _sbss;
135 | *(.bss)
136 | *(.bss*)
137 | *(COMMON)
138 |
139 | . = ALIGN(4);
140 | _ebss = .; /* define a global symbol at bss end */
141 | __bss_end__ = _ebss;
142 | } >RAM
143 |
144 | /* User_heap_stack section, used to check that there is enough RAM left */
145 | ._user_heap_stack :
146 | {
147 | . = ALIGN(4);
148 | PROVIDE ( end = . );
149 | PROVIDE ( _end = . );
150 | . = . + _Min_Heap_Size;
151 | . = . + _Min_Stack_Size;
152 | . = ALIGN(4);
153 | } >RAM
154 |
155 |
156 |
157 | /* Remove information from the standard libraries */
158 | /DISCARD/ :
159 | {
160 | libc.a ( * )
161 | libm.a ( * )
162 | libgcc.a ( * )
163 | }
164 |
165 | .ARM.attributes 0 : { *(.ARM.attributes) }
166 | }
167 |
168 |
169 |
--------------------------------------------------------------------------------
/Src/stm32f7xx_it.c:
--------------------------------------------------------------------------------
1 | /* USER CODE BEGIN Header */
2 | /**
3 | ******************************************************************************
4 | * @file stm32f7xx_it.c
5 | * @brief Interrupt Service Routines.
6 | ******************************************************************************
7 | *
8 | * COPYRIGHT(c) 2019 STMicroelectronics
9 | *
10 | * Redistribution and use in source and binary forms, with or without modification,
11 | * are permitted provided that the following conditions are met:
12 | * 1. Redistributions of source code must retain the above copyright notice,
13 | * this list of conditions and the following disclaimer.
14 | * 2. Redistributions in binary form must reproduce the above copyright notice,
15 | * this list of conditions and the following disclaimer in the documentation
16 | * and/or other materials provided with the distribution.
17 | * 3. Neither the name of STMicroelectronics nor the names of its contributors
18 | * may be used to endorse or promote products derived from this software
19 | * without specific prior written permission.
20 | *
21 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
25 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
27 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 | *
32 | ******************************************************************************
33 | */
34 | /* USER CODE END Header */
35 |
36 | /* Includes ------------------------------------------------------------------*/
37 | #include "main.h"
38 | #include "stm32f7xx_it.h"
39 | /* Private includes ----------------------------------------------------------*/
40 | /* USER CODE BEGIN Includes */
41 | /* USER CODE END Includes */
42 |
43 | /* Private typedef -----------------------------------------------------------*/
44 | /* USER CODE BEGIN TD */
45 |
46 | /* USER CODE END TD */
47 |
48 | /* Private define ------------------------------------------------------------*/
49 | /* USER CODE BEGIN PD */
50 |
51 | /* USER CODE END PD */
52 |
53 | /* Private macro -------------------------------------------------------------*/
54 | /* USER CODE BEGIN PM */
55 |
56 | /* USER CODE END PM */
57 |
58 | /* Private variables ---------------------------------------------------------*/
59 | /* USER CODE BEGIN PV */
60 |
61 | /* USER CODE END PV */
62 |
63 | /* Private function prototypes -----------------------------------------------*/
64 | /* USER CODE BEGIN PFP */
65 |
66 | /* USER CODE END PFP */
67 |
68 | /* Private user code ---------------------------------------------------------*/
69 | /* USER CODE BEGIN 0 */
70 |
71 | /* USER CODE END 0 */
72 |
73 | /* External variables --------------------------------------------------------*/
74 | extern DMA_HandleTypeDef hdma_dcmi;
75 | extern DCMI_HandleTypeDef hdcmi;
76 | extern DMA_HandleTypeDef hdma_usart3_tx;
77 | extern UART_HandleTypeDef huart3;
78 | /* USER CODE BEGIN EV */
79 |
80 | /* USER CODE END EV */
81 |
82 | /******************************************************************************/
83 | /* Cortex-M7 Processor Interruption and Exception Handlers */
84 | /******************************************************************************/
85 | /**
86 | * @brief This function handles Non maskable interrupt.
87 | */
88 | void NMI_Handler(void)
89 | {
90 | /* USER CODE BEGIN NonMaskableInt_IRQn 0 */
91 |
92 | /* USER CODE END NonMaskableInt_IRQn 0 */
93 | /* USER CODE BEGIN NonMaskableInt_IRQn 1 */
94 |
95 | /* USER CODE END NonMaskableInt_IRQn 1 */
96 | }
97 |
98 | /**
99 | * @brief This function handles Hard fault interrupt.
100 | */
101 | void HardFault_Handler(void)
102 | {
103 | /* USER CODE BEGIN HardFault_IRQn 0 */
104 |
105 | /* USER CODE END HardFault_IRQn 0 */
106 | while (1)
107 | {
108 | /* USER CODE BEGIN W1_HardFault_IRQn 0 */
109 | /* USER CODE END W1_HardFault_IRQn 0 */
110 | }
111 | }
112 |
113 | /**
114 | * @brief This function handles Memory management fault.
115 | */
116 | void MemManage_Handler(void)
117 | {
118 | /* USER CODE BEGIN MemoryManagement_IRQn 0 */
119 |
120 | /* USER CODE END MemoryManagement_IRQn 0 */
121 | while (1)
122 | {
123 | /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
124 | /* USER CODE END W1_MemoryManagement_IRQn 0 */
125 | }
126 | }
127 |
128 | /**
129 | * @brief This function handles Pre-fetch fault, memory access fault.
130 | */
131 | void BusFault_Handler(void)
132 | {
133 | /* USER CODE BEGIN BusFault_IRQn 0 */
134 |
135 | /* USER CODE END BusFault_IRQn 0 */
136 | while (1)
137 | {
138 | /* USER CODE BEGIN W1_BusFault_IRQn 0 */
139 | /* USER CODE END W1_BusFault_IRQn 0 */
140 | }
141 | }
142 |
143 | /**
144 | * @brief This function handles Undefined instruction or illegal state.
145 | */
146 | void UsageFault_Handler(void)
147 | {
148 | /* USER CODE BEGIN UsageFault_IRQn 0 */
149 |
150 | /* USER CODE END UsageFault_IRQn 0 */
151 | while (1)
152 | {
153 | /* USER CODE BEGIN W1_UsageFault_IRQn 0 */
154 | /* USER CODE END W1_UsageFault_IRQn 0 */
155 | }
156 | }
157 |
158 | /**
159 | * @brief This function handles System service call via SWI instruction.
160 | */
161 | void SVC_Handler(void)
162 | {
163 | /* USER CODE BEGIN SVCall_IRQn 0 */
164 |
165 | /* USER CODE END SVCall_IRQn 0 */
166 | /* USER CODE BEGIN SVCall_IRQn 1 */
167 |
168 | /* USER CODE END SVCall_IRQn 1 */
169 | }
170 |
171 | /**
172 | * @brief This function handles Debug monitor.
173 | */
174 | void DebugMon_Handler(void)
175 | {
176 | /* USER CODE BEGIN DebugMonitor_IRQn 0 */
177 |
178 | /* USER CODE END DebugMonitor_IRQn 0 */
179 | /* USER CODE BEGIN DebugMonitor_IRQn 1 */
180 |
181 | /* USER CODE END DebugMonitor_IRQn 1 */
182 | }
183 |
184 | /**
185 | * @brief This function handles Pendable request for system service.
186 | */
187 | void PendSV_Handler(void)
188 | {
189 | /* USER CODE BEGIN PendSV_IRQn 0 */
190 |
191 | /* USER CODE END PendSV_IRQn 0 */
192 | /* USER CODE BEGIN PendSV_IRQn 1 */
193 |
194 | /* USER CODE END PendSV_IRQn 1 */
195 | }
196 |
197 | /**
198 | * @brief This function handles System tick timer.
199 | */
200 | void SysTick_Handler(void)
201 | {
202 | /* USER CODE BEGIN SysTick_IRQn 0 */
203 |
204 | /* USER CODE END SysTick_IRQn 0 */
205 | HAL_IncTick();
206 | /* USER CODE BEGIN SysTick_IRQn 1 */
207 |
208 | /* USER CODE END SysTick_IRQn 1 */
209 | }
210 |
211 | /******************************************************************************/
212 | /* STM32F7xx Peripheral Interrupt Handlers */
213 | /* Add here the Interrupt Handlers for the used peripherals. */
214 | /* For the available peripheral interrupt handler names, */
215 | /* please refer to the startup file (startup_stm32f7xx.s). */
216 | /******************************************************************************/
217 |
218 | /**
219 | * @brief This function handles DMA1 stream3 global interrupt.
220 | */
221 | void DMA1_Stream3_IRQHandler(void)
222 | {
223 | /* USER CODE BEGIN DMA1_Stream3_IRQn 0 */
224 |
225 | /* USER CODE END DMA1_Stream3_IRQn 0 */
226 | HAL_DMA_IRQHandler(&hdma_usart3_tx);
227 | /* USER CODE BEGIN DMA1_Stream3_IRQn 1 */
228 |
229 | /* USER CODE END DMA1_Stream3_IRQn 1 */
230 | }
231 |
232 | /**
233 | * @brief This function handles USART3 global interrupt.
234 | */
235 | void USART3_IRQHandler(void)
236 | {
237 | /* USER CODE BEGIN USART3_IRQn 0 */
238 |
239 | /* USER CODE END USART3_IRQn 0 */
240 | HAL_UART_IRQHandler(&huart3);
241 | /* USER CODE BEGIN USART3_IRQn 1 */
242 |
243 | /* USER CODE END USART3_IRQn 1 */
244 | }
245 |
246 | /**
247 | * @brief This function handles DMA2 stream1 global interrupt.
248 | */
249 | void DMA2_Stream1_IRQHandler(void)
250 | {
251 | /* USER CODE BEGIN DMA2_Stream1_IRQn 0 */
252 |
253 | /* USER CODE END DMA2_Stream1_IRQn 0 */
254 | HAL_DMA_IRQHandler(&hdma_dcmi);
255 | /* USER CODE BEGIN DMA2_Stream1_IRQn 1 */
256 |
257 | /* USER CODE END DMA2_Stream1_IRQn 1 */
258 | }
259 |
260 | /**
261 | * @brief This function handles DCMI global interrupt.
262 | */
263 | void DCMI_IRQHandler(void)
264 | {
265 | /* USER CODE BEGIN DCMI_IRQn 0 */
266 |
267 | /* USER CODE END DCMI_IRQn 0 */
268 | HAL_DCMI_IRQHandler(&hdcmi);
269 | /* USER CODE BEGIN DCMI_IRQn 1 */
270 |
271 | /* USER CODE END DCMI_IRQn 1 */
272 | }
273 |
274 | /* USER CODE BEGIN 1 */
275 |
276 | /* USER CODE END 1 */
277 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
278 |
--------------------------------------------------------------------------------
/Src/system_stm32f7xx.c:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file system_stm32f7xx.c
4 | * @author MCD Application Team
5 | * @brief CMSIS Cortex-M7 Device Peripheral Access Layer System Source File.
6 | *
7 | * This file provides two functions and one global variable to be called from
8 | * user application:
9 | * - SystemInit(): This function is called at startup just after reset and
10 | * before branch to main program. This call is made inside
11 | * the "startup_stm32f7xx.s" file.
12 | *
13 | * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used
14 | * by the user application to setup the SysTick
15 | * timer or configure other parameters.
16 | *
17 | * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must
18 | * be called whenever the core clock is changed
19 | * during program execution.
20 | *
21 | *
22 | ******************************************************************************
23 | * @attention
24 | *
25 | * © COPYRIGHT 2016 STMicroelectronics
26 | *
27 | * Redistribution and use in source and binary forms, with or without modification,
28 | * are permitted provided that the following conditions are met:
29 | * 1. Redistributions of source code must retain the above copyright notice,
30 | * this list of conditions and the following disclaimer.
31 | * 2. Redistributions in binary form must reproduce the above copyright notice,
32 | * this list of conditions and the following disclaimer in the documentation
33 | * and/or other materials provided with the distribution.
34 | * 3. Neither the name of STMicroelectronics nor the names of its contributors
35 | * may be used to endorse or promote products derived from this software
36 | * without specific prior written permission.
37 | *
38 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
39 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
40 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
41 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
42 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
43 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
44 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
45 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
46 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
47 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
48 | *
49 | ******************************************************************************
50 | */
51 |
52 | /** @addtogroup CMSIS
53 | * @{
54 | */
55 |
56 | /** @addtogroup stm32f7xx_system
57 | * @{
58 | */
59 |
60 | /** @addtogroup STM32F7xx_System_Private_Includes
61 | * @{
62 | */
63 |
64 | #include "stm32f7xx.h"
65 |
66 | #if !defined (HSE_VALUE)
67 | #define HSE_VALUE ((uint32_t)25000000) /*!< Default value of the External oscillator in Hz */
68 | #endif /* HSE_VALUE */
69 |
70 | #if !defined (HSI_VALUE)
71 | #define HSI_VALUE ((uint32_t)16000000) /*!< Value of the Internal oscillator in Hz*/
72 | #endif /* HSI_VALUE */
73 |
74 | /**
75 | * @}
76 | */
77 |
78 | /** @addtogroup STM32F7xx_System_Private_TypesDefinitions
79 | * @{
80 | */
81 |
82 | /**
83 | * @}
84 | */
85 |
86 | /** @addtogroup STM32F7xx_System_Private_Defines
87 | * @{
88 | */
89 |
90 | /************************* Miscellaneous Configuration ************************/
91 |
92 | /*!< Uncomment the following line if you need to relocate your vector Table in
93 | Internal SRAM. */
94 | /* #define VECT_TAB_SRAM */
95 | #define VECT_TAB_OFFSET 0x00 /*!< Vector Table base offset field.
96 | This value must be a multiple of 0x200. */
97 | /******************************************************************************/
98 |
99 | /**
100 | * @}
101 | */
102 |
103 | /** @addtogroup STM32F7xx_System_Private_Macros
104 | * @{
105 | */
106 |
107 | /**
108 | * @}
109 | */
110 |
111 | /** @addtogroup STM32F7xx_System_Private_Variables
112 | * @{
113 | */
114 |
115 | /* This variable is updated in three ways:
116 | 1) by calling CMSIS function SystemCoreClockUpdate()
117 | 2) by calling HAL API function HAL_RCC_GetHCLKFreq()
118 | 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency
119 | Note: If you use this function to configure the system clock; then there
120 | is no need to call the 2 first functions listed above, since SystemCoreClock
121 | variable is updated automatically.
122 | */
123 | uint32_t SystemCoreClock = 16000000;
124 | const uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9};
125 | const uint8_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4};
126 |
127 | /**
128 | * @}
129 | */
130 |
131 | /** @addtogroup STM32F7xx_System_Private_FunctionPrototypes
132 | * @{
133 | */
134 |
135 | /**
136 | * @}
137 | */
138 |
139 | /** @addtogroup STM32F7xx_System_Private_Functions
140 | * @{
141 | */
142 |
143 | /**
144 | * @brief Setup the microcontroller system
145 | * Initialize the Embedded Flash Interface, the PLL and update the
146 | * SystemFrequency variable.
147 | * @param None
148 | * @retval None
149 | */
150 | void SystemInit(void)
151 | {
152 | /* FPU settings ------------------------------------------------------------*/
153 | #if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
154 | SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */
155 | #endif
156 | /* Reset the RCC clock configuration to the default reset state ------------*/
157 | /* Set HSION bit */
158 | RCC->CR |= (uint32_t)0x00000001;
159 |
160 | /* Reset CFGR register */
161 | RCC->CFGR = 0x00000000;
162 |
163 | /* Reset HSEON, CSSON and PLLON bits */
164 | RCC->CR &= (uint32_t)0xFEF6FFFF;
165 |
166 | /* Reset PLLCFGR register */
167 | RCC->PLLCFGR = 0x24003010;
168 |
169 | /* Reset HSEBYP bit */
170 | RCC->CR &= (uint32_t)0xFFFBFFFF;
171 |
172 | /* Disable all interrupts */
173 | RCC->CIR = 0x00000000;
174 |
175 | /* Configure the Vector Table location add offset address ------------------*/
176 | #ifdef VECT_TAB_SRAM
177 | SCB->VTOR = RAMDTCM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */
178 | #else
179 | SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */
180 | #endif
181 | }
182 |
183 | /**
184 | * @brief Update SystemCoreClock variable according to Clock Register Values.
185 | * The SystemCoreClock variable contains the core clock (HCLK), it can
186 | * be used by the user application to setup the SysTick timer or configure
187 | * other parameters.
188 | *
189 | * @note Each time the core clock (HCLK) changes, this function must be called
190 | * to update SystemCoreClock variable value. Otherwise, any configuration
191 | * based on this variable will be incorrect.
192 | *
193 | * @note - The system frequency computed by this function is not the real
194 | * frequency in the chip. It is calculated based on the predefined
195 | * constant and the selected clock source:
196 | *
197 | * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*)
198 | *
199 | * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**)
200 | *
201 | * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**)
202 | * or HSI_VALUE(*) multiplied/divided by the PLL factors.
203 | *
204 | * (*) HSI_VALUE is a constant defined in stm32f7xx_hal_conf.h file (default value
205 | * 16 MHz) but the real value may vary depending on the variations
206 | * in voltage and temperature.
207 | *
208 | * (**) HSE_VALUE is a constant defined in stm32f7xx_hal_conf.h file (default value
209 | * 25 MHz), user has to ensure that HSE_VALUE is same as the real
210 | * frequency of the crystal used. Otherwise, this function may
211 | * have wrong result.
212 | *
213 | * - The result of this function could be not correct when using fractional
214 | * value for HSE crystal.
215 | *
216 | * @param None
217 | * @retval None
218 | */
219 | void SystemCoreClockUpdate(void)
220 | {
221 | uint32_t tmp = 0, pllvco = 0, pllp = 2, pllsource = 0, pllm = 2;
222 |
223 | /* Get SYSCLK source -------------------------------------------------------*/
224 | tmp = RCC->CFGR & RCC_CFGR_SWS;
225 |
226 | switch (tmp)
227 | {
228 | case 0x00: /* HSI used as system clock source */
229 | SystemCoreClock = HSI_VALUE;
230 | break;
231 | case 0x04: /* HSE used as system clock source */
232 | SystemCoreClock = HSE_VALUE;
233 | break;
234 | case 0x08: /* PLL used as system clock source */
235 |
236 | /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N
237 | SYSCLK = PLL_VCO / PLL_P
238 | */
239 | pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) >> 22;
240 | pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
241 |
242 | if (pllsource != 0)
243 | {
244 | /* HSE used as PLL clock source */
245 | pllvco = (HSE_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
246 | }
247 | else
248 | {
249 | /* HSI used as PLL clock source */
250 | pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
251 | }
252 |
253 | pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) + 1 ) *2;
254 | SystemCoreClock = pllvco/pllp;
255 | break;
256 | default:
257 | SystemCoreClock = HSI_VALUE;
258 | break;
259 | }
260 | /* Compute HCLK frequency --------------------------------------------------*/
261 | /* Get HCLK prescaler */
262 | tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)];
263 | /* HCLK frequency */
264 | SystemCoreClock >>= tmp;
265 | }
266 |
267 | /**
268 | * @}
269 | */
270 |
271 | /**
272 | * @}
273 | */
274 |
275 | /**
276 | * @}
277 | */
278 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
279 |
--------------------------------------------------------------------------------
/Test_DCMI.elf.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/Test_DCMI.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
--------------------------------------------------------------------------------
/Test_DCMI_converter.log:
--------------------------------------------------------------------------------
1 | Project: Test_DCMI
2 | Converter: Atollic TrueSTUDIO project converter
3 | Date: 20210219
4 |
5 | Post-build step might need some manual actions.
6 | Unknown value type "" for id com.atollic.truestudio.as.general.incpath on tool com.atollic.truestudio.exe.debug.toolchain.as
7 | Unknown value type "" for id com.atollic.truestudio.gcc.symbols.defined on tool com.atollic.truestudio.exe.debug.toolchain.as
8 | Option com.atollic.truestudio.common_options.target.endianess is no longer supported
9 | Option com.atollic.truestudio.common_options.target.instr_set is no longer supported
10 | Unknown value type "" for id com.atollic.truestudio.common_options.target.interwork on tool com.atollic.truestudio.exe.debug.toolchain.gcc
11 | Option com.atollic.truestudio.common_options.target.endianess is no longer supported
12 | Option com.atollic.truestudio.common_options.target.instr_set is no longer supported
13 | Unknown value type "" for id com.atollic.truestudio.ld.libraries.list on tool com.atollic.truestudio.exe.debug.toolchain.ld
14 | Unknown value type "" for id com.atollic.truestudio.ld.libraries.searchpath on tool com.atollic.truestudio.exe.debug.toolchain.ld
15 | Option com.atollic.truestudio.common_options.target.endianess is no longer supported
16 | Option com.atollic.truestudio.common_options.target.instr_set is no longer supported
17 | Unknown value type "" for id com.atollic.truestudio.gpp.optimization.fno_rtti on tool com.atollic.truestudio.exe.debug.toolchain.gpp
18 | Unknown value type "" for id com.atollic.truestudio.gpp.optimization.fno_exceptions on tool com.atollic.truestudio.exe.debug.toolchain.gpp
19 | Option com.atollic.truestudio.common_options.target.endianess is no longer supported
20 | Option com.atollic.truestudio.common_options.target.instr_set is no longer supported
21 | Option com.atollic.truestudio.common_options.target.endianess is no longer supported
22 | Option com.atollic.truestudio.common_options.target.instr_set is no longer supported
23 | No map found for id: com.atollic.truestudio.exe.release
24 |
--------------------------------------------------------------------------------
/mx.scratch:
--------------------------------------------------------------------------------
1 |
2 |
3 | 3.0
4 |
5 | Single-project
6 | E:\STM32-F7-ov2640-master\
7 | true
8 | 0
9 | C:\Users\Pathfinder\STM32Cube\Repository\STM32Cube_FW_F7_V1.16.0
10 | Drivers/CMSIS
11 | STM32CubeIDE
12 | Test_DCMI.ioc
13 |
14 | Test_DCMI
15 | C
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | Test_DCMI
24 | Src
25 | Basic
26 | STM32F767ZITx
27 | Arm Cortex-M7
28 | DP
29 |
30 |
31 |
32 |
33 | C:\Users\Pathfinder\STM32Cube\Repository\STM32Cube_FW_F7_V1.16.0\Drivers\CMSIS\Device\ST\STM32F7xx\Source\Templates\gcc\startup_stm32f767xx.s
34 |
35 |
36 |
37 | 0x200
38 | 0x400
39 | NUCLEO-F767ZI
40 | swd
41 |
42 |
43 |
44 |
45 |
46 |
47 | USE_HAL_DRIVER
48 | STM32F767xx
49 |
50 |
51 |
52 | Inc
53 | Drivers\STM32F7xx_HAL_Driver\Inc
54 | Drivers\STM32F7xx_HAL_Driver\Inc\Legacy
55 | Drivers\CMSIS\Device\ST\STM32F7xx\Include
56 | Drivers\CMSIS\Include
57 |
58 |
59 |
60 |
61 | USE_FULL_LL_DRIVER
62 | MBEDTLS_CONFIG_FILE="mbedtls_config.h"
63 | USE_FULL_ASSERT=1U
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 | false
76 |
77 |
78 | Src
79 |
80 |
81 | Drivers
82 |
83 |
84 |
85 |
86 |
87 |
88 |
--------------------------------------------------------------------------------
/readme/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimpleMethod/STM32-OV2640/843864d2e7246e003addb0a3829ca20914ab06e2/readme/1.png
--------------------------------------------------------------------------------
/readme/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimpleMethod/STM32-OV2640/843864d2e7246e003addb0a3829ca20914ab06e2/readme/2.png
--------------------------------------------------------------------------------
/readme/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimpleMethod/STM32-OV2640/843864d2e7246e003addb0a3829ca20914ab06e2/readme/3.png
--------------------------------------------------------------------------------
/readme/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimpleMethod/STM32-OV2640/843864d2e7246e003addb0a3829ca20914ab06e2/readme/4.png
--------------------------------------------------------------------------------
/readme/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimpleMethod/STM32-OV2640/843864d2e7246e003addb0a3829ca20914ab06e2/readme/5.png
--------------------------------------------------------------------------------
/readme/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimpleMethod/STM32-OV2640/843864d2e7246e003addb0a3829ca20914ab06e2/readme/6.png
--------------------------------------------------------------------------------
/readme/7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimpleMethod/STM32-OV2640/843864d2e7246e003addb0a3829ca20914ab06e2/readme/7.jpg
--------------------------------------------------------------------------------
/readme/FullRes.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimpleMethod/STM32-OV2640/843864d2e7246e003addb0a3829ca20914ab06e2/readme/FullRes.jpg
--------------------------------------------------------------------------------
/readme/MinRes.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimpleMethod/STM32-OV2640/843864d2e7246e003addb0a3829ca20914ab06e2/readme/MinRes.jpg
--------------------------------------------------------------------------------
/syscalls.c:
--------------------------------------------------------------------------------
1 | /**
2 | *****************************************************************************
3 | **
4 | ** File : syscalls.c
5 | **
6 | ** Abstract : System Workbench Minimal System calls file
7 | **
8 | ** For more information about which c-functions
9 | ** need which of these lowlevel functions
10 | ** please consult the Newlib libc-manual
11 | **
12 | ** Environment : System Workbench for MCU
13 | **
14 | ** Distribution: The file is distributed as is without any warranty
15 | ** of any kind.
16 | **
17 | *****************************************************************************
18 | **
19 | ** © COPYRIGHT(c) 2014 Ac6
20 | **
21 | ** Redistribution and use in source and binary forms, with or without modification,
22 | ** are permitted provided that the following conditions are met:
23 | ** 1. Redistributions of source code must retain the above copyright notice,
24 | ** this list of conditions and the following disclaimer.
25 | ** 2. Redistributions in binary form must reproduce the above copyright notice,
26 | ** this list of conditions and the following disclaimer in the documentation
27 | ** and/or other materials provided with the distribution.
28 | ** 3. Neither the name of Ac6 nor the names of its contributors
29 | ** may be used to endorse or promote products derived from this software
30 | ** without specific prior written permission.
31 | **
32 | ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
33 | ** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
34 | ** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
35 | ** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
36 | ** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
37 | ** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
38 | ** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
39 | ** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
40 | ** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
41 | ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
42 | **
43 | *****************************************************************************
44 | */
45 |
46 | /* Includes */
47 | #include
48 | #include
49 | #include
50 | #include
51 | #include
52 | #include
53 | #include
54 | #include
55 |
56 |
57 | /* Variables */
58 | //#undef errno
59 | extern int errno;
60 | extern int __io_putchar(int ch) __attribute__((weak));
61 | extern int __io_getchar(void) __attribute__((weak));
62 |
63 | register char * stack_ptr asm("sp");
64 |
65 | char *__env[1] = { 0 };
66 | char **environ = __env;
67 |
68 |
69 | /* Functions */
70 | void initialise_monitor_handles()
71 | {
72 | }
73 |
74 | int _getpid(void)
75 | {
76 | return 1;
77 | }
78 |
79 | int _kill(int pid, int sig)
80 | {
81 | errno = EINVAL;
82 | return -1;
83 | }
84 |
85 | void _exit (int status)
86 | {
87 | _kill(status, -1);
88 | while (1) {} /* Make sure we hang here */
89 | }
90 |
91 | int _read (int file, char *ptr, int len)
92 | {
93 | int DataIdx;
94 |
95 | for (DataIdx = 0; DataIdx < len; DataIdx++)
96 | {
97 | *ptr++ = __io_getchar();
98 | }
99 |
100 | return len;
101 | }
102 |
103 | int _write(int file, char *ptr, int len)
104 | {
105 | int DataIdx;
106 |
107 | for (DataIdx = 0; DataIdx < len; DataIdx++)
108 | {
109 | __io_putchar(*ptr++);
110 | }
111 | return len;
112 | }
113 |
114 | caddr_t _sbrk(int incr)
115 | {
116 | extern char end asm("end");
117 | static char *heap_end;
118 | char *prev_heap_end;
119 |
120 | if (heap_end == 0)
121 | heap_end = &end;
122 |
123 | prev_heap_end = heap_end;
124 | if (heap_end + incr > stack_ptr)
125 | {
126 | // write(1, "Heap and stack collision\n", 25);
127 | // abort();
128 | errno = ENOMEM;
129 | return (caddr_t) -1;
130 | }
131 |
132 | heap_end += incr;
133 |
134 | return (caddr_t) prev_heap_end;
135 | }
136 |
137 | int _close(int file)
138 | {
139 | return -1;
140 | }
141 |
142 |
143 | int _fstat(int file, struct stat *st)
144 | {
145 | st->st_mode = S_IFCHR;
146 | return 0;
147 | }
148 |
149 | int _isatty(int file)
150 | {
151 | return 1;
152 | }
153 |
154 | int _lseek(int file, int ptr, int dir)
155 | {
156 | return 0;
157 | }
158 |
159 | int _open(char *path, int flags, ...)
160 | {
161 | /* Pretend like we always fail */
162 | return -1;
163 | }
164 |
165 | int _wait(int *status)
166 | {
167 | errno = ECHILD;
168 | return -1;
169 | }
170 |
171 | int _unlink(char *name)
172 | {
173 | errno = ENOENT;
174 | return -1;
175 | }
176 |
177 | int _times(struct tms *buf)
178 | {
179 | return -1;
180 | }
181 |
182 | int _stat(char *file, struct stat *st)
183 | {
184 | st->st_mode = S_IFCHR;
185 | return 0;
186 | }
187 |
188 | int _link(char *old, char *new)
189 | {
190 | errno = EMLINK;
191 | return -1;
192 | }
193 |
194 | int _fork(void)
195 | {
196 | errno = EAGAIN;
197 | return -1;
198 | }
199 |
200 | int _execve(char *name, char **argv, char **env)
201 | {
202 | errno = ENOMEM;
203 | return -1;
204 | }
205 |
--------------------------------------------------------------------------------