11.05.2010, 18:03
|
|
Прохожий
Регистрация: 23.06.2006
Сообщений: 8
Сказал спасибо: 5
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Proteus общие вопросы
Здравствуйте, уважаемые коллеги!
Проект для PIC18F452, MPLAB ver 8.14, HT-PICC18 ver 9.61, Proteus 7.5 SP3.
Вопрос: при отладке в Proteus в окне "Variables" не могу вывести переменные. Туплю уже с самого утра, потом пол дня в Интернете...
Помогите плз. советом или ссылкой.
С уважением, LDK.
|
|
|
|
11.05.2010, 20:03
|
|
Прописка
Регистрация: 14.11.2006
Сообщений: 150
Сказал спасибо: 31
Сказали Спасибо 125 раз(а) в 62 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от ldk-new
|
Вопрос: при отладке в Proteus в окне "Variables" не могу вывести переменные.
|
Может имеется ввиду Watch Window (находится в Debug), то правой кнопкой по окну Watch Window, затем Add Items (By Address…). Далее вручную ввести адрес регистра переменной в формате 0xXX и название (можно любое).
|
|
|
|
11.05.2010, 21:58
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.04.2009
Сообщений: 5,611
Сказал спасибо: 1,070
Сказали Спасибо 1,273 раз(а) в 884 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от ldk-new
|
Здравствуйте, уважаемые коллеги!
Проект для PIC18F452, MPLAB ver 8.14, HT-PICC18 ver 9.61, Proteus 7.5 SP3.
Вопрос: при отладке в Proteus в окне "Variables" не могу вывести переменные. Туплю уже с самого утра, потом пол дня в Интернете...
Помогите плз. советом или ссылкой.
С уважением, LDK.
|
А файлы прошивок смотрели? Для CVAVR нужно подключать coff? для bascoma еще какой то и т д. Наверно и с Пиками то же самое.
|
|
|
Сказали "Спасибо" nsl2004
|
|
|
12.05.2010, 16:50
|
|
Прохожий
Регистрация: 23.06.2006
Сообщений: 8
Сказал спасибо: 5
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от Soir
|
Может имеется ввиду Watch Window (находится в Debug), то правой кнопкой по окну Watch Window, затем Add Items (By Address…). Далее вручную ввести адрес регистра переменной в формате 0xXX и название (можно любое).
|
Я имею ввиду именно "Variables", вот пример из одного проекта,
а для PIC18F452 в лабцентровских примерах работает, а в моем – нет, даже контекстное меню не активно. И файл из проекта подключаю как всегда с расширением *.cof.
Последний раз редактировалось ldk-new; 12.05.2010 в 17:05.
|
|
|
|
12.05.2010, 19:33
|
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,510 раз(а) в 956 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от ldk-new
|
а в моем – нет, даже контекстное меню не активно. И файл из проекта подключаю как всегда с расширением *.cof.
|
Ну дык иде переменные та? Из второго скриншота я не одной описанной в Си не вижу. Али они выше по тексту? И естсcсно окошко в Протеусе пустое. За что боролись...
|
|
|
|
13.05.2010, 12:58
|
|
Прохожий
Регистрация: 23.06.2006
Сообщений: 8
Сказал спасибо: 5
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от Halex07
|
Ну дык иде переменные та? Из второго скриншота я не одной описанной в Си не вижу. Али они выше по тексту? И естсcсно окошко в Протеусе пустое. За что боролись...
|
Переменные были объявлены в хедере. А вот вариант с переменными внутри *.c
В "Watch-е" муторно прописывать...
|
|
|
|
14.05.2010, 07:15
|
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,510 раз(а) в 956 сообщении(ях)
|
Re: Proteus общие вопросы
to ldk-new
В любом случае логичнее предположить, что следы вваших переменных теряются при компиляции. Как Вы уже наверное догадались, Протеус автоматом добавляет переменные в окно Variables, но при этом он должен отследить их в OBJ файлах. Попробуйте либо уменьшить (или отключить совсем ) оптимизацию кода в компиляторе либо объявить переменную как volatile - если после этого она появиться, то точно компилятор "заметает следы".
Последний раз редактировалось Halex07; 14.05.2010 в 07:20.
|
|
|
Сказали "Спасибо" Halex07
|
|
|
14.05.2010, 18:20
|
|
Прохожий
Регистрация: 23.06.2006
Сообщений: 8
Сказал спасибо: 5
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от Halex07
|
to ldk-new
В любом случае логичнее предположить, что следы вваших переменных теряются при компиляции. Как Вы уже наверное догадались, Протеус автоматом добавляет переменные в окно Variables, но при этом он должен отследить их в OBJ файлах. Попробуйте либо уменьшить (или отключить совсем ) оптимизацию кода в компиляторе либо объявить переменную как volatile - если после этого она появиться, то точно компилятор "заметает следы".
|
Пробовал я всякие варианты в опциях компилятора и линкера - ноль.
Конечно, мое подозрение падает именно на парочку - MPLAB + HTPICC18.
Вот, например, какой код получился у компилятора в ответ на мои инструкции:
объявлено:
Код:
|
volatile unsigned char tx_9600[SIZE_TX_9600], *p_tx_9600;
volatile unsigned char rx_115200[SIZE_RX_115200], *p_rx_115200; |
фрагмент из дизассемблированного листинга:
Код:
|
94: if(p_tx_9600 == p_rx_115200);
06C6 500C MOVF 0xc, W, ACCESS
06C8 180E XORWF 0xe, W, ACCESS
06CA E102 BNZ 0x6d0
06CC 500B MOVF 0xb, W, ACCESS
06CE 180D XORWF 0xd, W, ACCESS
95: { // дальше при выполнении условия равенства
96: p_rx_115200 = rx_115200;
06D0 0100 MOVLB 0
06D2 0E54 MOVLW 0x54
06D4 6E0B MOVWF 0xb, ACCESS
06D6 0E00 MOVLW 0
06D8 6E0C MOVWF 0xc, ACCESS |
Я в шоке! Не соображу - это у меня глюк, или у HI-TECH? Это же сравнение на неравенство! Посоветуйте, пожалуйста, с-компилятор для PIC18 ... Для PIC12 и PIC16 HI-TECH PICC мне нравился.
P.S. Прошу прощения у HI-TECH !!! Это я каким-то образом умудрился влепить точку с запятой в конце строки с if... и не замечать ее. Вообще это мой первый опыт с PIC18, и я, конечно, склонен сваливать свои ошибки, даже на уважаемые фирмы - каюсь!
Последний раз редактировалось ldk-new; 14.05.2010 в 18:38.
Причина: Не заметил свою ошибку
|
|
|
|
17.05.2010, 15:45
|
|
Гражданин KAZUS.RU
Регистрация: 16.06.2005
Сообщений: 945
Сказал спасибо: 25
Сказали Спасибо 175 раз(а) в 124 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от Halex07
|
В любом случае логичнее предположить, что следы вваших переменных теряются при компиляции.
|
Ну не все так просто. Вот у меня например с авр в компиляторе оптимизации вообще отключены
Как видно, не появились переменные FrameLen, Frame, bufer (sflag, count10, gage не ожидаю, т.к. они в регистры прописаны), т.е. глобальные. Появились локальные для main t, t2.
А авр-студия спокойно все воспринимает:
ЗЫ: Проект прилагаю. Исходники, cof, hex - в папке "s"
Вложения:
|
wt.rar (68.2 Кб, 62 просмотров) |
|
|
|
|
19.05.2010, 10:04
|
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,510 раз(а) в 956 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от Someone
|
Ну не все так просто. Вот у меня например с авр в компиляторе оптимизации вообще отключены
|
А на горчичники в Протеусе Вы внимание не обращаете? Ваш пример не показателен, поскольку сделан со старой библиотекой AVR.DLL (предположительно версия 7.5) в которой были большие проблемы с моделями Мег - вылет за пределы памяти. Уже обсуждалось здесь на форуме и исправлено в версии 7.6.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:33.
|
|