AVR GCC&IAR

Jan 06, 2004 Last reply: 22 years ago 1699 Replies

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

Среда Февраль 11 2004 13:48, Alexey Boyko wrote to George Shepelev:

AM>>> Ладно, последний вопрос - если ты такой умный, чего же ты тогда AM>>> такой бедный? Hу при таких тиражах хотя бы на и-нет то долно AM>>> хватать... имхо GS>> В моём районе это нереально. AB> В твоем районе нет телефонов?

В моём районе коммуникации почти весь год залиты водой, почти вся обслуга АТС уволена. Коннект устанавливается с трудом (ночью) и обычно рвётся через несколько минут.

AB> А откуда же фидо берется?

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

Hадеюсь этот вопрос закрыт. Я его дальше обсуждать не намерен.

Георгий

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

Среда Февраль 11 2004 13:50, Alexey Boyko wrote to George Shepelev:

GS>> Это я понял. Hо "развёрнутая" запись подразумевает, что можно GS>> попробовать что-то вроде GS>> mov pc,r1 AB> Можно.

Оч. хорошо.

GS>> Т.е. "настоящий" ret, вида GS>> pop pc GS>> не реализован? AB> Реализован конечно.

Оч. хорошо.

AB> А в режиме thumb именно так и записывается. Hе реализован AB> автоматический push pc.

Т.е. команды CALL нету? :-/

А механизм прерываний как реализован?

GS>> Организация "стека возвратов" - на регистрах, причём "ручками"? AB> MP еще не так может извращаться.

Если процессор позволяет, можно и не так извращаться! ;)

GS>> А мне казалось, что подобные маразмы кончились во времена GS>> IBM360/370 AB> Видимо, закончились.

Где-ж закончились, если CALL приходится "ручками эмулировать"?

Георгий

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

Среда Февраль 11 2004 13:55, Alexey Boyko wrote to George Shepelev:

AB>>> Вот кусок другого обработчика. GS>> Кошмар! Отсутствие поддержки "массивов" кнопок, AB> У меня кнопки не двуполые, не размножаются.

В исходной задаче кнопок было много...

AB> Зачем мне поддержка множества кнопок в программе, если их всего две?

Значит пример ты привёл некорректный...

GS>> куча явно определённых констант, которые неплохо бы объявить GS>> "символически" и задокументировать... AB> Возможно.

Точно! Гораздо приятнее крутить все настройки в начале программы (или в отдельном "настроечном" файле), чем выискивать нужные места по тексту программы.

AB>>> Если сканирую клавиатуру реже, чем длительность дребезга AB>>> - обработка антидребезга не нужна. GS>> Рискуешь как минимум получить "ложные" отпускания при плохом GS>> контакте. AB> Hе встречал. Hо это уже не дребезг.

Обработка таких "глюков" называют "антидребезгом". Помогает.

AB>>> Hужно будет - хватит. Я не утверждаю, что Си - панацея на все AB>>> случаи жизни. А лишь то, что в большинстве случаев писать на Си AB>>> получается выгоднее. GS>> "Случаи - они разные бывают" (c) AB> Я про большинство случаев.

Так в том ведь и дело, что у каждого - свои случаи...

GS>> Ассемблер - машинозависимый язык. Мне хочется максимально уйти GS>> от машинозависимости... AB> Возьми Си и не мучайся, если нет особого на то желания.

Си - компилятор (принципиально машинозависимый). Хочется совместить преимущества "фортовского" машинонезависимого интерпретатора и его ядра, реализованного на C (тоже даёт относительную машинонезависимость)...

Георгий

Hello Maxim.

12 Feb 04 05:00, you wrote to me:

MP>>> HÅÔ - × ÄÁÎÎÏÍ ÓÌÕÞÁÅ ÏÂÙÞÎÁÑ ÐÒÏÇÒÁÍÍÅÒÓËÁÑ. é ÜÔÏ ÎÅ MP>>> ÅÄÉÎÓÔ×ÅÎÎÏÅ ÍÅÓÔÏ ÇÄÅ × ÁÒÍ ÓÄÅÌÁÎÏ ÞÅÒÅÚ ÚÁÄÎÉÃÕ. AB>> äÁ×ÁÊ Ñ ÓËÁÖÕ ÔÁË: ôÏÌØËÏ × áòí ÓÄÅÌÁÎÏ ÎÏÒÍÁÌØÎÏ, ×Ï ×ÓÅÈ AB>> ÏÓÔÁÌØÎÙÈ ÐÒÏÃÅÓÓÏÒÁÈ - ÞÅÒÅÚ ÚÁÄÎÉÃÕ. ôÁË ÌÕÞÛÅ? MP> "÷ÓÅ ËÒÕÇÏÍ ÄÕÒÁËÉ, ÔÏÌØËÏ Ñ ä'ÁÒÔÁÎØÑÎ".

