Отговори на тема  [ 6 мнения ] 
Асемблер(и) на АРМ 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 07, 2012 11:22 pm
Мнения: 3084
Мнение Асемблер(и) на АРМ
Налага ми се в един проект да премина от 8051 на АРМ.
Не съм избрал още АРМ-а (това сигурно ще отнеме месец) - не са ми близко,ясни и т.н. - но преполагам ще е Кортекс нещо си
( не се предвиждат паралелна външна шина и сложна операционна система ).
Кодът е на асемблер '51. По различни причини ще се опитам да го "транспортирам" към асемблер на АРМ.
Въпросът ми е - доколкото сте запознати - доколко са еднакви мнемониките(асемблер) на различните АРМ-ове,
какви евентуални подводни камъни да избягвам?
Не съм наясно дали е възможно, но ще се опитам да направя препроцесор , с който да "преведа" файловете.
Всяка помощ е добре дошла!


Пет Мар 30, 2012 6:55 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Юни 05, 2006 1:48 pm
Мнения: 4906
Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
Мнение Re: Асемблер(и) на АРМ
Живота човешки е много къс, та да се програмира на асемблер ;)
а пък това дето си го замислил е щуротия от 80-то ниво :!:
пренапиши си с един молив блок схемата на програмата, и си я напиши отново за къфто арм искаш ,
ама това превеждане... забрави

_________________
... ако трети ден не ти се работи... това означава, че е сряда !


Пет Мар 30, 2012 7:02 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение Re: Асемблер(и) на АРМ
Едва ли става дума за чак толкова много код (колко се събира в 8051 - не че го познавам де)
та да си струва усилието да се пише средство за превод.

От друга страна навярно ARM има повече регистри от 8051 (ако и да не му стигат да е
свестен load/store процесор), та може и да се окаже лесно да се емулира на сорс
ниво. Но едва ли ще е толкова лесно, аз като правих 68k сорс емулирано за
power преди 10-ина години се озорих доста.

Писането на асемблер за ARM при мнемониките каквито съм им ги виждал (не ползвал) си
е чиста проба мазохизъм, и аз пиша на нещо като асемблер (VPA) за power, но мнемониките
нямат нищо общо с оригиналните (които също са поне толкова неизползваеми за обемисто
програмиране и те).

Ако стига скокът в изчислителната мощност може би и runtime емулатор за 8051
да се окаже опция, аз като иземулирах 6809 на 400 MHz power тръгна 50-ина - 100
пъти по-бързо от оригинала :D .

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Пет Мар 30, 2012 7:15 pm
Профил WWW
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Пет Фев 17, 2006 9:17 am
Мнения: 765
Местоположение: Стара Загора
Мнение Re: Асемблер(и) на АРМ
Бе за tgi писането на емулатор на осемдесет-петдесет-и-дърво за АРМ (на асм, разбира се :D ) може да е упражнение за събуждане преди кафето... за задаващия въпроса едва ли :) Послушай Мухата. Иначе,
Цитат:
Въпросът ми е - доколкото сте запознати - доколко са еднакви мнемониките(асемблер) на различните АРМ-ове,



Еднакви са, нали това е идеята, както и на 8050 и дърво са еднакви независимо от производителя, нали е все едно ядро. Двете (8051 и арм) си приличат колкото северния елен с крокодила...


Съб Мар 31, 2012 1:11 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 07, 2012 11:22 pm
Мнения: 3084
Мнение Re: Асемблер(и) на АРМ
setoy,
еднакви са АРМ-овете , ама не съвсем :-)
например R8-R12 регистрите на М3 имат разлика от тия в М0, която може да се окаже доста горчива от моята гледна точка.


Съб Мар 31, 2012 8:52 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение Re: Асемблер(и) на АРМ
Пренаписване на С може би е най-доброто решение, но не винаги най-желаното... Аз имам подобен проект, който с удоволствие бих пренаписал, само че след това няма как да го тествам във всички варианти. Затова обмислям да направя симулатор на 8051 евентуално. Ще видим, засега проекта стои на изчакване...

Иначе има различни АРМ ядра. Но няма смисъл да се ползват старите АРМ7/9, т.е. 4-та архитектура. Така че остава само 7-а архитектура, т.е. избора е между COrtex M0 и М3/4. Cortex M0 има смисъл ако проекта е прост и ще се правят много бройки. При малки бройки разликата в цената не е чак толкова голяма и бих препоръчал директно Cortex M3.

Относно подводните камъни... Значи мнемониките не са проблем. Проблемите са от друго естество.
Първо най-вероятно ще ти се наложи да смесиш твоя асемблер с чужд С код (а може би и твой код). Иначе ще ти такова мамата докато подкарваш желязото, щото то не е като простите периферии на 8051.
Второ най-вероятно ще ти се наложи и да дебъгваш, щото с малко повече код + шибаното желязо или трябва да дебъгваш или да умееш да гледаш на боб ;-)

Въпреки че има някакви 8051 с JTAG като цяло понятието "дебъгване" при 32-бит процесори дооооста се раличава. Приготви се с търпение както се казва. Но освен всичко останало трябва да се научиш и да пишеш кода, така че да може да се дебъгва. Работата не е само да генерираш код. Трябва да се генерира и дебъг информация за символи, за функции, за стека. Без тая информация дебъгера не бачка като хората, всъщност понякога изобщо не бачка ;-)
За съжаление обаче дебъг информацията и разните други прагми и подробности силно зависят от съответния компилатор. За GCC мисля че мога да помогна с основните неща.


Съб Мар 31, 2012 2:17 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 6 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни