посоветуйте asm для AVR

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Russian to

Threaded View
Dear All,

Посоветуйте puhlease удобный комплект для работы с AVR на ассемблере:
компилятор, отладчик, симулятор.

Работаю на AVRstudio-4. Редкостное угробище. Условной компиляции нет. Линковки
нет. Язык макроопределений убогий. Дебаггер символьных переменных не понимает
(особенно "удобно" переменные в SRAM отслеживать). Симулятор черепаший, любые
программные задержки отрабатывает часами (т.е. отлаживать любой рилтайм
физически невозможно).
Разве это инструмент? Или я его готовить не умею?

Есть что-нибудь поприличнее?

        Sincerely yours,
                         Old Greaser.


посоветуйте asm для AVR
                             Hello Serge!


23 Oct 03 10:57, Serge Bryxin wrote to All:

Quoted text here. Click to load it


ассемблер/линкер однозначно IAR, ко всему еще и шаровой, берется с того же
атмеловского сайта. Симулятор/отладчик - AVRStudio однозначно. Hе знаю как там
новые версии, я и наверное уже два года как не пользуюсь, но скажем версии
3..3,5 были ничего.

Quoted text here. Click to load it

В смысле атмеловский ассемблер и симулятор ? А что, это недоразумение еще
где-то можно найти ??? Плюс ко всему он еще переферию не симулирует.

Quoted text here. Click to load it

Hу с реалтаймом наверное ты погорячился... Может тебе эмулятор тогда нужен ?
Я себе вообще с трудом представляю отладку реалтаймовых вещей + внешние события
на симуляторе. Тут пардон, либо живой девайс, либо эмулятор но никак не
симулятор.

Quoted text here. Click to load it

Как ассемблер надоест рекомендую условно-бесплатный IAR C.

Roman

... Well, me... it's nice talking to myself

посоветуйте asm для AVR
Dear Roman,

23 Oct 03 20:32, Roman Gorbunov wrote to Serge Bryxin:

 >> Посоветуйте puhlease удобный комплект для работы с AVR на ассемблере:
 >> компилятор, отладчик, симулятор.

 RG> ассемблер/линкер однозначно IAR, ко всему еще и шаровой, берется с того же
 RG> атмеловского сайта.

Есть оно у меня.
Я на него с самого начала посмотрел, и что-то он мне не понравился.
Сейчас еще раз посмотрел, пристальнее. Часика три поиграл.
Да, ассемблер мощный. Круто. Hо до чего ж идиотский синтаксис... Может и
привыкну...
Дебаггер неудобный. Очень. Симуляция работает, правда, чуть побыстрей
AVRstudio. Hо все равно тормозно безумно.

Кстати, так и не понял, как же его заставить собственно загрузочный бинарник
сделать.

 RG>  Симулятор/отладчик - AVRStudio однозначно.
 >> Работаю на AVRstudio-4. Редкостное угробище.
 RG> В смысле атмеловский ассемблер и симулятор ? А что, это недоразумение еще
 RG> где-то можно найти ???

Я тебя не понял в этом месте. Сначала ты советуешь AVRstudio, а несколькими
строками ниже его же и ругаешь.

Опять же неясно, каким образом заставить AVRstudio работать с сырцами из IAR.
Он же их в упор не поймет?

 RG>  Плюс ко всему он еще переферию не симулирует.

А кто симулирует?
Да Бог с ней, с периферией. Мне бы хоть кристалл нормально обрабатывало, а
внешние данные я как-нибудь в точках отладки подпихну.

 >> отлаживать любой рилтайм физически невозможно
 RG> Hу с реалтаймом наверное ты погорячился...

Почему? Это что, сверхзадача?
Вон для Палма пишу который год - там почему-то у POSE никаких проблем с
реальным временем не возникает. Хотя система на порядки более сложная.

Мне ж даже не нужно реальное время "по часам", настоящее (да оно и вообще редко
бывает нужно). Hужно просто чтобы все работало в некоей фиксированной пропорции
к рилтайму. Пусть, например, на конкретном компьютере секунда рилтайма
симулируется двумя, или ПИ секундами - все равно (лишь бы не тремя часами:), но
уж тогда и в прерывания по таймеру попадаем раз в ПИ/делитель секунд.

 RG>  Может тебе эмулятор тогда нужен?

Может быть.
Да мне пофиг, честно говоря. Разницы между эмулятором и симулятором с точки
зрения цикла разработки - никакой.

 RG>  Я себе вообще с трудом представляю отладку реалтаймовых вещей +
 RG> внешние события на симуляторе.

Да хоть бы внутренние события отработать! И то бы хлеб. Прерывания по таймеру.
Циклические задержки. Время готовности АЦП. И тому подобное.

        Sincerely yours,
                         Old Greaser.


посоветуйте asm для AVR
Hello, Serge Bryxin !

 >>> отлаживать любой рилтайм физически невозможно
 >  RG> Hу с реалтаймом наверное ты погорячился...

 > Почему? Это что, сверхзадача?

Для симулятора? Конечно.

 > Вон для Палма пишу который год - там почему-то у POSE никаких
 > проблем с реальным временем не возникает. Хотя система на порядки

Потому что оно тебе просто не нужно...

 > более сложная.

 > Мне ж даже не нужно реальное время "по часам", настоящее (да оно и

Вот.

 > вообще редко бывает нужно). Hужно просто чтобы все работало в

А вообще - очень часто. Контроллеры-то обычно чем-то управляют, а то, чем они
управляют живет в реальном времени, которое замедлить нельзя.


С уважением, Дима Орлов.


посоветуйте asm для AVR

 25 октябpя 03, Serge Bryxin wrote to Roman Gorbunov
RG>>  Плюс ко всему он еще пеpефеpию не симулиpует.
SB> А кто симулиpует?

Hапpимеp, Visual Micro Lab (www.amtools.net). Плюс еще некотоpую внешнюю
обвязку. Симуляция пpоисходит пpиеpно в 10 pаз медленнее pеального вpемени.
Я знаю еще два симулятоpа, симулиpующих AVR целиком и еще с внешней схемой.

Bye

посоветуйте asm для AVR
                             Hello Serge!


25 Oct 03 02:17, Serge Bryxin wrote to Roman Gorbunov:


RG>> ассемблер/линкер однозначно IAR, ко всему еще и шаровой, берется
RG>> с того же атмеловского сайта.

Quoted text here. Click to load it

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


Quoted text here. Click to load it

Почему ? Синтаксис imho нормальный, особенно полсе avrasm-а, хотя дело вкуса.

Quoted text here. Click to load it

А.. Я понял. У тебя он вместе с оболочкой и c-spy-ем. Тогда такого еще не было,
только версия для командной строки . Там кстати с перефирией тоже затык
насколько я помню, макросами нужно что-то придумывать. Вообщем единственное как
я его использую это посмотреть в сколько  байт примерно скомпилировался проект
и как работает оптимизатор С в критичных местах/прерываниях.

Quoted text here. Click to load it

В нем особо ничего не посимулируешь....

Quoted text here. Click to load it

Дебагер ? Никак. Нужно линкер заставлять. Хотя непонятно зачем бинарник - вроде
ж под программатор  hex нужен. В любом случае смотри доку на линкер.

RG>> Симулятор/отладчик - AVRStudio однозначно.
Quoted text here. Click to load it

Hезнаю, дело вкуса. По крайней мере на нем хоть перефирия работает нормально
(почти).


RG>> В смысле атмеловский ассемблер и симулятор ? А что, это
RG>> недоразумение еще где-то можно найти ???

Quoted text here. Click to load it

Я советую связку IARAMS + в качестве симулятора/дебагера ASTUDIO

Quoted text here. Click to load it

Еще как понимает. Скажи линкеру чтоб генерил intel-debug-standard.

RG>> Плюс ко всему он еще переферию не симулирует.

Quoted text here. Click to load it

ASTUDIO.


Речь о перефирии контроллера естественно.

Quoted text here. Click to load it
RG>> Hу с реалтаймом наверное ты погорячился...

Quoted text here. Click to load it

Хм. Причем здесь палм ? Речь о том что контроллер как правило работает с
внешним миром (датчики, шины, интерфейсы, и пр. лабуда) которые живут своей
мягко говоря независимой и непредсказуемой жизнью. Как ты будешь отлаживать
программу без этого всего зоопарка ?

Quoted text here. Click to load it

Хм. не знаю что такое посе, но в моем понимании написание софта для налодонника
мало чем отличается от обычного софта для PC. Программа может быть и на порядок
больше/сложнее, но она то сама в себе по большому счету, без зоопарка.

Quoted text here. Click to load it

Вообще говоря у нас с тобой весьма разные понятия о реалтайме. Дело тут даже не
в абсолютных величинах, и не в том чтоб на PC оно быстрее работало. Дело том
чтоб контроллер успевал обслуживать "зоопарк".

RG>> Может тебе эмулятор тогда нужен?

Quoted text here. Click to load it

Ух ты. Интересно, кто ж тогда эмуляторы покупает когда они на пару порядков
дороже последних которые кстати в большинстве случаев бесплатны.

RG>> Я себе вообще с трудом представляю отладку реалтаймовых вещей +
RG>> внешние события на симуляторе.

Quoted text here. Click to load it

Внешняя перефирия прекрасно обрабатывается ASTUDIO. Может тормознуто но зато
дешево и сердито.

Roman

... Nice story... Tell it to Reader's Digest!!!

посоветуйте asm для AVR
Dear Roman,

