Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Совместная отладка USBXpress Bootloader и проекта пользователя под Silabs IDE
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > MCS51
Ihar
Как известно, Silabs рекламируя свою
библиотеку USBXpress, предлагает USB Bootloader который заливается
в камень через JTAG, а потом с помощью залитого Bootloader и загрузочной PC утилиты,
можно грузит в этот же камень через USB проекты пользователя.

Проблема в том, что когда пробуешь отлаживать такую связку (Проект Bootloader +
проект пользователя) , то получается это сделать только в окне объектного кода,
но не в окне исходника.

Действуя строго по инструкции от Silabs, открыв в IDE один из проектов
попробовал ставить breakpoint на исходник.
Ставить они ставяться, но адрес поставленного breakpoint выходит за диапазон
камня и breakpoint не ловиться.
Вообщем не работает дэбагер на исходнике.

Может кто делал подобное?
barabek
Цитата(Ihar @ Nov 18 2008, 01:42) *
Как известно, Silabs рекламируя свою
библиотеку USBXpress, предлагает USB Bootloader который заливается
в камень через JTAG, а потом с помощью залитого Bootloader и загрузочной PC утилиты,
можно грузит в этот же камень через USB проекты пользователя.

Проблема в том, что когда пробуешь отлаживать такую связку (Проект Bootloader +
проект пользователя) , то получается это сделать только в окне объектного кода,
но не в окне исходника.

Действуя строго по инструкции от Silabs, открыв в IDE один из проектов
попробовал ставить breakpoint на исходник.
Ставить они ставяться, но адрес поставленного breakpoint выходит за диапазон
камня и breakpoint не ловиться.
Вообщем не работает дэбагер на исходнике.

Может кто делал подобное?


Именно такую связку не пробовал. Но их breakpoint вообще стараюсь не пользоваться - они глючат постоянно. Нормально работают только на файле, в котором находится main(), на остальных - та же ситуация, что и у Вас. Может конечно у меня руки кривые, но они меня от этого дела отучили. Посему пользуюся дополнительными (temp) переменными в качестве флагов и смотрю их в watchwindow. А у Вас любые breakpoint так себя ведут, или только те что поставлены не в файле с main()?
Цырен
Я недалее как вчера оставил пост в этой ветке форума по теме дебага.
Я брал examle-код предоставляемый TexasInstr. для работы на SmartRF04EB. В исходникал лежали и hex-файлы для вариантов программа+бутлоадер и просто программа. Я прошивал их и убедился, что они рабочие.
А когда дебагил, то в случае с "программа+отладка", пошаговое исполнение выполнялось только в объектнов файле, а с-файл просто игнорировался. Ни брейкпоинты ни пошаговый просмотр не отображались на с-файле. И по идее программа шьется в кристал, но после того как я отсоединял программатор (USB ToolStick), то ничего не работало. Если открывать проект в исходном состоянии, как дается с сайта и не компилить его, то тоже самое, за исключением, того, то программа на железе после отключения программатора работает.

Дебаг в случае "программа" отладка также идет в объектном файле и программа на железе работает после компиляции и откл. программатора.

Мой вывод такой:
1. в первом случае что-то со стартапом или условиями компилляции или см. пункт 3.
2. во втором см. пункт 3.
3. может надо как-то настроить в свойствах проекта вкладки AX51, LX51 Locate, LX51 Misc (кстати что это такое я пока не разобрался, интересно было бы узнать что это)
4. или глючит драйвер для USB ToolStick или драйвер под KEIL IDE для Silabs.

Я бы хотел разобраться, это у меня руки не из того места или есть какие-то сложности идущие извне. Если первое, то я только рад - и опыт и значит не все так плохо.
Konst_777
Цитата(Цырен @ Dec 10 2008, 15:09) *
Я недалее как вчера оставил пост в этой ветке форума по теме дебага.
Я брал examle-код предоставляемый TexasInstr. для работы на SmartRF04EB. В исходникал лежали и hex-файлы для вариантов программа+бутлоадер и просто программа. Я прошивал их и убедился, что они рабочие.
А когда дебагил, то в случае с "программа+отладка", пошаговое исполнение выполнялось только в объектнов файле, а с-файл просто игнорировался. Ни брейкпоинты ни пошаговый просмотр не отображались на с-файле. И по идее программа шьется в кристал, но после того как я отсоединял программатор (USB ToolStick), то ничего не работало. Если открывать проект в исходном состоянии, как дается с сайта и не компилить его, то тоже самое, за исключением, того, то программа на железе после отключения программатора работает.

Дебаг в случае "программа" отладка также идет в объектном файле и программа на железе работает после компиляции и откл. программатора.

Мой вывод такой:
1. в первом случае что-то со стартапом или условиями компилляции или см. пункт 3.
2. во втором см. пункт 3.
3. может надо как-то настроить в свойствах проекта вкладки AX51, LX51 Locate, LX51 Misc (кстати что это такое я пока не разобрался, интересно было бы узнать что это)
4. или глючит драйвер для USB ToolStick или драйвер под KEIL IDE для Silabs.

Я бы хотел разобраться, это у меня руки не из того места или есть какие-то сложности идущие извне. Если первое, то я только рад - и опыт и значит не все так плохо.

Так ведь Вы сами пишете, что это пример Bootloader-а. То есть, *.hex-файл содержит код для firmware-приложения и самого Bootloader-а. А firmware-проект, только код для firmware-приложения. Причем, после компиляции проекта адреса памяти, в которых расположен Bootloader остаются пустыми. Так и должно быть. Полученный *.hex-файл с firmware-приложением должен загружаться в контроллер программой для ПЭВМ через USB. То есть, для обновления firmware контроллера C8051f34x или C8051f32x уже не нужен USB Debug Adapter. В этом смысл использования Bootloader-а.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.