|
|
  |
Выбор пути ... Assembler или C ? |
|
|
|
Mar 3 2008, 19:02
|

Частый гость
 
Группа: Свой
Сообщений: 75
Регистрация: 19-12-07
Из: Житоимр
Пользователь №: 33 457

|
Всем добрый день! Недавно начал осваивать микроконтроллеры фирмы ATMEL. Первое с чем имел дело - AT90S2313, теперь перешёл на ATmega. Проэкты в основном небольшие (думаю это времено), пользуюсь AVR Studio. Язык, который использую - assembler. Часто посещаю форум, и особо часто попадаю на программы написанные на С. Так вот, хочу задать вопрос всем, кто чувствует себя уже уверенными пользователями обоих языков, вы не могли бы обьяснить начинающему:
1. почему люди переходят с assemblera на C? 2. какие плюсы и минусы языка С? 3. где без языка С нельзя обойтись? 4. лично ваше мнение относительно обоих? (ненормативная лексика принимается:-) Всем, кто отзовется, заранее благодарен!
|
|
|
|
|
Mar 3 2008, 19:37
|

Участник

Группа: Свой
Сообщений: 74
Регистрация: 9-01-07
Из: Украина
Пользователь №: 24 228

|
Добрейшее время суток!!! В свое время я тоже сильно раздумывал переходить или не переходить на Си, когда попробывал оценил  Представте Вы ехали на мерседеце, и Вам говорит содись на велосипед мол это класно свежий воздух, здоровье, а мерседец это же конфортнее. (Этой фразой можно объяснить разницу между ASM и Си). А так просто надо попробывать, и Вы ивидите в чем разница. А Вам удачи в Ваших начинаниях. С Уважением, Владимир.
|
|
|
|
|
Mar 3 2008, 21:03
|

Силовик-затейник
   
Группа: Модераторы
Сообщений: 766
Регистрация: 18-02-07
Из: Столица солнечного Башкортостана
Пользователь №: 25 467

|
Очередная религиозная война назревает? На асме можно делать простые конструкции с предельным быстродействием за счёт использования особенностей архитектуры и команд, на С математика и навороченные платформонезависимые алгоритмы. В теории конечно можете написать для себя математику с точкой на асме, но лучше потратить это время на освоение С... Моё мнение - надо знать оба языка. ИМХО!!! -----------  Уважаемый zltigo, в этой войне на меня не расчитывайте!
Сообщение отредактировал Omen_13 - Mar 3 2008, 21:08
--------------------
"Вперёд на мины, ордена потом!" "инжинер/разработчик создает нечто, в отличии от многих других профессий. В этом есть сходность с художниками или музыкантами"(с)CodeWarrior1241
|
|
|
|
|
Mar 3 2008, 22:31
|

Местный
  
Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947

|
ИМХО, ассемблер - это база, которую ДОСКОНАЛЬНО должен знать любой программист-эмбеддер, считающий себя профессионалом. Если человек "плавает" в ассемблере, то (ИМХО конечно) он и на СИ не сможет написать хорошую программу для Target MCU. Потому что в отличии от писателей программ для компов, которые (если они не пишут низкоуровневые драйвера) больше решают задачи по обработке информации разработчики программ для микроконтроллеров рещают задачи управления железом и обработки сигналов в реальном времени
ИМХО, сначала нужно досконально изучить архитектуру и АСМ ( который является отражением архитектуры MCU ), а уж потом пиши на чём хочешь: хоть на СИ, хоть на Паскале, хоть на Басике...Хоть на Смаллталке наконец
--------------------
После устранения бага в программе она стала работать....хуже
|
|
|
|
|
Mar 3 2008, 22:45
|

Местный
  
Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947

|
Цитата(Omen_13 @ Mar 4 2008, 00:29)  насколько я помню 51, АВР и ПИКи по командам отличаются довольно капитально, т.е. при смене практически всё придётся писать с 0. Из опыта. А если проект написан на СИ разве не придётся всё писать практически с нуля? Если Вы не пишите конечно какую-нибудь универсальную RTOS на продажу в которой априори закладывается возможность портирования на несколько архитектур. А так. По-большому счёту большинтсво программ для MCU - это программы уникального применения, предназначенные для конкретного MCU в конкретном девайсе. А насчёт переписывания с нуля? Я за много лет работы выработал целый ряд принципов организации программы, которые определяют какой набор мудулей должен быть в программе и как организовать алгоритм. А зная их написать код на любом языке - это плёвое дело. Я, например, легко портировал свою RTOS на АСМ-е с 51-й архитектуры под AVR. Разработка RTOS под 51 -ю архитектуру у меня заняла более полгода. А переписывание её под AVR заняло чуть больше недели.... Так что не с нуля
--------------------
После устранения бага в программе она стала работать....хуже
|
|
|
|
|
Mar 4 2008, 07:01
|
Участник

Группа: Участник
Сообщений: 70
Регистрация: 8-05-07
Пользователь №: 27 604

|
Цитата(Kalina @ Mar 3 2008, 23:02)  Всем, кто отзовется, заранее благодарен! Си конечно лучше, но Ваша проблема, видимо, это отсутствие хорошего компилятора Си и еще, наверное, некому ввести в курс дела. Рекомендую IAR (для AVR) и Keil (для 51), все это есть с лечениями. Что характерно, просматривая листинги асм-кода после компиляции, Вы еще лучше начнете писать программы на ассемблере. А также делать асм-вставки в Си-коды, в критичных местах. Но это уже высший класс, для этого надо много стараться и ковыряться в интернете, а также надо найти рядом помощника, чтобы подсказал.
Сообщение отредактировал 608 - Mar 4 2008, 07:03
|
|
|
|
|
Mar 4 2008, 07:10
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(rv3dll(lex) @ Mar 4 2008, 08:42)  на си этого сделать нельзя, задачи подобного рода не решаемы Ну, это и на тираж предполагаемый смотреть надо... Если ожидаемый тираж пусть 1000 штук, зарплата программиста пусть 1000 баксов, протолчётся на асме считая такты он пусть лишний месяц - итого можно спокойно брать процессор на 2 бакса дороже и спокойно писать на С. Это будет как минимум не убыточно (затраты на программиста больше получаемой им зарплаты, надо ещё о сопровождении подумать). Числа можно двигать туда-сюда и думать, стоит ли оно того. А также не мешает проштудировать "историю одного байта" и подумать о том, что время сейчас несколько другое, если вдруг плнадобится не 256, а 320 раз в секунду или не с 12 а с 16 каналов - разрабатывать всё заново? Конечно, есть крайние случаи - типа такого: тираж предполагается 10000/месяц, среднерыночная цена изделия так мала, что каждый цент на счету, из соображений потребления и быстродействия приходится каждый такт экономить - и это всё одновремённо. Но что-то мне говорит, что в большинстве случаев это не так, на асме пишется по привычке/из любвы к искусству и можно или всё написать на С, или только критические 5% написать на асме.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Mar 4 2008, 08:54
|

Полное ничтожество
    
Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354

|
Цитата(ReAl @ Mar 4 2008, 10:10)  Ну, это и на тираж предполагаемый смотреть надо... Если ожидаемый тираж пусть 1000 штук, зарплата программиста пусть 1000 баксов, протолчётся на асме считая такты он пусть лишний месяц - итого можно спокойно брать процессор на 2 бакса дороже и спокойно писать на С. Это будет как минимум не убыточно (затраты на программиста больше получаемой им зарплаты, надо ещё о сопровождении подумать). Числа можно двигать туда-сюда и думать, стоит ли оно того. А также не мешает проштудировать "историю одного байта" и подумать о том, что время сейчас несколько другое, если вдруг плнадобится не 256, а 320 раз в секунду или не с 12 а с 16 каналов - разрабатывать всё заново?
Конечно, есть крайние случаи - типа такого: тираж предполагается 10000/месяц, среднерыночная цена изделия так мала, что каждый цент на счету, из соображений потребления и быстродействия приходится каждый такт экономить - и это всё одновремённо. Но что-то мне говорит, что в большинстве случаев это не так, на асме пишется по привычке/из любвы к искусству и можно или всё написать на С, или только критические 5% написать на асме. тираж был единичный - 3 экземпляра - на самом деле это НИР другой процессор поставить и изготовить новый образец никто бы не дал - ВПК блин - он наверное там до сих пор стоит))) , да и стоимость его была не на 2 доллара больше речь о TMS2406 и TMS2812 5 лет назад они только появились. скорость написания - согласен знаковая арифметика не беспокоит функций навалом можно быстро написать работающий проект не беспокоясь о забытых переменных и LDP
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|