sunsili 发表于 2021-10-22 23:19:33

keil5工程使用keil4打开后,工程就无法使用keil5打开了

本帖最后由 sunsili 于 2023-8-24 21:57 编辑

最近笔者开发过程中,遇到问题:keil5工程使用keil4打开后,工程就无法使用keil5打开了

排查问题原因及解决方法:
首先看工程文件了,打开工程文件(xml定义的数据),没关系异常,有标记keil版本的地方
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_proj.xsd">

<SchemaVersion>1.0</SchemaVersion>

<Header>### uVision Project, (C) Keil Software</Header>

<Targets>
    <Target>
      <TargetName>HS6200_demo</TargetName>
      <ToolsetNumber>0x0</ToolsetNumber>
      <ToolsetName>MCS-51</ToolsetName>
      <TargetOption>
      <TargetCommonOption>
          <Device>N76E003</Device>
          <Vendor>Nuvoton</Vendor>
          <Cpu>IRAM(0 - 0xFF) IROM(0 - 0x47FF)XRAM(0 - 0x2FF) CLOCK(16000000)</Cpu>
          <FlashUtilSpec></FlashUtilSpec>
          <StartupFile>"LIB\STARTUP.A51" ("Standard 8051 Startup Code")</StartupFile>
          <FlashDriverDll></FlashDriverDll>
          <DeviceId>0</DeviceId>
          <RegisterFile>N76E003.H</RegisterFile>
          <MemoryEnv></MemoryEnv>
          <Cmp></Cmp>
          <Asm></Asm>
          <Linker></Linker>
          <OHString></OHString>
          <InfinionOptionDll></InfinionOptionDll>
          <SLE66CMisc></SLE66CMisc>
          <SLE66AMisc></SLE66AMisc>
          <SLE66LinkerMisc></SLE66LinkerMisc>
          <UseEnv>0</UseEnv>
          <BinPath></BinPath>
          <IncludePath></IncludePath>
          <LibPath></LibPath>
          <RegisterFilePath>Nuvoton\</RegisterFilePath>
          <DBRegisterFilePath>Nuvoton\</DBRegisterFilePath>
          <TargetStatus>
            <Error>0</Error>
            <ExitCodeStop>0</ExitCodeStop>
            <ButtonStop>0</ButtonStop>
            <NotGenerated>0</NotGenerated>
            <InvalidFlash>1</InvalidFlash>
          </TargetStatus>
          <OutputDirectory>.\</OutputDirectory>
          <OutputName>HS6200_demo</OutputName>
          <CreateExecutable>1</CreateExecutable>
          <CreateLib>0</CreateLib>
          <CreateHexFile>1</CreateHexFile>
          <DebugInformation>1</DebugInformation>
          <BrowseInformation>1</BrowseInformation>
          <ListingPath>.\</ListingPath>
          <HexFormatSelection>0</HexFormatSelection>
          <Merge32K>0</Merge32K>
          <CreateBatchFile>0</CreateBatchFile>
          <BeforeCompile>
            <RunUserProg1>0</RunUserProg1>
            <RunUserProg2>0</RunUserProg2>
            <UserProg1Name></UserProg1Name>
            <UserProg2Name></UserProg2Name>
            <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
            <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
          </BeforeCompile>
          <BeforeMake>
            <RunUserProg1>0</RunUserProg1>
            <RunUserProg2>0</RunUserProg2>
            <UserProg1Name></UserProg1Name>
            <UserProg2Name></UserProg2Name>
            <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
            <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
          </BeforeMake>
          <AfterMake>
            <RunUserProg1>0</RunUserProg1>
            <RunUserProg2>0</RunUserProg2>
            <UserProg1Name></UserProg1Name>
            <UserProg2Name></UserProg2Name>
            <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
            <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
          </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>
          <BankNo>65535</BankNo>
      </CommonProperty>
      <DllOption>
          <SimDllName>S8051.DLL</SimDllName>
          <SimDllArguments></SimDllArguments>
          <SimDlgDll>DP51.DLL</SimDlgDll>
          <SimDlgDllArguments></SimDlgDllArguments>
          <TargetDllName>S8051.DLL</TargetDllName>
          <TargetDllArguments></TargetDllArguments>
          <TargetDlgDll>TP51.DLL</TargetDlgDll>
          <TargetDlgDllArguments></TargetDlgDllArguments>
      </DllOption>
      <DebugOption>
          <OPTHX>
            <HexSelection>0</HexSelection>
            <HexRangeLowAddress>0</HexRangeLowAddress>
            <HexRangeHighAddress>0</HexRangeHighAddress>
            <HexOffset>0</HexOffset>
            <Oh166RecLen>16</Oh166RecLen>
          </OPTHX>
          <Simulator>
            <UseSimulator>0</UseSimulator>
            <LoadApplicationAtStartup>1</LoadApplicationAtStartup>
            <RunToMain>1</RunToMain>
            <RestoreBreakpoints>1</RestoreBreakpoints>
            <RestoreWatchpoints>1</RestoreWatchpoints>
            <RestoreMemoryDisplay>1</RestoreMemoryDisplay>
            <RestoreFunctions>1</RestoreFunctions>
            <RestoreToolbox>1</RestoreToolbox>
            <LimitSpeedToRealTime>0</LimitSpeedToRealTime>
          </Simulator>
          <Target>
            <UseTarget>1</UseTarget>
            <LoadApplicationAtStartup>1</LoadApplicationAtStartup>
            <RunToMain>1</RunToMain>
            <RestoreBreakpoints>1</RestoreBreakpoints>
            <RestoreWatchpoints>1</RestoreWatchpoints>
            <RestoreMemoryDisplay>1</RestoreMemoryDisplay>
            <RestoreFunctions>0</RestoreFunctions>
            <RestoreToolbox>1</RestoreToolbox>
          </Target>
          <RunDebugAfterBuild>0</RunDebugAfterBuild>
          <TargetSelection>10</TargetSelection>
          <SimDlls>
            <CpuDll></CpuDll>
            <CpuDllArguments></CpuDllArguments>
            <PeripheralDll></PeripheralDll>
            <PeripheralDllArguments></PeripheralDllArguments>
            <InitializationFile></InitializationFile>
          </SimDlls>
          <TargetDlls>
            <CpuDll></CpuDll>
            <CpuDllArguments></CpuDllArguments>
            <PeripheralDll></PeripheralDll>
            <PeripheralDllArguments></PeripheralDllArguments>
            <InitializationFile></InitializationFile>
            <Driver>BIN\Nuvoton_8051_Keil_uVision_Driver.dll</Driver>
          </TargetDlls>
      </DebugOption>
      <Utilities>
          <Flash1>
            <UseTargetDll>1</UseTargetDll>
            <UseExternalTool>0</UseExternalTool>
            <RunIndependent>0</RunIndependent>
            <UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
            <Capability>1</Capability>
            <DriverSelection>4101</DriverSelection>
          </Flash1>
          <Flash2>BIN\Nuvoton_8051_Keil_uVision_Driver.dll</Flash2>
          <Flash3>"" ()</Flash3>
          <Flash4></Flash4>
      </Utilities>
      <Target51>
          <Target51Misc>
            <MemoryModel>0</MemoryModel>
            <RTOS>0</RTOS>
            <RomSize>2</RomSize>
            <DataHold>0</DataHold>
            <XDataHold>0</XDataHold>
            <UseOnchipRom>0</UseOnchipRom>
            <UseOnchipArithmetic>0</UseOnchipArithmetic>
            <UseMultipleDPTR>0</UseMultipleDPTR>
            <UseOnchipXram>0</UseOnchipXram>
            <HadIRAM>1</HadIRAM>
            <HadXRAM>1</HadXRAM>
            <HadIROM>1</HadIROM>
            <Moda2>0</Moda2>
            <Moddp2>0</Moddp2>
            <Modp2>0</Modp2>
            <Mod517dp>0</Mod517dp>
            <Mod517au>0</Mod517au>
            <Mode2>0</Mode2>
            <useCB>0</useCB>
            <useXB>0</useXB>
            <useL251>0</useL251>
            <useA251>0</useA251>
            <Mx51>0</Mx51>
            <ModC812>0</ModC812>
            <ModCont>0</ModCont>
            <Lp51>0</Lp51>
            <useXBS>0</useXBS>
            <ModDA>0</ModDA>
            <ModAB2>0</ModAB2>
            <Mx51P>0</Mx51P>
            <hadXRAM2>0</hadXRAM2>
            <uocXram2>0</uocXram2>
            <ModC2>0</ModC2>
            <ModH2>0</ModH2>
            <Mdu_R515>0</Mdu_R515>
            <Mdu_F120>0</Mdu_F120>
            <Psoc>0</Psoc>
            <hadIROM2>0</hadIROM2>
            <ModSmx2>0</ModSmx2>
            <cBanks>0</cBanks>
            <xBanks>0</xBanks>
            <OnChipMemories>
            <RCB>
                <Type>0</Type>
                <StartAddress>0x0</StartAddress>
                <Size>0xffff</Size>
            </RCB>
            <RXB>
                <Type>0</Type>
                <StartAddress>0x0</StartAddress>
                <Size>0x0</Size>
            </RXB>
            <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>
            <Ocr1>
                <Type>0</Type>
                <StartAddress>0x0</StartAddress>
                <Size>0x0</Size>
            </Ocr1>
            <Ocr2>
                <Type>0</Type>
                <StartAddress>0x0</StartAddress>
                <Size>0x0</Size>
            </Ocr2>
            <Ocr3>
                <Type>0</Type>
                <StartAddress>0x0</StartAddress>
                <Size>0x0</Size>
            </Ocr3>
            <IRO>
                <Type>1</Type>
                <StartAddress>0x0</StartAddress>
                <Size>0x4800</Size>
            </IRO>
            <IRA>
                <Type>0</Type>
                <StartAddress>0x0</StartAddress>
                <Size>0x100</Size>
            </IRA>
            <XRA>
                <Type>0</Type>
                <StartAddress>0x0</StartAddress>
                <Size>0x300</Size>
            </XRA>
            <XRA512>
                <Type>0</Type>
                <StartAddress>0x0</StartAddress>
                <Size>0x0</Size>
            </XRA512>
            <IROM512>
                <Type>0</Type>
                <StartAddress>0x0</StartAddress>
                <Size>0x0</Size>
            </IROM512>
            </OnChipMemories>
          </Target51Misc>
          <C51>
            <RegisterColoring>0</RegisterColoring>
            <VariablesInOrder>0</VariablesInOrder>
            <IntegerPromotion>1</IntegerPromotion>
            <uAregs>0</uAregs>
            <UseInterruptVector>1</UseInterruptVector>
            <Fuzzy>3</Fuzzy>
            <Optimize>8</Optimize>
            <WarningLevel>2</WarningLevel>
            <SizeSpeed>1</SizeSpeed>
            <ObjectExtend>1</ObjectExtend>
            <ACallAJmp>0</ACallAJmp>
            <InterruptVectorAddress>0</InterruptVectorAddress>
            <VariousControls>
            <MiscControls></MiscControls>
            <Define></Define>
            <Undefine></Undefine>
            <IncludePath>..\..\Drivers;..\..\Drivers\HS6200;..\..\Drivers\hw;..\..\Include;..\..\Drivers\spi</IncludePath>
            </VariousControls>
          </C51>
          <Ax51>
            <UseMpl>0</UseMpl>
            <UseStandard>1</UseStandard>
            <UseCase>0</UseCase>
            <UseMod51>0</UseMod51>
            <VariousControls>
            <MiscControls></MiscControls>
            <Define></Define>
            <Undefine></Undefine>
            <IncludePath></IncludePath>
            </VariousControls>
          </Ax51>
          <Lx51>
            <useFile>0</useFile>
            <linkonly>0</linkonly>
            <UseMemoryFromTarget>1</UseMemoryFromTarget>
            <CaseSensitiveSymbols>0</CaseSensitiveSymbols>
            <WarningLevel>2</WarningLevel>
            <DataOverlaying>1</DataOverlaying>
            <OverlayString></OverlayString>
            <MiscControls></MiscControls>
            <DisableWarningNumbers></DisableWarningNumbers>
            <LinkerCmdFile></LinkerCmdFile>
            <Assign></Assign>
            <ReserveString></ReserveString>
            <CClasses></CClasses>
            <UserClasses></UserClasses>
            <CSection></CSection>
            <UserSection></UserSection>
            <CodeBaseAddress></CodeBaseAddress>
            <XDataBaseAddress></XDataBaseAddress>
            <PDataBaseAddress></PDataBaseAddress>
            <BitBaseAddress></BitBaseAddress>
            <DataBaseAddress></DataBaseAddress>
            <IDataBaseAddress></IDataBaseAddress>
            <Precede></Precede>
            <Stack></Stack>
            <CodeSegmentName></CodeSegmentName>
            <XDataSegmentName></XDataSegmentName>
            <BitSegmentName></BitSegmentName>
            <DataSegmentName></DataSegmentName>
            <IDataSegmentName></IDataSegmentName>
          </Lx51>
      </Target51>
      </TargetOption>
      <Groups>
      <Group>
          <GroupName>App</GroupName>
          <Files>
            <File>
            <FileName>HS6200_demo.c</FileName>
            <FileType>1</FileType>
            <FilePath>.\App\HS6200_demo.c</FilePath>
            </File>
          </Files>
      </Group>
      <Group>
          <GroupName>Drivers</GroupName>
          <Files>
            <File>
            <FileName>HS6200.c</FileName>
            <FileType>1</FileType>
            <FilePath>..\..\Drivers\HS6200\HS6200.c</FilePath>
            </File>
            <File>
            <FileName>soft_spi.c</FileName>
            <FileType>1</FileType>
            <FilePath>..\..\Drivers\spi\soft_spi.c</FilePath>
            </File>
          </Files>
      </Group>
      <Group>
          <GroupName>Common</GroupName>
          <Files>
            <File>
            <FileName>Common.c</FileName>
            <FileType>1</FileType>
            <FilePath>..\..\Common\Common.c</FilePath>
            </File>
            <File>
            <FileName>softDelay.c</FileName>
            <FileType>1</FileType>
            <FilePath>..\..\Common\softDelay.c</FilePath>
            </File>
          </Files>
      </Group>
      </Groups>
    </Target>
</Targets>

</Project>
倒是工程文件夹多了,*.save *.bak等文件, 试着删除掉。

可以用Keil5打开了。

原来是Keil打开工程时,会备份相关版本信息到 *.save *.bak等文件,打开时会检查相关备份信息,版本不同,所以打开出错,打不开工程
页: [1]
查看完整版本: keil5工程使用keil4打开后,工程就无法使用keil5打开了