Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Вопросы начинающих

Вопросы начинающих Прежде чем задать вопрос, стоит воспользоваться поиском

Ответ
 
Опции темы Опции просмотра
Старый 30.10.2014, 15:45   #1
Pasha_Bi
Senior Member
 
Регистрация: 24.07.2009
Адрес: г. Иваново
Возраст: 45
Сообщений: 289
Вес репутации: 640/46
Pasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to all
По умолчанию Вопрос по USB bootloader, собранному из MLA.

Уважаемые коллеги!
Собрал проект USB загрузчика из MLA v2014_07_22. В качестве отладочной платы использую PICKit3 (подпаял провода, а для прошивки ещё один одолжил). Загрузчик работает.
Программа пользователя, если предполагается использовать загрузчик, должна быть собрана с использованием скорректированного linker script файла для соответствующего микроконтроллера. Этот файл помимо прочего вносит изменения в таблицу векторов прерываний. Но ведь эта таблица находится в адресах, которые bootloader "не трогает".
Как же так? И действительно, приложения пользователя без использования прерываний работают корректно, а с прерываниями нет.
Pasha_Bi вне форума   Ответить с цитированием
Старый 30.10.2014, 20:17   #2
Pasha_Bi
Senior Member
 
Регистрация: 24.07.2009
Адрес: г. Иваново
Возраст: 45
Сообщений: 289
Вес репутации: 640/46
Pasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to all
По умолчанию Re: Вопрос по USB bootloader, собранному из MLA.

Думается мне, что при сборке программы bootloader-а то же должен быть похожий файл линкера. Что бы таблица векторов была готовая служить программе пользователя. А взять его где?
Pasha_Bi вне форума   Ответить с цитированием
Старый 30.10.2014, 21:19   #3
Vovka
Senior Member
 
Аватар для Vovka
 
Регистрация: 27.12.2007
Адрес: недалеко от г.Белгорода
Возраст: 52
Сообщений: 1,913
Вес репутации: 3232/95
Vovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond repute
Отправить сообщение для Vovka с помощью ICQ
По умолчанию Re: Вопрос по USB bootloader, собранному из MLA.

Вот фрагмент основной программы, идея должна быть понятна:
Код:
#ifdef _BOOTLOADER_
//++ чтобы сместить код
#pragma romdata BootloaderProgramMemorySpace = 0x6
const rom char bootloaderProgramMemorySpace[0x800 - 0x6];
//++
extern void _startup(void);
#pragma code AppVector = 0x800
void AppVector(void)
{
    _asm GOTO _startup _endasm
}
#endif

// High priority interrupt vector
#ifdef _BOOTLOADER_
#pragma code InterruptVectorHigh = 0x808
#else
#pragma code InterruptVectorHigh = 0x08
#endif
void InterruptVectorHigh (void)
{
  _asm
    goto InterruptHandlerHigh //jump to interrupt routine
  _endasm
}
#ifdef _BOOTLOADER_
#pragma code InterruptVectorLow = 0x818
#else
#pragma code InterruptVectorLow = 0x018
#endif
void InterruptVectorLow(void)
{
  _asm
    goto InterruptHandlerLow //jump to interrupt routine
  _endasm
}

#pragma code
#pragma interrupt InterruptHandlerLow
void InterruptHandlerLow ()
{
}

#pragma code
//----------------------------------------------------------------------------
// High priority interrupt routine
#pragma interrupt InterruptHandlerHigh
void InterruptHandlerHigh ()
{
}
А в загрузчике с адресов прерываний делаешь соответствующий GOTO в основную программу.

Вообще-то скачай на сайте микрочипа готовый загрузчик.
Vovka вне форума   Ответить с цитированием
Старый 30.10.2014, 21:22   #4
Vovka
Senior Member
 
Аватар для Vovka
 
Регистрация: 27.12.2007
Адрес: недалеко от г.Белгорода
Возраст: 52
Сообщений: 1,913
Вес репутации: 3232/95
Vovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond repute
Отправить сообщение для Vovka с помощью ICQ
По умолчанию Re: Вопрос по USB bootloader, собранному из MLA.

Для соединения загрузчика и основной программы я использую PicHexEdit
Vovka вне форума   Ответить с цитированием
Старый 30.10.2014, 22:18   #5
Pasha_Bi
Senior Member
 
Регистрация: 24.07.2009
Адрес: г. Иваново
Возраст: 45
Сообщений: 289
Вес репутации: 640/46
Pasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to all
По умолчанию Re: Вопрос по USB bootloader, собранному из MLA.

С PIC18 вопросов и проблемм нет. Сдесь всё понятно.
Я пробую с PIC24FJ256GB106 (подопытный кролик - PICKit3).
Pasha_Bi вне форума   Ответить с цитированием
Старый 31.10.2014, 11:39   #6
Pasha_Bi
Senior Member
 
Регистрация: 24.07.2009
Адрес: г. Иваново
Возраст: 45
Сообщений: 289
Вес репутации: 640/46
Pasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to allPasha_Bi is a name known to all
По умолчанию Re: Вопрос по USB bootloader, собранному из MLA.

Разобрался.
Действительно, и для приложения и для загрузчика нужен оригинальный файл .gld. И эти файлы приложены в MLA. И эти файлы для приложений пользователя. Что бы получился файл .gld для загрузчика необходимо прописать #define __BOOTLOADER.
Наверняка это где то написано, а я просмотрел.
Наверняка многие на этом форуме то же просмотрят.
Надеюсь, мой опыт кому нибудь пригодится.
Pasha_Bi вне форума   Ответить с цитированием
Ответ

Метки
bootloader, pic24


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа по прерываниям USB и USART Hromoy Продукция MICROCHIP 3 29.11.2012 10:18
Microchip USB HID Bootloader v2.6a, зависание. Specialist Продукция MICROCHIP 23 18.10.2010 20:11
Вопрос по USB и флешкам Zloj_ya Продукция MICROCHIP 4 14.03.2008 18:49
вопрос по выходу из функции stop_1 Продукция MICROCHIP 23 28.08.2007 10:09
вопрос по акселерометру из набора HMC1055 Dmitry Общетехнические вопросы 4 30.07.2007 14:29


Часовой пояс GMT +3, время: 01:24.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot