Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Си для AVR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2
Yuriy_AVR
Здравствуйте , Уважаемые форумчане !
Я на этом форуме пока новенький . С AVR работаю с самого их рождения . На asm сделал огромное кол-во проэктов , и вот теперь хочется посмотреть что же такое Си , и в самом ли деле он так хорош для контроллеров ( и не только ) , сколько о нём восторженных отзывов . Из своего опыта хочу сказать - если программа хорошо продумана идеологически и логически , то всё остальное - дело техники ( и уж если на asm есть глюки , то виноват не asm , а руки ) . Поэтому хочется самому убедиться в его преимуществах ( и естественно недостатках ) . В связи с этим вопрос первый - поделитесь пожалуйста вылеченным IAR ( хочется начать с этого пакета ) , и подскажите пожалуйста хорошую книжку по Си ( желательно конечно на русском , в крайнем случае на английском ), желательно адаптированную для контроллеров , и уж если для AVR , то вообще хорошо .
Заранее всем спасибо .
umup
Вот чтобы не искать кряки к каждой новой версии, используйте лучше WinAVR.

Шпак Ю.А.Программирование на языке С для AVR и PIC микроконтроллеров.2006
http://rapidshare.de/files/27144815/000947.rar.html

Socher Программирование микроконтроллеров AVR с использованием GCC
http://www.linuxfocus.org/Russian/March2002/article231.shtml

http://www.smileymicros.com/QuickStartGuide.pdf

Pardue J.C programming for microcontrollers
www.narod.ru/1110.zip

Неплохая библиотека подпрограмм :
http://hubbard.engr.scu.edu/avr/avrlib/
SasaVitebsk
Цитата(Yuriy_AVR @ Jan 15 2007, 23:26) *
Здравствуйте , Уважаемые форумчане !
Я на этом форуме пока новенький . С AVR работаю с самого их рождения . На asm сделал огромное кол-во проэктов , и вот теперь хочется посмотреть что же такое Си , и в самом ли деле он так хорош для контроллеров ( и не только ) , сколько о нём восторженных отзывов . Из своего опыта хочу сказать - если программа хорошо продумана идеологически и логически , то всё остальное - дело техники ( и уж если на asm есть глюки , то виноват не asm , а руки ) . Поэтому хочется самому убедиться в его преимуществах ( и естественно недостатках ) . В связи с этим вопрос первый - поделитесь пожалуйста вылеченным IAR ( хочется начать с этого пакета ) , и подскажите пожалуйста хорошую книжку по Си ( желательно конечно на русском , в крайнем случае на английском ), желательно адаптированную для контроллеров , и уж если для AVR , то вообще хорошо .
Заранее всем спасибо .


Слово в слово - я. biggrin.gif Начал с Си где то с год назад. Подтвержу все восторженные отзывы. (использовал IAR) Очень жалею что не пробовал раньше. Достоинства - переносимость и наглядность. Красота проги. Книгу лучше купить, чем пользоваться электронной. Я пользуюсь Герберд Шилдт "Полный справочник по С. Четвёртое издание". Заказывал на OZONе. Нашёл ответы на свои и чужие вопросы. smile.gif Остальное - особенности компилятора. Некоторые в доке - некоторые тут.

Удачи.
beer_warrior
Значиться так - С для МК самое то. Особенно если работаешь с несколькими семействами и перетаскиваешь наработки с одного на другое.

Компиляторы.
Есть два серьезных: IAR и gcc aka WinAVR.
Для обоих есть порты и для ARM, MSP и других платформ.
Немало копий сломано в их сравнительном анализе, но оба на голову выше всех остальных.

Книги - присоединяюсь к SasaVitebsk, по поводу Шилдта и еще порекомендую - Брюс Эккель "Философия С++".
http://c2p.ru/2006/07
http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html

Это маст рид, ответы на вопросы как?, почему? и зачем?
kd_Rash
Шпака - хорошая книга, но лучше не в электронном виде
еще примеры на си есть у Голубцова

я, например, все что не могу найти в магазине, покупаю на books.ru

набираешь там - AVR, и выбирай

у меня почти все есть с пометкой AVR smile.gif

Удачи, Дмитрий
andrvisht
Может для начала и сложно, и направлена она на С++, хотя С там тоже описано, нет только функций с переменным числом параметров, но многие ответы на вопросы нашел только в ней.
В инете не видел, да и не искал, вот что на обложке:

