16+
Воскресенье
18 ноября
Вход |Карта сайта | |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

Микроконтроллеры PIC

 
   Новая тема Правила Регистрация Поиск »» Архив
Вернуться в конференциюТопик полностью
fk0  (01.11.2013 18:11) , в ответ на вот тут (ниже ссылка), люди рассказывают как отлаживать chipkit... короче, один из шагов - импорт ELF и отладка его в MPLAB X. Т.е. "должно работать" автор: Илья
Рассказываю: 
Создал новый проект с импортом elf, нажал debug, оно 5 минут программировало realice, потом запрограммировало прошивк, написало "running". нажимаю pause -- target halted. Стек не показывает: unable to access due to optimization... напоминаю, что в MPLAB без X то же самое, даже если всё пересобрать с -O0. Индус просто забил на часть кода... Выбрал disassemly listing file. 5 минут ждал. получил сообщение "file seems to too large (2MB) to safely open..." нажал "Yes open". Есть дизассемблер поделённый по файлам (*.c). В нём есть метки в инструкциях (call куда-то), но нет меток в начале функций (т.е. непонятно этот кусок кода -- он от какой функции, только файл понятен). Есть другой дизассемблер -- "PIC program memory view". Там есть метки и показывается текущее значение PC. И самое страшное: в этих двух окнах дизассемблера текст НЕ СОВПАДАЕТ частично. И в части дизассемблера, и в части опкодов (HEX). Офигеть. Сообразил почему. Потому, что в одном из них (который disassembly listing) инструкции идут не по порядку. А вот с таким порядком адресов, местами, например: 02420A, 02420C, 02420E, 024200, 024202, 024204, 024208, 024212, 024214... и всё в таком духе. Дважды офигеть. В окне watch глобальные символы показывает. Но только глобальные (а static в пределах модуля, а локальные?) Нет самого главного. Привязки адреса PC к файлу и строке программы на C. Зачем тогда всё остальное? Бреакпоинты по C исходникм тоже не ставит, молча ничего не делает, только в окне breakpoints пишет unrecognized мол. Сделал File->Import HEX/ELF с replace project. Стал находить C файлы, но не все, а только соответствующие .o файлам. Если в один .c был #include "другой.c", то включенный другой файл уже не находит и не отлаживает (поведение аналогично MPLAB-без-X, только тот работает "в 10 раз быстрей") Сделал File->Import для cof 2 раза. Не работает. Выводы -- для ELF работает через раз. Сам проект из ELF не работает... видимо из-за отличий компилятора.
[ZX]
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7527 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXVIII