Studio Development Team,
I have an urgent need to continue my project which consists of a boot section and application section. So far, no one has provided a satisfactory method for symbolic debug of these two seperately created sections using an ImageCraft C complier. Each section has their own COFF and HEX files.
It seems as though combining these files into a single file for upload into Studio is not possible, nor is uploading them seperately for a single debug session.
I can combine the boot and application HEX files into a single file and upload this into Studio, but I will have no symbolic debug information for either section. Or, I can upload the COFF file for either section to get symbol information, BUT, the portion of the combined hex file without symbol information from the COFF does not get loaded.
It seems as though there may be several ways to handle this. Here's a list of my thoughts.
1. Create a utility that would combine the symbol information from two or more COFF file (where addresses did not overlap) into a single file so that studio will have all of the information that it needs from both sections. In addition, this utility should also combine the seperate hex files into a single file.
2. Change studio to allow more than one symbol file (COFF or other) to be loaded into a debug session. As long as there is no overlap or conflict, there would be no problem.
3. Change studio to allow more that one hex file to be uploaded into a debug session. Once again, as long as there were no overlap of addresses being loaded, there would be no problem.
4. It appears as if studio erases the entire flash memory in the micro every time new code is uploaded using JTAGICEMKII. Although there are some setup features for the MKII under Debug>JTAGMKII Options>Debug>Program Download, they are not clear. The "Only reprogram device if object file has changed" selection does not keep the boot code from being erased. If Studio only erased pages where code has changed while leaving unchanged pages intact, then boot code could be uploaded through a programmer, locked with the lock bits, and kept in the micro. Application code could be changed and uploaded and debugged as required through Studio. Of course, using this method, there would not be any symbol debug of the boot section, but the code would still be there.
5. Even if I program the boot code and protect it with the bootlock bits, Studio/JTAGICEMII still overwrites (erases) that section when I upload application code. This is verfied by examining the code space and fuses after the application code was uploaded. My boot "protection" fuse has been erased and my boot code has been erased. If this didn't occur, I could debug application code while leaving the boot code intact. Once again, this would mean no symbol debug of boot code, but it would still be there.
Summary:
It appears that Studio and the MKII are trying to "do me a favor" and make sure there is no left over code in the processor when a new debug session is started. There must be a method for doing either or both of these functions:
1. Keep a section of code intact without Studio/MKII overriding/overwritting the protection bits -OR-
2. Combining the two COFF and HEX files into single file(s) for debugging -OR-
3. Having the ability to load multiple HEX and COFF files into a single debug session.
I hope that I've given you enough information of my intent and needs. If there is any way of performing these functions today, please let me know.