Харьковский институт информационных технологий
С.В. Глушаков, C.В. Смирнов, А.В. Коваль
Практикум по С++
www.bookpost.com.ua
изд. ФОЛИО г. Харьков 2006г. www.folio.com.ua

Пользую, как и многие сдесь IAR, проблем не встречал, всем доволен.
big256
книги по АВР можно найти здесь + еще кучу полезной инфы

http://ihtik.lib.ru/electrotehn_4janv2007/
Abakt
мне понравилось "Си для МК" [BANNED] - по-моему толково и самое нужное.

Цитата(umup @ Jan 15 2007, 22:45) *
Pardue J.C programming for microcontrollers
www.narod.ru/1110.zip


Не качается. Можно проверить ссылочку ?
Pyku_He_oTTyda
Цитата
книги по АВР можно найти здесь + еще кучу полезной инфы

http://ihtik.lib.ru/electrotehn_4janv2007/


Отличная ссылка, хочется все, но 10 гигов многовато для меняsad.gif
umup
Цитата
www.narod.ru/1110.zip

Извиняюсь, должно быть так :
www.umup.narod.ru/1110.zip
CSB
Б. Керниган, Д. Ритчи "Язык программирования Си".
В электронном виде можно http://www.lib.ru/CTOTOR/kernigan.txt, но ИМХО лучше купить.

После набора определенного опыта можно:
"ВЕРЕВКА ДОСТАТОЧНОЙ ДЛИНЫ, ЧТОБЫ… ВЫСТРЕЛИТЬ СЕБЕ В НОГУ"
Правила программирования на Си и Си++
Ален И. Голуб

Качать тут: http://www.sdteam.com/texts/11/251.zip
Serg79
Цитата(CSB @ Jan 17 2007, 23:26) *
Б. Керниган, Д. Ритчи "Язык программирования Си".
В электронном виде можно http://www.lib.ru/CTOTOR/kernigan.txt, но ИМХО лучше купить.

Классика. Если хочешь действительно почувствовать 'C', то надо начинать с этой книги.
Abakt
Полная книга от профи по WinAVR "C programming for AVR" - SmileyMicros.com
[BANNED]
на сайте SmileyMicros.com лежит только первая глава.
Pyku_He_oTTyda
Цитата
Abakt

Цитата
[BANNED]

Это реклама курса или прикол такой нездоровый
unichorn
Цитата(big256 @ Jan 16 2007, 15:56) *
книги по АВР можно найти здесь + еще кучу полезной инфы

http://ihtik.lib.ru/electrotehn_4janv2007/


a14.gif Руки так и чешутся скачать всё. Но трафика моловато sad.gif
bloodden
Цитата(unichorn @ Jan 18 2007, 16:25) *
a14.gif Руки так и чешутся скачать всё. Но трафика моловато sad.gif

Кому надо, если в Киеве, то могу накачать и залить на болванки.
Удачи.
fmdost
Если Вы не планируете написать windows под АВР, забудте про С НАВСЕГДА!
zltigo
Цитата(Т.Достоевский @ Sep 2 2007, 21:33) *
Если Вы не планируете написать windows под АВР, забудте про С НАВСЕГДА!

Даже если-бы 'навсегда!' было-бы написано красными буквами высотой с экран, то и это не сделало-бы это утверждение хоть чуть-чуть более убедительным и уж тем более верным.
fmdost
Перенесите проэкт из IAR в VINAVR и наоборот, а на последок из IAR4.21 В IAR 4.3. Думаю достаточно.
zltigo
Цитата(Т.Достоевский @ Sep 2 2007, 22:18) *
Перенесите...

А почему Вы решили "переносить" какие-то свои личные проблемы с GCC,IAR,PCAD,.... на других?
У меня, например, никаких проблем с портированием 'C' исходников с платформы на платформу (в отличие от ASM) /компилятор не возникает.
fmdost
Цитата(zltigo @ Sep 2 2007, 23:36) *
А почему Вы решили "переносить" какие-то свои личные проблемы с GCC,IAR,PCAD,.... на других?
У меня, например, никаких проблем с портированием 'C' исходников с платформы на платформу (в отличие от ASM) /компилятор не возникает.

А Причём PCAD?
rezident
Цитата(Т.Достоевский @ Sep 3 2007, 01:18) *
Перенесите проэкт из IAR в VINAVR и наоборот, а на последок из IAR4.21 В IAR 4.3. Думаю достаточно.

Недавно переносил проект (причем чужой) из CodeVision в IAR. Никаких особых трудностей это не составило.
SasaVitebsk
Цитата(Т.Достоевский @ Sep 2 2007, 21:33) *
Если Вы не планируете написать windows под АВР, забудте про С НАВСЕГДА!


А какие вообще у Вас лично претензии к Си. А то голословное утверждение да ещё в такой ветке отпугивает начинающих. Пожалуйста аргументируйте.

Если разбирать более низкий пост о портировании программ, то он не выдерживает никакой критики.
1) Сопровождать программу и вносить в неё изменения на Си - в десятки раз легче.
2) Переносимость с камня на камень - в десятки раз легче.
3) Переносимость с компилятора на компилятор не такая уж и сложная. В тоже время вас никто не заставляет переходить с компилятора на компилятор. Тот же IAR или GCC поддерживает одновременно множество камней.
4) Отладка на Си тоже проще.
5) Результирующий код как правило не намного уступает.
sensor_ua
Цитата
Если Вы не планируете написать windows под АВР, забудте про С НАВСЕГДА!

Гыwink.gif Никогда не писал программ для AVR на ассемблере.
А что такое windows?wink.gif
defunct
Цитата(Т.Достоевский @ Sep 2 2007, 21:33) *
Если Вы не планируете написать windows под АВР, забудте про С НАВСЕГДА!

01.gif
fmdost
Цитата(SasaVitebsk @ Sep 3 2007, 00:15) *
А какие вообще у Вас лично претензии к Си. А то голословное утверждение да ещё в такой ветке отпугивает начинающих. Пожалуйста аргументируйте.

Аргументирую. Я сам больше схемотехник. Использую в своих изделиях 5 микроконтроллерных архитектур. И по времени столько же сколько автор поста. Однако с языками высокого уровня возникают определённые сложности.
1: Все компиляторы, это комерческие проэкты расчитанные на выкачивание максимального количества денег. (В том числе и бесплатые) Отсюда совешенная неуверенность, что через год Вы сможете БЫСТО добавить что нибудь в Вашу програму.

2: Пока что не встречал компилятора генерирующего хотя бы жалкое подобие асмовской программы. В основном код в РАЗЫ больше.

3 Перенести микроконтроллерый код с одной платформы на другую гораздо проще и главное быстрее чем разбираться с тонкостями компилятора. Которые к тому же отличаются от версии к версии.
Ещё раз повторюсь микроконтроллерного. Речь не идет о многомегабайтном проэкте который врядли применим к AVR.

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

Теперь лирическое отступление извиняюсь за bb-offtopic.gif
ИМХО создаётся впечатление что для присутствующих сдесь микроконтроллеры есть самоцель, а не простая микросхема установленная в ряду среди других таких же микросхем.
И если Вы занимаетесь не только программированием а пытаетесь сделать целиком устройство которое что-то дёргает или там чем то в такт чему то моргает, то у Вас скорее всего не будет времени заниматься копанием в тухлой документации компилятора.
Вообщем если Вы 20 лет успешно пишете на асме, то целиком переходить на С надо только при очень веских к тому основаниях. bb-offtopic.gif

Если Вы всё-таки решились перейти на С то после каждой копиляции обязательно гляньте в отладчик. В иаре размер кода очень сильно зависит о положения операторов. И при определённом опыте компилятору можно очень помочь с генерацией опимального кода. Не брезгуйте применять те же методы по упаковке или ускоению которые вы применяли на асме. Действуют буквально так-же, на любом уровне оптимизации!!!

Конкретно к С претензий у меня нет никаких.
Stariy Alex
Дейтел - Как программировать на C - 1002 стр. (подробно)
Керниган - Ричи - Язык программирования C - Издание 2 (исправленное, pdf)
PS. Залить на фтп? Komu na mylo?
defunct
Цитата(Stariy Alex @ Sep 3 2007, 00:35) *
PS. Залить на фтп? Komu na mylo?

pdf с bookmark'ами? Залейте, пригодится.
Спасибо beer.gif


Цитата(Т.Достоевский @ Sep 3 2007, 00:17) *
Аргументирую.

Отвечу смайликами на ваши аргументы.

Цитата
1: Все компиляторы, это комерческие проэкты расчитанные на выкачивание максимального количества денег. (В том числе и бесплатые) Отсюда совешенная неуверенность, что через год Вы сможете БЫСТО добавить что нибудь в Вашу програму.

07.gif

Цитата
2: Пока что не встречал компилятора генерирующего хотя бы жалкое подобие асмовской программы. В основном код в РАЗЫ больше.

sad.gif

Цитата
3 Перенести микроконтроллерый код с одной платформы на другую гораздо проще и главное быстрее чем разбираться с тонкостями компилятора.

01.gif

Ага, конечно. Вы хотите сказать, что можно вот так вот запросто взять 100k исходников на asm под x51 и запустить на AVR? А проект написанный на plain C вызовет сложности с переносом из-за компиляторов?
Смешно... Может быть вы схемотехник от Бога, но зачем же ж вот так рубить с плеча, и городить невесть-что в теме где вы "ноль в сиянии".

Цитата
Если Вы всё-таки решились перейти на С то после каждой копиляции обязательно гляньте в отладчик. В иаре размер кода очень сильно зависит о положения операторов.

А вы не задумывались, что не всегда нужно получить минимальный размер кода?
Иногда проще взять толстый кристал.
fmdost
bb-offtopic.gif Граждане!!! Раскажите что делает программа на 100к??? Без сарказма. Сам больше 16 не писал никогда! bb-offtopic.gif
defunct
Цитата(Т.Достоевский @ Sep 2 2007, 22:18) *
Перенесите проэкт из IAR в VINAVR и наоборот.

Переносил и не раз. Более 30 минут перенос не занимал.
В чем подвох?
PS: WinAVR а не VINAVR.
zltigo
Цитата(Т.Достоевский @ Sep 3 2007, 00:17) *
Отсюда совешенная неуверенность, что через год Вы сможете БЫСТО добавить что нибудь в Вашу програму.

Только тем и занимаюсь, что в изделиях со сроком жизни 10-15-20 лет чего-то бысторо добавляю.
Вашу неуверенность в себе разделить никак не могу.
Цитата
В основном код в РАЗЫ больше.

Для программ "нажалнакнопкузажгласьлампочка" больше. Для более сложных разница начинает нивелироваться и меняться.
Цитата
Перенести микроконтроллерый код с одной платформы на другую гораздо проще и главное быстрее чем разбираться с тонкостями компилятора.

Дело обстоит с точностью до наоборот. Без вариантов.
Цитата
Вполне возможно что компилятор старой версии и захочет работать под вистой.

Вы на ASM пишете? А почему Assembler "захочет"? Потому, что кончается на 'у'?
Цитата
Но на новое железо, ХР вы скорее всего поставить не сможите.

Ну мотивируйте хоть как-то smile.gif.
defunct
Цитата(Т.Достоевский @ Sep 3 2007, 01:14) *
Раскажите что делает программа на 100к???offtopic:

Обеспечивает удаленное управление электроподстанцией 35KV.
fmdost
Поставьте НТ на новое железо, или на НТ акробат 6. Он "сам пришёл"?

Цитата(defunct @ Sep 3 2007, 02:25) *
Обеспечивает удаленное управление электроподстанцией 35KV.

Нейросетью вычисления проводит? Или спреадспектрум кодирование 256 бит последовательность? THD + cos фи в каждом канале?
defunct
Цитата(Т.Достоевский @ Sep 3 2007, 01:27) *
Нейросетью вычисления проводит? Или спреадспектрум кодирование 256 бит последовательность? THD + cos фи в каждом канале?

Нет всего лишь обеспечивает удаленное управление рядом ячеек с пульта диспетчера.
Автоматику в ячейках выполняют устройства релейной защиты. Там программы гораздо больше 100k и на ASM их никто не делает.
fmdost
Цитата(defunct @ Sep 3 2007, 02:39) *
Нет всего лишь обеспечивает удаленное управление рядом ячеек с пульта диспетчера.
Автоматику в ячейках выполняют устройства релейной защиты. Там программы гораздо больше 100k и на ASM их никто не делает.

К сожелению про релейную зашиту ничего не знаю.
А сколько ячеек и сколько параметров? Почему 100кб?
Мои знакомые не смогли уместить в мегу64 обычный пульт управления для моделей. Правда там таблиц много. 10x256 байт. (типа нелинейные резисторы) + килобайта 2 кода, ну всё-равно не больше. Вот и спрашиваю.
haker_fox
Цитата(Т.Достоевский @ Sep 3 2007, 06:17) *
Аргументирую. Я сам больше схемотехник. Использую в своих изделиях 5 микроконтроллерных архитектур. И по времени столько же сколько автор поста. Однако с языками высокого уровня возникают определённые сложности.

Все правильно! Вы же больше схемотехник! На тонкости изучения ЯВУ (языка высокого уровня) нет времени.
Цитата(Т.Достоевский @ Sep 3 2007, 06:17) *
1: Все компиляторы, это комерческие проэкты расчитанные на выкачивание максимального количества денег. (В том числе и бесплатые) Отсюда совешенная неуверенность, что через год Вы сможете БЫСТО добавить что нибудь в Вашу програму.

Если не сложно, объясните, как бесплатные компиляторы ориентированы на выкачивание денег?
Цитата(Т.Достоевский @ Sep 3 2007, 06:17) *
2: Пока что не встречал компилятора генерирующего хотя бы жалкое подобие асмовской программы. В основном код в РАЗЫ больше.

Вы так один говорите. А другие в это время пишут на си/си++ и видят совсем другое.
Для справки: недавно писал программу управления манипулятором (МП-9С), с применением ОС, на Си++. Функции программы: ручное управление звеньями робота, занесение программы с пульта управления и ее выполнения, опрос датчиков, свзяь с PC. Код всего лишь 8 027 б. Расход ОЗУ 600 байт. Проект выполнен за месяц. Переносим. С асмом бы копался и отлаживался месяца два и больше...
Цитата(Т.Достоевский @ Sep 3 2007, 06:17) *
3 Перенести микроконтроллерый код с одной платформы на другую гораздо проще и главное быстрее чем разбираться с тонкостями компилятора. Которые к тому же отличаются от версии к версии.

Отличаются... на то и выходят новые версии программ, чтобы отличаться от старых, вносить что-то новое. Иначе бы прогресс остановился. Тем более различия не так уж и ощутимы для работы.
Цитата(Т.Достоевский @ Sep 3 2007, 06:17) *
По поводу пункта 1. Вполне возможно что компилятор старой версии и захочет работать под вистой 2.
Но на новое железо, ХР вы скорее всего поставить не сможите.

Windows выбросил. Использую Linux, которую на новое железо (если оно такое новое и несовместимое со старым) все равно портируют.
Цитата(Т.Достоевский @ Sep 3 2007, 06:17) *
Теперь лирическое отступление извиняюсь за bb-offtopic.gif
ИМХО создаётся впечатление что для присутствующих сдесь микроконтроллеры есть самоцель, а не простая микросхема установленная в ряду среди других таких же микросхем.
И если Вы занимаетесь не только программированием а пытаетесь сделать целиком устройство которое что-то дёргает или там чем то в такт чему то моргает, то у Вас скорее всего не будет времени заниматься копанием в тухлой документации компилятора.

Ошибочное мнение на счет самоцели. Для меня это например просто цель. Цель получить конкретно работающее устройство!
А времени на копание документации по микроконтроллеру и другим компонентам, применяемым в изделии у Вас будет? А Вы не учитываете, то, что доку на компилятор придется прочесть хорошо только один - два раза и далее пользоваться этим инструментом, получая огромный выигрыш по времени разработки и отладки девайса + переносимости кода и т.п. Не правда ли ощцтимый плюс?
Цитата(Т.Достоевский @ Sep 3 2007, 06:17) *
Вообщем если Вы 20 лет успешно пишете на асме, то целиком переходить на С надо только при очень веских к тому основаниях.

Если Вы 20 лет пишите на асме (пусть даже и успешно), то явно пора пересмотреть свои привычки.
Цитата(Т.Достоевский @ Sep 3 2007, 06:17) *
Если Вы всё-таки решились перейти на С то после каждой копиляции обязательно гляньте в отладчик. В иаре размер кода очень сильно зависит о положения операторов. И при определённом опыте компилятору можно очень помочь с генерацией опимального кода. Не брезгуйте применять те же методы по упаковке или ускоению которые вы применяли на асме. Действуют буквально так-же, на любом уровне оптимизации!!!

Открытие Америки... многим известные и многими знаемые вещи.
Цитата(Т.Достоевский @ Sep 3 2007, 06:17) *
Конкретно к С претензий у меня нет никаких.

Неправда Ваша. Есть.
sensor_ua
2 Т.Достоевский
Я не больше, а схемотехник. И уменя используются C51, PIC, AVR, MSP430, ARM от PIC12C508A до LPC2378 всяких размеров и наполнений. И это не от желания развести зоопарк. Не могу сказать, что наши программисты асы. Эти люди, а некоторые уж больше чем 30 лет пишут для промавтоматики, пишут на ассемблере только когда "жизнь заставляет" - где-то, например, быстрая математика нужна или где-то в старом контроллере нужно поменять методику расчётов, а в память уже не лезет (итерационные вычисления с double на 51-омwink.gif). Так чтоб писать на ассемблере без нужды - у них и мысли не возникает. Я же имею субъективное мнение, что уже лет 5 аргумент насчёт общего преимущества в объёме у ассемблера против Си есть заблуждение. Всвязи с резким падением цен на кремний и продвижением всё более интегрированных решений, время на разработку в части схемотехники постепенно уменьшается. А time-to-market не ждёт - упор идёт на работу программистов. Т.е. кроме многих (пока) специализированных устройств появляется всё больше reference-платформ (аппаратно-программных), что обеспечивает не только некоторое уменьшение работы схемотехникам, но и уменьшение времени на разработку вообще. Так вот использование ЯВУ (а для микроконтроллеров в подавляющем большинстве случаев это Си и наблюдается рост доли C++) позволяет осуществлять быстрый перенос решений с платформы на платформу, что уменьшает time-to-market, а также уменьшает затраты на поддержку.

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

ЗЫ Вспомнилась Валерия Новодворская с её очаровательной фразой:
"Вы все дураки и не лечитесь! Одна я умная, в белом пальто стою красивая!"
http://foto.rambler.ru/public/manechkaaa/1/10/1-web.jpg
Dog Pawlowa
Цитата(sensor_ua @ Sep 3 2007, 08:22) *
ЗЫ Вспомнилась Валерия Новодворская с её очаровательной фразой:
"Вы все дураки и не лечитесь! Одна я умная, в белом пальто стою красивая!"
http://foto.rambler.ru/public/manechkaaa/1/10/1-web.jpg

Есть и другие фразы :
"Я Пастернака не читал, но осуждаю" smile.gif
sensor_ua
Цитата
Есть и другие фразы :
"Я Пастернака не читал, но осуждаю"

А ещё:
- Армянин лучше, чем грузин.
- Чем лучше?
- Чем грузин.
Dog Pawlowa
Цитата(sensor_ua @ Sep 3 2007, 08:22) *
.. Не могу сказать, что наши программисты асы. Эти люди, а некоторые уж больше чем 30 лет пишут для промавтоматики, пишут на ассемблере только когда "жизнь заставляет" ...

Если серьезно...
У нас ситуация с программистами хуже. Они, как Т.Достоевский, долго отстаивали свое право писать на языке, который знают - а именно на ассемблере. В результате они просто не нужны фирме, поскольку не в состоянии произвести нужный продукт к нужному сроку. То, что сделано, становится непереносимо уже на стадии сдачи проекта. Плюс их требования к постановке задачи (еще бы - переделка очень трудоемка), плюс требования по тестированию. Удручает. Стали переучиваться, но столько времени потеряно... Я лично их списал и пишу сам на С. Благо, что цифровая схемотехника в наше время схлопывается.
zcost
IARовский сишный компилятор дает вполне оптимальный код. Выигрыш по скорости проектирования получается существенный. А в узких местах можно и подпрограмму на асме вставить. Но в моей практике подобное встречалось пару раз. И то для обработчика прерывания. Хотя порой сложно объяснить компилятору на Си как к примеру сделать циклический сдвиг через перенос. А в основном код получается по компактности практически такой же как и на ассемблере.
SasaVitebsk
Я тоже очень долго писал на асме. Сам в спор не вступал. Как можно спорить "о вкусе устриц, которых не ел". Но был убеждён, что я напишу прогу на АСМе быстрее чем некоторые на Си.