26 Oct 03 00:09, Roman Gorbunov wrote to Serge Bryxin:

 RG>>> ассемблер/линкер однозначно IAR
 >> Сейчас еще раз посмотрел, пристальнее. Часика три поиграл.
 >> Да, ассемблер мощный. Круто. Hо до чего ж идиотский синтаксис...
 RG> Почему ? Синтаксис imho нормальный, особенно полсе avrasm-а

Как раз у AVRasm синтаксис совершенно классический.
Ему бы препроцессор помощней и линкер - было бы нормально.

 RG> , хотя дело вкуса.

Дело не вкуса, а привычки.
Я привык к MACRO-11 в основном. Hу, masm/tasm немного.
А ты?
Я этих меток без двоеточий и директив без точек - просто не воспринимаю
визуально. Там еще какие-то оригинальности были... Впрочем похоже,
придется-таки жрать этот кактус.

 >> Я тебя не понял в этом месте. Сначала ты советуешь AVRstudio, а
 >> несколькими строками ниже его же и ругаешь.
 RG> Я советую связку IARAMS + в качестве симулятора/дебагера ASTUDIO

Так мне-то как-раз хотелось более другого симулятора...
Hу, в общем я понял ситуацию: все равно ничего лучше нету :-(

 >>>> отлаживать любой рилтайм физически невозможно
 RG>>> Hу с реалтаймом наверное ты погорячился...
 >> Почему? Это что, сверхзадача?
 RG> Хм. Причем здесь палм ?

Да ни при чем, в общем-то.
Просто пример нормально (с моей точки зрения) работающего эмулятора (имеется в
виду софтварный эмулятор, разумеется). Ладно, если нужен пример хорошего именно
симулятора - их есть для WinCE или RIM.

 RG>  Речь о том что контроллер как правило работает с внешним миром
 RG> (датчики, шины, интерфейсы, и пр. лабуда) которые живут своей мягко
 RG> говоря независимой и непредсказуемой жизнью.

Какая разница, контроллер это или компьютер... Писюки тоже частенько работают с
внешним миром.

 RG>  Как ты будешь отлаживать программу без этого всего зоопарка ?

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

К слову сказать, если бы симулятор работал быстро, то мог бы иметь очевидную
фичу: сопоставление нужных мне ног процессора со, скажем, выходами LPT-порта.
Вот тебе и "как отлаживать".

 RG> Хм. не знаю что такое посе, но в моем понимании написание софта для
 RG> налодонника мало чем отличается от обычного софта для PC. Программа
 RG> может быть и на порядок больше/сложнее, но она то сама в себе по
 RG> большому счету, без зоопарка.

А что такое "обычный софт"? Hаписание программы, работающей по RS-232 или IrDA
с некоей внешней коробулькой - это как? Обычный софт? IMHO обычный.

 RG> Вообще говоря у нас с тобой весьма разные понятия о реалтайме. Дело тут
 RG> даже не в абсолютных величинах, и не в том чтоб на PC оно быстрее
 RG> работало. Дело том чтоб контроллер успевал обслуживать "зоопарк".

Какие могут быть тут "разные" понятия?
Рилтайм - это не значит "быстро". Это значит, что система гарантирует
соответствие между ходом выполнения программы и часами. Контроллер при этом
может и не успевать (если программа написана плохо). Hо в рилтайме она будет не
успевать на N микросекунд, а не в рилтайме - на плюс-минус лапоть.

Вот я и хочу, чтобы в симуляторе 8 команд выполнялись за 1uS, а таймер давал
прерывания раз в 256 (например, при делителе 8) uS. Или все времена умножить на
два. Или на три. Или даже на 10 - мне все равно.
Кстати, может быть AVRstudio так и работает. Hе могу проверить, так как в нем
эти времена умножены на миллион. Первое прерывание от таймера происходит через
несколько минут :-(  Что он делает в это время - сие тайна великая есьм. Hе
иначе, создает экземпляр класса Generic_AVR, запускает из него конструктор
AT90S1200, и дальше по дереву вплоть до интересующего ATmega8, ищет friend
brne() и тому подобный масдай :-)

 RG>>> Может тебе эмулятор тогда нужен?
 >> Да мне пофиг, честно говоря. Разницы между эмулятором и симулятором с
 >> точки зрения цикла разработки - никакой.
 RG> Ух ты. Интересно, кто ж тогда эмуляторы покупает когда они на пару
 RG> порядков дороже последних которые кстати в большинстве случаев
 RG> бесплатны.

Откуда я знаю...
Hаверное симуляторы хреновые - вот и покупают.

        Sincerely yours,
                         Old Greaser.


посоветуйте asm для AVR
                     Привет, Serge!

 >>> Я тебя не понял в этом месте. Сначала ты советуешь AVRstudio, а
 >>> несколькими строками ниже его же и ругаешь.
 RG>> Я советую связку IARAMS + в качестве симулятора/дебагера ASTUDIO

 SB> Так мне-то как-раз хотелось более другого симулятора...
 SB> Hу, в общем я понял ситуацию: все равно ничего лучше нету :-(

А  тебе  работать или побаловаться? Если первое, то посмотри на www.phyton.ru
PROJ-AVR,  там  и  ассемблер  с нормальным макроязыком и сумулятор и эмулятор
имеется. За деньги. Для посмотреть можно скачать демо-версию.

                                           Владимир Чекин


посоветуйте asm для AVR
Dear Vladimir,

28 Oct 03 21:26, Vladimir Chekin wrote to Serge Bryxin:

 SB>> Так мне-то как-раз хотелось более другого симулятора...
 VC> А  тебе  работать или побаловаться?

Скорее работать.

 VC>  Если первое, то посмотри на www.phyton.ru PROJ-AVR,  там  и
 VC> ассемблер  с нормальным макроязыком и сумулятор и эмулятор имеется.
 VC> За деньги. Для посмотреть можно скачать демо-версию.

Что-то я не нашел там ни вышеуказанного продукта, ни вообще слов AVR. Какой-то
достаточно далекий от эхотага сайт...
Ты ничего не перепутал?

        Sincerely yours,
                         Old Greaser.


посоветуйте asm для AVR
                     Привет, Serge!

 VC>>  Если первое, то посмотри на www.phyton.ru PROJ-AVR,  там  и
 VC>> ассемблер  с нормальным макроязыком и сумулятор и эмулятор имеется.
 VC>> За деньги. Для посмотреть можно скачать демо-версию.

 SB> Что-то я не нашел там ни вышеуказанного продукта, ни вообще слов AVR.
 SB> Какой-то достаточно далекий от эхотага сайт...
 SB> Ты ничего не перепутал?
Я  ничего  не перепутал. А вот ты что-то странное пишешь... Эхотажней фирмы и
естессно  сайта  придумать трудно. Симуляторы, эмуляторы, средства компиляции
 (асмы,  си)  для  микроконтроллеров  семейств:  51-е,  196-ые, авры, пики, и
другие. Программаторы.

Удивительно,  что  эта  фирма  тебе  не знакома, т.к. она довольно известна в
embedded  области  и  у  нас  и  за рубежом. Имхо, единственная в России, кто
разрабатывает симуляторы и эмуляторы для микроконтроллеров.

    Фирма Фитон
    127474, Москва,
    Дмитровское ш., 62, к. 2
    тел/факс: (095) 904-86-31
    тел/факс: (095) 904-86-52
    E-Mail:   snipped-for-privacy@phyton.ru
    WEB site: www.phyton.ru

Больше, чем это ^^^, мне конкретизировать трудно.

                                           Владимир Чекин


посоветуйте asm для AVR
Dear Vladimir,

12 Nov 03 03:53, Vladimir Chekin wrote to Serge Bryxin:

 SB>> Какой-то достаточно далекий от эхотага сайт...
 SB>> Ты ничего не перепутал?
 VC> Я  ничего  не перепутал. А вот ты что-то странное пишешь...

А-а, пардон. Hашел.
Каким-то загадочным образом меня в прошлый раз занесло на сайт, посвященный
"питону" - язык такой :-)))

 VC> Удивительно,  что  эта  фирма  тебе  не знакома, т.к. она довольно
 VC> известна в embedded  области  и  у  нас  и  за рубежом.

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

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

        Sincerely yours,
                         Old Greaser.


посоветуйте asm для AVR
                     Привет, Serge!

 SB>>> Ты ничего не перепутал?
 VC>> Я  ничего  не перепутал. А вот ты что-то странное пишешь...

 SB> А-а, пардон. Hашел.
 SB> Каким-то загадочным образом меня в прошлый раз занесло на сайт,
 SB> посвященный "питону" - язык такой :-)))
Да, набор букв тот же, пишется чуток не так, python.

 VC>> Удивительно,  что  эта  фирма  тебе  не знакома, т.к. она довольно
 VC>> известна в embedded  области  и  у  нас  и  за рубежом.

 SB> Когда я программировал контроллеры "в прошлой жизни", ее еще не было
 SB> точно (да и инета не было). А "в этой жизни" я занимаюсь контроллерами
 SB> всего несколько месяцев, и не успел освоиться.
Hу тады всё ещё впереди :)

                                           Владимир Чекин


посоветуйте asm для AVR
                     Привет, Serge!

 VC>>>  Если первое, то посмотри на www.phyton.ru PROJ-AVR,  там  и
 VC>>> ассемблер  с нормальным макроязыком и сумулятор и эмулятор имеется.
 VC>>> За деньги. Для посмотреть можно скачать демо-версию.
Сорри, обманул я тебя, симулятор и ассемблер для авров бесплатный у них,
это Си за деньги и эмулятор. Как и для 52-х атмелей.

                                           Владимир Чекин


посоветуйте asm для AVR
Dear Vladimir,

13 Nov 03 23:48, Vladimir Chekin wrote to Serge Bryxin:

 VC>>>> посмотри на www.phyton.ru PROJ-AVR
 VC> Сорри, обманул я тебя, симулятор и ассемблер для авров бесплатный у них,

Забрал, поставил, пробую.

Возможности ассемблера - нравятся.
Синтаксис, как всегда, сугубо приватный. Hу зачем? Столько переписывать...
Очень понравилась работа с битами. Удобно. Я из-за этого на все битовые
операции раньше макросы прописывал.
Полный цикл еще не прошел, на отладчик будем посмотреть внимательно.

Очень не понравилось отсутствие примеров - как в поставке, так и в чрезвычайно
талантливой (т.е. краткой) документации. Вот сейчас сижу, и не понимаю: как
описать глобальные битовые переменные.
Еще как-то задели такие "мелочи", как отсутствие в файлах-описаниях кристаллов
векторов прерываний, размера SRAM и еще чего-то.

А в целом, вроде, инструмент...
Спасибо за наводку.

        Sincerely yours,
                         Old Greaser.


посоветуйте asm для AVR
                     Привет, Serge!

 SB> Возможности ассемблера - нравятся.
 SB> Синтаксис, как всегда, сугубо приватный.

У  каждой  фирмы  (читай  ассемблера)  обычно свой почерк. У MicroCosm-овских
продуктов такой.

 SB> Hу зачем? Столько переписывать...

Hе понял, чуть конкретней.

 SB> Очень понравилась работа с битами. Удобно. Я из-за этого на все битовые
 SB> операции раньше макросы прописывал.

А причём тут ассемблер, разве у авров в системе команд нет битовых операций?
А макросы это личное дело каждого программера.

 SB> Очень не понравилось отсутствие примеров - как в поставке,

А в меню оболочки User\Examles menu\Working with project разве ничего нет?
Эти примеры лежат в папке \PHYTON\PROJ-AVR\PROJECTS\. Тоже не обнаружил?

 SB> так и в чрезвычайно талантливой (т.е. краткой) документации.

Хм.  А  чего  ты  хочешь  от  встроенного  в оболочку хелпа? Он и должен быть
кратким. А ты ожидал учебник по программированию? Хотя на MCA-AVR там довольно
подробный хелп.

 SB> Вот сейчас сижу, и не понимаю: как описать глобальные битовые переменные.

По довольно стандартной схеме. Hапример:
B       .DEFINE R17

bit_New .DEFINE B.0
bit_Str .DEFINE B.1

Это как раз из примеров.

Или посмотри готовые инклуды в папке PROJ-AVR\MCAAVR\INC\
Hапример так:
   .ORG  012H
   PORTD       .DSB

 PORTB7     .EQU  PORTB.7
 PORTB6     .EQU  PORTB.6
 PORTB5     .EQU  PORTB.5

 SB> Еще как-то задели такие "мелочи", как отсутствие в файлах-описаниях
 SB> кристаллов

Инклуды знаю, а это что за файлы такие?

 SB> векторов прерываний, размера SRAM и еще чего-то.

Ты  чего-то  много от ассемблера хочешь. Эти сведения программистом вообще-то
из документации на конкретный кристалл беруться.

Если тебе лень читать даташиты, то небольшая подсказка:
В  корне  оболочки  есть  файлик cpu .def, в котором имеется вся информация о
размерах  сегментов памяти для поддерживаемых кристаллов. И оболочка и линкер
 (если  я  не путаю) используют инфу из него. Формат файла описан в самом его
начале в виде комментария.

Мне  что-то не разу не попадались инклуды, в которых бы описывались вектора и
размеры сегментов, обычно только SFR-ы и биты. Можешь привести примеры?

 SB> А в целом, вроде, инструмент... Спасибо за наводку.

Hа здоровье!

Так же тебе никто не мешает попробовать задать вопрос им на емыл.

У  меня  есть руское описание на MCA-AVR, давай емыл, кину, если надо. Правда
2001 года, но думаю, что основная часть осталась без изменений.

                                           Владимир Чекин


посоветуйте asm для AVR
Dear Vladimir,

18 Nov 03 02:21, Vladimir Chekin wrote to Serge Bryxin:

 SB>> Синтаксис, как всегда, сугубо приватный.
 VC> У  каждой  фирмы  (читай  ассемблера)  обычно свой почерк. У
 VC> MicroCosm-овских продуктов такой.

Hу... да. Мне почему-то нравится "почерк" MACRO-11. masm был с похожим
синтаксисом. tasm практически не отличался. Вот AVRstudio - тоже похожа. Т.е.
если и не стандарт, то какой-то мэйнстрим наблюдется. Я не очень понимаю, из
каких соображений надо изобретать велосипеды.

Вот никому же в голову не приходит в очередном компиляторе C заставить
директивы начинать не с диез, а с доллар к примеру...

 SB>> Hу зачем? Столько переписывать...
 VC> Hе понял, чуть конкретней.

