This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Can't Tranfer Project to Other PC - uVision File Management a Mess

You would think with the uVision's Run-Time Environment Manager and Software Package Selector with all its version control and download features that I should have no trouble switching between machines while working on a project. Well, you'd be wrong.

Half the files in my project are just being referenced to locations in the Keil program directory, while the other half are copied to my project folder. Why?

Some of these files are considered Packages, some are considered Components, and some are just considered included files. They are all just .c and .h files. Why are some handled one way, and others handled differently?

Why after moving my project to a new system do I have to spend hours making sure every setting in every menu is identical to the other machine my code was created just to get the code to compile when all of the information needed to do this already is (or should be) stored in the project file?

Unless I'm missing something all I see from these 'features' is larger file sizes for data that isn't actually being used to do anything to help workflow. All I'm finding are obstacles and reasons to switch to another IDE.

  • "if only because they don't tolerate multiple copies to be present on the same machine."

    This should be "don't tolerate multiple copies to be present on _different_ machines".

    I have multiple versions of MDK-ARM on the same machine - older versions can make use of the same license file as the newer version.

  • Have you seen this application note and example?

    http://www.keil.com/appnotes/docs/apnt_279.asp

    On page 5 of the note it states:
    ========

    Note: The project files uvprojx and uvoptx have UNIX-style line endings (LF). In Windows systems, usually
    CRLF is used. Git automatically detects this and changes the line endings to CRLF on the server. But then the
    status of these two project files is always “changed”. You can get around this problem using the command
    git config --global core.autocrlf false
    ==============

    You may be able to make these changes, so the version control works properly.

  • "What needs to be in RCS is a verifiable configuration description of the used "packs"."

    That is what the build log is meant to be for.

    Only hitting 'rebuild all' builds a full build log. The log file shows which version of packs, and what components from the packs were used.

    http://www.keil.com/support/man/docs/uv4/uv4_ca_buildlog.htm

    As a bonus, the build log shows the warnings and errors resulting from the last build. So you will know years from now, that this project truly was checked in error free.

    Software Packages used:
    Package Vendor: ARM
                    http://www.keil.com/pack/ARM.CMSIS.4.3.0.pack
                    ::CMSIS:RTOS:1.0 (API)
                    CMSIS (Cortex Microcontroller Software Interface Standard)
       * Component: RTOS Version: 1.0
       * Component: CORE Version: 4.1.0
       * Component: Keil RTX Version: 4.78.0
    
    Package Vendor: Keil
                    http://www.keil.com/pack/Keil.MDK-Middleware.7.0.0-beta.pack
                    ::Board Support:Buttons:1.00 (API)
                    Keil MDK-ARM Professional Middleware for ARM Cortex-M based devices
       * Component: Buttons Version: 1.00
    
    Package Vendor: Keil
                    http://www.keil.com/pack/Keil.STM32F0xx_DFP.1.4.0.pack
                    Keil::Device:Startup:1.5.0
                    STMicroelectronics STM32F0 Series Device Support and Examples
       * Component: Startup Version: 1.5.0
       * Component: Buttons Version: 1.0.0
    
    Collection of Component include folders:
    
      C:\keilcode\STM32f334-show\RTX_Blinky\RTE
      C:\Keil_v5\ARM\PACK\ARM\CMSIS\4.3.0\CMSIS\Include
      C:\Keil_v5\ARM\PACK\ARM\CMSIS\4.3.0\CMSIS\RTOS\RTX\INC
      C:\Keil_v5\ARM\PACK\Keil\MDK-Middleware\7.0.0-beta\Board
      C:\Keil_v5\ARM\PACK\Keil\STM32F0xx_DFP\1.4.0\Device\Include
    
    Collection of Component Files used:
    
    
       * Component: ::CMSIS:RTOS:1.0 (API)
    
       * Component: ARM::CMSIS:CORE:4.1.0
    
       * Component: ARM::CMSIS:RTOS:Keil RTX:4.78.0
          Include file:  CMSIS\RTOS\RTX\INC\cmsis_os.h
          Source file:   CMSIS\RTOS\RTX\Templates\RTX_Conf_CM.c
          Include file:  CMSIS\RTOS\RTX\UserCodeTemplates\osObjects.h
          Source file:   CMSIS\RTOS\RTX\UserCodeTemplates\main.c
          Source file:   CMSIS\RTOS\RTX\UserCodeTemplates\MailQueue.c
          Source file:   CMSIS\RTOS\RTX\UserCodeTemplates\MemPool.c
          Source file:   CMSIS\RTOS\RTX\UserCodeTemplates\MsgQueue.c
          Source file:   CMSIS\RTOS\RTX\UserCodeTemplates\Mutex.c
          Source file:   CMSIS\RTOS\RTX\UserCodeTemplates\Semaphore.c
          Source file:   CMSIS\RTOS\RTX\UserCodeTemplates\Thread.c
          Source file:   CMSIS\RTOS\RTX\UserCodeTemplates\Timer.c
          Source file:   CMSIS\RTOS\RTX\SRC\ARM\SVC_Table.s
          Library file:  CMSIS\RTOS\RTX\LIB\ARM\RTX_CM0.lib
    
       * Component: ::Board Support:Buttons:1.00 (API)
          Include file:  Board\Board_Buttons.h
    
       * Component: Keil::Device:Startup:1.5.0
          Source file:   Device\Source\ARM\startup_stm32f030.s
          Source file:   Device\Source\system_stm32f0xx.c
          Source file:   Device\Source\ARM\STM32F0xx_OPT.s
    
       * Component: Keil.STM32F030-Discovery::Board Support:Buttons:1.0.0
          Source file:   Boards\ST\STM32F030-Discovery\Common\Buttons_STM32F030-Discovery.c