AM32電調學習-使用Keil編譯uboot

????????目前的AM32的APP固件包含了keil工程,但是uboot還沒看到,對于習慣使用keil的新用戶,調試起來會有些不習慣,本文將簡單描述怎么新建一個keil的uboot工程,以AT32F421為例。

一、新建目錄

新建一個目錄Keil_Projects

二、新建工程

三、添加文件

這個啟動文件要用AM32\Mcu\f421\Startup\mdk里面的文件,這個才是給keil編譯使用的

否則會如下報錯

.\Objects\AT32F421_Uboot_PA2.sct(7): error: L6236E: No section matches selector - no section to be FIRST/LAST.

添加完后是這個樣子的

四、修改編譯參數

1、Device

2、Target

3、Output

4、Listing

5、User

6、C/C++

7、ASM

8、Linker


五、修改代碼

static inline void jump_to_application(void)
{__disable_irq();bl_timer_disable();const uint32_t app_address = MCU_FLASH_START + FIRMWARE_RELATIVE_START;const uint32_t *app_data = (const uint32_t *)app_address;const uint32_t stack_top = app_data[0];const uint32_t JumpAddress = app_data[1];// setup sp, msp and jump
#ifdef KEIL__asm volatile(
#elseasm volatile(
#endif"mov sp, %0	\n""msr msp, %0	\n""bx	%1	\n": : "r"(stack_top), "r"(JumpAddress) :);
}

五、準備完成,可以編譯了

六、工程文件

不想搞附件了,直接粘上工程文件文本,需要的話拷貝保存

1、AT32F421_Uboot.uvprojx

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd"><SchemaVersion>2.1</SchemaVersion><Header>### uVision Project, (C) Keil Software</Header><Targets><Target><TargetName>AT32_F421_PA2</TargetName><ToolsetNumber>0x4</ToolsetNumber><ToolsetName>ARM-ADS</ToolsetName><pCCUsed>6190000::V6.19::ARMCLANG</pCCUsed><uAC6>1</uAC6><TargetOption><TargetCommonOption><Device>-AT32F421K8U7</Device><Vendor>ArteryTek</Vendor><PackID>ArteryTek.AT32F421_DFP.2.1.8</PackID><Cpu>IRAM(0x20000000,0x4000) IROM(0x08000000,0x10000) CPUTYPE("Cortex-M4") CLOCK(12000000) ELITTLE</Cpu><FlashUtilSpec></FlashUtilSpec><StartupFile></StartupFile><FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0AT32F421_64 -FS08000000 -FL010000 -FP0($$Device:-AT32F421K8U7$Flash\AT32F421_64.FLM))</FlashDriverDll><DeviceId>0</DeviceId><RegisterFile>$$Device:-AT32F421K8U7$Device\Include\at32f421.h</RegisterFile><MemoryEnv></MemoryEnv><Cmp></Cmp><Asm></Asm><Linker></Linker><OHString></OHString><InfinionOptionDll></InfinionOptionDll><SLE66CMisc></SLE66CMisc><SLE66AMisc></SLE66AMisc><SLE66LinkerMisc></SLE66LinkerMisc><SFDFile>$$Device:-AT32F421K8U7$SVD\AT32F421xx_v2.svd</SFDFile><bCustSvd>0</bCustSvd><UseEnv>0</UseEnv><BinPath></BinPath><IncludePath></IncludePath><LibPath></LibPath><RegisterFilePath></RegisterFilePath><DBRegisterFilePath></DBRegisterFilePath><TargetStatus><Error>0</Error><ExitCodeStop>0</ExitCodeStop><ButtonStop>0</ButtonStop><NotGenerated>0</NotGenerated><InvalidFlash>1</InvalidFlash></TargetStatus><OutputDirectory>.\Objects\</OutputDirectory><OutputName>AT32F421_Uboot_PA2</OutputName><CreateExecutable>1</CreateExecutable><CreateLib>0</CreateLib><CreateHexFile>1</CreateHexFile><DebugInformation>1</DebugInformation><BrowseInformation>1</BrowseInformation><ListingPath>.\Listings\</ListingPath><HexFormatSelection>1</HexFormatSelection><Merge32K>0</Merge32K><CreateBatchFile>0</CreateBatchFile><BeforeCompile><RunUserProg1>0</RunUserProg1><RunUserProg2>0</RunUserProg2><UserProg1Name></UserProg1Name><UserProg2Name></UserProg2Name><UserProg1Dos16Mode>0</UserProg1Dos16Mode><UserProg2Dos16Mode>0</UserProg2Dos16Mode><nStopU1X>0</nStopU1X><nStopU2X>0</nStopU2X></BeforeCompile><BeforeMake><RunUserProg1>0</RunUserProg1><RunUserProg2>0</RunUserProg2><UserProg1Name></UserProg1Name><UserProg2Name></UserProg2Name><UserProg1Dos16Mode>0</UserProg1Dos16Mode><UserProg2Dos16Mode>0</UserProg2Dos16Mode><nStopB1X>0</nStopB1X><nStopB2X>0</nStopB2X></BeforeMake><AfterMake><RunUserProg1>0</RunUserProg1><RunUserProg2>0</RunUserProg2><UserProg1Name></UserProg1Name><UserProg2Name></UserProg2Name><UserProg1Dos16Mode>0</UserProg1Dos16Mode><UserProg2Dos16Mode>0</UserProg2Dos16Mode><nStopA1X>0</nStopA1X><nStopA2X>0</nStopA2X></AfterMake><SelectedForBatchBuild>0</SelectedForBatchBuild><SVCSIdString></SVCSIdString></TargetCommonOption><CommonProperty><UseCPPCompiler>0</UseCPPCompiler><RVCTCodeConst>0</RVCTCodeConst><RVCTZI>0</RVCTZI><RVCTOtherData>0</RVCTOtherData><ModuleSelection>0</ModuleSelection><IncludeInBuild>1</IncludeInBuild><AlwaysBuild>0</AlwaysBuild><GenerateAssemblyFile>0</GenerateAssemblyFile><AssembleAssemblyFile>0</AssembleAssemblyFile><PublicsOnly>0</PublicsOnly><StopOnExitCode>3</StopOnExitCode><CustomArgument></CustomArgument><IncludeLibraryModules></IncludeLibraryModules><ComprImg>1</ComprImg></CommonProperty><DllOption><SimDllName>SARMCM3.DLL</SimDllName><SimDllArguments> -REMAP -MPU</SimDllArguments><SimDlgDll>DCM.DLL</SimDlgDll><SimDlgDllArguments>-pCM4</SimDlgDllArguments><TargetDllName>SARMCM3.DLL</TargetDllName><TargetDllArguments> -MPU</TargetDllArguments><TargetDlgDll>TCM.DLL</TargetDlgDll><TargetDlgDllArguments>-pCM4</TargetDlgDllArguments></DllOption><DebugOption><OPTHX><HexSelection>1</HexSelection><HexRangeLowAddress>0</HexRangeLowAddress><HexRangeHighAddress>0</HexRangeHighAddress><HexOffset>0</HexOffset><Oh166RecLen>16</Oh166RecLen></OPTHX></DebugOption><Utilities><Flash1><UseTargetDll>1</UseTargetDll><UseExternalTool>0</UseExternalTool><RunIndependent>0</RunIndependent><UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging><Capability>1</Capability><DriverSelection>4096</DriverSelection></Flash1><bUseTDR>1</bUseTDR><Flash2>BIN\UL2CM3.DLL</Flash2><Flash3>"" ()</Flash3><Flash4></Flash4><pFcarmOut></pFcarmOut><pFcarmGrp></pFcarmGrp><pFcArmRoot></pFcArmRoot><FcArmLst>0</FcArmLst></Utilities><TargetArmAds><ArmAdsMisc><GenerateListings>0</GenerateListings><asHll>1</asHll><asAsm>1</asAsm><asMacX>1</asMacX><asSyms>1</asSyms><asFals>1</asFals><asDbgD>1</asDbgD><asForm>1</asForm><ldLst>0</ldLst><ldmm>1</ldmm><ldXref>1</ldXref><BigEnd>0</BigEnd><AdsALst>1</AdsALst><AdsACrf>1</AdsACrf><AdsANop>0</AdsANop><AdsANot>0</AdsANot><AdsLLst>1</AdsLLst><AdsLmap>1</AdsLmap><AdsLcgr>1</AdsLcgr><AdsLsym>1</AdsLsym><AdsLszi>1</AdsLszi><AdsLtoi>1</AdsLtoi><AdsLsun>1</AdsLsun><AdsLven>1</AdsLven><AdsLsxf>1</AdsLsxf><RvctClst>0</RvctClst><GenPPlst>0</GenPPlst><AdsCpuType>"Cortex-M4"</AdsCpuType><RvctDeviceName></RvctDeviceName><mOS>0</mOS><uocRom>0</uocRom><uocRam>0</uocRam><hadIROM>1</hadIROM><hadIRAM>1</hadIRAM><hadXRAM>0</hadXRAM><uocXRam>0</uocXRam><RvdsVP>0</RvdsVP><RvdsMve>0</RvdsMve><RvdsCdeCp>0</RvdsCdeCp><nBranchProt>0</nBranchProt><hadIRAM2>0</hadIRAM2><hadIROM2>0</hadIROM2><StupSel>8</StupSel><useUlib>1</useUlib><EndSel>0</EndSel><uLtcg>0</uLtcg><nSecure>0</nSecure><RoSelD>3</RoSelD><RwSelD>3</RwSelD><CodeSel>0</CodeSel><OptFeed>0</OptFeed><NoZi1>0</NoZi1><NoZi2>0</NoZi2><NoZi3>0</NoZi3><NoZi4>0</NoZi4><NoZi5>0</NoZi5><Ro1Chk>0</Ro1Chk><Ro2Chk>0</Ro2Chk><Ro3Chk>0</Ro3Chk><Ir1Chk>1</Ir1Chk><Ir2Chk>0</Ir2Chk><Ra1Chk>0</Ra1Chk><Ra2Chk>0</Ra2Chk><Ra3Chk>0</Ra3Chk><Im1Chk>1</Im1Chk><Im2Chk>0</Im2Chk><OnChipMemories><Ocm1><Type>0</Type><StartAddress>0x0</StartAddress><Size>0x0</Size></Ocm1><Ocm2><Type>0</Type><StartAddress>0x0</StartAddress><Size>0x0</Size></Ocm2><Ocm3><Type>0</Type><StartAddress>0x0</StartAddress><Size>0x0</Size></Ocm3><Ocm4><Type>0</Type><StartAddress>0x0</StartAddress><Size>0x0</Size></Ocm4><Ocm5><Type>0</Type><StartAddress>0x0</StartAddress><Size>0x0</Size></Ocm5><Ocm6><Type>0</Type><StartAddress>0x0</StartAddress><Size>0x0</Size></Ocm6><IRAM><Type>0</Type><StartAddress>0x20000000</StartAddress><Size>0x4000</Size></IRAM><IROM><Type>1</Type><StartAddress>0x8000000</StartAddress><Size>0x10000</Size></IROM><XRAM><Type>0</Type><StartAddress>0x0</StartAddress><Size>0x0</Size></XRAM><OCR_RVCT1><Type>1</Type><StartAddress>0x0</StartAddress><Size>0x0</Size></OCR_RVCT1><OCR_RVCT2><Type>1</Type><StartAddress>0x0</StartAddress><Size>0x0</Size></OCR_RVCT2><OCR_RVCT3><Type>1</Type><StartAddress>0x0</StartAddress><Size>0x0</Size></OCR_RVCT3><OCR_RVCT4><Type>1</Type><StartAddress>0x8000000</StartAddress><Size>0x1000</Size></OCR_RVCT4><OCR_RVCT5><Type>1</Type><StartAddress>0x0</StartAddress><Size>0x0</Size></OCR_RVCT5><OCR_RVCT6><Type>0</Type><StartAddress>0x0</StartAddress><Size>0x0</Size></OCR_RVCT6><OCR_RVCT7><Type>0</Type><StartAddress>0x0</StartAddress><Size>0x0</Size></OCR_RVCT7><OCR_RVCT8><Type>0</Type><StartAddress>0x0</StartAddress><Size>0x0</Size></OCR_RVCT8><OCR_RVCT9><Type>0</Type><StartAddress>0x20000000</StartAddress><Size>0x4000</Size></OCR_RVCT9><OCR_RVCT10><Type>0</Type><StartAddress>0x0</StartAddress><Size>0x0</Size></OCR_RVCT10></OnChipMemories><RvctStartVector></RvctStartVector></ArmAdsMisc><Cads><interw>1</interw><Optim>7</Optim><oTime>0</oTime><SplitLS>0</SplitLS><OneElfS>1</OneElfS><Strict>0</Strict><EnumInt>0</EnumInt><PlainCh>0</PlainCh><Ropi>0</Ropi><Rwpi>0</Rwpi><wLevel>3</wLevel><uThumb>0</uThumb><uSurpInc>0</uSurpInc><uC99>1</uC99><uGnu>1</uGnu><useXO>0</useXO><v6Lang>3</v6Lang><v6LangP>5</v6LangP><vShortEn>1</vShortEn><vShortWch>1</vShortWch><v6Lto>0</v6Lto><v6WtE>0</v6WtE><v6Rtti>0</v6Rtti><VariousControls><MiscControls></MiscControls><Define>AT32F421K8U7,USE_STDPERIPH_DRIVER, USE_PA2,KEIL</Define><Undefine></Undefine><IncludePath>..\Inc;..\mcu\f421\Inc;..\Mcu\f421\Drivers\drivers\inc;..\Mcu\f421\Drivers\CMSIS\cm4\device_support;..\Mcu\f421\Drivers\CMSIS\cm4\core_support</IncludePath></VariousControls></Cads><Aads><interw>1</interw><Ropi>0</Ropi><Rwpi>0</Rwpi><thumb>0</thumb><SplitLS>0</SplitLS><SwStkChk>0</SwStkChk><NoWarn>0</NoWarn><uSurpInc>0</uSurpInc><useXO>0</useXO><ClangAsOpt>1</ClangAsOpt><VariousControls><MiscControls></MiscControls><Define></Define><Undefine></Undefine><IncludePath></IncludePath></VariousControls></Aads><LDads><umfTarg>1</umfTarg><Ropi>0</Ropi><Rwpi>0</Rwpi><noStLib>0</noStLib><RepFail>1</RepFail><useFile>0</useFile><TextAddressRange>0x08000000</TextAddressRange><DataAddressRange>0x20000000</DataAddressRange><pXoBase></pXoBase><ScatterFile></ScatterFile><IncludeLibs></IncludeLibs><IncludeLibsPath></IncludeLibsPath><Misc></Misc><LinkerInputFile></LinkerInputFile><DisabledWarnings></DisabledWarnings></LDads></TargetArmAds></TargetOption><Groups><Group><GroupName>Src</GroupName><Files><File><FileName>main.c</FileName><FileType>1</FileType><FilePath>..\bootloader\main.c</FilePath></File></Files></Group><Group><GroupName>Drivers</GroupName><Files><File><FileName>at32f421_adc.c</FileName><FileType>1</FileType><FilePath>..\Mcu\f421\Drivers\drivers\src\at32f421_adc.c</FilePath></File><File><FileName>at32f421_cmp.c</FileName><FileType>1</FileType><FilePath>..\Mcu\f421\Drivers\drivers\src\at32f421_cmp.c</FilePath></File><File><FileName>at32f421_crc.c</FileName><FileType>1</FileType><FilePath>..\Mcu\f421\Drivers\drivers\src\at32f421_crc.c</FilePath></File><File><FileName>at32f421_crm.c</FileName><FileType>1</FileType><FilePath>..\Mcu\f421\Drivers\drivers\src\at32f421_crm.c</FilePath></File><File><FileName>at32f421_debug.c</FileName><FileType>1</FileType><FilePath>..\Mcu\f421\Drivers\drivers\src\at32f421_debug.c</FilePath></File><File><FileName>at32f421_dma.c</FileName><FileType>1</FileType><FilePath>..\Mcu\f421\Drivers\drivers\src\at32f421_dma.c</FilePath></File><File><FileName>at32f421_ertc.c</FileName><FileType>1</FileType><FilePath>..\Mcu\f421\Drivers\drivers\src\at32f421_ertc.c</FilePath></File><File><FileName>at32f421_exint.c</FileName><FileType>1</FileType><FilePath>..\Mcu\f421\Drivers\drivers\src\at32f421_exint.c</FilePath></File><File><FileName>at32f421_flash.c</FileName><FileType>1</FileType><FilePath>..\Mcu\f421\Drivers\drivers\src\at32f421_flash.c</FilePath></File><File><FileName>at32f421_gpio.c</FileName><FileType>1</FileType><FilePath>..\Mcu\f421\Drivers\drivers\src\at32f421_gpio.c</FilePath></File><File><FileName>at32f421_i2c.c</FileName><FileType>1</FileType><FilePath>..\Mcu\f421\Drivers\drivers\src\at32f421_i2c.c</FilePath></File><File><FileName>at32f421_misc.c</FileName><FileType>1</FileType><FilePath>..\Mcu\f421\Drivers\drivers\src\at32f421_misc.c</FilePath></File><File><FileName>at32f421_pwc.c</FileName><FileType>1</FileType><FilePath>..\Mcu\f421\Drivers\drivers\src\at32f421_pwc.c</FilePath></File><File><FileName>at32f421_scfg.c</FileName><FileType>1</FileType><FilePath>..\Mcu\f421\Drivers\drivers\src\at32f421_scfg.c</FilePath></File><File><FileName>at32f421_spi.c</FileName><FileType>1</FileType><FilePath>..\Mcu\f421\Drivers\drivers\src\at32f421_spi.c</FilePath></File><File><FileName>at32f421_tmr.c</FileName><FileType>1</FileType><FilePath>..\Mcu\f421\Drivers\drivers\src\at32f421_tmr.c</FilePath></File><File><FileName>at32f421_usart.c</FileName><FileType>1</FileType><FilePath>..\Mcu\f421\Drivers\drivers\src\at32f421_usart.c</FilePath></File><File><FileName>at32f421_wdt.c</FileName><FileType>1</FileType><FilePath>..\Mcu\f421\Drivers\drivers\src\at32f421_wdt.c</FilePath></File><File><FileName>at32f421_wwdt.c</FileName><FileType>1</FileType><FilePath>..\Mcu\f421\Drivers\drivers\src\at32f421_wwdt.c</FilePath></File></Files></Group><Group><GroupName>F421</GroupName><Files><File><FileName>eeprom.c</FileName><FileType>1</FileType><FilePath>..\Mcu\f421\Src\eeprom.c</FilePath></File></Files></Group><Group><GroupName>Startup</GroupName><Files><File><FileName>startup_at32f421.s</FileName><FileType>2</FileType><FilePath>..\Mcu\f421\Startup\mdk\startup_at32f421.s</FilePath></File></Files></Group><Group><GroupName>CMSIS</GroupName></Group></Groups></Target></Targets><RTE><apis/><components/><files/></RTE><LayerInfo><Layers><Layer><LayName>AT32F421_Uboot</LayName><LayPrjMark>1</LayPrjMark></Layer></Layers></LayerInfo></Project>

2、AT32F421_Uboot.uvoptx

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_optx.xsd"><SchemaVersion>1.0</SchemaVersion><Header>### uVision Project, (C) Keil Software</Header><Extensions><cExt>*.c</cExt><aExt>*.s*; *.src; *.a*</aExt><oExt>*.obj; *.o</oExt><lExt>*.lib</lExt><tExt>*.txt; *.h; *.inc; *.md</tExt><pExt>*.plm</pExt><CppX>*.cpp; *.cc; *.cxx</CppX><nMigrate>0</nMigrate></Extensions><DaveTm><dwLowDateTime>0</dwLowDateTime><dwHighDateTime>0</dwHighDateTime></DaveTm><Target><TargetName>AT32_F421_PA2</TargetName><ToolsetNumber>0x4</ToolsetNumber><ToolsetName>ARM-ADS</ToolsetName><TargetOption><CLKADS>12000000</CLKADS><OPTTT><gFlags>1</gFlags><BeepAtEnd>1</BeepAtEnd><RunSim>0</RunSim><RunTarget>1</RunTarget><RunAbUc>0</RunAbUc></OPTTT><OPTHX><HexSelection>1</HexSelection><FlashByte>65535</FlashByte><HexRangeLowAddress>0</HexRangeLowAddress><HexRangeHighAddress>0</HexRangeHighAddress><HexOffset>0</HexOffset></OPTHX><OPTLEX><PageWidth>79</PageWidth><PageLength>66</PageLength><TabStop>8</TabStop><ListingPath>.\Listings\</ListingPath></OPTLEX><ListingPage><CreateCListing>1</CreateCListing><CreateAListing>1</CreateAListing><CreateLListing>1</CreateLListing><CreateIListing>0</CreateIListing><AsmCond>1</AsmCond><AsmSymb>1</AsmSymb><AsmXref>0</AsmXref><CCond>1</CCond><CCode>0</CCode><CListInc>0</CListInc><CSymb>0</CSymb><LinkerCodeListing>0</LinkerCodeListing></ListingPage><OPTXL><LMap>1</LMap><LComments>1</LComments><LGenerateSymbols>1</LGenerateSymbols><LLibSym>1</LLibSym><LLines>1</LLines><LLocSym>1</LLocSym><LPubSym>1</LPubSym><LXref>0</LXref><LExpSel>0</LExpSel></OPTXL><OPTFL><tvExp>1</tvExp><tvExpOptDlg>0</tvExpOptDlg><IsCurrentTarget>1</IsCurrentTarget></OPTFL><CpuCode>255</CpuCode><DebugOpt><uSim>0</uSim><uTrg>1</uTrg><sLdApp>1</sLdApp><sGomain>1</sGomain><sRbreak>1</sRbreak><sRwatch>1</sRwatch><sRmem>1</sRmem><sRfunc>1</sRfunc><sRbox>1</sRbox><tLdApp>1</tLdApp><tGomain>1</tGomain><tRbreak>1</tRbreak><tRwatch>1</tRwatch><tRmem>1</tRmem><tRfunc>0</tRfunc><tRbox>1</tRbox><tRtrace>1</tRtrace><sRSysVw>1</sRSysVw><tRSysVw>1</tRSysVw><sRunDeb>0</sRunDeb><sLrtime>0</sLrtime><bEvRecOn>1</bEvRecOn><bSchkAxf>0</bSchkAxf><bTchkAxf>0</bTchkAxf><nTsel>0</nTsel><sDll></sDll><sDllPa></sDllPa><sDlgDll></sDlgDll><sDlgPa></sDlgPa><sIfile></sIfile><tDll></tDll><tDllPa></tDllPa><tDlgDll></tDlgDll><tDlgPa></tDlgPa><tIfile></tIfile><pMon>BIN\UL2CM3.DLL</pMon></DebugOpt><TargetDriverDllRegistry><SetRegEntry><Number>0</Number><Key>UL2CM3</Key><Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0AT32F421_64 -FS08000000 -FL010000 -FP0($$Device:-AT32F421K8U7$Flash\AT32F421_64.FLM))</Name></SetRegEntry></TargetDriverDllRegistry><Breakpoint/><Tracepoint><THDelay>0</THDelay></Tracepoint><DebugFlag><trace>0</trace><periodic>1</periodic><aLwin>0</aLwin><aCover>0</aCover><aSer1>0</aSer1><aSer2>0</aSer2><aPa>0</aPa><viewmode>0</viewmode><vrSel>0</vrSel><aSym>0</aSym><aTbox>0</aTbox><AscS1>0</AscS1><AscS2>0</AscS2><AscS3>0</AscS3><aSer3>0</aSer3><eProf>0</eProf><aLa>0</aLa><aPa1>0</aPa1><AscS4>0</AscS4><aSer4>0</aSer4><StkLoc>0</StkLoc><TrcWin>0</TrcWin><newCpu>0</newCpu><uProt>0</uProt></DebugFlag><LintExecutable></LintExecutable><LintConfigFile></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></TargetOption></Target><Group><GroupName>Src</GroupName><tvExp>1</tvExp><tvExpOptDlg>0</tvExpOptDlg><cbSel>0</cbSel><RteFlg>0</RteFlg><File><GroupNumber>1</GroupNumber><FileNumber>1</FileNumber><FileType>1</FileType><tvExp>0</tvExp><tvExpOptDlg>0</tvExpOptDlg><bDave2>0</bDave2><PathWithFileName>..\bootloader\main.c</PathWithFileName><FilenameWithoutPath>main.c</FilenameWithoutPath><RteFlg>0</RteFlg><bShared>0</bShared></File></Group><Group><GroupName>Drivers</GroupName><tvExp>1</tvExp><tvExpOptDlg>0</tvExpOptDlg><cbSel>0</cbSel><RteFlg>0</RteFlg><File><GroupNumber>2</GroupNumber><FileNumber>2</FileNumber><FileType>1</FileType><tvExp>0</tvExp><tvExpOptDlg>0</tvExpOptDlg><bDave2>0</bDave2><PathWithFileName>..\Mcu\f421\Drivers\drivers\src\at32f421_adc.c</PathWithFileName><FilenameWithoutPath>at32f421_adc.c</FilenameWithoutPath><RteFlg>0</RteFlg><bShared>0</bShared></File><File><GroupNumber>2</GroupNumber><FileNumber>3</FileNumber><FileType>1</FileType><tvExp>0</tvExp><tvExpOptDlg>0</tvExpOptDlg><bDave2>0</bDave2><PathWithFileName>..\Mcu\f421\Drivers\drivers\src\at32f421_cmp.c</PathWithFileName><FilenameWithoutPath>at32f421_cmp.c</FilenameWithoutPath><RteFlg>0</RteFlg><bShared>0</bShared></File><File><GroupNumber>2</GroupNumber><FileNumber>4</FileNumber><FileType>1</FileType><tvExp>0</tvExp><tvExpOptDlg>0</tvExpOptDlg><bDave2>0</bDave2><PathWithFileName>..\Mcu\f421\Drivers\drivers\src\at32f421_crc.c</PathWithFileName><FilenameWithoutPath>at32f421_crc.c</FilenameWithoutPath><RteFlg>0</RteFlg><bShared>0</bShared></File><File><GroupNumber>2</GroupNumber><FileNumber>5</FileNumber><FileType>1</FileType><tvExp>0</tvExp><tvExpOptDlg>0</tvExpOptDlg><bDave2>0</bDave2><PathWithFileName>..\Mcu\f421\Drivers\drivers\src\at32f421_crm.c</PathWithFileName><FilenameWithoutPath>at32f421_crm.c</FilenameWithoutPath><RteFlg>0</RteFlg><bShared>0</bShared></File><File><GroupNumber>2</GroupNumber><FileNumber>6</FileNumber><FileType>1</FileType><tvExp>0</tvExp><tvExpOptDlg>0</tvExpOptDlg><bDave2>0</bDave2><PathWithFileName>..\Mcu\f421\Drivers\drivers\src\at32f421_debug.c</PathWithFileName><FilenameWithoutPath>at32f421_debug.c</FilenameWithoutPath><RteFlg>0</RteFlg><bShared>0</bShared></File><File><GroupNumber>2</GroupNumber><FileNumber>7</FileNumber><FileType>1</FileType><tvExp>0</tvExp><tvExpOptDlg>0</tvExpOptDlg><bDave2>0</bDave2><PathWithFileName>..\Mcu\f421\Drivers\drivers\src\at32f421_dma.c</PathWithFileName><FilenameWithoutPath>at32f421_dma.c</FilenameWithoutPath><RteFlg>0</RteFlg><bShared>0</bShared></File><File><GroupNumber>2</GroupNumber><FileNumber>8</FileNumber><FileType>1</FileType><tvExp>0</tvExp><tvExpOptDlg>0</tvExpOptDlg><bDave2>0</bDave2><PathWithFileName>..\Mcu\f421\Drivers\drivers\src\at32f421_ertc.c</PathWithFileName><FilenameWithoutPath>at32f421_ertc.c</FilenameWithoutPath><RteFlg>0</RteFlg><bShared>0</bShared></File><File><GroupNumber>2</GroupNumber><FileNumber>9</FileNumber><FileType>1</FileType><tvExp>0</tvExp><tvExpOptDlg>0</tvExpOptDlg><bDave2>0</bDave2><PathWithFileName>..\Mcu\f421\Drivers\drivers\src\at32f421_exint.c</PathWithFileName><FilenameWithoutPath>at32f421_exint.c</FilenameWithoutPath><RteFlg>0</RteFlg><bShared>0</bShared></File><File><GroupNumber>2</GroupNumber><FileNumber>10</FileNumber><FileType>1</FileType><tvExp>0</tvExp><tvExpOptDlg>0</tvExpOptDlg><bDave2>0</bDave2><PathWithFileName>..\Mcu\f421\Drivers\drivers\src\at32f421_flash.c</PathWithFileName><FilenameWithoutPath>at32f421_flash.c</FilenameWithoutPath><RteFlg>0</RteFlg><bShared>0</bShared></File><File><GroupNumber>2</GroupNumber><FileNumber>11</FileNumber><FileType>1</FileType><tvExp>0</tvExp><tvExpOptDlg>0</tvExpOptDlg><bDave2>0</bDave2><PathWithFileName>..\Mcu\f421\Drivers\drivers\src\at32f421_gpio.c</PathWithFileName><FilenameWithoutPath>at32f421_gpio.c</FilenameWithoutPath><RteFlg>0</RteFlg><bShared>0</bShared></File><File><GroupNumber>2</GroupNumber><FileNumber>12</FileNumber><FileType>1</FileType><tvExp>0</tvExp><tvExpOptDlg>0</tvExpOptDlg><bDave2>0</bDave2><PathWithFileName>..\Mcu\f421\Drivers\drivers\src\at32f421_i2c.c</PathWithFileName><FilenameWithoutPath>at32f421_i2c.c</FilenameWithoutPath><RteFlg>0</RteFlg><bShared>0</bShared></File><File><GroupNumber>2</GroupNumber><FileNumber>13</FileNumber><FileType>1</FileType><tvExp>0</tvExp><tvExpOptDlg>0</tvExpOptDlg><bDave2>0</bDave2><PathWithFileName>..\Mcu\f421\Drivers\drivers\src\at32f421_misc.c</PathWithFileName><FilenameWithoutPath>at32f421_misc.c</FilenameWithoutPath><RteFlg>0</RteFlg><bShared>0</bShared></File><File><GroupNumber>2</GroupNumber><FileNumber>14</FileNumber><FileType>1</FileType><tvExp>0</tvExp><tvExpOptDlg>0</tvExpOptDlg><bDave2>0</bDave2><PathWithFileName>..\Mcu\f421\Drivers\drivers\src\at32f421_pwc.c</PathWithFileName><FilenameWithoutPath>at32f421_pwc.c</FilenameWithoutPath><RteFlg>0</RteFlg><bShared>0</bShared></File><File><GroupNumber>2</GroupNumber><FileNumber>15</FileNumber><FileType>1</FileType><tvExp>0</tvExp><tvExpOptDlg>0</tvExpOptDlg><bDave2>0</bDave2><PathWithFileName>..\Mcu\f421\Drivers\drivers\src\at32f421_scfg.c</PathWithFileName><FilenameWithoutPath>at32f421_scfg.c</FilenameWithoutPath><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>..\Mcu\f421\Drivers\drivers\src\at32f421_spi.c</PathWithFileName><FilenameWithoutPath>at32f421_spi.c</FilenameWithoutPath><RteFlg>0</RteFlg><bShared>0</bShared></File><File><GroupNumber>2</GroupNumber><FileNumber>17</FileNumber><FileType>1</FileType><tvExp>0</tvExp><tvExpOptDlg>0</tvExpOptDlg><bDave2>0</bDave2><PathWithFileName>..\Mcu\f421\Drivers\drivers\src\at32f421_tmr.c</PathWithFileName><FilenameWithoutPath>at32f421_tmr.c</FilenameWithoutPath><RteFlg>0</RteFlg><bShared>0</bShared></File><File><GroupNumber>2</GroupNumber><FileNumber>18</FileNumber><FileType>1</FileType><tvExp>0</tvExp><tvExpOptDlg>0</tvExpOptDlg><bDave2>0</bDave2><PathWithFileName>..\Mcu\f421\Drivers\drivers\src\at32f421_usart.c</PathWithFileName><FilenameWithoutPath>at32f421_usart.c</FilenameWithoutPath><RteFlg>0</RteFlg><bShared>0</bShared></File><File><GroupNumber>2</GroupNumber><FileNumber>19</FileNumber><FileType>1</FileType><tvExp>0</tvExp><tvExpOptDlg>0</tvExpOptDlg><bDave2>0</bDave2><PathWithFileName>..\Mcu\f421\Drivers\drivers\src\at32f421_wdt.c</PathWithFileName><FilenameWithoutPath>at32f421_wdt.c</FilenameWithoutPath><RteFlg>0</RteFlg><bShared>0</bShared></File><File><GroupNumber>2</GroupNumber><FileNumber>20</FileNumber><FileType>1</FileType><tvExp>0</tvExp><tvExpOptDlg>0</tvExpOptDlg><bDave2>0</bDave2><PathWithFileName>..\Mcu\f421\Drivers\drivers\src\at32f421_wwdt.c</PathWithFileName><FilenameWithoutPath>at32f421_wwdt.c</FilenameWithoutPath><RteFlg>0</RteFlg><bShared>0</bShared></File></Group><Group><GroupName>F421</GroupName><tvExp>1</tvExp><tvExpOptDlg>0</tvExpOptDlg><cbSel>0</cbSel><RteFlg>0</RteFlg><File><GroupNumber>3</GroupNumber><FileNumber>21</FileNumber><FileType>1</FileType><tvExp>0</tvExp><tvExpOptDlg>0</tvExpOptDlg><bDave2>0</bDave2><PathWithFileName>..\Mcu\f421\Src\eeprom.c</PathWithFileName><FilenameWithoutPath>eeprom.c</FilenameWithoutPath><RteFlg>0</RteFlg><bShared>0</bShared></File></Group><Group><GroupName>Startup</GroupName><tvExp>1</tvExp><tvExpOptDlg>0</tvExpOptDlg><cbSel>0</cbSel><RteFlg>0</RteFlg><File><GroupNumber>4</GroupNumber><FileNumber>22</FileNumber><FileType>2</FileType><tvExp>0</tvExp><tvExpOptDlg>0</tvExpOptDlg><bDave2>0</bDave2><PathWithFileName>..\Mcu\f421\Startup\mdk\startup_at32f421.s</PathWithFileName><FilenameWithoutPath>startup_at32f421.s</FilenameWithoutPath><RteFlg>0</RteFlg><bShared>0</bShared></File></Group><Group><GroupName>CMSIS</GroupName><tvExp>0</tvExp><tvExpOptDlg>0</tvExpOptDlg><cbSel>0</cbSel><RteFlg>0</RteFlg></Group></ProjectOpt>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/93265.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/93265.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/93265.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【大文件上傳】分片上傳+斷點續傳+Worker線程計算Hash

/*** 文件分片上傳管理器* 提供文件分片、哈希計算、并發上傳和斷點續傳功能*/ class FileChunkUploader {/*** 構造函數* param {File} file - 要上傳的文件對象* param {Object} options - 配置選項* param {number} [options.chunkSize5MB] - 每個分片的大小&#xff08;字節…

-bash: ./restart.sh: /bin/bash^M: 壞的解釋器: 沒有那個文件或目錄

這是典型的Windows換行符&#xff08;CRLF&#xff09;導致的腳本不能在Linux/Unix環境下正常執行的問題。Linux 期望的是 LF (\n)&#xff0c;而 Windows 是 CRLF (\r\n)&#xff0c;所以腳本文件的第一行解釋器路徑后多了一個不可見的 ^M&#xff08;回車符&#xff09;&…

芯伯樂1MHz高頻低功耗運放芯片MCP6001/2/4系列,微安級功耗精密信號處理

前言在工業控制、通信設備、家用電器等領域&#xff0c;信號處理是核心環節之一&#xff0c;其中運算放大器&#xff08;運放&#xff09;是實現信號處理的核心器件&#xff0c;其選型參數直接決定了信號鏈路的性能和輸出信號的質量&#xff0c;是確保信號正常、精確輸出的關鍵…

智能的數學原理

智能的數學原理可以分成幾個層次來看——從最底層的數學基礎&#xff0c;到支撐“智能”表現的數學模型&#xff0c;再到連接數學與現實認知的理論框架。 分成 五個核心板塊 來梳理&#xff1a;1. 信息與表示的數學 智能的第一步是“能表示信息”&#xff0c;這涉及&#xff1a…

FPGA即插即用Verilog驅動系列——SPI發送模塊

實現功能&#xff1a;按字節以spi模式3發送數據&#xff0c;如果要stm32接收&#xff0c;請在cubemx中將對應的spi接口設置為模式3&#xff0c;詳情見代碼開頭注釋// spi_byte_master.v // 經過優化的SPI主設備模塊&#xff0c;每次使能發送一個字節。 // 它實現了SPI模式3 (CP…

C++ 排序指南

在 C 中&#xff0c;std::sort 是一個非常強大且常用的函數&#xff0c;用于對容器或數組中的元素進行排序。它定義在 <algorithm> 頭文件中。 std::sort 的基本語法 std::sort 的基本語法有以下幾種形式&#xff1a;默認升序排序&#xff1a; std::sort(first, last);fi…

RS232串行線是什么?

RS232串行線是什么&#xff1f;RS232串行線是一種用于串行通信的標準化接口&#xff0c;廣泛應用于早期計算機、工業設備、儀器儀表等領域的短距離數據傳輸。以下是其核心要點解析&#xff1a;1. 基本定義 全稱&#xff1a;RS232&#xff08;Recommended Standard 232&#xff…

k8s-scheduler 解析

學習文檔 官網的k8s上關于scheduler的文檔基本可以分為這兩部分 介紹 scheduler 的基本概念 介紹 scheduler 的配置 KubeSchedulerConfiguration 的參數 介紹 scheduler 的命令行參數 調度框架解析 Scheduling-framework 解析 kube-scheduler 選擇 node 通過下面這兩步…

前端簡歷1v1修改: 優化項目經驗

今天有人找我優化前端簡歷&#xff0c;分享一下如何優化項目經驗描述。這是修改前的版本&#xff1a;項目為Web前端開發&#xff0c;但描述為APP應用&#xff0c;包含某某功能。起初我感到困惑&#xff0c;因為前端技術棧使用Vue&#xff0c;為何項目類型是APP&#xff1f;后來…

K8S企業級應用與DaemonSet實戰解析

目錄 一、概述 二、YAML文件詳解 三、企業應用案例 3.1 環境準備 3.2 擴縮容 3.3 滾動更新 3.4 回滾 四、自定義更新策略 4.1類型 4.2 設置方式 4.3 配置案例 一、 DaemonSet 概述 DaemonSet 工作原理 Daemonset 典型的應用場景 DaemonSet 與 Deployment 的區別…

Celery在Django中的應用

Celery在Django中的應用一、項目配置二、異步任務2.1 普通用法2.1.1 通過delay2.1.2 通過apply_async2.2 高級用法2.2.1 任務回調&#xff08;Callback&#xff09;2.2.2 任務鏈&#xff08;Chaining&#xff09;2.2.3 任務組&#xff08;Group&#xff09;2.2.4 任務和弦&…

DeepSeek生成的高精度大數計算器

# 高精度計算器&#xff08;精確顯示版&#xff09;1. **精確顯示優化**&#xff1a;- 新增print_mpfr()函數專門處理MPFR數值的打印- 自動移除多余的尾隨零和小數點- 確保所有浮點結果都以完整十進制形式顯示&#xff0c;不使用科學計數法2. **浮點精度修復**&#xff1a;- 所…

08--深入解析C++ list:高效操作與實現原理

1. list介紹1.1. list概述template < class T, class Alloc allocator<T> > class list;Lists are sequence containers that allow constant time insert and erase operations anywhere within the sequence, and iteration in both directions.概述&#xff1…

GraphQL從入門到精通完整指南

目錄 什么是GraphQLGraphQL核心概念GraphQL Schema定義語言查詢(Queries)變更(Mutations)訂閱(Subscriptions)Schema設計最佳實踐服務端實現客戶端使用高級特性性能優化實戰項目 什么是GraphQL GraphQL是由Facebook開發的一種API查詢語言和運行時。它為API提供了完整且易于理…

使用 Dockerfile 與 Docker Compose 結合+Docker-compose.yml 文件詳解

使用 Dockerfile 與 Docker Compose 結合的完整流程 Dockerfile 用于定義單個容器的構建過程&#xff0c;而 Docker Compose 則用于編排多個容器。以下是結合使用兩者的完整方法&#xff1a; 1. 創建 Dockerfile 在項目目錄中創建 Dockerfile 定義應用鏡像的構建過程&#xff1…

15 ABP Framework 開發工具

ABP Framework 開發工具 概述 該頁面詳細介紹了 ABP Framework 提供的開發工具和命令行界面&#xff08;CLI&#xff09;&#xff0c;用于創建、管理和定制 ABP 項目。ABP CLI 是主要開發工具&#xff0c;支持項目腳手架、模塊添加、數據庫遷移管理及常見開發任務自動化。 ABP …

力扣top100(day02-01)--鏈表01

160. 相交鏈表 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) {* val x;* next null;* }* }*/ public class Solution {/*** 查找兩個鏈表的相交節點* param headA 第一個…

LLM 中 語音編碼與文本embeding的本質區別

直接使用語音編碼,是什么形式,和文本的區別 直接使用語音編碼的形式 語音編碼是將模擬語音信號轉換為數字信號的技術,其核心是對語音的聲學特征進行數字化表征,直接承載語音的物理聲學信息。其形式可分為以下幾類: 1. 基于波形的編碼(保留原始波形特征) 脈沖編碼調制…

模型選擇與調優

一、模型選擇與調優在機器學習中&#xff0c;模型的選擇和調優是一個重要的步驟&#xff0c;它直接影響到最終模型的性能1、交叉驗證在任何有監督機器學習項目的模型構建階段&#xff0c;我們訓練模型的目的是從標記的示例中學習所有權重和偏差的最佳值如果我們使用相同的標記示…

vue+Django農產品推薦與價格預測系統、雙推薦+機器學習預測+知識圖譜

vueflask農產品推薦與價格預測系統、雙推薦機器學習價格預測知識圖譜文章結尾部分有CSDN官方提供的學長 聯系方式名片 文章結尾部分有CSDN官方提供的學長 聯系方式名片 關注B站&#xff0c;有好處&#xff01;編號: D010 技術架構: vueflaskmysqlneo4j 核心技術&#xff1a; 基…