PIC24 Firmware Bootloader не запускает загруженную программу - PullRequest
2 голосов
/ 09 декабря 2010

Я знаю, что это может быть не самое лучшее место для этого вопроса, но я пробовал форум по микрочипам и пока не получил ответа. Я работаю, пытаясь получить проект загрузчика HID, работающий на плате-прототипе, которую я создаю с использованием PIC24FJ64GB002. Я изменил пример проекта HID Bootloader для работы с моей платой и также изменил пример проекта HID Mouse для работы с моей платой. Когда я программирую свое устройство с помощью кода загрузчика, оно работает нормально, и программа Microchip Bootloader Windows находит устройство и отображает «Устройство подключено». Но когда я пытаюсь загрузить шестнадцатеричный файл программы Mouse на свое устройство, он говорит, что он успешно завершен, но программа mouse никогда не запускается. Я не уверен, что использую правильные сценарии компоновщика. Кто-нибудь делал это и знает, какие скрипты компоновщика я должен использовать для проекта загрузчика и загружаемого проекта?

1 Ответ

2 голосов
/ 23 декабря 2010

Мне удалось заполучить PIC24FJ64GB002 с макетом, работающим с загрузчиком Microchip HID и приложением мыши Microchip HID.

Для этого нужно использовать правильный скрипт компоновщика для загрузчика и приложения.

Изменения компоновщика загрузчика:
MEMORY<br> {<br> ...<br> program (xr) : ORIGIN = 0x400, LENGTH = 0x1000<br> app_ivt : ORIGIN = 0x1400, LENGTH = 0xC0<br> ...<br> }<br> __CODE_BASE = 0x400;

Изменения компоновщика приложения:
MEMORY<br> {<br> ...<br> app_ivt : ORIGIN = 0x1400, LENGTH = 0xC0<br> program (xr) : ORIGIN = 0x14C0, LENGTH = 0x96E8<br> ...<br> }<br> __CODE_BASE = 0x200;

После загрузки приложения через загрузчик необходимо сброситьустройство.Следующий код в начале main () в загрузчике заставляет загрузчик перейти к приложению.

mInitSwitch2();
if((sw2==1) && ((RCON & 0x83) != 0))
{
    __asm__("goto 0x1400");
}
...