Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Машинные коды команд AT90S2313?


Автор: Коляй 19.10.2005, 20:04
Ребята, пособите у кого есть машинные коды команд для этого кристала? Дока то есть, но там я ни-чо не понимаю. Приходится сначала похожую команду найти или несколько команд с разными регистрами, а потом экспериментально уже подбирать какой надо. Неудобно. Ещё есть ли в природе какой-нибудь редактор попроще? А то в АВР-Студио не поменять ничего (файл НЕХ). Приходится в Студио работать, а изменения вносить Пони-Прог - ом, что тоже не удобно, в Пони-Прог адреса надо удваивать и байты каждый раз местами переставлять и обратно не забывать перед сохранением.

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

Автор: PILOT 19.10.2005, 21:24
Вопрос не детский. Изменить bin файл под свои нужды это не так просто. Я вообще уважаю тех у кого это получается хорошо, таких правда немного.
Короче тебе нужно провести приличную работу, а именно:
1) получить бин-файл
2) загнать его в дисассемблер и получить ассемблерный исходник
3) попытаться определить и назвать метки, процедуры, прерывания, область констант, чтобы уловить структуру программы.
4) изменить то, что необходимо.
5) откомпилировать код и перепрошить кристалл.

СУВ.
ЗЫ. Утилита дисассемлера: http://www.avrfreaks.net/index.php?module=FreaksTools&func=viewItem&item_id=272


Автор: Guest 19.10.2005, 22:56
Спасибо большое! Попробую поразбираться.

Автор: Коляй 24.10.2005, 16:42
Вот попробовал одну команду перевести в коды. Самая обычная - загрузка регистра константой LDI. И сразу увидел сколько заморочек. Команда состоит 4-х значного кода. Первый знак - буква Е, второй - первое (16) число загружаемой константы. Третий - номер регистра от 0 до F(что соответствует регистрам от 16 до 31), и четвёртый - второе число константы. Например, записать в регистр 17 константу BC - EB1C. Другие команды уже как то по-другому.
С завистью вспоминаю систему команд на 8080, когда было всё просто и понятно. И по цвету всё отличалось и на двойном листе умещалось.

Автор: PILOT 24.10.2005, 18:45
Во первых не четырехзначного а двухбайтового.
Во вторых AVR менее распространен чем х80, поэтому отладочные штуковины тоже малораспространены.
Система команд АВР весьма гибкая, и позволяет делать очень много (если не почти все), все сделано для пользователя, для компиляторов. Ядро так вообще замечательное 16 РОН, + 16РОН с неполной математикой. Это просто здорово!

СУВ.

Автор: Коляй 13.11.2005, 11:34
Какой же всё таки язык лучше начать изучать Си или АСЕМ? Или оба потихоньку? Вчера взял примеры на AVR123.by.ru попробовал написать в СИ короткую программку - 8 светодиодов включает через порт B. Провозился до обеда. А потом то же самое на АСЕМе сделал за час, только правильнее. Диоды включаются по порядку 1,2,3... а не так как там было 1,2,1и2,3,... Мой код занял около 15 строчек, а тот что СИ откомпеллил заметно больше, причём пять команд CALL совершенно непонятных. Или может в СИ надо грамотно писать по особому порядку? А главное что в АСМе всё просто и понятно. Это при том что я не соображаю в программировании вообще и не разу ничего не писал сам.

Автор: PILOT 13.11.2005, 12:57
Сначала лучше учить асм, потом Си, потому что на Си писать объемные программы быстрее, и отлаживать программы на Си быстрее. Зная асм, всегда можно предугадать во что(в какой ассебмлерный кусок) траслируется то или иное действие на Си.

СУВ.

Автор: Коляй 13.11.2005, 18:05
Спасибо.

Автор: Коляй. 23.11.2005, 20:28
Цитата
Спасибо.

А что в AVR-studio4 аналог. компоратор не поддерживается? (2313) А то включены в компораторе "захват таймера1 по переключению" и ничего не происходит как не включай.
Пилот, и спасибо за утилитки! Должен признать - очень полезные "штучки" оказались!

Автор: PILOT 1.12.2005, 01:39
На здоровье!
В AVR-Studio должна быть вся периферия выбранного контроллера.

СУВ.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)