ôÅÐÅÒØ ×ÉÄÉÛØ ÂÅÓÓÍÙÓÌÅÎÎÏÓÔØ ÔÁËÉÈ ×ÙÓËÁÚÙ×ÁÎÉÊ.

AB>> þÔÏ ÅÝÅ ÔÅÂÅ × ÎÅÍ ÎÅ ÎÒÁ×ÉÔÓÑ? MP> HÁÐÒÉÍÅÒ ÁÂÓÏÌÀÔÎÏ ÒÁÚÎÙÅ ÍÎÅÍÏÎÉËÉ × 16-32 ÂÉÔÎÏÍ ÒÅÖÉÍÁÈ.

ôÁË É ËÏÍÁÎÄÙ ÒÁÚÎÙÅ.

MP> ÷ÓÅ ×ÒÅÍÑ ÎÁÄÏ ÐÏÍÎÉÔØ ËÁËÏÊ ÒÅÖÉÍ ×ËÌÀÞÅÎ

×ÁÈ.

MP> × ÄÁÎÎÙÊ ÍÏÍÅÎÔ É ÐÅÒÅÓÔÒÁÉ×ÁÔØ ×ÓÀ ÌÏÇÉËÕ.

HÅ ÐÒÏÂÏ×ÁÌ. ðÉÓÁÌ ×ÓÅÇÄÁ × ÒÅÖÉÍÅ áòí.

MP> ëÓÔÁÔÉ ËÁË ÔÁÍ Õ ÎÁÓ ÔÁËÉÅ ÔÒÁÂÌÙ ÒÁÚÇÒÅÂÁÅÔ ×ÁÛ ÌÀÂÉÍÙÊ ÓÉ?

õ gcc ÅÓÔØ ËÌÀÞÉË, ÞÔÏ-ÔÏ ÔÉÐÁ -mthumb-interwork, ÔÏÇÄÁ ÏÎ ÉÓÐÏÌØÚÕÅÔ ËÏÍÁÎÄÕ bx ×ÍÅÓÔÏ bl ÄÌÑ ×ÙÚÏ×Á ÐÏÄÐÒÏÇÒÁÍÍ.

MP> ëÁË Õ ÎÅÇÏ ×ÏÏÂÝÅ ÒÁÂÏÔÁÅÔ ÓÏÏÂÒÁÖÁÌËÁ × ÐÌÁÎÅ ×ÙÂÏÒÁ ÎÁÉÌÕÞÛÅÇÏ MP> ÒÅÖÉÍÁ ÎÁ ÄÁÎÎÙÊ ÍÏÍÅÎÔ?

åÅ Õ ÎÅÅ ÎÅÔ. éÍÈÏ, ÜÔÏ ×ÏÏÂÝÅ ÎÅ ËÏÍÐÉÌÑÔÏÒÕ ÒÅÛÁÔØ.

AB>>

formatting link
? MP> ôÕÈÌÑÔÉÎÁ. ôÏÎËÏÓÔÅÊ ÔÁÍ ÎÅÔ. ôÁÍ ÂÁÎÁÌØÎÕÀ ÒÁÓÔÁËÔÏ×ËÕ É ×ÌÉÑÎÉÅ ÎÁ MP> ÆÌÁÇÉ ÉÓËÁÔØ ÚÁÍÕÞÉÛÓÑ.

arm7tdmi.pdf òÁÚÄÅÌ 10 Instruction Cycle Operation

AB>> ðÒÏÓÔÏ ÐÏÔÏÍ ÍÏÖÅÛØ ÐÒÏÓÍÏÔÒÅÔØ ÐÒÏÇÒÁÍÍÕ ÅÝÅ ÒÁÚ É ÐÏ×ÙËÉÄÙ×ÁÔØ AB>> ÌÉÛÎÉÅ ÐÕÛÉ. MP> ÷ÏÔ ÅÝÅ ÆÉÇÎÅÊ ÚÁÎÉÍÁÔÓÑ ÎÁ ×ÓÑËÏÍ ÏÔÓÔÏÅ - ÍÅÓÔÁ È×ÁÔÁÅÔ, É ÔÁË MP> ÓÏÊÄÅÔ.

ôÏÇÄÁ ÎÁ óÉ ÐÉÛÉ.

Alexey

Hello Alex.

12 Feb 04 11:41, you wrote to Maxim Polyanskiy:

GS>>> ô.Å. "ÎÁÓÔÏÑÝÉÊ" ret, ×ÉÄÁ GS>>> pop pc GS>>> ÎÅ ÒÅÁÌÉÚÏ×ÁÎ? MP>> ôÏÞÎÏ.

AM> ldmea fp, {sp,pc}

üÔÏ ×ÁÒÉÁÎÔ, ÅÓÌÉ × ÆÕÎËÃÉÉ ÅÓÔØ ËÁÄÒ ÓÔÅËÁ. åÓÌÉ ÎÅÔ - ÔÏ ÐÒÏÓÔÏ

ldmea sp!, {pc}

ëÓÔÁÔÉ, ÔÙ ×ÏÓËÌÉÃÁÔÅÌØÎÙÊ ÚÎÁË ÚÁÂÙÌ ×ÓÔÁ×ÉÔØ.

Alexey

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

Среда Февраль 11 2004 14:08, Alexey Boyko wrote to George Shepelev:

GS>>>> Hо что будет записано в регистр по ldrb? В "старшие" байты... AB>>> нули. GS>> Т.е. "беззнаковое расширение"? А как к этому относится сишный GS>> компилятор под этот процессор? ;-) AB> Вот знаковое засширение AB> int qqq(signed char x) AB> { AB> return x; AB> } AB> qqq: AB> mov r0, r0, asl #24 ; r0 := r0 ariphmetic shift left на 24 AB> mov r0, r0, asr #24 ; r0 := r0 ariphmetic shift right на AB> 24 AB> mov pc, lr

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

AB> Вообще-то работа с байтами нужна в основном для обработки строк. А в AB> строках байты - беззнаковые.

Достаточно типичная задача - работа с байтовыми массивами данных. Получается вчетверо компактнее, чем в 32-битном варианте. А знаковые это данные или беззнаковые - отдельный вопрос...

GS>>>> С pc можно работать как с "обычным" регистром? Очень интересно! AB>>> Да. Это псевдоним регистра r15 GS>> Hравятся мне такие процы с "симметричным" регистровым банком... AB> Мне тоже. mps430 тоже весьма симметричный.

Всё руки не доходят с ними поиграться :-(

AB>>> Если функция вызывает другие функции, то на входе r14 - AB>>> сохраняется. Обычно - одной командой вместе с другими AB>>> регистрами. stm - (store multiple registers) GS>> Сохранение контекста. Интересно, хотя и очень избыточно, стек-то GS>> не резиновый, да и тактов должно потребоваться довольно много... AB> Да нет, не избыточно. ldm/stm сохраняет от нуля до 16 регистров, В AB> коде команды есть поле из 16 бит с флагами, сохранять или не сохранять AB> данный регистр.

Здорово!

AB> Конкретно у At91m40800 - не густо. AB> Flash - нет.

Упс! Защиты прошивки нет - интерес резко падает... :-(

AB> ОЗУ - 8К. AB> Контроллер чипселектов. AB> Таймер - 3 канала, 16 бит. AB> USART - 2 шт. AB> TQFP100 AB> Это больше микропроцессор, а не микроконтроллер.

Хороший микропроцессор, интересный. Hо возникает проблема с защитой от "пиратского тиражирования"...

GS>> Работе с "плавающей точкой"? AB> Из соображений потребления, АРМ не содержит команд работы с плавающей AB> точкой, но имеет механизм добавления их туда.

Что за механизм? В двух словах...

Георгий

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

Среда Февраль 11 2004 21:34, Maxim Polyanskiy wrote to George Shepelev:

MP> Cтек организует компиллер - в данном случае сишный. А уж как он делает MP> - его личное дело. Проц не предназначен для написания прог на асме.

Hу, тут ты малость увлёкся ;)

Hа его асме явно писать можно, причём довольно эффективно.....

Георгий

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

Четверг Февраль 12 2004 05:00, Maxim Polyanskiy wrote to Alexey Boyko:

AB>> Что еще тебе в нем не нравится? MP> Hапример абсолютно разные мнемоники в 16-32 битном режимах. Все время MP> надо помнить какой режим включен в данный момент и перестраивать всю MP> логику.

А действительно так надо непрерывно переключаться? ;)

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

Подозреваю, что у си тут никаких проблем. Прога пишется на int-ах, процессор работает (почти наверняка) в 32-х битном режиме.

AB>>>> Обычно, чтобы писать программы на ассемблере, сначала изучают AB>>>> систему команд того процессора, под который собираются писать. MP>>> Hормального описания которой надо поискать. AB>>

formatting link
? MP> Тухлятина. Тонкостей там нет. Там банальную растактовку и влияние на MP> флаги искать замучишся. Есть другие более полезные в этом плане MP> ресурсы но там тоже не все... Потом АРМ ком - не панацея от всех MP> процов. Ядро то одно, но есть такие тонкости реализации, что MP> закачаешься.

Значит пиши для него на сях. Это я тебе говорю ;)

Георгий

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

Четверг Февраль 12 2004 13:26, Alexey Boyko wrote to Maxim Polyanskiy:

AB>>> Просто потом можешь просмотреть программу еще раз и повыкидывать AB>>> лишние пуши. MP>> Вот еще фигней заниматся на всяком отстое - места хватает, и так MP>> сойдет. AB> Тогда на Си пиши.

Просто удивительная солидарность во взглядах! ;-)

Георгий

Hello George!

12 Feb 04 11:53, George Shepelev wrote to Roman Gorbunov:

Если с уартом некорректно работаете к чему тогда претензии ? ССЗБ.

Roman

Hello George!

12 Feb 04 11:54, George Shepelev wrote to Roman Gorbunov:

Учитывая что тарификаторы и остальную станционныю технику ты тоже также "видел" как и станционные AOHы не вижу смысла продолжать.

RG>> Кстати на счет кустарщины, я там у вас на сайте СС Госкомсвязи не RG>> видел что то...

Понятно, посему или нет или ты к этим разветвителям имеешь такое же отношение как и Я. Чтоб разработчик не знал сертефицирована ли его разработка или нет это уж извини слишком.

Roman

... Another tomorrow remember to walk in the light

Hello George!

12 Feb 04 11:55, George Shepelev wrote to Roman Gorbunov:

RG>> Это вектор чтоль ? Hашли у кого покупать.....

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

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

А почему должны преобретать в Харькове ? Hе по номенклатуре не по срокам не по цене он порсто не проходит.

RG>> Пусто потраченное время. Если глюки есть они обходятся по ходу, RG>> но чтоб тратить время на исследования это уж слишком....

Hе работал, не знаю.

Что то здесь проскакивало и врядле твоя информация представляет какую-то коммерческую ценность если ты об этом.

Roman

... Haven't you got a riff - haven't you got a song

Привет George!

Thursday February 12 2004 11:55, George Shepelev wrote to Roman Gorbunov:

GS> Этот вопрос не в моей компетенции. Я не уполномочен давать информацию GS> о ценах. Сорри.

..

GS> Упреждая вопросы сразу поясняю, были _весьма_ серьёзные глюки, GS> о которых я не уполномочен рассказывать :-X

..

GS> Hадеюсь этот вопрос закрыт. Я его дальше обсуждать не намерен.

..

Жора, у тебя всегда так - когда доходит до конкретных вопросов - ты "не уполномочен..", "ищите сами" и т.д......

Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28 aka snipped-for-privacy@yahoo.com

formatting link
,
formatting link
, ftp://altor.sytes.net

Hello All.

Тpед объявляется оффтопиком. Пpошy пpекpатить обсyждение в нем с 14 февpаля.

С уважением, Co-Moderator <mailto:andy coбaкa svrw.ru>

formatting link

Hello All.

Тpед "Телефония" объявляется оффтопиком, в связи с полным отсyтствием "эхотажности". С 14 февpаля пpошy полностью пpекpатить обсyждение в этом тpеде.

С уважением, Co-Moderator <mailto:andy coбaкa svrw.ru>

formatting link

Доброго здоровья, George!

12 Feb 04 11:56, George Shepelev написал для Sergei Tuchinski:

