реклама на сайте
подробности

 
 
> Кроссассемблер 51>AVR, Существует?
muravei
сообщение Mar 30 2006, 11:55
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Собственно всеsmile.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
defunct
сообщение Mar 31 2006, 13:19
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата
Но процессор(и ассемблер) то их отличает

ну и что? архитектуры отличаются очень очень сильно.
Вот основные отличия C51:
1. Все арифметические действия производятся только с регистром Acc (в AVR с любым из 32х регистров).
2. Нет базово-индексной адресации (в AVR есть - Z+Const), только базовая (@DPTR, @R0)
3. Есть множество прямоадресуемых бит и команды проверки конкретного бита (в AVR такого нет)
4. Двух-уровневый приоритетный контроллер прерываний (в AVR одноуровневый)
5. 4-х режимные таймеры, идеология работы которых сильно отличается от таймеров в AVR.
6. Квазидвунаправленные порты (одновременно и ввод и вывод) в AVR такого нет..
7. Невидимая для прямой адресации область RAM, которая пересекается с адресным пространством SFR
8. Скудный набор арифметичеких команд, т.к. C51 задумывался как битовый процессор (нет даже команды сравнения), поэтому трансляция кода на AVR приведет к неоптимальному использованию команд AVR, что в свою очередь в разы раздует код программы.

Короче говоря, написать кросс-ассемблер такой как Вы хотите - реально, но он будет настолько неоптимально использовать возможности AVR, что целесообразность его использования сведется практически к нулю. Для чипов до 16k памяти программ (ПП) проще вручную (зная алгоритм программы) портировать ассемблерный код C51 на AVR, для чипов же с больше 16k ПП программы обычно пишут на C и проблем с портированием не должно быть вообще.
Go to the top of the page
 
+Quote Post
Harbinger
сообщение Apr 1 2006, 06:04
Сообщение #3


старший лаборант
******

Группа: Свой
Сообщений: 2 702
Регистрация: 30-09-05
Из: ЮЗЖД
Пользователь №: 9 097



Цитата(defunct @ Mar 31 2006, 16:19) *
Для чипов до 16k памяти программ (ПП) проще вручную (зная алгоритм программы) портировать ассемблерный код C51 на AVR, для чипов же с больше 16k ПП программы обычно пишут на C и проблем с портированием не должно быть вообще.

Интересно, есть ли у кого опыт ручного "перевода" ассемблерного кода с 51 на AVR? Моего маловато - но есть подозрение, что объем занимаемой памяти возрастет. Если с 8 К (ровно!:)) до 16 - еще куда ни шло...

Сообщение отредактировал Harbinger - Apr 1 2006, 06:14


--------------------
Китайская комплектация - европейское качество! ;)
Go to the top of the page
 
+Quote Post
defunct
сообщение Apr 1 2006, 19:02
Сообщение #4


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Harbinger @ Apr 1 2006, 08:04) *
Интересно, есть ли у кого опыт ручного "перевода" ассемблерного кода с 51 на AVR? Моего маловато - но есть подозрение, что объем занимаемой памяти возрастет. Если с 8 К (ровно!:)) до 16 - еще куда ни шло...

У AVR более гибкая система команд. Да и тонны XCH отпадут. Проверки станут проще.
Так что если переносить с умом, то получается кода меньше чем для C51.. Если же переносить "в лоб" тогда раздуется..
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 19:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.014 секунд с 7
ELECTRONIX ©2004-2016