添加QSPI
This commit is contained in:
parent
5476f7b885
commit
154b0512bf
@ -1,7 +1,7 @@
|
||||
[PreviousGenFiles]
|
||||
HeaderPath=E:/wlk/Project/GitTouchGFX/hellotouchGFX/example1/enxcubetouchgfx/Inc
|
||||
HeaderPath=F:/PROJECT/SOR/03_GitTouchGFX/hellotouchGFX/example1/enxcubetouchgfx/Inc
|
||||
HeaderFiles=FreeRTOSConfig.h;app_touchgfx.h;TouchGFXGeneratedHAL.hpp;TouchGFXHAL.hpp;STM32TouchController.hpp;STM32DMA.hpp;stm32f4xx_it.h;stm32f4xx_hal_conf.h;main.h;
|
||||
SourcePath=E:/wlk/Project/GitTouchGFX/hellotouchGFX/example1/enxcubetouchgfx/Src
|
||||
SourcePath=F:/PROJECT/SOR/03_GitTouchGFX/hellotouchGFX/example1/enxcubetouchgfx/Src
|
||||
SourceFiles=freertos.c;TouchGFXConfiguration.cpp;TouchGFXGeneratedHAL.cpp;TouchGFXHAL.cpp;STM32TouchController.cpp;STM32DMA.cpp;OSWrappers.cpp;TouchGFXGPIO.cpp;app_touchgfx.c;stm32f4xx_it.c;stm32f4xx_hal_msp.c;stm32f4xx_hal_timebase_tim.c;main.c;
|
||||
|
||||
[PreviousLibFiles]
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
|
||||
/*
|
||||
* Auto generated Run-Time-Environment Component Configuration File
|
||||
* Auto generated Run-Time-Environment Configuration File
|
||||
* *** Do not modify ! ***
|
||||
*
|
||||
* Project: 'touchgfx_demo'
|
||||
@ -17,4 +17,5 @@
|
||||
#define CMSIS_device_header "stm32f4xx.h"
|
||||
|
||||
|
||||
|
||||
#endif /* RTE_COMPONENTS_H */
|
||||
|
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_optx.xsd">
|
||||
|
||||
<SchemaVersion>1.0</SchemaVersion>
|
||||
@ -45,7 +45,7 @@
|
||||
<PageWidth>79</PageWidth>
|
||||
<PageLength>66</PageLength>
|
||||
<TabStop>8</TabStop>
|
||||
<ListingPath></ListingPath>
|
||||
<ListingPath />
|
||||
</OPTLEX>
|
||||
<ListingPage>
|
||||
<CreateCListing>1</CreateCListing>
|
||||
@ -104,16 +104,16 @@
|
||||
<bSchkAxf>0</bSchkAxf>
|
||||
<bTchkAxf>0</bTchkAxf>
|
||||
<nTsel>4</nTsel>
|
||||
<sDll></sDll>
|
||||
<sDllPa></sDllPa>
|
||||
<sDlgDll></sDlgDll>
|
||||
<sDlgPa></sDlgPa>
|
||||
<sIfile></sIfile>
|
||||
<tDll></tDll>
|
||||
<tDllPa></tDllPa>
|
||||
<tDlgDll></tDlgDll>
|
||||
<tDlgPa></tDlgPa>
|
||||
<tIfile></tIfile>
|
||||
<sDll />
|
||||
<sDllPa />
|
||||
<sDlgDll />
|
||||
<sDlgPa />
|
||||
<sIfile />
|
||||
<tDll />
|
||||
<tDllPa />
|
||||
<tDlgDll />
|
||||
<tDlgPa />
|
||||
<tIfile />
|
||||
<pMon>Segger\JL2CM3.dll</pMon>
|
||||
</DebugOpt>
|
||||
<TargetDriverDllRegistry>
|
||||
@ -133,7 +133,7 @@
|
||||
<Name>-U-O142 -O2254 -S0 -C0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F429IGTx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
|
||||
</SetRegEntry>
|
||||
</TargetDriverDllRegistry>
|
||||
<Breakpoint/>
|
||||
<Breakpoint />
|
||||
<Tracepoint>
|
||||
<THDelay>0</THDelay>
|
||||
</Tracepoint>
|
||||
@ -163,19 +163,19 @@
|
||||
<newCpu>0</newCpu>
|
||||
<uProt>0</uProt>
|
||||
</DebugFlag>
|
||||
<LintExecutable></LintExecutable>
|
||||
<LintConfigFile></LintConfigFile>
|
||||
<LintExecutable />
|
||||
<LintConfigFile />
|
||||
<bLintAuto>0</bLintAuto>
|
||||
<bAutoGenD>0</bAutoGenD>
|
||||
<LntExFlags>0</LntExFlags>
|
||||
<pMisraName></pMisraName>
|
||||
<pszMrule></pszMrule>
|
||||
<pSingCmds></pSingCmds>
|
||||
<pMultCmds></pMultCmds>
|
||||
<pMisraNamep></pMisraNamep>
|
||||
<pszMrulep></pszMrulep>
|
||||
<pSingCmdsp></pSingCmdsp>
|
||||
<pMultCmdsp></pMultCmdsp>
|
||||
<pMisraName />
|
||||
<pszMrule />
|
||||
<pSingCmds />
|
||||
<pMultCmds />
|
||||
<pMisraNamep />
|
||||
<pszMrulep />
|
||||
<pSingCmdsp />
|
||||
<pMultCmdsp />
|
||||
<DebugDescription>
|
||||
<Enable>1</Enable>
|
||||
<EnableFlashSeq>1</EnableFlashSeq>
|
||||
|
@ -1,5 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" noNamespaceSchemaLocation="project_projx.xsd">
|
||||
|
||||
<SchemaVersion>2.1</SchemaVersion>
|
||||
|
||||
@ -19,28 +18,28 @@
|
||||
<PackID>Keil.STM32F4xx_DFP.2.14.0</PackID>
|
||||
<PackURL>http://www.keil.com/pack/</PackURL>
|
||||
<Cpu>IRAM(0x20000000-0x2002FFFF) IRAM2(0x10000000-0x1000FFFF) IROM(0x8000000-0x80FFFFF) CLOCK(25000000) FPU2 CPUTYPE("Cortex-M4")</Cpu>
|
||||
<FlashUtilSpec></FlashUtilSpec>
|
||||
<StartupFile></StartupFile>
|
||||
<FlashDriverDll></FlashDriverDll>
|
||||
<DeviceId></DeviceId>
|
||||
<RegisterFile></RegisterFile>
|
||||
<MemoryEnv></MemoryEnv>
|
||||
<Cmp></Cmp>
|
||||
<Asm></Asm>
|
||||
<Linker></Linker>
|
||||
<OHString></OHString>
|
||||
<InfinionOptionDll></InfinionOptionDll>
|
||||
<SLE66CMisc></SLE66CMisc>
|
||||
<SLE66AMisc></SLE66AMisc>
|
||||
<SLE66LinkerMisc></SLE66LinkerMisc>
|
||||
<FlashUtilSpec/>
|
||||
<StartupFile/>
|
||||
<FlashDriverDll/>
|
||||
<DeviceId/>
|
||||
<RegisterFile/>
|
||||
<MemoryEnv/>
|
||||
<Cmp/>
|
||||
<Asm/>
|
||||
<Linker/>
|
||||
<OHString/>
|
||||
<InfinionOptionDll/>
|
||||
<SLE66CMisc/>
|
||||
<SLE66AMisc/>
|
||||
<SLE66LinkerMisc/>
|
||||
<SFDFile>$$Device:STM32F429IGTx$CMSIS\SVD\STM32F429x.svd</SFDFile>
|
||||
<bCustSvd>0</bCustSvd>
|
||||
<UseEnv>0</UseEnv>
|
||||
<BinPath></BinPath>
|
||||
<IncludePath></IncludePath>
|
||||
<LibPath></LibPath>
|
||||
<RegisterFilePath></RegisterFilePath>
|
||||
<DBRegisterFilePath></DBRegisterFilePath>
|
||||
<BinPath/>
|
||||
<IncludePath/>
|
||||
<LibPath/>
|
||||
<RegisterFilePath/>
|
||||
<DBRegisterFilePath/>
|
||||
<TargetStatus>
|
||||
<Error>0</Error>
|
||||
<ExitCodeStop>0</ExitCodeStop>
|
||||
@ -55,15 +54,15 @@
|
||||
<CreateHexFile>1</CreateHexFile>
|
||||
<DebugInformation>1</DebugInformation>
|
||||
<BrowseInformation>1</BrowseInformation>
|
||||
<ListingPath></ListingPath>
|
||||
<ListingPath/>
|
||||
<HexFormatSelection>1</HexFormatSelection>
|
||||
<Merge32K>0</Merge32K>
|
||||
<CreateBatchFile>0</CreateBatchFile>
|
||||
<BeforeCompile>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Name/>
|
||||
<UserProg2Name/>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopU1X>0</nStopU1X>
|
||||
@ -72,8 +71,8 @@
|
||||
<BeforeMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Name/>
|
||||
<UserProg2Name/>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopB1X>0</nStopB1X>
|
||||
@ -82,15 +81,15 @@
|
||||
<AfterMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Name/>
|
||||
<UserProg2Name/>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopA1X>0</nStopA1X>
|
||||
<nStopA2X>0</nStopA2X>
|
||||
</AfterMake>
|
||||
<SelectedForBatchBuild>0</SelectedForBatchBuild>
|
||||
<SVCSIdString></SVCSIdString>
|
||||
<SVCSIdString/>
|
||||
</TargetCommonOption>
|
||||
<CommonProperty>
|
||||
<UseCPPCompiler>0</UseCPPCompiler>
|
||||
@ -104,8 +103,8 @@
|
||||
<AssembleAssemblyFile>0</AssembleAssemblyFile>
|
||||
<PublicsOnly>0</PublicsOnly>
|
||||
<StopOnExitCode>3</StopOnExitCode>
|
||||
<CustomArgument></CustomArgument>
|
||||
<IncludeLibraryModules></IncludeLibraryModules>
|
||||
<CustomArgument/>
|
||||
<IncludeLibraryModules/>
|
||||
<ComprImg>0</ComprImg>
|
||||
</CommonProperty>
|
||||
<DllOption>
|
||||
@ -138,11 +137,11 @@
|
||||
</Flash1>
|
||||
<bUseTDR>1</bUseTDR>
|
||||
<Flash2>STLink\ST-LINKIII-KEIL_SWO.dll</Flash2>
|
||||
<Flash3></Flash3>
|
||||
<Flash4></Flash4>
|
||||
<pFcarmOut></pFcarmOut>
|
||||
<pFcarmGrp></pFcarmGrp>
|
||||
<pFcArmRoot></pFcArmRoot>
|
||||
<Flash3/>
|
||||
<Flash4/>
|
||||
<pFcarmOut/>
|
||||
<pFcarmGrp/>
|
||||
<pFcArmRoot/>
|
||||
<FcArmLst>0</FcArmLst>
|
||||
</Utilities>
|
||||
<TargetArmAds>
|
||||
@ -175,7 +174,7 @@
|
||||
<RvctClst>0</RvctClst>
|
||||
<GenPPlst>0</GenPPlst>
|
||||
<AdsCpuType>"Cortex-M4"</AdsCpuType>
|
||||
<RvctDeviceName></RvctDeviceName>
|
||||
<RvctDeviceName/>
|
||||
<mOS>0</mOS>
|
||||
<uocRom>0</uocRom>
|
||||
<uocRam>0</uocRam>
|
||||
@ -308,7 +307,7 @@
|
||||
<Size>0x10000</Size>
|
||||
</OCR_RVCT10>
|
||||
</OnChipMemories>
|
||||
<RvctStartVector></RvctStartVector>
|
||||
<RvctStartVector/>
|
||||
</ArmAdsMisc>
|
||||
<Cads>
|
||||
<interw>1</interw>
|
||||
@ -335,10 +334,10 @@
|
||||
<v6WtE>0</v6WtE>
|
||||
<v6Rtti>0</v6Rtti>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<MiscControls/>
|
||||
<Define>USE_HAL_DRIVER,STM32F429xx</Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath>../Inc; ../Src; ../Drivers/STM32F4xx_HAL_Driver/Inc; ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy; ../Middlewares/Third_Party/FreeRTOS/Source/include; ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS; ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F; ../Drivers/CMSIS/Device/ST/STM32F4xx/Include; ../Drivers/CMSIS/Include; ../Drivers/Touch_Driver; ../middlewares/st/touchgfx/framework/include; ../src/generated/fonts/include; ../src/generated/gui_generated/include; ../src/generated/images/include; ../src/generated/texts/include; ../src/gui/include</IncludePath>
|
||||
<Undefine/>
|
||||
<IncludePath>../Inc; ../Src; ../Drivers/STM32F4xx_HAL_Driver/Inc; ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy; ../Middlewares/Third_Party/FreeRTOS/Source/include; ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS; ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F; ../Drivers/CMSIS/Device/ST/STM32F4xx/Include; ../Drivers/CMSIS/Include; ../Drivers/Touch_Driver; ../middlewares/st/touchgfx/framework/include; ../src/generated/fonts/include; ../src/generated/gui_generated/include; ../src/generated/images/include; ../src/generated/texts/include; ../src/gui/include</IncludePath>
|
||||
</VariousControls>
|
||||
</Cads>
|
||||
<Aads>
|
||||
@ -353,9 +352,9 @@
|
||||
<useXO>0</useXO>
|
||||
<uClangAs>0</uClangAs>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
<Undefine></Undefine>
|
||||
<MiscControls/>
|
||||
<Define/>
|
||||
<Undefine/>
|
||||
<IncludePath>..\Inc</IncludePath>
|
||||
</VariousControls>
|
||||
</Aads>
|
||||
@ -368,13 +367,13 @@
|
||||
<useFile>0</useFile>
|
||||
<TextAddressRange>0x08000000</TextAddressRange>
|
||||
<DataAddressRange>0x20000000</DataAddressRange>
|
||||
<pXoBase></pXoBase>
|
||||
<ScatterFile></ScatterFile>
|
||||
<IncludeLibs></IncludeLibs>
|
||||
<IncludeLibsPath></IncludeLibsPath>
|
||||
<Misc></Misc>
|
||||
<LinkerInputFile></LinkerInputFile>
|
||||
<DisabledWarnings></DisabledWarnings>
|
||||
<pXoBase/>
|
||||
<ScatterFile/>
|
||||
<IncludeLibs/>
|
||||
<IncludeLibsPath/>
|
||||
<Misc/>
|
||||
<LinkerInputFile/>
|
||||
<DisabledWarnings/>
|
||||
</LDads>
|
||||
</TargetArmAds>
|
||||
</TargetOption>
|
||||
|
@ -273,7 +273,7 @@ void SystemClock_Config(void)
|
||||
Error_Handler();
|
||||
}
|
||||
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LTDC;
|
||||
PeriphClkInitStruct.PLLSAI.PLLSAIN = 104;
|
||||
PeriphClkInitStruct.PLLSAI.PLLSAIN = 100;
|
||||
PeriphClkInitStruct.PLLSAI.PLLSAIR = 2;
|
||||
PeriphClkInitStruct.PLLSAIDivR = RCC_PLLSAIDIVR_2;
|
||||
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
|
||||
|
@ -336,27 +336,27 @@ RCC.HSE_VALUE=25000000
|
||||
RCC.HSI_VALUE=16000000
|
||||
RCC.I2SClocksFreq_Value=96000000
|
||||
RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LCDTFTFreq_Value,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLM,PLLN,PLLQCLKFreq_Value,PLLSAIN,PLLSourceVirtual,RTCFreq_Value,RTCHSEDivFreq_Value,SAI_AClocksFreq_Value,SAI_BClocksFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAIOutputFreq_Value,VCOSAIOutputFreq_ValueQ,VCOSAIOutputFreq_ValueR,VcooutputI2S,VcooutputI2SQ
|
||||
RCC.LCDTFTFreq_Value=26000000
|
||||
RCC.LCDTFTFreq_Value=25000000
|
||||
RCC.LSI_VALUE=32000
|
||||
RCC.MCO2PinFreq_Value=180000000
|
||||
RCC.PLLCLKFreq_Value=180000000
|
||||
RCC.PLLM=25
|
||||
RCC.PLLN=360
|
||||
RCC.PLLQCLKFreq_Value=90000000
|
||||
RCC.PLLSAIN=104
|
||||
RCC.PLLSAIN=100
|
||||
RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
|
||||
RCC.RTCFreq_Value=32000
|
||||
RCC.RTCHSEDivFreq_Value=12500000
|
||||
RCC.SAI_AClocksFreq_Value=26000000
|
||||
RCC.SAI_BClocksFreq_Value=26000000
|
||||
RCC.SAI_AClocksFreq_Value=25000000
|
||||
RCC.SAI_BClocksFreq_Value=25000000
|
||||
RCC.SYSCLKFreq_VALUE=180000000
|
||||
RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
|
||||
RCC.VCOI2SOutputFreq_Value=192000000
|
||||
RCC.VCOInputFreq_Value=1000000
|
||||
RCC.VCOOutputFreq_Value=360000000
|
||||
RCC.VCOSAIOutputFreq_Value=104000000
|
||||
RCC.VCOSAIOutputFreq_ValueQ=26000000
|
||||
RCC.VCOSAIOutputFreq_ValueR=52000000
|
||||
RCC.VCOSAIOutputFreq_Value=100000000
|
||||
RCC.VCOSAIOutputFreq_ValueQ=25000000
|
||||
RCC.VCOSAIOutputFreq_ValueR=50000000
|
||||
RCC.VcooutputI2S=96000000
|
||||
RCC.VcooutputI2SQ=96000000
|
||||
SH.FMC_A0.0=FMC_A0,12b-sda1
|
||||
|
@ -1,7 +1,7 @@
|
||||
[PreviousGenFiles]
|
||||
HeaderPath=E:/wlk/Project/hellotouchGFX/example3/demo1/Inc
|
||||
HeaderPath=F:/PROJECT/SOR/03_GitTouchGFX/hellotouchGFX/example3/demo1/Inc
|
||||
HeaderFiles=FreeRTOSConfig.h;app_touchgfx.h;TouchGFXGeneratedHAL.hpp;TouchGFXHAL.hpp;STM32TouchController.hpp;STM32DMA.hpp;stm32f7xx_it.h;stm32f7xx_hal_conf.h;main.h;
|
||||
SourcePath=E:/wlk/Project/hellotouchGFX/example3/demo1/Src
|
||||
SourcePath=F:/PROJECT/SOR/03_GitTouchGFX/hellotouchGFX/example3/demo1/Src
|
||||
SourceFiles=freertos.c;TouchGFXConfiguration.cpp;TouchGFXGeneratedHAL.cpp;TouchGFXHAL.cpp;STM32TouchController.cpp;STM32DMA.cpp;OSWrappers.cpp;TouchGFXGPIO.cpp;app_touchgfx.c;stm32f7xx_it.c;stm32f7xx_hal_msp.c;stm32f7xx_hal_timebase_tim.c;main.c;
|
||||
|
||||
[PreviousLibFiles]
|
||||
|
167
example3/demo1/Inc/qspi_flash.h
Normal file
167
example3/demo1/Inc/qspi_flash.h
Normal file
@ -0,0 +1,167 @@
|
||||
#ifndef __SPI_FLASH_H
|
||||
#define __SPI_FLASH_H
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#include "stm32f7xx.h"
|
||||
#include "main.h"
|
||||
#include <stdio.h>
|
||||
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
//#define sFLASH_ID 0xEF3015 //W25X16
|
||||
//#define sFLASH_ID 0xEF4015 //W25Q16
|
||||
//#define sFLASH_ID 0XEF4017 //W25Q64
|
||||
#define sFLASH_ID 0XEF4018 //W25Q128
|
||||
|
||||
/* QSPI Error codes */
|
||||
#define QSPI_OK ((uint8_t)0x00)
|
||||
#define QSPI_ERROR ((uint8_t)0x01)
|
||||
#define QSPI_BUSY ((uint8_t)0x02)
|
||||
#define QSPI_NOT_SUPPORTED ((uint8_t)0x04)
|
||||
#define QSPI_SUSPENDED ((uint8_t)0x08)
|
||||
|
||||
|
||||
/* W25Q128FV Micron memory */
|
||||
/* Size of the flash */
|
||||
#define QSPI_FLASH_SIZE 23 /* <20><>ַ<EFBFBD><D6B7><EFBFBD>߿<EFBFBD><DFBF>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>ռ<EFBFBD> */
|
||||
#define QSPI_PAGE_SIZE 256
|
||||
|
||||
/* QSPI Info */
|
||||
typedef struct {
|
||||
uint32_t FlashSize; /*!< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С */
|
||||
uint32_t EraseSectorSize; /*!< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С */
|
||||
uint32_t EraseSectorsNumber; /*!< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
uint32_t ProgPageSize; /*!< <20><><EFBFBD>̲<EFBFBD><CCB2><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD>С */
|
||||
uint32_t ProgPagesNumber; /*!< <20><><EFBFBD>̲<EFBFBD><CCB2><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD> */
|
||||
} QSPI_Info;
|
||||
|
||||
/* Private define ------------------------------------------------------------*/
|
||||
/*<2A><><EFBFBD><EFBFBD><EEB6A8>-<2D><>ͷ*******************************/
|
||||
/**
|
||||
* @brief W25Q128FV<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
#define W25Q128FV_FLASH_SIZE 0x1000000 /* 128 MBits => 16MBytes */
|
||||
#define W25Q128FV_SECTOR_SIZE 0x10000 /* 256 sectors of 64KBytes */
|
||||
#define W25Q128FV_SUBSECTOR_SIZE 0x1000 /* 4096 subsectors of 4kBytes */
|
||||
#define W25Q128FV_PAGE_SIZE 0x100 /* 65536 pages of 256 bytes */
|
||||
|
||||
#define W25Q128FV_DUMMY_CYCLES_READ 4
|
||||
#define W25Q128FV_DUMMY_CYCLES_READ_QUAD 10
|
||||
|
||||
#define W25Q128FV_BULK_ERASE_MAX_TIME 250000
|
||||
#define W25Q128FV_SECTOR_ERASE_MAX_TIME 3000
|
||||
#define W25Q128FV_SUBSECTOR_ERASE_MAX_TIME 800
|
||||
|
||||
/**
|
||||
* @brief W25Q128FV ָ<EFBFBD><EFBFBD>
|
||||
*/
|
||||
/* <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> */
|
||||
#define RESET_ENABLE_CMD 0x66
|
||||
#define RESET_MEMORY_CMD 0x99
|
||||
|
||||
#define ENTER_QPI_MODE_CMD 0x38
|
||||
#define EXIT_QPI_MODE_CMD 0xFF
|
||||
|
||||
/* ʶ<><CAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
#define READ_ID_CMD 0x90
|
||||
#define DUAL_READ_ID_CMD 0x92
|
||||
#define QUAD_READ_ID_CMD 0x94
|
||||
#define READ_JEDEC_ID_CMD 0x9F
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
#define READ_CMD 0x03
|
||||
#define FAST_READ_CMD 0x0B
|
||||
#define DUAL_OUT_FAST_READ_CMD 0x3B
|
||||
#define DUAL_INOUT_FAST_READ_CMD 0xBB
|
||||
#define QUAD_OUT_FAST_READ_CMD 0x6B
|
||||
#define QUAD_INOUT_FAST_READ_CMD 0xEB
|
||||
|
||||
/* д<><D0B4><EFBFBD><EFBFBD> */
|
||||
#define WRITE_ENABLE_CMD 0x06
|
||||
#define WRITE_DISABLE_CMD 0x04
|
||||
|
||||
/* <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
#define READ_STATUS_REG1_CMD 0x05
|
||||
#define READ_STATUS_REG2_CMD 0x35
|
||||
#define READ_STATUS_REG3_CMD 0x15
|
||||
|
||||
#define WRITE_STATUS_REG1_CMD 0x01
|
||||
#define WRITE_STATUS_REG2_CMD 0x31
|
||||
#define WRITE_STATUS_REG3_CMD 0x11
|
||||
|
||||
|
||||
/* <20><><EFBFBD>̲<EFBFBD><CCB2><EFBFBD> */
|
||||
#define PAGE_PROG_CMD 0x02
|
||||
#define QUAD_INPUT_PAGE_PROG_CMD 0x32
|
||||
#define EXT_QUAD_IN_FAST_PROG_CMD 0x12
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
#define SECTOR_ERASE_CMD 0x20
|
||||
#define CHIP_ERASE_CMD 0xC7
|
||||
|
||||
#define PROG_ERASE_RESUME_CMD 0x7A
|
||||
#define PROG_ERASE_SUSPEND_CMD 0x75
|
||||
|
||||
|
||||
/* ״̬<D7B4>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>־ */
|
||||
#define W25Q128FV_FSR_BUSY ((uint8_t)0x01) /*!< busy */
|
||||
#define W25Q128FV_FSR_WREN ((uint8_t)0x02) /*!< write enable */
|
||||
#define W25Q128FV_FSR_QE ((uint8_t)0x02) /*!< quad enable */
|
||||
/*<2A><><EFBFBD><EFBFBD><EEB6A8>-<2D><>β*******************************/
|
||||
|
||||
|
||||
/*QSPI<50>ӿڶ<D3BF><DAB6><EFBFBD>-<2D><>ͷ****************************/
|
||||
#define QSPI_FLASH QUADSPI
|
||||
#define QSPI_FLASH_CLK_ENABLE() __QSPI_CLK_ENABLE()
|
||||
|
||||
#define QSPI_FLASH_CLK_PIN GPIO_PIN_2
|
||||
#define QSPI_FLASH_CLK_GPIO_PORT GPIOB
|
||||
#define QSPI_FLASH_CLK_GPIO_ENABLE() __GPIOB_CLK_ENABLE()
|
||||
#define QSPI_FLASH_CLK_GPIO_AF GPIO_AF9_QUADSPI
|
||||
|
||||
#define QSPI_FLASH_BK1_IO0_PIN GPIO_PIN_8
|
||||
#define QSPI_FLASH_BK1_IO0_PORT GPIOF
|
||||
#define QSPI_FLASH_BK1_IO0_CLK_ENABLE() __GPIOF_CLK_ENABLE()
|
||||
#define QSPI_FLASH_BK1_IO0_AF GPIO_AF10_QUADSPI
|
||||
|
||||
#define QSPI_FLASH_BK1_IO1_PIN GPIO_PIN_9
|
||||
#define QSPI_FLASH_BK1_IO1_PORT GPIOF
|
||||
#define QSPI_FLASH_BK1_IO1_CLK_ENABLE() __GPIOF_CLK_ENABLE()
|
||||
#define QSPI_FLASH_BK1_IO1_AF GPIO_AF10_QUADSPI
|
||||
|
||||
#define QSPI_FLASH_BK1_IO2_PIN GPIO_PIN_7
|
||||
#define QSPI_FLASH_BK1_IO2_PORT GPIOF
|
||||
#define QSPI_FLASH_BK1_IO2_CLK_ENABLE() __GPIOF_CLK_ENABLE()
|
||||
#define QSPI_FLASH_BK1_IO2_AF GPIO_AF9_QUADSPI
|
||||
|
||||
#define QSPI_FLASH_BK1_IO3_PIN GPIO_PIN_6
|
||||
#define QSPI_FLASH_BK1_IO3_PORT GPIOF
|
||||
#define QSPI_FLASH_BK1_IO3_CLK_ENABLE() __GPIOF_CLK_ENABLE()
|
||||
#define QSPI_FLASH_BK1_IO3_AF GPIO_AF9_QUADSPI
|
||||
|
||||
#define QSPI_FLASH_CS_PIN GPIO_PIN_6
|
||||
#define QSPI_FLASH_CS_GPIO_PORT GPIOB
|
||||
#define QSPI_FLASH_CS_GPIO_CLK_ENABLE() __GPIOB_CLK_ENABLE()
|
||||
#define QSPI_FLASH_CS_GPIO_AF GPIO_AF10_QUADSPI
|
||||
|
||||
|
||||
|
||||
void QSPI_FLASH_Init(void);
|
||||
void QSPI_FLASH_MemoryMappedMode(void);
|
||||
uint8_t BSP_QSPI_Init(void);
|
||||
uint8_t BSP_QSPI_Erase_Block(uint32_t BlockAddress);
|
||||
uint8_t BSP_QSPI_Read(uint8_t* pData, uint32_t ReadAddr, uint32_t Size);
|
||||
uint8_t BSP_QSPI_Write(uint8_t* pData, uint32_t WriteAddr, uint32_t Size);
|
||||
|
||||
|
||||
static uint8_t QSPI_ResetMemory (void);
|
||||
static uint8_t QSPI_WriteEnable (void);
|
||||
static uint8_t QSPI_AutoPollingMemReady (uint32_t Timeout);
|
||||
|
||||
uint32_t QSPI_FLASH_ReadDeviceID(void);
|
||||
uint32_t QSPI_FLASH_ReadID(void);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* __SPI_FLASH_H */
|
||||
|
36
example3/demo1/MDK-ARM/JLinkLog.txt
Normal file
36
example3/demo1/MDK-ARM/JLinkLog.txt
Normal file
@ -0,0 +1,36 @@
|
||||
T0EFC 464:854 SEGGER J-Link V6.46 Log File (0001ms, 21545ms total)
|
||||
T0EFC 464:854 DLL Compiled: May 23 2019 17:49:56 (0001ms, 21545ms total)
|
||||
T0EFC 464:854 Logging started @ 2020-03-10 18:38 (0001ms, 21545ms total)
|
||||
T0EFC 464:855 JLINK_SetWarnOutHandler(...) (0000ms, 21545ms total)
|
||||
T0EFC 464:855 JLINK_OpenEx(...)
|
||||
Firmware: J-Link ARM V8 compiled Nov 28 2014 13:44:46
|
||||
Hardware: V8.00
|
||||
S/N: 17935099
|
||||
Feature(s): RDI,FlashDL,FlashBP,JFlash
|
||||
TELNET listener socket opened on port 19021WEBSRV
|
||||
Starting webserver (0068ms, 21613ms total)
|
||||
T0EFC 464:855 WEBSRV Webserver running on local port 19080 (0069ms, 21614ms total)
|
||||
T0EFC 464:855 returns O.K. (0069ms, 21614ms total)
|
||||
T0EFC 464:924 JLINK_GetEmuCaps() returns 0xB9FF7BBF (0000ms, 21614ms total)
|
||||
T0EFC 464:925 JLINK_TIF_GetAvailable(...) (0000ms, 21614ms total)
|
||||
T0EFC 464:925 JLINK_SetErrorOutHandler(...) (0000ms, 21614ms total)
|
||||
T0EFC 464:926 JLINK_ExecCommand("ProjectFile = "F:\PROJECT\SOR\03_GitTouchGFX\hellotouchGFX\example3\demo1\MDK-ARM\JLinkSettings.ini"", ...). returns 0x00 (0007ms, 21622ms total)
|
||||
T0EFC 464:942 JLINK_ExecCommand("Device = STM32F767IGTx", ...). Device "STM32F767IG" selected. returns 0x00 (0012ms, 21634ms total)
|
||||
T0EFC 464:954 JLINK_ExecCommand("DisableConnectionTimeout", ...). returns 0x01 (0000ms, 21634ms total)
|
||||
T0EFC 464:954 JLINK_GetHardwareVersion() returns 0x13880 (0000ms, 21634ms total)
|
||||
T0EFC 464:954 JLINK_GetDLLVersion() returns 64600 (0000ms, 21634ms total)
|
||||
T0EFC 464:954 JLINK_GetFirmwareString(...) (0000ms, 21634ms total)
|
||||
T0EFC 464:978 JLINK_GetDLLVersion() returns 64600 (0000ms, 21634ms total)
|
||||
T0EFC 464:978 JLINK_GetCompileDateTime() (0000ms, 21634ms total)
|
||||
T0EFC 464:987 JLINK_GetFirmwareString(...) (0000ms, 21634ms total)
|
||||
T0EFC 464:995 JLINK_GetHardwareVersion() returns 0x13880 (0000ms, 21634ms total)
|
||||
T0EFC 465:021 JLINK_TIF_Select(JLINKARM_TIF_SWD) returns 0x00 (0002ms, 21636ms total)
|
||||
T0EFC 465:023 JLINK_SetSpeed(5000) (0001ms, 21637ms total)
|
||||
T0EFC 465:024 JLINK_GetId() >0x10B TIF>Found SW-DP with ID 0x5BA02477 >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF>
|
||||
>0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x10B TIF>Found SW-DP with ID 0x5BA02477 >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF>Scanning AP map to find all available APs >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF>
|
||||
AP[1]: Stopped AP scan as end of AP map has been reachedAP[0]: AHB-AP (IDR: 0x74770001)Iterating through AP map to find AHB-AP to use >0x42 TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x42 TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF>AP[0]: Core foundAP[0]: AHB-AP ROM base: 0xE00FD000 >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF>
|
||||
CPUID register: 0x411FC270. Implementer code: 0x41 (ARM)Found Cortex-M7 r1p0, Little endian. -- Max. mem block: 0x00002408
|
||||
***** Error: Specific core setup failed. returns 0x00000000 (20900ms, 42537ms total)
|
||||
T0EFC 488:489 JLINK_Close() >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF> (0017ms, 42554ms total)
|
||||
T0EFC 488:489 (0017ms, 42554ms total)
|
||||
T0EFC 488:489 Closed (0017ms, 42554ms total)
|
39
example3/demo1/MDK-ARM/JLinkSettings.ini
Normal file
39
example3/demo1/MDK-ARM/JLinkSettings.ini
Normal file
@ -0,0 +1,39 @@
|
||||
[BREAKPOINTS]
|
||||
ForceImpTypeAny = 0
|
||||
ShowInfoWin = 1
|
||||
EnableFlashBP = 2
|
||||
BPDuringExecution = 0
|
||||
[CFI]
|
||||
CFISize = 0x00
|
||||
CFIAddr = 0x00
|
||||
[CPU]
|
||||
MonModeVTableAddr = 0xFFFFFFFF
|
||||
MonModeDebug = 0
|
||||
MaxNumAPs = 0
|
||||
LowPowerHandlingMode = 0
|
||||
OverrideMemMap = 0
|
||||
AllowSimulation = 1
|
||||
ScriptFile=""
|
||||
[FLASH]
|
||||
CacheExcludeSize = 0x00
|
||||
CacheExcludeAddr = 0x00
|
||||
MinNumBytesFlashDL = 0
|
||||
SkipProgOnCRCMatch = 1
|
||||
VerifyDownload = 1
|
||||
AllowCaching = 1
|
||||
EnableFlashDL = 2
|
||||
Override = 0
|
||||
Device="ARM7"
|
||||
[GENERAL]
|
||||
WorkRAMSize = 0x00
|
||||
WorkRAMAddr = 0x00
|
||||
RAMUsageLimit = 0x00
|
||||
[SWO]
|
||||
SWOLogFile=""
|
||||
[MEM]
|
||||
RdOverrideOrMask = 0x00
|
||||
RdOverrideAndMask = 0xFFFFFFFF
|
||||
RdOverrideAddr = 0xFFFFFFFF
|
||||
WrOverrideOrMask = 0x00
|
||||
WrOverrideAndMask = 0xFFFFFFFF
|
||||
WrOverrideAddr = 0xFFFFFFFF
|
@ -1,6 +1,6 @@
|
||||
|
||||
/*
|
||||
* Auto generated Run-Time-Environment Component Configuration File
|
||||
* Auto generated Run-Time-Environment Configuration File
|
||||
* *** Do not modify ! ***
|
||||
*
|
||||
* Project: 'demo1'
|
||||
@ -17,4 +17,5 @@
|
||||
#define CMSIS_device_header "stm32f7xx.h"
|
||||
|
||||
|
||||
|
||||
#endif /* RTE_COMPONENTS_H */
|
||||
|
File diff suppressed because one or more lines are too long
@ -103,7 +103,7 @@
|
||||
<bEvRecOn>1</bEvRecOn>
|
||||
<bSchkAxf>0</bSchkAxf>
|
||||
<bTchkAxf>0</bTchkAxf>
|
||||
<nTsel>4</nTsel>
|
||||
<nTsel>6</nTsel>
|
||||
<sDll></sDll>
|
||||
<sDllPa></sDllPa>
|
||||
<sDlgDll></sDlgDll>
|
||||
@ -114,13 +114,13 @@
|
||||
<tDlgDll></tDlgDll>
|
||||
<tDlgPa></tDlgPa>
|
||||
<tIfile></tIfile>
|
||||
<pMon>Segger\JL2CM3.dll</pMon>
|
||||
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
|
||||
</DebugOpt>
|
||||
<TargetDriverDllRegistry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>JL2CM3</Key>
|
||||
<Name>-U -O14 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20020000 -FC1000 -FN2 -FF0STM32F7x_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F767IGTx$CMSIS\Flash\STM32F7x_1024.FLM) -FF1STM32F7x_1024dual.FLM -FS18000000 -FL1100000 -FP1($$Device:STM32F767IGTx$CMSIS\Flash\STM32F7x_1024dual.FLM)</Name>
|
||||
<Name>-U17935099 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(5BA02477) -L00(4) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20020000 -FC1000 -FN2 -FF0STM32F7x_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F767IGTx$CMSIS\Flash\STM32F7x_1024.FLM) -FF1STM32F7x_1024dual.FLM -FS18000000 -FL1100000 -FP1($$Device:STM32F767IGTx$CMSIS\Flash\STM32F7x_1024dual.FLM)</Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
@ -130,7 +130,7 @@
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>ST-LINKIII-KEIL_SWO</Key>
|
||||
<Name>-U-O142 -O2254 -S0 -C0 -N00("ARM CoreSight SW-DP") -D00(5BA02477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F7x_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F767IGTx$CMSIS\Flash\STM32F7x_1024.FLM) -FF1STM32F7x_TCM -FS1200000 -FL1100000 -FP1($$Device:STM32F767IG$Flash\STM32F7x_TCM.FLM)</Name>
|
||||
<Name>-U54FF75066578555551530367 -O2254 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(5BA02477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8000 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN2 -FF0STM32F7x_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F767IGTx$CMSIS\Flash\STM32F7x_1024.FLM) -FF1STM32F7x_TCM.FLM -FS1200000 -FL1100000 -FP1($$Device:STM32F767IG$Flash\STM32F7x_TCM.FLM)</Name>
|
||||
</SetRegEntry>
|
||||
</TargetDriverDllRegistry>
|
||||
<Breakpoint/>
|
||||
@ -178,7 +178,7 @@
|
||||
<pMultCmdsp></pMultCmdsp>
|
||||
<DebugDescription>
|
||||
<Enable>1</Enable>
|
||||
<EnableFlashSeq>1</EnableFlashSeq>
|
||||
<EnableFlashSeq>0</EnableFlashSeq>
|
||||
<EnableLog>0</EnableLog>
|
||||
<Protocol>2</Protocol>
|
||||
<DbgClock>10000000</DbgClock>
|
||||
@ -380,6 +380,18 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>16</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\Src\qspi_flash.c</PathWithFileName>
|
||||
<FilenameWithoutPath>qspi_flash.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
@ -390,7 +402,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>16</FileNumber>
|
||||
<FileNumber>17</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -402,7 +414,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>17</FileNumber>
|
||||
<FileNumber>18</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -414,7 +426,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>18</FileNumber>
|
||||
<FileNumber>19</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -426,7 +438,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>19</FileNumber>
|
||||
<FileNumber>20</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -438,7 +450,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>20</FileNumber>
|
||||
<FileNumber>21</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -450,7 +462,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>21</FileNumber>
|
||||
<FileNumber>22</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -462,7 +474,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>22</FileNumber>
|
||||
<FileNumber>23</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -474,7 +486,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>23</FileNumber>
|
||||
<FileNumber>24</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -486,7 +498,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>24</FileNumber>
|
||||
<FileNumber>25</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -498,7 +510,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>25</FileNumber>
|
||||
<FileNumber>26</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -510,7 +522,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>26</FileNumber>
|
||||
<FileNumber>27</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -522,7 +534,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>27</FileNumber>
|
||||
<FileNumber>28</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -534,7 +546,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>28</FileNumber>
|
||||
<FileNumber>29</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -546,7 +558,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>29</FileNumber>
|
||||
<FileNumber>30</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -558,7 +570,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>30</FileNumber>
|
||||
<FileNumber>31</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -570,7 +582,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>31</FileNumber>
|
||||
<FileNumber>32</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -582,7 +594,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>32</FileNumber>
|
||||
<FileNumber>33</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -594,7 +606,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>33</FileNumber>
|
||||
<FileNumber>34</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -606,7 +618,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>34</FileNumber>
|
||||
<FileNumber>35</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -618,7 +630,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>35</FileNumber>
|
||||
<FileNumber>36</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -630,7 +642,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>36</FileNumber>
|
||||
<FileNumber>37</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -642,7 +654,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>37</FileNumber>
|
||||
<FileNumber>38</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -654,7 +666,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>38</FileNumber>
|
||||
<FileNumber>39</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -666,7 +678,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>39</FileNumber>
|
||||
<FileNumber>40</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -678,7 +690,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>40</FileNumber>
|
||||
<FileNumber>41</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -690,7 +702,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>41</FileNumber>
|
||||
<FileNumber>42</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -702,7 +714,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>42</FileNumber>
|
||||
<FileNumber>43</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -722,7 +734,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>4</GroupNumber>
|
||||
<FileNumber>43</FileNumber>
|
||||
<FileNumber>44</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -742,7 +754,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>44</FileNumber>
|
||||
<FileNumber>45</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -754,7 +766,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>45</FileNumber>
|
||||
<FileNumber>46</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -766,7 +778,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>46</FileNumber>
|
||||
<FileNumber>47</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -778,7 +790,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>47</FileNumber>
|
||||
<FileNumber>48</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -790,7 +802,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>48</FileNumber>
|
||||
<FileNumber>49</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -802,7 +814,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>49</FileNumber>
|
||||
<FileNumber>50</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -814,7 +826,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>50</FileNumber>
|
||||
<FileNumber>51</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -826,7 +838,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>51</FileNumber>
|
||||
<FileNumber>52</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -838,7 +850,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>52</FileNumber>
|
||||
<FileNumber>53</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -850,7 +862,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>53</FileNumber>
|
||||
<FileNumber>54</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -870,7 +882,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>6</GroupNumber>
|
||||
<FileNumber>54</FileNumber>
|
||||
<FileNumber>55</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -882,7 +894,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>6</GroupNumber>
|
||||
<FileNumber>55</FileNumber>
|
||||
<FileNumber>56</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -894,7 +906,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>6</GroupNumber>
|
||||
<FileNumber>56</FileNumber>
|
||||
<FileNumber>57</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -906,7 +918,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>6</GroupNumber>
|
||||
<FileNumber>57</FileNumber>
|
||||
<FileNumber>58</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -918,7 +930,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>6</GroupNumber>
|
||||
<FileNumber>58</FileNumber>
|
||||
<FileNumber>59</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -930,7 +942,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>6</GroupNumber>
|
||||
<FileNumber>59</FileNumber>
|
||||
<FileNumber>60</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -950,7 +962,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>60</FileNumber>
|
||||
<FileNumber>61</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -962,7 +974,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>61</FileNumber>
|
||||
<FileNumber>62</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -974,7 +986,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>62</FileNumber>
|
||||
<FileNumber>63</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -986,7 +998,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>63</FileNumber>
|
||||
<FileNumber>64</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -998,7 +1010,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>64</FileNumber>
|
||||
<FileNumber>65</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -1010,7 +1022,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>65</FileNumber>
|
||||
<FileNumber>66</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -1022,7 +1034,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>66</FileNumber>
|
||||
<FileNumber>67</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -1034,7 +1046,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>67</FileNumber>
|
||||
<FileNumber>68</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -1046,7 +1058,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>68</FileNumber>
|
||||
<FileNumber>69</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -1058,7 +1070,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>69</FileNumber>
|
||||
<FileNumber>70</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -1070,7 +1082,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>70</FileNumber>
|
||||
<FileNumber>71</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -1082,7 +1094,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>71</FileNumber>
|
||||
<FileNumber>72</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -1094,7 +1106,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>72</FileNumber>
|
||||
<FileNumber>73</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -1106,7 +1118,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>73</FileNumber>
|
||||
<FileNumber>74</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -1118,7 +1130,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>74</FileNumber>
|
||||
<FileNumber>75</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -1130,7 +1142,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>75</FileNumber>
|
||||
<FileNumber>76</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -1142,7 +1154,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>76</FileNumber>
|
||||
<FileNumber>77</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -1154,7 +1166,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>77</FileNumber>
|
||||
<FileNumber>78</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -1166,7 +1178,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>78</FileNumber>
|
||||
<FileNumber>79</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -1178,7 +1190,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>79</FileNumber>
|
||||
<FileNumber>80</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -1190,7 +1202,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>80</FileNumber>
|
||||
<FileNumber>81</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -1202,7 +1214,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>81</FileNumber>
|
||||
<FileNumber>82</FileNumber>
|
||||
<FileType>8</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -1222,7 +1234,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>82</FileNumber>
|
||||
<FileNumber>83</FileNumber>
|
||||
<FileType>4</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -1242,7 +1254,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>83</FileNumber>
|
||||
<FileNumber>84</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@ -1254,7 +1266,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>84</FileNumber>
|
||||
<FileNumber>85</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -18,7 +18,7 @@
|
||||
<Vendor>STMicroelectronics</Vendor>
|
||||
<PackID>Keil.STM32F7xx_DFP.2.12.0</PackID>
|
||||
<PackURL>https://www.keil.com/pack/</PackURL>
|
||||
<Cpu>IRAM(0x20000000-0x2007FFFF) IROM(0x8000000-0x80FFFFF) CLOCK(12000000) FPU3(DFPU) CPUTYPE("Cortex-M7") ELITTLE</Cpu>
|
||||
<Cpu>IRAM(0x20000000-0x2007FFFF) IROM(0x8000000-0x80FFFFF) CLOCK(12000000) FPU3(DFPU) CPUTYPE("Cortex-M7") ELITTLE</Cpu>
|
||||
<FlashUtilSpec></FlashUtilSpec>
|
||||
<StartupFile></StartupFile>
|
||||
<FlashDriverDll></FlashDriverDll>
|
||||
@ -338,7 +338,7 @@
|
||||
<MiscControls></MiscControls>
|
||||
<Define>USE_HAL_DRIVER,STM32F767xx</Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath>../Inc;../Src;../Drivers/STM32F7xx_HAL_Driver/Inc;../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy;../Middlewares/Third_Party/FreeRTOS/Source/include;../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS;../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM7/r0p1;../Drivers/CMSIS/Device/ST/STM32F7xx/Include;../Drivers/CMSIS/Include;../middlewares/st/touchgfx/framework/include;../src/generated/fonts/include;../src/generated/gui_generated/include;../src/generated/images/include;../src/generated/texts/include;../src/gui/include;..\Drivers\Touch_Driver</IncludePath>
|
||||
<IncludePath>../Inc; ../Src; ../Drivers/STM32F7xx_HAL_Driver/Inc; ../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy; ../Middlewares/Third_Party/FreeRTOS/Source/include; ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS; ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM7/r0p1; ../Drivers/CMSIS/Device/ST/STM32F7xx/Include; ../Drivers/CMSIS/Include; ../middlewares/st/touchgfx/framework/include; ../src/generated/fonts/include; ../src/generated/gui_generated/include; ../src/generated/images/include; ../src/generated/texts/include; ../src/gui/include; ..\Drivers\Touch_Driver</IncludePath>
|
||||
</VariousControls>
|
||||
</Cads>
|
||||
<Aads>
|
||||
@ -360,7 +360,7 @@
|
||||
</VariousControls>
|
||||
</Aads>
|
||||
<LDads>
|
||||
<umfTarg>1</umfTarg>
|
||||
<umfTarg>0</umfTarg>
|
||||
<Ropi>0</Ropi>
|
||||
<Rwpi>0</Rwpi>
|
||||
<noStLib>0</noStLib>
|
||||
@ -369,7 +369,7 @@
|
||||
<TextAddressRange>0x08000000</TextAddressRange>
|
||||
<DataAddressRange>0x20000000</DataAddressRange>
|
||||
<pXoBase></pXoBase>
|
||||
<ScatterFile></ScatterFile>
|
||||
<ScatterFile>.\demo1\demo1.sct</ScatterFile>
|
||||
<IncludeLibs></IncludeLibs>
|
||||
<IncludeLibsPath></IncludeLibsPath>
|
||||
<Misc></Misc>
|
||||
@ -462,6 +462,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>../Src/stm32f7xx_hal_timebase_tim.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>qspi_flash.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\Src\qspi_flash.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -26,6 +26,7 @@
|
||||
/* Private includes ----------------------------------------------------------*/
|
||||
/* USER CODE BEGIN Includes */
|
||||
#include "stdio.h"
|
||||
#include "qspi_flash.h"
|
||||
/* USER CODE END Includes */
|
||||
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
@ -184,8 +185,8 @@ int main(void)
|
||||
MX_DMA2D_Init();
|
||||
MX_FMC_Init();
|
||||
MX_LTDC_Init();
|
||||
MX_QUADSPI_Init();
|
||||
MX_USART1_UART_Init();
|
||||
MX_QUADSPI_Init();
|
||||
MX_TouchGFX_Init();
|
||||
/* USER CODE BEGIN 2 */
|
||||
|
||||
@ -282,7 +283,7 @@ void SystemClock_Config(void)
|
||||
Error_Handler();
|
||||
}
|
||||
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LTDC|RCC_PERIPHCLK_USART1;
|
||||
PeriphClkInitStruct.PLLSAI.PLLSAIN = 208;
|
||||
PeriphClkInitStruct.PLLSAI.PLLSAIN = 200;
|
||||
PeriphClkInitStruct.PLLSAI.PLLSAIR = 4;
|
||||
PeriphClkInitStruct.PLLSAI.PLLSAIQ = 2;
|
||||
PeriphClkInitStruct.PLLSAI.PLLSAIP = RCC_PLLSAIP_DIV2;
|
||||
@ -457,6 +458,9 @@ static void MX_QUADSPI_Init(void)
|
||||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN QUADSPI_Init 2 */
|
||||
BSP_QSPI_Init();
|
||||
|
||||
|
||||
|
||||
/* USER CODE END QUADSPI_Init 2 */
|
||||
|
||||
@ -565,8 +569,10 @@ static void MX_GPIO_Init(void)
|
||||
__HAL_RCC_GPIOD_CLK_ENABLE();
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(GPIOH, I2C_SCL_Pin|I2C_SDA_Pin|LED_R_Pin|LED_G_Pin
|
||||
|LED_B_Pin, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(GPIOH, I2C_SCL_Pin|I2C_SDA_Pin, GPIO_PIN_RESET);
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(GPIOH, LED_R_Pin|LED_G_Pin|LED_B_Pin, GPIO_PIN_SET);
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(CTP_RSTN_GPIO_Port, CTP_RSTN_Pin, GPIO_PIN_RESET);
|
||||
|
577
example3/demo1/Src/qspi_flash.c
Normal file
577
example3/demo1/Src/qspi_flash.c
Normal file
@ -0,0 +1,577 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file bsp_qspi_flash.c
|
||||
* @author fire
|
||||
* @version V1.0
|
||||
* @date 2015-xx-xx
|
||||
* @brief qspi flash <EFBFBD>ײ<EFBFBD>Ӧ<EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD>bsp
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* ʵ<EFBFBD><EFBFBD>ƽ̨:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>STM32 F767 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <EFBFBD><EFBFBD>̳ :http://www.firebbs.cn
|
||||
* <EFBFBD>Ա<EFBFBD> :http://firestm32.taobao.com
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "qspi_flash.h"
|
||||
|
||||
extern QSPI_HandleTypeDef hqspi;
|
||||
uint32_t DeviceID = 0;
|
||||
uint32_t FlashID = 0;
|
||||
/**
|
||||
* @brief QSPI_FLASH<EFBFBD><EFBFBD><EFBFBD>ų<EFBFBD>ʼ<EFBFBD><EFBFBD>
|
||||
* @param <EFBFBD><EFBFBD>
|
||||
* @retval <EFBFBD><EFBFBD>
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>QSPI<EFBFBD>洢<EFBFBD><EFBFBD>
|
||||
* @retval QSPI<EFBFBD>洢<EFBFBD><EFBFBD>״̬
|
||||
*/
|
||||
uint8_t BSP_QSPI_Init(void)
|
||||
{
|
||||
QSPI_CommandTypeDef s_command;
|
||||
uint8_t value = W25Q128FV_FSR_QE;
|
||||
/* QSPI<50>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD>λ */
|
||||
if (QSPI_ResetMemory() != QSPI_OK)
|
||||
{
|
||||
return QSPI_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
/* ʹ<><CAB9>д<EFBFBD><D0B4><EFBFBD><EFBFBD> */
|
||||
if (QSPI_WriteEnable() != QSPI_OK)
|
||||
{
|
||||
return QSPI_ERROR;
|
||||
}
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·ʹ<C2B7>ܵ<EFBFBD>״̬<D7B4>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>IO2<4F><32>IO3<4F><33><EFBFBD><EFBFBD> */
|
||||
s_command.InstructionMode = QSPI_INSTRUCTION_1_LINE;
|
||||
s_command.Instruction = WRITE_STATUS_REG2_CMD;
|
||||
s_command.AddressMode = QSPI_ADDRESS_NONE;
|
||||
s_command.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
|
||||
s_command.DataMode = QSPI_DATA_1_LINE;
|
||||
s_command.DummyCycles = 0;
|
||||
s_command.NbData = 1;
|
||||
s_command.DdrMode = QSPI_DDR_MODE_DISABLE;
|
||||
s_command.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
|
||||
s_command.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (HAL_QSPI_Command(&hqspi, &s_command, HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
|
||||
{
|
||||
return QSPI_ERROR;
|
||||
}
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (HAL_QSPI_Transmit(&hqspi, &value, HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
|
||||
{
|
||||
return QSPI_ERROR;
|
||||
}
|
||||
/* <20>Զ<EFBFBD><D4B6><EFBFBD>ѯģʽ<C4A3>ȴ<EFBFBD><C8B4>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (QSPI_AutoPollingMemReady(W25Q128FV_SUBSECTOR_ERASE_MAX_TIME) != QSPI_OK)
|
||||
{
|
||||
return QSPI_ERROR;
|
||||
}
|
||||
/* <20><>ȡ Flash Device ID */
|
||||
DeviceID = QSPI_FLASH_ReadDeviceID();
|
||||
|
||||
/* <20><>ȡ SPI Flash ID */
|
||||
FlashID = QSPI_FLASH_ReadID();
|
||||
|
||||
QSPI_FLASH_MemoryMappedMode();
|
||||
return QSPI_OK;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <EFBFBD><EFBFBD>QSPI<EFBFBD>洢<EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
* @param pData: ָ<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ָ<EFBFBD><EFBFBD>
|
||||
* @param ReadAddr: <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>ַ
|
||||
* @param Size: Ҫ<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD>С
|
||||
* @retval QSPI<EFBFBD>洢<EFBFBD><EFBFBD>״̬
|
||||
*/
|
||||
uint8_t BSP_QSPI_Read(uint8_t* pData, uint32_t ReadAddr, uint32_t Size)
|
||||
{
|
||||
QSPI_CommandTypeDef s_command;
|
||||
/* <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
s_command.InstructionMode = QSPI_INSTRUCTION_1_LINE;
|
||||
s_command.Instruction = READ_CMD;
|
||||
s_command.AddressMode = QSPI_ADDRESS_1_LINE;
|
||||
s_command.AddressSize = QSPI_ADDRESS_24_BITS;
|
||||
s_command.Address = ReadAddr;
|
||||
s_command.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
|
||||
s_command.DataMode = QSPI_DATA_1_LINE;
|
||||
s_command.DummyCycles = 0;
|
||||
s_command.NbData = Size;
|
||||
s_command.DdrMode = QSPI_DDR_MODE_DISABLE;
|
||||
s_command.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
|
||||
s_command.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (HAL_QSPI_Command(&hqspi, &s_command, HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
|
||||
{
|
||||
return QSPI_ERROR;
|
||||
}
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (HAL_QSPI_Receive(&hqspi, pData, HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
|
||||
{
|
||||
return QSPI_ERROR;
|
||||
}
|
||||
return QSPI_OK;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD>QSPI<EFBFBD>洢<EFBFBD><EFBFBD>
|
||||
* @param pData: ָ<EFBFBD><EFBFBD>Ҫд<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ָ<EFBFBD><EFBFBD>
|
||||
* @param WriteAddr: д<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>ַ
|
||||
* @param Size: Ҫд<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD>С
|
||||
* @retval QSPI<EFBFBD>洢<EFBFBD><EFBFBD>״̬
|
||||
*/
|
||||
uint8_t BSP_QSPI_Write(uint8_t* pData, uint32_t WriteAddr, uint32_t Size)
|
||||
{
|
||||
QSPI_CommandTypeDef s_command;
|
||||
uint32_t end_addr, current_size, current_addr;
|
||||
/* <20><><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>ҳ<EFBFBD><D2B3>ĩβ֮<CEB2><D6AE><EFBFBD>Ĵ<EFBFBD>С */
|
||||
current_addr = 0;
|
||||
|
||||
while (current_addr <= WriteAddr)
|
||||
{
|
||||
current_addr += W25Q128FV_PAGE_SIZE;
|
||||
}
|
||||
current_size = current_addr - WriteAddr;
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĴ<DDB5>С<EFBFBD>Ƿ<EFBFBD>С<EFBFBD><D0A1>ҳ<EFBFBD><D2B3><EFBFBD>е<EFBFBD>ʣ<EFBFBD><CAA3>λ<EFBFBD><CEBB> */
|
||||
if (current_size > Size)
|
||||
{
|
||||
current_size = Size;
|
||||
}
|
||||
|
||||
/* <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD> */
|
||||
current_addr = WriteAddr;
|
||||
end_addr = WriteAddr + Size;
|
||||
|
||||
/* <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
s_command.InstructionMode = QSPI_INSTRUCTION_1_LINE;
|
||||
s_command.Instruction = QUAD_INPUT_PAGE_PROG_CMD;
|
||||
s_command.AddressMode = QSPI_ADDRESS_1_LINE;
|
||||
s_command.AddressSize = QSPI_ADDRESS_24_BITS;
|
||||
s_command.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
|
||||
s_command.DataMode = QSPI_DATA_4_LINES;
|
||||
s_command.DummyCycles = 0;
|
||||
s_command.DdrMode = QSPI_DDR_MODE_DISABLE;
|
||||
s_command.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
|
||||
s_command.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
|
||||
|
||||
/* <20><>ҳִ<D2B3><D6B4>д<EFBFBD><D0B4> */
|
||||
do
|
||||
{
|
||||
s_command.Address = current_addr;
|
||||
s_command.NbData = current_size;
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD> */
|
||||
if (QSPI_WriteEnable() != QSPI_OK)
|
||||
{
|
||||
return QSPI_ERROR;
|
||||
}
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (HAL_QSPI_Command(&hqspi, &s_command, HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
|
||||
{
|
||||
return QSPI_ERROR;
|
||||
}
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (HAL_QSPI_Transmit(&hqspi, pData, HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
|
||||
{
|
||||
return QSPI_ERROR;
|
||||
}
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD>ѯģʽ<C4A3>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (QSPI_AutoPollingMemReady(HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != QSPI_OK)
|
||||
{
|
||||
return QSPI_ERROR;
|
||||
}
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һҳ<D2BB><D2B3><EFBFBD>̵ĵ<CCB5>ַ<EFBFBD>ʹ<EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD> */
|
||||
current_addr += current_size;
|
||||
pData += current_size;
|
||||
current_size = ((current_addr + W25Q128FV_PAGE_SIZE) > end_addr) ? (end_addr - current_addr) : W25Q128FV_PAGE_SIZE;
|
||||
} while (current_addr < end_addr);
|
||||
return QSPI_OK;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>QSPI<EFBFBD>洢<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param BlockAddress: <EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
* @retval QSPI<EFBFBD>洢<EFBFBD><EFBFBD>״̬
|
||||
*/
|
||||
uint8_t BSP_QSPI_Erase_Block(uint32_t BlockAddress)
|
||||
{
|
||||
QSPI_CommandTypeDef s_command;
|
||||
/* <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
s_command.InstructionMode = QSPI_INSTRUCTION_1_LINE;
|
||||
s_command.Instruction = SECTOR_ERASE_CMD;
|
||||
s_command.AddressMode = QSPI_ADDRESS_1_LINE;
|
||||
s_command.AddressSize = QSPI_ADDRESS_24_BITS;
|
||||
s_command.Address = BlockAddress;
|
||||
s_command.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
|
||||
s_command.DataMode = QSPI_DATA_NONE;
|
||||
s_command.DummyCycles = 0;
|
||||
s_command.DdrMode = QSPI_DDR_MODE_DISABLE;
|
||||
s_command.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
|
||||
s_command.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD> */
|
||||
if (QSPI_WriteEnable() != QSPI_OK)
|
||||
{
|
||||
return QSPI_ERROR;
|
||||
}
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (HAL_QSPI_Command(&hqspi, &s_command, HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
|
||||
{
|
||||
return QSPI_ERROR;
|
||||
}
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD>ѯģʽ<C4A3>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (QSPI_AutoPollingMemReady(W25Q128FV_SUBSECTOR_ERASE_MAX_TIME) != QSPI_OK)
|
||||
{
|
||||
return QSPI_ERROR;
|
||||
}
|
||||
return QSPI_OK;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QSPI<EFBFBD>洢<EFBFBD><EFBFBD>
|
||||
* @retval QSPI<EFBFBD>洢<EFBFBD><EFBFBD>״̬
|
||||
*/
|
||||
uint8_t BSP_QSPI_Erase_Chip(void)
|
||||
{
|
||||
QSPI_CommandTypeDef s_command;
|
||||
/* <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
s_command.InstructionMode = QSPI_INSTRUCTION_1_LINE;
|
||||
s_command.Instruction = CHIP_ERASE_CMD;
|
||||
s_command.AddressMode = QSPI_ADDRESS_NONE;
|
||||
s_command.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
|
||||
s_command.DataMode = QSPI_DATA_NONE;
|
||||
s_command.DummyCycles = 0;
|
||||
s_command.DdrMode = QSPI_DDR_MODE_DISABLE;
|
||||
s_command.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
|
||||
s_command.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD> */
|
||||
if (QSPI_WriteEnable() != QSPI_OK)
|
||||
{
|
||||
return QSPI_ERROR;
|
||||
}
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (HAL_QSPI_Command(&hqspi, &s_command, HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
|
||||
{
|
||||
return QSPI_ERROR;
|
||||
}
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD>ѯģʽ<C4A3>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (QSPI_AutoPollingMemReady(W25Q128FV_BULK_ERASE_MAX_TIME) != QSPI_OK)
|
||||
{
|
||||
return QSPI_ERROR;
|
||||
}
|
||||
return QSPI_OK;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <EFBFBD><EFBFBD>ȡQSPI<EFBFBD>洢<EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ǰ״̬
|
||||
* @retval QSPI<EFBFBD>洢<EFBFBD><EFBFBD>״̬
|
||||
*/
|
||||
uint8_t BSP_QSPI_GetStatus(void)
|
||||
{
|
||||
QSPI_CommandTypeDef s_command;
|
||||
uint8_t reg;
|
||||
/* <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ȡ״̬<D7B4>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
s_command.InstructionMode = QSPI_INSTRUCTION_1_LINE;
|
||||
s_command.Instruction = READ_STATUS_REG1_CMD;
|
||||
s_command.AddressMode = QSPI_ADDRESS_NONE;
|
||||
s_command.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
|
||||
s_command.DataMode = QSPI_DATA_1_LINE;
|
||||
s_command.DummyCycles = 0;
|
||||
s_command.NbData = 1;
|
||||
s_command.DdrMode = QSPI_DDR_MODE_DISABLE;
|
||||
s_command.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
|
||||
s_command.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (HAL_QSPI_Command(&hqspi, &s_command, HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
|
||||
{
|
||||
return QSPI_ERROR;
|
||||
}
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (HAL_QSPI_Receive(&hqspi, ®, HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
|
||||
{
|
||||
return QSPI_ERROR;
|
||||
}
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ֵ */
|
||||
if((reg & W25Q128FV_FSR_BUSY) != 0)
|
||||
{
|
||||
return QSPI_BUSY;
|
||||
}
|
||||
else
|
||||
{
|
||||
return QSPI_OK;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>QSPI<EFBFBD>洢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param pInfo: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ýṹ<EFBFBD>ϵ<EFBFBD>ָ<EFBFBD><EFBFBD>
|
||||
* @retval QSPI<EFBFBD>洢<EFBFBD><EFBFBD>״̬
|
||||
*/
|
||||
uint8_t BSP_QSPI_GetInfo(QSPI_Info* pInfo)
|
||||
{
|
||||
/* <20><><EFBFBD>ô洢<C3B4><E6B4A2><EFBFBD><EFBFBD><EFBFBD>ýṹ */
|
||||
pInfo->FlashSize = W25Q128FV_FLASH_SIZE;
|
||||
pInfo->EraseSectorSize = W25Q128FV_SUBSECTOR_SIZE;
|
||||
pInfo->EraseSectorsNumber = (W25Q128FV_FLASH_SIZE/W25Q128FV_SUBSECTOR_SIZE);
|
||||
pInfo->ProgPageSize = W25Q128FV_PAGE_SIZE;
|
||||
pInfo->ProgPagesNumber = (W25Q128FV_FLASH_SIZE/W25Q128FV_PAGE_SIZE);
|
||||
return QSPI_OK;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <EFBFBD><EFBFBD>λQSPI<EFBFBD>洢<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param hqspi: QSPI<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @retval <EFBFBD><EFBFBD>
|
||||
*/
|
||||
static uint8_t QSPI_ResetMemory()
|
||||
{
|
||||
QSPI_CommandTypeDef s_command;
|
||||
/* <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>λʹ<CEBB><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
s_command.InstructionMode = QSPI_INSTRUCTION_1_LINE;
|
||||
s_command.Instruction = RESET_ENABLE_CMD;
|
||||
s_command.AddressMode = QSPI_ADDRESS_NONE;
|
||||
s_command.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
|
||||
s_command.DataMode = QSPI_DATA_NONE;
|
||||
s_command.DummyCycles = 0;
|
||||
s_command.DdrMode = QSPI_DDR_MODE_DISABLE;
|
||||
s_command.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
|
||||
s_command.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (HAL_QSPI_Command(&hqspi, &s_command, HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
|
||||
{
|
||||
return QSPI_ERROR;
|
||||
}
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD>λ<EFBFBD>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
s_command.Instruction = RESET_MEMORY_CMD;
|
||||
if (HAL_QSPI_Command(&hqspi, &s_command, HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
|
||||
{
|
||||
return QSPI_ERROR;
|
||||
}
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD>ѯģʽ<C4A3>ȴ<EFBFBD><C8B4>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (QSPI_AutoPollingMemReady(HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != QSPI_OK)
|
||||
{
|
||||
return QSPI_ERROR;
|
||||
}
|
||||
return QSPI_OK;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD>ʹ<EFBFBD>ܣ<EFBFBD><EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч.
|
||||
* @param hqspi: QSPI<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @retval <EFBFBD><EFBFBD>
|
||||
*/
|
||||
static uint8_t QSPI_WriteEnable()
|
||||
{
|
||||
QSPI_CommandTypeDef s_command;
|
||||
QSPI_AutoPollingTypeDef s_config;
|
||||
/* <20><><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD> */
|
||||
s_command.InstructionMode = QSPI_INSTRUCTION_1_LINE;
|
||||
s_command.Instruction = WRITE_ENABLE_CMD;
|
||||
s_command.AddressMode = QSPI_ADDRESS_NONE;
|
||||
s_command.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
|
||||
s_command.DataMode = QSPI_DATA_NONE;
|
||||
s_command.DummyCycles = 0;
|
||||
s_command.DdrMode = QSPI_DDR_MODE_DISABLE;
|
||||
s_command.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
|
||||
s_command.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
|
||||
if (HAL_QSPI_Command(&hqspi, &s_command, HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
|
||||
{
|
||||
return QSPI_ERROR;
|
||||
}
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD>ѯģʽ<C4A3>ȴ<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD> */
|
||||
s_config.Match = W25Q128FV_FSR_WREN;
|
||||
s_config.Mask = W25Q128FV_FSR_WREN;
|
||||
s_config.MatchMode = QSPI_MATCH_MODE_AND;
|
||||
s_config.StatusBytesSize = 1;
|
||||
s_config.Interval = 0x10;
|
||||
s_config.AutomaticStop = QSPI_AUTOMATIC_STOP_ENABLE;
|
||||
|
||||
s_command.Instruction = READ_STATUS_REG1_CMD;
|
||||
s_command.DataMode = QSPI_DATA_1_LINE;
|
||||
s_command.NbData = 1;
|
||||
|
||||
if (HAL_QSPI_AutoPolling(&hqspi, &s_command, &s_config, HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
|
||||
{
|
||||
return QSPI_ERROR;
|
||||
}
|
||||
return QSPI_OK;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD>洢<EFBFBD><EFBFBD><EFBFBD><EFBFBD>SR<EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>EOP
|
||||
* @param hqspi: QSPI<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param Timeout <EFBFBD><EFBFBD>ʱ
|
||||
* @retval <EFBFBD><EFBFBD>
|
||||
*/
|
||||
static uint8_t QSPI_AutoPollingMemReady(uint32_t Timeout)
|
||||
{
|
||||
QSPI_CommandTypeDef s_command;
|
||||
QSPI_AutoPollingTypeDef s_config;
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD>ѯģʽ<C4A3>ȴ<EFBFBD><C8B4>洢<EFBFBD><E6B4A2><EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
s_command.InstructionMode = QSPI_INSTRUCTION_1_LINE;
|
||||
s_command.Instruction = READ_STATUS_REG1_CMD;
|
||||
s_command.AddressMode = QSPI_ADDRESS_NONE;
|
||||
s_command.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
|
||||
s_command.DataMode = QSPI_DATA_1_LINE;
|
||||
s_command.DummyCycles = 0;
|
||||
s_command.DdrMode = QSPI_DDR_MODE_DISABLE;
|
||||
s_command.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
|
||||
s_command.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
|
||||
|
||||
s_config.Match = 0x00;
|
||||
s_config.Mask = W25Q128FV_FSR_BUSY;
|
||||
s_config.MatchMode = QSPI_MATCH_MODE_AND;
|
||||
s_config.StatusBytesSize = 1;
|
||||
s_config.Interval = 0x10;
|
||||
s_config.AutomaticStop = QSPI_AUTOMATIC_STOP_ENABLE;
|
||||
|
||||
if (HAL_QSPI_AutoPolling(&hqspi, &s_command, &s_config, Timeout) != HAL_OK)
|
||||
{
|
||||
return QSPI_ERROR;
|
||||
}
|
||||
return QSPI_OK;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <EFBFBD><EFBFBD>ȡFLASH ID
|
||||
* @param <EFBFBD><EFBFBD>
|
||||
* @retval FLASH ID
|
||||
*/
|
||||
uint32_t QSPI_FLASH_ReadID(void)
|
||||
{
|
||||
QSPI_CommandTypeDef s_command;
|
||||
uint32_t Temp = 0;
|
||||
uint8_t pData[3];
|
||||
/* <20><>ȡJEDEC ID */
|
||||
s_command.InstructionMode = QSPI_INSTRUCTION_1_LINE;
|
||||
s_command.Instruction = READ_JEDEC_ID_CMD;
|
||||
s_command.AddressMode = QSPI_ADDRESS_1_LINE;
|
||||
s_command.AddressSize = QSPI_ADDRESS_24_BITS;
|
||||
s_command.DataMode = QSPI_DATA_1_LINE;
|
||||
s_command.AddressMode = QSPI_ADDRESS_NONE;
|
||||
s_command.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
|
||||
s_command.DummyCycles = 0;
|
||||
s_command.NbData = 3;
|
||||
s_command.DdrMode = QSPI_DDR_MODE_DISABLE;
|
||||
s_command.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
|
||||
s_command.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
|
||||
|
||||
if (HAL_QSPI_Command(&hqspi, &s_command, HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
|
||||
{
|
||||
printf("something wrong ....\r\n");
|
||||
/* <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һЩ<D2BB><D0A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
while(1)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
if (HAL_QSPI_Receive(&hqspi, pData, HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
|
||||
{
|
||||
printf("something wrong ....\r\n");
|
||||
/* <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һЩ<D2BB><D0A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
while(1)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Temp = ( pData[2] | pData[1]<<8 )| ( pData[0]<<16 );
|
||||
|
||||
return Temp;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <EFBFBD><EFBFBD>ȡFLASH Device ID
|
||||
* @param <EFBFBD><EFBFBD>
|
||||
* @retval FLASH Device ID
|
||||
*/
|
||||
uint32_t QSPI_FLASH_ReadDeviceID(void)
|
||||
{
|
||||
QSPI_CommandTypeDef s_command;
|
||||
uint32_t Temp = 0;
|
||||
uint8_t pData[3];
|
||||
/*##-2-<2D><>ȡ<EFBFBD>豸ID<49><44><EFBFBD><EFBFBD> ###########################################*/
|
||||
/* <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>/<2F>豸 ID */
|
||||
s_command.InstructionMode = QSPI_INSTRUCTION_1_LINE;
|
||||
s_command.Instruction = READ_ID_CMD;
|
||||
s_command.AddressMode = QSPI_ADDRESS_1_LINE;
|
||||
s_command.AddressSize = QSPI_ADDRESS_24_BITS;
|
||||
s_command.Address = 0x000000;
|
||||
s_command.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
|
||||
s_command.DataMode = QSPI_DATA_1_LINE;
|
||||
s_command.DummyCycles = 0;
|
||||
s_command.NbData = 2;
|
||||
s_command.DdrMode = QSPI_DDR_MODE_DISABLE;
|
||||
s_command.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
|
||||
s_command.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
|
||||
|
||||
if (HAL_QSPI_Command(&hqspi, &s_command, HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
|
||||
{
|
||||
printf("something wrong ....\r\n");
|
||||
/* <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һЩ<D2BB><D0A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
while(1)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
if (HAL_QSPI_Receive(&hqspi, pData, HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
|
||||
{
|
||||
printf("something wrong ....\r\n");
|
||||
/* <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һЩ<D2BB><D0A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
while(1)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Temp = pData[1] |( pData[0]<<8 ) ;
|
||||
|
||||
return Temp;
|
||||
}
|
||||
void QSPI_FLASH_MemoryMappedMode(void)
|
||||
{
|
||||
QSPI_CommandTypeDef s_command;
|
||||
QSPI_MemoryMappedTypeDef s_mem_mapped_cfg;
|
||||
|
||||
/* Configure the command for the read instruction */
|
||||
s_command.InstructionMode = QSPI_INSTRUCTION_4_LINES;
|
||||
s_command.Instruction = FAST_READ_CMD;
|
||||
s_command.AddressMode = QSPI_ADDRESS_4_LINES;
|
||||
s_command.AddressSize = QSPI_ADDRESS_32_BITS;
|
||||
s_command.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
|
||||
s_command.DataMode = QSPI_DATA_4_LINES;
|
||||
s_command.DummyCycles = 8;
|
||||
s_command.DdrMode = QSPI_DDR_MODE_DISABLE;
|
||||
s_command.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
|
||||
s_command.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
|
||||
|
||||
/* Configure the memory mapped mode */
|
||||
s_mem_mapped_cfg.TimeOutActivation = QSPI_TIMEOUT_COUNTER_DISABLE;
|
||||
s_mem_mapped_cfg.TimeOutPeriod = 0; //1;
|
||||
|
||||
if (HAL_QSPI_MemoryMapped(&hqspi, &s_command, &s_mem_mapped_cfg) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
}
|
||||
/*********************************************END OF FILE**********************/
|
@ -474,17 +474,17 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
|
||||
/* Peripheral clock enable */
|
||||
__HAL_RCC_USART1_CLK_ENABLE();
|
||||
|
||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||
/**USART1 GPIO Configuration
|
||||
PB14 ------> USART1_TX
|
||||
PB15 ------> USART1_RX
|
||||
PA9 ------> USART1_TX
|
||||
PA10 ------> USART1_RX
|
||||
*/
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_15;
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
GPIO_InitStruct.Alternate = GPIO_AF4_USART1;
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
|
||||
/* USER CODE BEGIN USART1_MspInit 1 */
|
||||
|
||||
@ -510,10 +510,10 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
|
||||
__HAL_RCC_USART1_CLK_DISABLE();
|
||||
|
||||
/**USART1 GPIO Configuration
|
||||
PB14 ------> USART1_TX
|
||||
PB15 ------> USART1_RX
|
||||
PA9 ------> USART1_TX
|
||||
PA10 ------> USART1_RX
|
||||
*/
|
||||
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_14|GPIO_PIN_15);
|
||||
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
|
||||
|
||||
/* USER CODE BEGIN USART1_MspDeInit 1 */
|
||||
|
||||
|
@ -95,21 +95,21 @@ Mcu.Pin41=PH7
|
||||
Mcu.Pin42=PH10
|
||||
Mcu.Pin43=PH11
|
||||
Mcu.Pin44=PH12
|
||||
Mcu.Pin45=PB14
|
||||
Mcu.Pin46=PB15
|
||||
Mcu.Pin47=PD8
|
||||
Mcu.Pin48=PD9
|
||||
Mcu.Pin49=PD10
|
||||
Mcu.Pin45=PD8
|
||||
Mcu.Pin46=PD9
|
||||
Mcu.Pin47=PD10
|
||||
Mcu.Pin48=PD11
|
||||
Mcu.Pin49=PD14
|
||||
Mcu.Pin5=PF1
|
||||
Mcu.Pin50=PD11
|
||||
Mcu.Pin51=PD14
|
||||
Mcu.Pin52=PD15
|
||||
Mcu.Pin53=PG4
|
||||
Mcu.Pin54=PG5
|
||||
Mcu.Pin55=PG6
|
||||
Mcu.Pin56=PG7
|
||||
Mcu.Pin57=PG8
|
||||
Mcu.Pin58=PC7
|
||||
Mcu.Pin50=PD15
|
||||
Mcu.Pin51=PG4
|
||||
Mcu.Pin52=PG5
|
||||
Mcu.Pin53=PG6
|
||||
Mcu.Pin54=PG7
|
||||
Mcu.Pin55=PG8
|
||||
Mcu.Pin56=PC7
|
||||
Mcu.Pin57=PA9
|
||||
Mcu.Pin58=PA10
|
||||
Mcu.Pin59=PA11
|
||||
Mcu.Pin6=PF2
|
||||
Mcu.Pin60=PA12
|
||||
@ -165,6 +165,9 @@ NVIC.TIM6_DAC_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true
|
||||
NVIC.TimeBase=TIM6_DAC_IRQn
|
||||
NVIC.TimeBaseIP=TIM6
|
||||
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||
PA10.Locked=true
|
||||
PA10.Mode=Asynchronous
|
||||
PA10.Signal=USART1_RX
|
||||
PA11.Locked=true
|
||||
PA11.Mode=RGB565
|
||||
PA11.Signal=LTDC_R4
|
||||
@ -177,14 +180,13 @@ PA14.Mode=Serial_Wire
|
||||
PA14.Signal=SYS_JTCK-SWCLK
|
||||
PA3.Mode=RGB565
|
||||
PA3.Signal=LTDC_B5
|
||||
PA9.Locked=true
|
||||
PA9.Mode=Asynchronous
|
||||
PA9.Signal=USART1_TX
|
||||
PB0.Mode=RGB565
|
||||
PB0.Signal=LTDC_R3
|
||||
PB1.Mode=RGB565
|
||||
PB1.Signal=LTDC_R6
|
||||
PB14.Mode=Asynchronous
|
||||
PB14.Signal=USART1_TX
|
||||
PB15.Mode=Asynchronous
|
||||
PB15.Signal=USART1_RX
|
||||
PB2.Mode=Single Bank 1
|
||||
PB2.Signal=QUADSPI_CLK
|
||||
PB6.Mode=Single Bank 1
|
||||
@ -285,17 +287,20 @@ PH0/OSC_IN.Mode=HSE-External-Oscillator
|
||||
PH0/OSC_IN.Signal=RCC_OSC_IN
|
||||
PH1/OSC_OUT.Mode=HSE-External-Oscillator
|
||||
PH1/OSC_OUT.Signal=RCC_OSC_OUT
|
||||
PH10.GPIOParameters=GPIO_Label
|
||||
PH10.GPIOParameters=PinState,GPIO_Label
|
||||
PH10.GPIO_Label=LED_R
|
||||
PH10.Locked=true
|
||||
PH10.PinState=GPIO_PIN_SET
|
||||
PH10.Signal=GPIO_Output
|
||||
PH11.GPIOParameters=GPIO_Label
|
||||
PH11.GPIOParameters=PinState,GPIO_Label
|
||||
PH11.GPIO_Label=LED_G
|
||||
PH11.Locked=true
|
||||
PH11.PinState=GPIO_PIN_SET
|
||||
PH11.Signal=GPIO_Output
|
||||
PH12.GPIOParameters=GPIO_Label
|
||||
PH12.GPIOParameters=PinState,GPIO_Label
|
||||
PH12.GPIO_Label=LED_B
|
||||
PH12.Locked=true
|
||||
PH12.PinState=GPIO_PIN_SET
|
||||
PH12.Signal=GPIO_Output
|
||||
PH13.Locked=true
|
||||
PH13.Mode=RGB565
|
||||
@ -374,7 +379,7 @@ RCC.APB2Freq_Value=108000000
|
||||
RCC.APB2TimFreq_Value=216000000
|
||||
RCC.CECFreq_Value=32786.88524590164
|
||||
RCC.CortexFreq_Value=216000000
|
||||
RCC.DFSDMAudioFreq_Value=104000000
|
||||
RCC.DFSDMAudioFreq_Value=100000000
|
||||
RCC.DFSDMFreq_Value=108000000
|
||||
RCC.EthernetFreq_Value=216000000
|
||||
RCC.FCLKCortexFreq_Value=216000000
|
||||
@ -388,7 +393,7 @@ RCC.I2C3Freq_Value=54000000
|
||||
RCC.I2C4Freq_Value=54000000
|
||||
RCC.I2SFreq_Value=96000000
|
||||
RCC.IPParameters=AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,CECFreq_Value,CortexFreq_Value,DFSDMAudioFreq_Value,DFSDMFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,I2C4Freq_Value,I2SFreq_Value,LCDTFTFreq_Value,LPTIM1Freq_Value,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLI2SPCLKFreq_Value,PLLI2SQCLKFreq_Value,PLLI2SRCLKFreq_Value,PLLI2SRoutputFreq_Value,PLLM,PLLN,PLLQCLKFreq_Value,PLLQoutputFreq_Value,PLLRFreq_Value,PLLSAIN,PLLSAIPCLKFreq_Value,PLLSAIQCLKFreq_Value,PLLSAIR,PLLSAIRCLKFreq_Value,PLLSAIoutputFreq_Value,PLLSourceVirtual,RNGFreq_Value,SAI1Freq_Value,SAI2Freq_Value,SDMMC2Freq_Value,SDMMCFreq_Value,SPDIFRXFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,UART4Freq_Value,UART5Freq_Value,UART7Freq_Value,UART8Freq_Value,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,USART6Freq_Value,USBFreq_Value,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAIOutputFreq_Value
|
||||
RCC.LCDTFTFreq_Value=26000000
|
||||
RCC.LCDTFTFreq_Value=25000000
|
||||
RCC.LPTIM1Freq_Value=54000000
|
||||
RCC.LSI_VALUE=32000
|
||||
RCC.MCO2PinFreq_Value=216000000
|
||||
@ -402,16 +407,16 @@ RCC.PLLN=432
|
||||
RCC.PLLQCLKFreq_Value=216000000
|
||||
RCC.PLLQoutputFreq_Value=216000000
|
||||
RCC.PLLRFreq_Value=216000000
|
||||
RCC.PLLSAIN=208
|
||||
RCC.PLLSAIPCLKFreq_Value=104000000
|
||||
RCC.PLLSAIQCLKFreq_Value=104000000
|
||||
RCC.PLLSAIN=200
|
||||
RCC.PLLSAIPCLKFreq_Value=100000000
|
||||
RCC.PLLSAIQCLKFreq_Value=100000000
|
||||
RCC.PLLSAIR=4
|
||||
RCC.PLLSAIRCLKFreq_Value=52000000
|
||||
RCC.PLLSAIoutputFreq_Value=104000000
|
||||
RCC.PLLSAIRCLKFreq_Value=50000000
|
||||
RCC.PLLSAIoutputFreq_Value=100000000
|
||||
RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
|
||||
RCC.RNGFreq_Value=216000000
|
||||
RCC.SAI1Freq_Value=104000000
|
||||
RCC.SAI2Freq_Value=104000000
|
||||
RCC.SAI1Freq_Value=100000000
|
||||
RCC.SAI2Freq_Value=100000000
|
||||
RCC.SDMMC2Freq_Value=216000000
|
||||
RCC.SDMMCFreq_Value=216000000
|
||||
RCC.SPDIFRXFreq_Value=96000000
|
||||
@ -429,7 +434,7 @@ RCC.USBFreq_Value=216000000
|
||||
RCC.VCOI2SOutputFreq_Value=192000000
|
||||
RCC.VCOInputFreq_Value=1000000
|
||||
RCC.VCOOutputFreq_Value=432000000
|
||||
RCC.VCOSAIOutputFreq_Value=208000000
|
||||
RCC.VCOSAIOutputFreq_Value=200000000
|
||||
SH.FMC_A0.0=FMC_A0,12b-sda1
|
||||
SH.FMC_A0.ConfNb=1
|
||||
SH.FMC_A1.0=FMC_A1,12b-sda1
|
||||
|
Loading…
x
Reference in New Issue
Block a user