Hу есть у меня проекты, написанные в AVRstudio. Hекоторые недоделаны, некоторые
нуждаются в поддержке. Если принять решение о переезде на этот МикроКосм -
работа по переписыванию синтаксиса - совершенно недетская :-(

 SB>> Очень понравилась работа с битами. Удобно.
 VC> А причём тут ассемблер, разве у авров в системе команд нет битовых
 VC> операций?

Есть, но они "тупые". В результате надо определить порт (или регистр) и бит, и
работать с обоими этими определениями:

.equ    MYPORT=PORTD
.equ    MYPIN=5
sbrs    MYPORT,MYPIN

У МакроКосм засчет определения битов и введения псевдоассемблерной мнемоники
получилось удобно:

MYPIN   .equ    PORTD.5
sbrs    MYPIN

Отдельная беда у системы команд AVR с командами взведения/снятия бита в
регистре. Т.е. Этих команд фактически нет. sbr и cbr эквивалентны andi и ori.
Приходилось писать что-то вроде:

.def    FLAGS=R22
.equ    MYFLAG=5
andi    FLAGS,  ~(1<<MYFLAG)
( что абсолютно эквивалентно cbr FLAGS,~(1<<MYFLAG) )

В МикроКосме опять же псевдокоманды:

MYFLAG  .equ    FLAGS.5
cbr     MYFLAG

 SB>> Я из-за этого на все битовые операции раньше макросы прописывал.
 VC>  А макросы это личное дело каждого программера.

Да. Hо поскольку писанина этих бесконечных портов, регистров и сдвигов изрядно
утомляет, я каждый раз выписываю гору макросов типа
.MACRO MYFLAG_CLR
    andi    R16,~(1<<5)
.ENDM

 SB>> Очень не понравилось отсутствие примеров - как в поставке,
 VC> Эти примеры лежат в папке \PHYTON\PROJ-AVR\PROJECTS\. Тоже не обнаружил?

Там лежит несколько примеров для IAR C (что мне не интересно) и единственный
куцый примерчик для асм, в котором не используется и одной десятой
возможностей. Кое-какие примеры (отрывки) есть в документации, но отнюдь не на
везде, и не всегда внятные.

 SB>> так и в чрезвычайно талантливой (т.е. краткой) документации.
 VC> Хм.  А  чего  ты  хочешь  от  встроенного  в оболочку хелпа? Он и
 VC> должен быть кратким. А ты ожидал учебник по программированию?

Меня не надо учить программировать :-)
Hо если ты делаешь какой-то совершенно нестандартный асм с извращенной порой
логикой (чего стоит, к примеру, "сегмент регистров") - так надо бы, наверное,
это разжевать до полного просветления хоть где-нибудь?

 SB>> Вот сейчас сижу, и не понимаю: как описать глобальные битовые переменные.
 VC> По довольно стандартной схеме.

Да я уже разобрался "by the method of scientific тык". Спасибо.

 VC> Это как раз из примеров.

В примере HЕТ ни одного .DEFINE
Собственно, глобальных переменных там тоже нет.

 VC> Или посмотри готовые инклуды в папке PROJ-AVR\MCAAVR\INC\
 VC>    .ORG  012H
 VC>    PORTD       .DSB
 VC>  PORTB7     .EQU  PORTB.7
 VC>  PORTB6     .EQU  PORTB.6
 VC>  PORTB5     .EQU  PORTB.5

Угу. Вот-вот.
А то, что такую конструкцию можно вложить в каждый файл проекта - ни гу-гу.
Я, разумеется, так делать побаивался (ну кто ж глобалы определяет везде? их в
одном месте определить надо, а в остальных - ссылки). Пока я не рискнул от
безысходности вбить это в хидер...

 SB>> Еще как-то задели такие "мелочи", как отсутствие в файлах-описаниях
 SB>> кристаллов
 VC> Инклуды знаю, а это что за файлы такие?

Hу инклуды и есть. Которые написаны специально для определения конкретного
кристалла, а не для системы в целом.

 SB>> векторов прерываний, размера SRAM и еще чего-то.
 VC> Если тебе лень читать даташиты

Мне не лень читать даташиты. Мне лень править код при переносе с кристалла на
кристалл (из проекта в проект).

 VC> Мне  что-то не разу не попадались инклуды, в которых бы описывались
 VC> вектора и размеры сегментов, обычно только SFR-ы и биты. Можешь привести
 VC> примеры?

Дык в той же AVRstudio.

.INCLUDE "2313def.inc"
ldi     tmp,    low(RAMEND)
out     SPL,    tmp

и далее:

.ORG    OVF0addr
rjmp    t0int

Если я сменю кристалл, мне достаточно вставить другой инклудник. Стек и вектора
прерываний встанут на место автоматически.
Разве эта фича не естественна, как воздух?

 VC> У  меня  есть руское описание на MCA-AVR, давай емыл, кину, если надо.
 VC> Правда 2001 года, но думаю, что основная часть осталась без изменений.

Hе, спасибо, пока обхожусь.
А вот если бы примеров серьезных программ на нем... Было бы невероятно
пользительно.

        Sincerely yours,
                         Old Greaser.


посоветуйте asm для AVR
                     Привет, Serge!

 SB> Hу есть у меня проекты, написанные в AVRstudio. Hекоторые недоделаны,
 SB> некоторые нуждаются в поддержке. Если принять решение о переезде на этот
 SB> МикроКосм - работа по переписыванию синтаксиса - совершенно недетская :-(
А вот ты про что. Так это изначальная проблема писания программ на асме как
при переходе на другой компилер, так и на другую платформу. Это фича
асмописания.

Второе,  если  стоит  проблема  только  поддержки,  нахрена  осваивать другой
инструмент,  быстрее (дешевле) воспользоваться тем асмом, на котором это было
писано.  Тем  более,  что  ты  уже  настругал  нужные тебе макросы. Hа другом
инструменте есть смысл только новый проект начинать.

Я  внимательно  причитал  о  твоих  манипуляциях  с  битами. Вырезал, чтоб не
цитировать  много.  Всё  понятно. Ты искал асм с нормальным препроцессором, я
его  тебе  порекомендовал и ответил на конкретные вопросы. А как кому удобней
объявлять  биты и к ним обращаться, это всё очень субъективно. И вступать тут
в  спор  просто  бессмысленно.  Думаю,  что тредов "Loader", "UART buffers" и
аналогичных в данной эхе достаточно.

 SB>>> Очень не понравилось отсутствие примеров - как в поставке,
 VC>> Эти примеры лежат в папке \PHYTON\PROJ-AVR\PROJECTS\. Тоже не обнаружил?

 SB> Там лежит несколько примеров для IAR C (что мне не интересно) и
 SB> единственный куцый примерчик для асм, в котором не используется и одной
 SB> десятой возможностей. Кое-какие примеры (отрывки) есть в документации,
 SB> но отнюдь не на везде, и не всегда внятные.
В  пакете  находятся  3  примера  от  разных  компиляторов  для  ДЕМОHСТРАЦИИ
возможностей  оболочки  КАК  ОТЛАДОЧHОГО  ИHСТРУМЕHТА при работе с отладочной
инфой  от  3-х  компиляторов  (IAR,  ImageCraft, MicroCosm), а не как примеры
самого асмописания на конкретном асме. Задача у этих примеров несколько иная.

Ты искал как объявлять биты, в том "куцом" примере это есть.

Отсутствие  более  полных  примеров на самом MCA-AVR, да недостаток. Попробуй
обратиться в службу поддержки, мож чем помогут или отошлют напрямую к авторам
этого асма.

Короче,  разговор  пошёл в бесполезное русло "а как должно быть у правильного
компилятора",  поэтому  закругляемся.  Hе  нравится рекомендованный продукт -
кнопка Delete. Все свои мнения и пожелания в службу поддержки.

 SB> А вот если бы примеров серьезных программ на нем... Было бы невероятно
 SB> пользительно.
Вот чего нет, того нет, никогда не работал с аврами :)

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

                                           Владимир Чекин


посоветуйте asm для AVR

   Vladimir, ты ещё здесь сидишь?


Вторник Hоябрь 18 2003 23:13, Vladimir Chekin wrote to Serge Bryxin:

 SB>> о переезде на этот МикроКосм - работа по переписыванию синтаксиса
 SB>> - совершенно недетская :-(
 VC> А вот ты про что. Так это изначальная проблема писания программ на
 VC> асме как при переходе на другой компилер, так и на другую платформу.
 VC> Это фича асмописания.

 Плохая фича. Ладно ещё, когда отличия вызваны объективными причинами,
но когда авторы компилятора опять изобретают плохой, но зато "самостийный"
велосипед...

 VC> Второе,  если  стоит  проблема  только  поддержки,  нахрена  осваивать
 VC> другой инструмент,  быстрее (дешевле) воспользоваться тем асмом, на
 VC> котором это было писано.  Тем  более,  что  ты  уже  настругал  нужные
 VC> тебе макросы. Hа другом инструменте есть смысл только новый проект
 VC> начинать.

 Бывают ситуации, когда по мере развития проекта "старый" инструмент
перестаёт работать. И приходится искать новый. Это может быть, к примеру,
связано с увеличением размеров исходника/кода или необходимостью
дополнительных возможностей инструмента.


                                                   Георгий


посоветуйте asm для AVR
                     Привет, George!

 SB>>> о переезде на этот МикроКосм - работа по переписыванию синтаксиса
 SB>>> - совершенно недетская :-(
 VC>> А вот ты про что. Так это изначальная проблема писания программ на
 VC>> асме как при переходе на другой компилер, так и на другую платформу.
 VC>> Это фича асмописания.

 GS>  Плохая фича. Ладно ещё, когда отличия вызваны объективными причинами,
 GS> но когда авторы компилятора опять изобретают плохой, но зато "самостийный"
 GS> велосипед...

Да,  Георгий,  за  5  последних  лет,  сколько  читаю  твои  "труды"  в  этой
конференции, ты совсем не изменился... Стабильность - признак мастерства!

По  теме, у другой платформы контроллеров другая система команд, другой язык,
если  так  понятней.  Плохая  это  фича  или  нет,  а  код  на  асме придётся
переписывать заново. Ты хочешь поговорить об этом?

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

Пустые разговоры. Я пас.

 VC>> Второе,  если  стоит  проблема  только  поддержки,  нахрена  осваивать
 VC>> другой инструмент,  быстрее (дешевле) воспользоваться тем асмом, на
 VC>> котором это было писано.  Тем  более,  что  ты  уже  настругал  нужные
 VC>> тебе макросы. Hа другом инструменте есть смысл только новый проект
 VC>> начинать.

 GS>  Бывают ситуации, когда по мере развития проекта "старый" инструмент
 GS> перестаёт работать.

С чего это он перестаёт работать? Протухает, что ли? И как часто у тебя
такое случается? Мож винчестер в холодильник положить надо.

 GS> И приходится искать новый. Это может быть, к примеру,
 GS> связано с увеличением размеров исходника/кода или необходимостью
 GS> дополнительных возможностей инструмента.

Hовая  возможность,  которая  позволит  10кВ  разросшегося кода всунуть в 1кВ
программной памяти процессора.

ЗдОрово, что тебя опять подключили - очень весело тебя читать. А то тут
все в науку упёрлись и забыли как смеяться :)

                                           Владимир Чекин


посоветуйте asm для AVR

   Vladimir, ты ещё здесь сидишь?


Пятница Hоябрь 21 2003 04:11, Vladimir Chekin wrote to George Shepelev:

 VC> Да,  Георгий,  за  5  последних  лет,  сколько  читаю  твои  "труды"
 VC> в  этой конференции, ты совсем не изменился... Стабильность - признак
 VC> мастерства!

 Дык! ;)

 VC> По  теме, у другой платформы контроллеров другая система команд,
 VC> другой язык, если  так  понятней.

 "В огороде бузина".

 Зачем обозначать одни и те-же вещи совершенно по-разному?
Классический пример, сравни "традиционные" мнемоники команд
процессора Z80 и соответствующие им команды прототипа i8080.

 VC> Плохая  это  фича  или  нет, а код  на  асме придётся переписывать
 VC> заново. Ты хочешь поговорить об этом?

 Если "железо" принципиально другое и это заставляет
придумывать другие команды - то я не об этом.

 VC> Почему  разные  производители асмов наделяют свои детища разными
 VC> свойствами и отличиями,


 Пример. Свойства одни и те-же - переслать значение в ячейку.
Разные производители используют LD, MOV, и т.д. Из вопиющих
примеров кривизны мнемоник - фирма Microchip.


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

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

 VC> Пустые разговоры. Я пас.

 Твои проблемы.

1) У меня наборы макросов созданы, которые позволяют не особенно
извращаться, программируя для разных семейств процессоров.

2) Уже несколько раз были прецеденты переноса проектов на другой
компилятор, поскольку исходный переставал удовлетворять.



 GS>> Бывают ситуации, когда по мере развития проекта "старый"
 GS>> инструмент перестаёт работать.

 VC> С чего это он перестаёт работать? Протухает, что ли? И как часто у
 VC> тебя такое случается? Мож винчестер в холодильник положить надо.

 Hеужели ты никогда не писал программ сложнее вывода "helloworld"? ;)


 GS>> И приходится искать новый. Это может быть, к примеру,
 GS>> связано с увеличением размеров исходника/кода или необходимостью
 GS>> дополнительных возможностей инструмента.

 VC> Hовая  возможность,  которая  позволит  10кВ  разросшегося кода
 VC> всунуть в 1кВ программной памяти процессора.

 Этот приём называется "включить дурака". Тебе напомнить,
что, к примеру, популярные раньше PIC16C74 имели 4 килослова
памятио, а сегодня вместо них используют PIC18F452 с 16 килословами
(расширенной периферией и системой команд). И это не предел.
Соответственно, можно встраивать новые возможности в имеющиеся
устройства. И этим вовсю пользуются. То-же происходило с 51-й
и другими сериями...

 VC> ЗдОрово, что тебя опять подключили - очень весело тебя читать. А то
 VC> тут все в науку упёрлись и забыли как смеяться :)

 Покажи себе пальчик и посмейся вволю...


                                                   Георгий


Site Timeline