Thanks
To fix the core.a issue you can change the build definition to match how Arduino works.
Edit the text file called "platform.txt" in "Documents\Arduino\Hardware\SparkFun\psoc" (or wherever you installed the sparkfun definition)
I commented the original at line 60 by adding a # to the front
# recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" -Wl,--start-group -o "{build.path}/{build.project_name}.elf" {object_files} "{build.variant.path}/Uno_blocks.a" "{build.variant.path}/{build.variant_system_lib}" "{build.path}/core/core.a" -mthumb -march=armv7-m -mfix-cortex-m3-ldrd -lm "-Wl,-Map,{build.path}/{build.project_name}.map" "-T{runtime.hardware.path}/psoc/cores/arduino/cm3gcc.ld" -g "-u _printf_float" "" -Wl,--gc-sections -Wl,--end-group -lstdc++
Then added the creation of a variable called "archive_file_path"
archive_file_path={build.path}/{archive_file}
Then added a copy of the commented line but changing the "{build.path}/core/core.a" to "{archive_file_path}"
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" -Wl,--start-group -o "{build.path}/{build.project_name}.elf" {object_files} "{build.variant.path}/Uno_blocks.a" "{build.variant.path}/{build.variant_system_lib}" "{archive_file_path}" -mthumb -march=armv7-m -mfix-cortex-m3-ldrd -lm "-Wl,-Map,{build.path}/{build.project_name}.map" "-T{runtime.hardware.path}/psoc/cores/arduino/cm3gcc.ld" -g "-u _printf_float" "" -Wl,--gc-sections -Wl,--end-group -lstdc++
The
changed file is attached if you don't want to edit it yourself. You can see an arduino platform.txt example in "ArduinoIDE_Folder\hardware\arduino\avr"
The compiler statement in the platform.txt is missing the standard ARDUINO define of the version. If the version is less than 100 it signifies an old version of the arduino ide that uses wprogram.h instead of the arduino.h header. You will find the debugger code works the same way as many arduino libraries and project examples.
(Actually you will find the author of the platform.txt has started to define the ARDUINO variable but has not used it) The following should be added to compiler "compiler.cpp.flags=" in platform.txt
-DARDUINO=10800
The next release of visual micro contains automatic workarounds for both the issues described here so if you don't want to mess around you can wait for the next release. Due over the next couple of days I hope)
http://www.visualmicro.com/public_html/yabbfiles/Attachments/platform_007.txt