Message Edited by ajn on 2007-04-1603:56 PM
Message Edited by ajn on 2007-04-1604:02 PM
解決済! 解決策の投稿を見る。
I think if you separate the bootloader and the application you will not be able to download the application via USB multilinker and start to debug it without change the s19 file.I believe there is a way to configure that the bootloader is flashed before the application, and it's also not deleted while
Because then you will need interrupt vector jump table which is not supported by the processor expert system— (and you cannot run the application without the bootloader either)Hmm. I'm not sure if PE cannot be configured to place the vector table somewhere else. I though that this is possible,
If you separate the bootloader and the application you need to write the bootloader in assembler– (the only appliction notes I have seen seems to use assembler anyway) I need to download data to the bootloader via I2C and it seems to be more work to write this functionallity in assembler than in C.Part of the bootloader, like the vector redirection, are probably best written in assembly. Most of the bootloader like the I2C
Are there any pragma I can use to suppress a warnings locally in a file˜try
#pragma MESSAGE DISABLE C1234 /* disable C1234 because I know what I do. */ Anyway, if your setup works for you, cool :smileyhappy: One thing to check, maybe. As you place the runtime routines into the BOOTLOADER_CODE_SEG, their addresses becomes part of the "contract" between the boot loader and the main code. (contract meaning that if they change, the bootloader and the app's are eventually no longer compatible) Therefore it's probably a good idea to only really place the hopefully few runtime routines which your loader code is using into the BOOTLOADER_CODE_SEG, and keep the rest in their usual section. Maybe place those routines also before the other code in the loader so they do not move if the loader code changes. Anyway, having the boot loader and the app in the same app is fragile.Daniel
#pragma CODE_SEG DEFAULT
for example if I have an init const array, or something else that is not a function?
What shall I think of when I add code to my application so it not be placed in the BOOTLOADER_ROM segment that cannot be change by the bootloader?
Message Edited by ajn on 2007-04-1604:29 PM
Message Edited by ajn on 2007-04-1710:23 AM
Message Edited by ajn on 2007-04-1710:37 AM
Message Edited by ajn on 2007-04-1710:38 AM
Message Edited by ajn on 2007-04-1710:40 AM
I think if you separate the bootloader and the application you will not be able to download the application via USB multilinker and start to debug it without change the s19 file.I believe there is a way to configure that the bootloader is flashed before the application, and it's also not deleted while
Because then you will need interrupt vector jump table which is not supported by the processor expert system— (and you cannot run the application without the bootloader either)Hmm. I'm not sure if PE cannot be configured to place the vector table somewhere else. I though that this is possible,
If you separate the bootloader and the application you need to write the bootloader in assembler– (the only appliction notes I have seen seems to use assembler anyway) I need to download data to the bootloader via I2C and it seems to be more work to write this functionallity in assembler than in C.Part of the bootloader, like the vector redirection, are probably best written in assembly. Most of the bootloader like the I2C
Are there any pragma I can use to suppress a warnings locally in a file˜try
#pragma MESSAGE DISABLE C1234 /* disable C1234 because I know what I do. */ Anyway, if your setup works for you, cool :smileyhappy: One thing to check, maybe. As you place the runtime routines into the BOOTLOADER_CODE_SEG, their addresses becomes part of the "contract" between the boot loader and the main code. (contract meaning that if they change, the bootloader and the app's are eventually no longer compatible) Therefore it's probably a good idea to only really place the hopefully few runtime routines which your loader code is using into the BOOTLOADER_CODE_SEG, and keep the rest in their usual section. Maybe place those routines also before the other code in the loader so they do not move if the loader code changes. Anyway, having the boot loader and the app in the same app is fragile.Daniel