Compact 7 App development outside of the development environment for the Operating System (Visual Studio - Platform Builder ) involves using a second instance of Visual Studio for a Smartdevice (or similar (SDK) Project. The target OS must have the correct version of Corecon that VS targets it with, There is an issue here.

I had a situation where on my system, the OS I built could be connected to from the Smartdevice instance of Visual Studio. Another similar system could target the Smartdevice project to my image but not the one created by it.

  • Could ping both versions of the OS form both systems
  • Could telnet and FTP into the both versions of the OS from both systems.
  • OS in both cases was built with an app called Corecon2Forever (as on Codeplex in CECompactToolsExtras (Comapct 2013))  (that is started  OS start using AutoLaunch as on Codeplex)  that launches Corecon2 and relaunches it if Corecon2 is closed
    • The Security Registry setting is included in the image that means CMAccept doesn't need to run
  • So my OS Images could be connected to from the Smartdevice VS instance when the OS image built on the other system was run, it could be targeted.
  • For the OS that fails to connect, we could see the network messages where the DEV machine was trying to connect and the target was replying but failing to connect back.So it wasn't a network issue.

Sam Phung stated that the version of Corecon on the OS must match that with Visual Studio Smart Device uses.

    The OS Corecon2Forever Subproject PostLink.bat had a definition:
    set _CORECONPATH=%CommonProgramFiles%\Microsoft Shared\CoreCon\1.0\Target\wce400\%_TGTCPU%
    The Target system is ARMV7

  • A comparison of versions between the two development systems of
    C:\Program Files (x86)\Common Files\Microsoft Shared\CoreCon\1.0\Target\wce400\ARMV7
    indicated a significant difference.
  • The set statement in the batch file, as above, elaborated to: 
    set _CORECONPATH=%CommonProgramFiles%\Microsoft Shared\CoreCon\1.0\Target\wce400\ARMV7

Documentation though says that Visual Studio Smartdevice SDK uses ARMV4I so need to use ARMVV4I Corecon rather than the ARMV7

This is discussed at:

Quoting from that post:

"Visual Studio Smart Device (VSD) native development will compile ARMv4i code for all Compact 7 ARM-based devices. SDK packages derived from ARM OS Designs will be designated as ARMv4i devices when installed against Visual Studio 2008 SP1. Applications built from those SDKs (using Smart Device Projects in Visual Studio) will be compiled and linked as ARMv4i applications. Applications built in this manner should only be deployed to devices running the OS Design from which the SDK was created.",

  • It seems that on my system, the files in:
    C:\Program Files (x86)\Common Files\Microsoft Shared\CoreCon\1.0\Target\wce400\ARMV4I
    may have been used to overwrite
    C:\Program Files (x86)\Common Files\Microsoft Shared\CoreCon\1.0\Target\wce400\\AMRV7
  • So I added to the batch file:
if %_TGTCPU%==ARMV7 (
if %_TGTCPU%==ARMVV6 (
if %_TGTCPU%==ARMV5 (
  • And changed the set line to:
    set _CORECONPATH=%CommonProgramFiles%\Microsoft Shared\CoreCon\1.0\Target\wce400\%_TARG%

And that seemed to work on both OS versions.Smile

ToDo: Fix CECompactToolsExtras for this.