Hi Eric
Thanks for the first answers.
To 1. I don't want to change the target "name" but the target "build location". I can do this with CW10.5 and also with Atollic.
That is, I want to change the ${workspace_loc:/project_name} part and not change the Debug part.
The reason is that having the output directory at that location causes a "mess" in the project structure and difficulty to maintain output binaries.
This is the biggest issue that I presently have.
To 3 and 4. I can use path variables without problems in CW10.5 and Atollic, but they fail in KDS.
The problem is not that there are differently named build variables between different versions but that one can not use path variables (as defined in "Resouce | Linked Resources"). Even the ones that Eclipse defines as default there can't be used and, although one can define new ones which Eclipse also says are valid they can't be used.
However I have found that I can also define build variables based on system build variables and this then allows these to be used as macros to define, for example, the linker script path.
Path variables are project settings and as long as build variables are also stored in the project this alternative solution is adequate.
To 5. I can live with a post build bat file but the fact is that I always need BIN, SREC and HEX outputs and not just one of them. The reason is that
- I use the HEX output to load to the TEENSY 3.1 target with its HalfKay Boot loader mode - Getting started with Teensy USB development board (it only accepts this format)
- binary output to program to boards with USB-MSD boot loaders installed
- SREC outputto load to boards with SREC loader installed
Therefore is is much faster and efficient to just generate all outputs so that they are "always" available when needed. objcpy is so fast that you don't notice the extra work.
To 6. One idea that you may consider for this utility is to recognise HEX files. The CW10.5 utility automatically recognises SREC files and binary files but doesn't recognise iHex files. I understand that there is no real need to support iHEX format as well as SREC but there is danger involved when a user selects an iHEX file by mistake and loads it with the utility. The utility decides that it must be "binary" and loads this content directly. Thsi is dangerous since its content looks like ":1006B0002EF88DF80B0001208DF8100001A803F032" and such lines are programmed to the Flash configuration area (0x400.0x40f) resulting in Flash sectors being set protected and in the worst case other nasty things like JTAG being disabled forever
Another useful option (would also solve the iHEX case) would be to disable writing "special" data to the Flash configuration sectors (as IAR and Rowely Crossworks do as standard) to avoid locking chips by mistake when loading bad code. Rowley told me they did it due to the fact that they had bad experience with users locking chips by mistake so they prefer to be safe. This would be simple to do (always load a standard pattern to this area when an override check box is not enabled) and would avoid lots of support cases where (new) users can't work out what has gone wrong.
Regards
Mark