Hi Manish
I finally had the opportunity to study this.
Basically you have a binary file uTaskerBM.bin, which is a merged file consisting of the boot loader (from address 0x0000...0x0a8b) and the application (linked to start at address 0x1000 and finishing at 0x13dcb) - between the two (from 0x0a8c...0x0fff) are 0xff (padding). This is the binary file that can be downloaded with some tools.
You however would like this in Intel hex format so that you can download it using FlashMagic (which only accepts Intel Hex input). The binary file can be converted using objcopy.exe from the GCC tool chain using the following command:
arm-none-eabi-objcopy --input-target=binary --output-target=ihex uTaskerBM.bin uTaskerV1.4_BM.hex
This however assumes that the tool chain is installed (eg. from CodeSourcery). If it isn't you may find that there is also an equivalent utility in the uVision3 tool chain - I don't know uVision that well so don't know what it would be called.
However the uTaskerCombine utility, which was used to generate the binary file, can also generate Intel Hex outputs:
The following is the standard use, as in you Bat file:
uTaskerCombine "../../uTaskerBoot/uVision3_LPC23xx/ObjectFiles/uTaskerBoot.bin" "ObjectFiles\uTaskerV1_4.bin" 0x1000 uTaskerBM.bin
To generate a HEX output an additional file can be added:
uTaskerCombine "../../uTaskerBoot/uVision3_LPC23xx/ObjectFiles/uTaskerBoot.bin" "ObjectFiles\uTaskerV1_4.bin" 0x1000 uTaskerBM.bin uTaskerBM.hex
However this is not used due to a present restriction - it only generates Intel Hex format up to 64k and not extended Intel HEX, so limits the output to 64k - smaller than the demo project output. The workaround for larger outputs was thus to use objcopy...
So I took a look at uTaskerCombine to see whether it would be difficult to extend the Intel HEX output to include the extended format and thus full compatibility. It turned out that this was not that hard so I have created a uTaskerCombine V1.1 (to request the version use "uTaskerCombine -v" - note however the the V1.0 will not answer to this though).
This can then use the command as above (with extra argument uTaskerBM.hex).
I successfully tested this on the Olimex LPC-2378-STK but did note that the projects (application and boot loader) need to be set up correctly to match, which involves the following steps:
1) Ensure that the define _336K_FILE_SYSTEM_SPACE is enabled (eg. add to config.h) so that the larger file system is used (smaller is possible but won't match the boot loader configuration as it is).
2) In Build_LPC23XX.bat (or however it is named in the particular application) ensure that the magic number and key match with those in the boot loader.
3) I had no problems using the boot loader from the uVision project, the IAR project and the Rowley crossworks project, but found that the GCC project is not ready for this (it's make file is not complete in the present version). I did in fact correct this but still couldn't get it to run since it was crashing when configuring the PLL when debugging and I couldn't get any debuggers to behave sensibly in this code area to sort it out; what is confusing is that the GCC project and the Rowley project (also GCC based) use the same files and settings but the stand-alone GCC boot loader won't behave at the moment - this will need to be looked at again, but for the moment the new uTaskerConvert program may prove to be helpful for all other cases.
Regards
Mark
PS. There are two further notes about using this project setup on the LPC2XXX:
1) Use the web pages in \Applications\uTaskerV1.4\WebPages\WebPagesLPC23xx\WebPagesUpload to match the larger file system setup.
2) If there is a file in the upload area (eg, a previous z.BIN that isn't recognised by the loader and so is not deleted) it is necessary to delete it manually (eg. via FTP). The reason for this is due to the large FLASH granularity of the LPC2XXX requiring (usually) use of the sub-file system. Since z.BIN is a sub-file in this setup it is not automatically deleted when a further file is uploaded to its space and may cause the uploaded file to be corrupted if not first deleted.