Тупость или подводный камень

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
1974-alexander
Родился
Сообщения: 9
Зарегистрирован: Чт июл 02, 2009 15:29:38

Тупость или подводный камень

Сообщение 1974-alexander »

Здравствуйте, господа. Если уже сталкивались с ниже описанной проблемой то помогите и мне понять откуда ноги растут. Заметил закономерность используя микроконтроллеры ATMEGA8,16,64. При написании программы поначалу отлаживаю отдельные блоки все как бы работает. Далее свожу их в нечно целое, ради чего все и затевалось, компилирую, загружаю в протеусе все работает как и хотелось. Потом как всегда хочеться улучшить, добавляються новые возможности и следовательно растет программный код. И вот оно чудо 5 секунд назад все работало добавил одну строчку и все при эмуляции работы на протеусе функции не выполняются. ничего не меняя в программном коде переставляю небольшой блок в другое место и все снова работает. Работаю с awrstudio 4. Заранее благодарен за помощь в понимании.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

чем компилируете-то?

протеус неправильно обрабатывает переходы "за пределы" памяти программ. компилятор WinAVR (например), часто в больших программах вместо перехода "далеко вперед" делает переход как бы "назад", в результате чего программный счетчик адресов в МК "переполняется", старшие биты в нем отбрасываются, а оставшийся адрес как раз попадает туда, куда надо. однако, протеус не отбрасывает старшие биты счетчика адреса и потому считает, что осуществляется переход к несуществующей ячейке памяти.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

Проблем может быть куча.
Забыл сохранить SREG в обработчике прерывания - получи проблему,
регистров мало - переменных много, вызвал п/п не сохранив рабочих регистров - опять проблема.
Да и все широко распространенные симуляторы работаю криво, то что работает, скажем, в протеусе (vmlab, avrstudio без разницы) не факт, что будет работать в железе.
Так что только в железе можно выявить истину, ИМХО. :wink:
Чем дальше, тем больше становлюсь занудой...
Изображение
1974-alexander
Родился
Сообщения: 9
Зарегистрирован: Чт июл 02, 2009 15:29:38

Сообщение 1974-alexander »

GP1 писал(а):Аlex не надо валить на АВРки :evil: если "ручки кривые".
Проблем может быть куча.
Забыл сохранить SREG в обработчике прерывания - получи проблему,
регистров мало - переменных много, вызвал п/п не сохранив рабочих регистров - опять проблема.
Да и все широко распространенные симуляторы работаю криво, то что работает, скажем, в протеусе (vmlab, avrstudio без разницы) не факт, что будет работать в железе.
Так что только в железе можно выявить истину, ИМХО. :wink:


Бывает что и "ручки кривые" по началу всегда хомуты возможны, я же описываю проблему будучи уверен что с точки программного кода все верно, а эфект виден как на протеусе так и на живом железе.
1974-alexander
Родился
Сообщения: 9
Зарегистрирован: Чт июл 02, 2009 15:29:38

Сообщение 1974-alexander »

ARV писал(а):чем компилируете-то?

протеус неправильно обрабатывает переходы "за пределы" памяти программ. компилятор WinAVR (например), часто в больших программах вместо перехода "далеко вперед" делает переход как бы "назад", в результате чего программный счетчик адресов в МК "переполняется", старшие биты в нем отбрасываются, а оставшийся адрес как раз попадает туда, куда надо. однако, протеус не отбрасывает старшие биты счетчика адреса и потому считает, что осуществляется переход к несуществующей ячейке памяти.


У меня мысль появилась, свой avrstudio 4 я скачал с сайта atmel может он демо и имеет ограничения по программному коду????
smac
Мучитель микросхем
Сообщения: 459
Зарегистрирован: Вс июн 01, 2008 12:16:38

Сообщение smac »

1974-alexander писал(а):У меня мысль появилась, свой avrstudio 4 я скачал с сайта atmel может он демо и имеет ограничения по программному коду????


Студия она бесплатная, ограничений нет, демо версий нет. Перестаньте морочить людям головы, задавайте конкретные вопросы, что именно не получается, выкладывайте схемы, исходники проектры и т. д., указывайте с чем именно проблема.
1974-alexander
Родился
Сообщения: 9
Зарегистрирован: Чт июл 02, 2009 15:29:38

Сообщение 1974-alexander »

smac писал(а):
1974-alexander писал(а):У меня мысль появилась, свой avrstudio 4 я скачал с сайта atmel может он демо и имеет ограничения по программному коду????


Студия она бесплатная, ограничений нет, демо версий нет. Перестаньте морочить людям головы, задавайте конкретные вопросы, что именно не получается, выкладывайте схемы, исходники проектры и т. д., указывайте с чем именно проблема.


Это вам не светодиодом мерцать, кто ж вам серъезный проект выложит :)))
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

1974-alexander писал(а): я же описываю проблему будучи уверен что с точки программного кода все верно

Ошибка - "НОМЕР РАЗ" 8)
Чем дальше, тем больше становлюсь занудой...
Изображение
1974-alexander
Родился
Сообщения: 9
Зарегистрирован: Чт июл 02, 2009 15:29:38

Сообщение 1974-alexander »

GP1 писал(а):
1974-alexander писал(а): я же описываю проблему будучи уверен что с точки программного кода все верно

Ошибка - "НОМЕР РАЗ" 8)

Не очень приятно когда умничают, если знаешь помоги а так лишьбы считалось
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

Я не экстрасенс, кода, схемы не видел.
Чем я могу помочь?
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
ikarab
Опытный кот
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57
Контактная информация:

Сообщение ikarab »

1974-alexander писал(а):свой avrstudio 4 я скачал с сайта atmel может он демо и имеет ограничения по программному коду ????

Секретная дема !
pomidor
Открыл глаза
Сообщения: 70
Зарегистрирован: Сб дек 27, 2008 15:40:06

Сообщение pomidor »

'Это вам не светодиодом мерцать, кто ж вам серъезный проект выложит'
Зачем тогда спрашивать бесплатных советов? Раз серьезный совсекретный проект - значит и бабло серьезное и разработчик дб соответствующим..
1974-alexander
Родился
Сообщения: 9
Зарегистрирован: Чт июл 02, 2009 15:29:38

Сообщение 1974-alexander »

pomidor писал(а):'Это вам не светодиодом мерцать, кто ж вам серъезный проект выложит'
Зачем тогда спрашивать бесплатных советов? Раз серьезный совсекретный проект - значит и бабло серьезное и разработчик дб соответствующим..


Вот говорила мама не ходи по форумам :)) , столько текста пишите вместо простых слов, нет в такую ситуацию не попадал, зачем хаять разработчика вообще не понимая о чем идет речь, а по началу вопрос был таким понятным :shock:
pomidor
Открыл глаза
Сообщения: 70
Зарегистрирован: Сб дек 27, 2008 15:40:06

Сообщение pomidor »

разработчика вообще никто не хаял, на очевидные вещи вам любезно указали (Ошибка - "НОМЕР РАЗ"), на отсутствие экстрасенсорных способностей тоже.
Примерно, как если бы больной врача просил вылечить, но анализы сдавать категорически не хотел и анамнез (http://ru.wikipedia.org/wiki/Анамнез) собирать не давал..

etc
Удачи!
Аватара пользователя
mr.Kirill
Мучитель микросхем
Сообщения: 438
Зарегистрирован: Вт сен 25, 2007 19:40:26
Откуда: Челябинск

Сообщение mr.Kirill »

Тема озаглавлена "Тупость или подводный камень". Судя по всему хоть и не стоит знака "?", то думается что это вопрос.
Почитав посты автора и его ответы на конкретизирующие вопросы приходит в голову ответ на заданный выше вопрос - Тупость.

Так понимаю отлаживаете в Proteus...
А пошаговую отладку в AVRStudio делали? Какие там результаты? Все ли сходится с тем замыслом, который положен в основу программы?
А верен ли замысел?
Доверять Proteus'у как последней инстации гарантирующей правильность - глупо.

А то вот гадайте ему тут. А на вопросы только отписки даешь.

До сих пор не выяснили - какой язык программирования. Откуда уверенность в правильности кода?
Последний раз редактировалось mr.Kirill Пт июл 03, 2009 23:28:22, всего редактировалось 1 раз.
Аватара пользователя
maglev
Потрогал лапой паяльник
Сообщения: 316
Зарегистрирован: Пт апр 17, 2009 22:45:42
Откуда: Minsk
Контактная информация:

Сообщение maglev »

Автору - проверьте размеры стека (стеков).
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

в протеусе посмотрите, по какому адресу происходит выход за пределы памяти. откройте листинг проги и посмотрите, что по этому адресу в коде имеется. наверняка там будет нечто типа rcall -145. если так - то я выше уже объяснял, что происходит. лечить надо протеус.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
ikarab
Опытный кот
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57
Контактная информация:

Сообщение ikarab »

ARV писал(а): протеус неправильно обрабатывает переходы "за пределы" памяти программ.


Обратился к разработчику PROTEUS
http://kazus.ru/forum/topics/f_141111.html#141111

Он ответил что уже исправлено, т.е. на верно в 7.5 должно быть нормально.

ARV, ты мог бы проектик прицепить с таким "залетом" чтоб реально убедится исправлено ли нет и запросить исправление ?
Последний раз редактировалось ikarab Сб июл 04, 2009 09:41:25, всего редактировалось 1 раз.
Аватара пользователя
Negor
Вымогатель припоя
Сообщения: 586
Зарегистрирован: Ср мар 07, 2007 22:58:02
Откуда: Черкассы, Украина
Контактная информация:

Сообщение Negor »

Как вариант - пошагово в протеусе. Загрузить туда асм листинг(да и си можно) - и вперёд. Кроме того к авр студии можно подключить протеус.... вариантов много. Главное найти подозреваемых. На самый крайний случай - выводить отладочную инфу в уарт(это если в железе отлаживать). Поставьте конкретный вопрос - получите конкретный ответ.
There is only 10 kind of people: those who understands binary code and those who dont!!!
Аватара пользователя
BCluster
Собутыльник Кота
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев
Контактная информация:

Сообщение BCluster »

Тем кому не хочется выкладывать код - прррямая дорога в самостоятельное изучение. И форум хаить не надо, это отличный форум.
По теме - протеус для моделирования только простых вещей использую. Мне проще заставить в железе рабоатть чем в нем
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»