Не удается определить __BOOTLOADER для сценария компоновщика PIC24FJ128GC006

Я делаю загрузчик USB для PIC24FJ128GC006, и я собираюсь сопоставить часть флэш-памяти для загрузчика и кода приложения. Я добавил сценарий компоновщика из загрузчика USB-устройства Microchip MLA v2015_08 в свой файл кода PIC24FJ.
В файле компоновщика необходимо указать __BOOTLOADER, чтобы получить доступ к области адреса 0x400.

    #ifdef __BOOTLOADER   
       program (xr)   : ORIGIN = 0x400,         LENGTH = 0x35BE
    #else
       program (xr)   : ORIGIN = 0x4002,         LENGTH = 0x117F4
    #endif

В main.c моего кода загрузчика я уже #define __BOOTLOADER, но когда я программирую код загрузчика для PIC с помощью ICD3 и проверяю программную память с помощью PIC Memory Views панели инструментов окна MPLAB, данные записываются в 0x4002 адрес а не в 0x400.
В чем может быть проблема?


person RndSen    schedule 28.05.2020    source источник


Ответы (1)


Хорошо. Я решил свою проблему выше. Вы должны написать #define __BOOTLOADER в файле компоновщика, а не в main.c. Однако возникла другая проблема. На панели инструментов моего файла кода это указывает на то, что я использовал 97% программной памяти после определения __BOOTLOADER. Итак, мой вопрос в том, могу ли я удалить некоторые коды в файле компоновщика, чтобы уменьшить используемую программную память? Если да, то как я могу узнать, что нужно удалить в таблицах векторов?

person RndSen    schedule 28.05.2020