ST>>>>>> "строгой типизацией" ты называешь указание размеров встроенных ST>>>>>> арифметических типов данных? GS>>>>> Да. ST>>>> фигня это. и говорит о том, что ты вообще не представляешь ST>>>> себе предмет разговора. GS>>> Представляю. ST>> тогда не надо привязывать строгость типизации к размерам встроенных ST>> типов данных GS> Они в языке "ассемблер" связаны самым неразрывным образом.

мы про ассемблер заговорили вдруг? строгая типизпция подразумевает контроль согласования используемых типов данных и операций на этапе компиляции. при этом может допускаться неявное преобразование типа, если оно непротиворечиво. а "отличать слово от байта" - это понимание на уровне детской песочницы. но опять же, опускаясь до твоего уровня. ты, например, в курсе, что в с++ преобразование unsigned в signed невозможно даже через static_cast<>?

ST>>>> кстати говоря, даже по поводу твоих высказываний. например, ST>>>> код GS>>> Да, я в курсе, что там не всё проверяется. К сожалению. ST>> все проверить невозможно. и, более того, не нужно. GS> Весьма желательно. Ибо полезно. Если нужно, вводить опции, отключающие GS> какие-то проверки (для любителей приключений).

Джером К. Джером очень удачно сформулировал принцип, иначе именуемый, например, "бритвой оккама" - "В лодку с собой следует брать не все то, что МОЖЕТ ПРИГОДИТЬСЯ, а то, без чего HЕЛЬЗЯ ОБОЙТИСЬ". Контроль диапазона (который ты называешь "контролем типов") может и должен реализовываться на уровне библиотеки.

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

несомненно. не надо только подменять понятия

ST>>>> без проблем скомпилируется в ВР. а при выполнении выдаст ST>>>> ошибку "range check" только при условии компиляции с проверкой ST>>>> диапазона, GS>>> Возможность такой проверки на этапе выполнения - очень большое GS>>> удобство. ST>> не спорю, но кто сказал, что такое средство должно быть атрибутом ST>> языка, а не библиотеки?

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

может быть, тогда стоит и все библиотеки заодно в компилятор воткнуть? и все программы пользовательские туда же заодно - чтобы "не вынуждать"

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

а теперь ты подумай, как у тебя должен будет выглядеть компилятор В КАЖДОМ ИЗ ВОЗМОЖHЫХ ВАРИАHТОВ....

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

WBR, Сергей. ICQ: 101347299

... Мужчины воюют, женщины делят трофеи.

Hello, George Shepelev!

Вы писали к Yuriy K:

У этой "фирмы" нет никаких дилеров в той местности, да и вообще за пределами Украины.

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

Hello George.

12 Feb 04 23:26, you wrote to Maxim Polyanskiy:

GS> Подозреваю, что у си тут никаких проблем. Прога пишется на int-ах, GS> процессор работает (почти наверняка) в 32-х битном режиме.

В режиме Thumb уменьшена разрядность команды с 32-х до 16-и бит, и количество доступных регистров в 16 до 8. Разрядность данных не меняется.

Alexey

Hello George.

12 Feb 04 11:57, you wrote to me:

AB>> А в режиме thumb именно так и записывается. Hе реализован AB>> автоматический push pc.

GS> Т.е. команды CALL нету? :-/ GS> А механизм прерываний как реализован?

Для прерываний, есть отдельный регистр R14, то есть при прерывании PC, сохраняется в R14_irq, который в режиме прерывания виден как R14.

после выхода из прерывания командой SUBS R15, R14, #4 восстанавливается обычный режим работы.

GS>>> А мне казалось, что подобные маразмы кончились во времена GS>>> IBM360/370 AB>> Видимо, закончились. GS> Где-ж закончились, если CALL приходится "ручками эмулировать"?

Аж две команды.

Alexey

Hello George.

12 Feb 04 11:58, you wrote to me:

GS>>> Кошмар! Отсутствие поддержки "массивов" кнопок, AB>> У меня кнопки не двуполые, не размножаются. GS> В исходной задаче кнопок было много...

Той, котрую ты в самом начале - предложил? Hе рашал такую. Решал, правда сканирование просто матрицы 3х4, без индикатора.

AB>> Зачем мне поддержка множества кнопок в программе, если их всего AB>> две? GS> Значит пример ты привёл некорректный...

Какой был.

AB>> Возможно. GS> Точно! GS> Гораздо приятнее крутить все настройки в начале программы GS> (или в отдельном "настроечном" файле), чем выискивать нужные GS> места по тексту программы.

Так я тоже практикую.

Alexey

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required