1. Скорость написания программы на АСМе и Си возможно и близкая, но если требуется внести среднее изменение, то на Си его сделать в разы проще!!! В разы! Это я говорю совершенно убеждённо. А изменения вносятся часто. То есть оптимальность написания проги, оптимальность использования регистров - в этом случаем являются сильнейшим тормозом. И всё портится с внесением "заплаток".
2. Сам переносил программу с х51 на AVR на асме путём переписывания без мозгов. Поверьте, всё равно на Си это делается проще и главное, красивее.
3. Пробовал в проекте делать вставки на АСМе. Отказался. Производительность выросла на единицы процентов. Так зачем этот цирк?

Как то здесь зашла дискуссия о ненужности ОСей для малых камней. Автор надрывался с просьбой "продемонстрировать эффективность". И кто-то из знающих классную фразу сказал по типу что код не будет эффективнее, но написание будет более удобным, более функциональным. Что-то подобное и с использованием компилятора. Компилятор обладает преимуществами, но плата за эти преимущества - эффективность кода. Но не в разы, как вы пишете. А единицы процентов. Я сам поразился, когда сделал первый проект. И назад, у меня возврата уже нет. А вам рекомендую перейти. А затраты на освоение особенностей компилятора, будут меньше, чем затраты на работу с АСМ прогами.

Совершенно искренне.
bbill
Цитата(Stariy Alex @ Sep 3 2007, 00:35) *
Дейтел - Как программировать на C - 1002 стр. (подробно)
Керниган - Ричи - Язык программирования C - Издание 2 (исправленное, pdf)
PS. Залить на фтп? Komu na mylo?


Залейте, пожалуйста, bbill@mail.ru
Спасибо.
AVR
Т.Достоевский, Вы жестоко заблуждаетесь... crying.gif
fmdost
Цитата(AVR @ Sep 4 2007, 00:28) *
Т.Достоевский, Вы жестоко заблуждаетесь... crying.gif

В чём?
singlskv
Цитата(Т.Достоевский @ Sep 4 2007, 00:32) *
В чём?
Глубокоуважаемый Достоевский, раз уж Вы так радеете за программирование
на Asm, хочу предложить Вам небольшую задачку(которая кстати не очень хорошо
решается на С), необходимо поменять в байте порядок следования битов на
противоположный, т.е.
вход: b7 b6 b5 b4 b3 b2 b1 b0
выход: b0 b1 b2 b3 b4 b5 b6 b7
ну конечно нужна максимальная скорость, но без таблиц(места нетуsmile.gif)

Покажите нам пример как нужно эфективно писать проги....
IgorKossak
Ну, ребятки, развлекли!
fmdost
Цитата(singlskv @ Sep 4 2007, 00:45) *
Глубокоуважаемый Достоевский, раз уж Вы так радеете за программирование
на Asm, хочу предложить Вам небольшую задачку(которая кстати не очень хорошо
решается на С), необходимо поменять в байте порядок следования битов на
противоположный, т.е.
вход: b7 b6 b5 b4 b3 b2 b1 b0
выход: b0 b1 b2 b3 b4 b5 b6 b7
ну конечно нужна максимальная скорость, но без таблиц(места нетуsmile.gif)

Покажите нам пример как нужно эфективно писать проги....

Дайте подумать!
singlskv
Цитата(Т.Достоевский @ Sep 4 2007, 00:53) *
Дайте подумать!
Да ни вапрос, до завтрашнего утра у Вас есть время smile.gif
А если серьезно ,то до завтрашнего вечера sad.gif Это максимум на обдумывание такой задачки...
fmdost
Цитата(singlskv @ Sep 4 2007, 01:02) *
Да ни вапрос, до завтрашнего утра у Вас есть время smile.gif
А если серьезно ,то до завтрашнего вечера sad.gif Это максимум на обдумывание такой задачки...

Дело в том что Я уже 5 лет как не пишу софт сам. Его за меня пишут люди, причём на С.

ldi r18,8 ;такой задачи не разу небыло
ldd r16,data ; код абсолютно переносимый
clr r17

m1:rol r16
ror r17
dec r18
brne m1 ; могу добавить на i51 pic16, holtec, ARM. если конечно вспомню где это всё лежит

std data,r16
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.