В каждом проекте имеются адреса контрольных сумм, названий, области заполнения, еще адрес команды безусловного перехода на приложение типа:
Код
#define DEBUG_BEGIN_32 0x8000
#define DEBUG_END_32 0x87FF
#define APPLICATION_CHECKSUM_BEGIN_32 0x8800
#define APPLICATION_CHECKSUM_END_32 0x8801
#define APPLICATION_NAME_BEGIN_32 0x8802
#define APPLICATION_NAME_END_32 0x881F
#define APPLICATION_PROG_BEGIN_32 0x8820
#define APPLICATION_PROG_END_32 0xBFFB
#define JUMP_BEGIN_32 0xBFFC
#define JUMP_END_32 0xBFFF
#define APPLICATION_FILL_BEGIN 0x8802
#define APPLICATION_FILL_END 0xBFBD
#define BOOTLOADER_CHECKSUM_BEGIN_32 0xC000
#define BOOTLOADER_CHECKSUM_END_32 0xC001
#define BOOTLOADER_NAME_BEGIN_32 0xC002
#define BOOTLOADER_NAME_END_32 0xC02F
#define BOOTLOADER_PROG_BEGIN_32 0xC020
#define BOOTLOADER_PROG_END_32 0xFFDB
#define INTVECTORS_BEGIN_32 0xFFDC
#define INTVECTORS_END_32 0xFFFF
#define DEBUG_END_32 0x87FF
#define APPLICATION_CHECKSUM_BEGIN_32 0x8800
#define APPLICATION_CHECKSUM_END_32 0x8801
#define APPLICATION_NAME_BEGIN_32 0x8802
#define APPLICATION_NAME_END_32 0x881F
#define APPLICATION_PROG_BEGIN_32 0x8820
#define APPLICATION_PROG_END_32 0xBFFB
#define JUMP_BEGIN_32 0xBFFC
#define JUMP_END_32 0xBFFF
#define APPLICATION_FILL_BEGIN 0x8802
#define APPLICATION_FILL_END 0xBFBD
#define BOOTLOADER_CHECKSUM_BEGIN_32 0xC000
#define BOOTLOADER_CHECKSUM_END_32 0xC001
#define BOOTLOADER_NAME_BEGIN_32 0xC002
#define BOOTLOADER_NAME_END_32 0xC02F
#define BOOTLOADER_PROG_BEGIN_32 0xC020
#define BOOTLOADER_PROG_END_32 0xFFDB
#define INTVECTORS_BEGIN_32 0xFFDC
#define INTVECTORS_END_32 0xFFFF
Разумеется, количество определений можно сократить, но это непринципиально.
А сейчас нужно сделать еще и для 32/64 кБ контроллера.
Для компиляторов ИАРа и PC я еще могу включать один хэдер, но линкер хочет получить -D<name>=<value>
Как я понимаю, еще можно определения адресов в командную строку подсунуть, но так быстро написать такое приложение я не смогу.
Как вообще-то люди делают? Тупо ручками? Левой правим хэдур, а правой - xcl, и потому вручную отслеживаем соответствие?
Речь о Renesas R8C, если что.