|
Выбор пути ... 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 5 2008, 11:24
|
Группа: Новичок
Сообщений: 10
Регистрация: 5-03-08
Пользователь №: 35 645

|
Kalin@ смелее переходите на Си. Я уже мигаю светодиодами. Скачай WinAVR для Си, он поддерживается в AVRStudio последней версии.
|
|
|
|
|
Mar 5 2008, 15:59
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(Kalina @ Mar 5 2008, 17:14)  Но сама фишка заключается в том, чтобы уместить всё это в 2 кБ!!!!!!!!!!!  Вот и объясняйте теперь - какая вам разница, записаны в остальные 6К флеша 0xFFFF или какие-то другие байты? При примерно одинаковом уровне владения С и АСМ одна и та же задача на С реализуется в несколько раз быстрее, чем на АСМ. Вот сэкономленное время я знаю куда деть, а сэкономленые 6К - ума не приложу... У меня был один проект, когда довольно большой кусок кода в дополнение к загрузчику надо было впихнуть в 2К область загрузчика. Код (и код загрузчика тоже) был за неделю написан и отлажен на всех 8К на С, потом были взяты ассемблерные файлы после компилятора и ужаты вручную. Ужимание заняло еще неделю. Я не представляю, сколько бы я писал это на ассемблере с нуля.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Mar 5 2008, 17:05
|

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

|
Цитата(Сергей Борщ @ Mar 5 2008, 18:59)  Я не представляю, сколько бы я писал это на ассемблере с нуля. Вы абсолютно правы. Проэкт, о котором я писал, сделали два человека, я и мой друг. Мы разделили его на две части. На это всё ушло около 6 месяцев. Самое трудное было при совмещении блоков. Мы уйму времени тратили для того, чтобы устранять "глюки". Приходилось отслеживать каждый регистр, даже байты в ОЗУ пересекались. Но теперь я для себе вынес один урок - если алгоритм составлен правильно, программа ВНИМАТЕЛЬНО!!!! написана, значит она будет работать с первой компиляции. Или, как говорят, правильно собраная схема в настройке не нуждается. С одной стороны на С возможно писать было бы быстрее, легче( если бы я её знал  ) но я почему-то ИМХО я бы не добился той точности и быстродействия, что требовалась.
|
|
|
|
|
Mar 5 2008, 18:39
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(Kalina @ Mar 5 2008, 20:05)  Проэкт, о котором я писал, сделали два человека, я и мой друг. Мы разделили его на две части. На это всё ушло около 6 месяцев. Наверное я чего то недопонимаю но 2Кбайта 6месяцев и еще на 2их ??? то есть, примерно 250 человекодней 2Кб <=> =<1024 команды на асм то есть вы писали не более 4асемблерных команд за день ?
|
|
|
|
|
Mar 5 2008, 19:06
|

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

|
Цитата(singlskv @ Mar 5 2008, 21:39)  Наверное я чего то недопонимаю Сейчас я вам объясню, и вам всё станет понятно. 1. Разработка, которой мы занимаемся, первая в нашей практике, мы недавно только дипломы защитили  . Сами же выступали в роли ведущих, так как начальника, который бы мог нас направить или нам помочь у нас не было. 2. Всё что нам предоставили на рабочем месте - это один компьютер на двоих, STK-500, осцилограф, паяльник и доступ в интернет. 3. По образованию мы радиотехники, и такая вещь как программирование МК было всего лишь нашим хобби в институте. Зная архитектуру атмела, его систему команд и ассемблер сложность состояла в написании алгоритмов и понимании функционирования всего устройства. 4. Эти 6 месяцев для нас скорее всего были временем показать, что мы справимся с разработкой, короче как испытательный срок ! Цитата(singlskv @ Mar 5 2008, 21:39)  то есть, примерно 250 человекодней 2Кб <=> =<1024 команды на асм то есть вы писали не более 4асемблерных команд за день ? 5. Интересно, а сами вы пользуетесь таким методом подсчёта? P.S. ИМХО есть ещё одно преимущество С, для неё написано много библиотек, или просто я плохо искал *.аsm ?
Сообщение отредактировал Kalina - Mar 5 2008, 19:15
|
|
|
|
|
Mar 5 2008, 19:27
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(Kalina @ Mar 5 2008, 22:06)  Сейчас я вам объясню, и вам всё станет понятно. 1. Разработка, которой мы занимаемся, первая в нашей практике, мы недавно только дипломы защитили  . Сами же выступали в роли ведущих, так как начальника, который бы мог нас направить или нам помочь у нас не было. ............................ Ну, тогда все объяснимо и понятно, просто у Вас прозвучала фраза "а слабо ли уместить в 2Кб......." , которая не очень вяжется с Вашим нынешним объяснением... Учитывая Ваше объяснение, могу предположить что и на С можно влезть в те же 2К. Цитата 5. Интересно, а сами вы пользуетесь таким методом подсчёта? Нет конечно, но просто есть какие то разумные рамки, а те сроки которые указали Вы по крайней мере на порядок отличаются от реальных. Цитата P.S. ИМХО есть ещё одно преимущество С, для неё написано много библиотек, или просто я плохо искал *.аsm ? для асм есть много чего, только в большенстве случаев это просто не оправдано, хотя конечно есть некоторый процент задач где без асм никуда...
|
|
|
|
Сообщений в этой теме
Kalina Выбор пути ... Assembler или C ? Mar 3 2008, 19:02 zltigo Цитата(Kalina @ Mar 3 2008, 22:02)
Для н... Mar 3 2008, 19:15 Vladimir_J Добрейшее время суток!!!
В свое время ... Mar 3 2008, 19:37 SasaVitebsk Вот чисто практические данные.
http://electronix.r... Mar 3 2008, 19:41 Omen_13 Очередная религиозная война назревает?
На асм... Mar 3 2008, 21:03 zltigo Цитата(Omen_13 @ Mar 4 2008, 00:03) Очере... Mar 3 2008, 21:05 Omen_13 zltigo, см. выше!
Добавлю еще:
Асм как язык ... Mar 3 2008, 21:29 Дон Амброзио Цитата(Omen_13 @ Mar 4 2008, 00:29) наско... Mar 3 2008, 22:45 Дон Амброзио ИМХО, ассемблер - это база, которую ДОСКОНАЛЬНО до... Mar 3 2008, 22:31 rv3dll(lex) Си так и не смог выучить - не дано наверное
но... Mar 4 2008, 06:42 ReAl Цитата(rv3dll(lex) @ Mar 4 2008, 08... Mar 4 2008, 07:10  rv3dll(lex) Цитата(ReAl @ Mar 4 2008, 10:10) Ну, это ... Mar 4 2008, 08:54   ReAl Цитата(rv3dll(lex) @ Mar 4 2008, 10... Mar 5 2008, 08:05 608 Цитата(Kalina @ Mar 3 2008, 23:02) Всем, ... Mar 4 2008, 07:01 Baser У вас в корне неправильное понимание вопроса: ... Mar 4 2008, 07:13 Dog Pawlowa Цитата(Baser @ Mar 4 2008, 11:13) Вот и в... Mar 4 2008, 07:27 tntsasha Сначала писала на асме. После того как пробывал на... Mar 4 2008, 09:50 researcher По теме:
http://ru.wikipedia.org/wiki/Си_(язык_про... Mar 4 2008, 12:00  zltigo Цитата(researcher @ Mar 4 2008, 15:00) Ту... Mar 4 2008, 16:34 Carbon 1. Си очень сильно экономит время разработки, экон... Mar 4 2008, 15:10 rv3dll(lex) тойота - управляй мечтой
жигули не ссы доедем))))... Mar 4 2008, 16:43 Сергей Борщ Цитата(rv3dll(lex) @ Mar 4 2008, 18... Mar 4 2008, 17:09 Kalina Да, вы меня убедили, что всё-таки С изучать прийдё... Mar 4 2008, 17:27 singlskv Цитата(Kalina @ Mar 4 2008, 20:27) как вы... Mar 4 2008, 19:22 Omen_13 8 битники останутся, только их ниша может сократит... Mar 4 2008, 17:49 vshemm У Си есть еще один большой плюс - портируемость . ... Mar 4 2008, 17:57 DimaD Kalina привет!!! Надо знать и Си, и ас... Mar 5 2008, 07:26 Kalina Цитата(DimaD @ Mar 5 2008, 10:26) Проще т... Mar 5 2008, 08:10  Сергей Борщ Цитата(Kalina @ Mar 5 2008, 10:10) Это оз... Mar 5 2008, 10:19   Kalina Цитата(Сергей Борщ @ Mar 5 2008, 13:19) о... Mar 5 2008, 11:00    Сергей Борщ Цитата(Kalina @ Mar 5 2008, 13:00) Значит... Mar 5 2008, 12:05     zltigo Цитата(Сергей Борщ @ Mar 5 2008, 15:05) ... Mar 5 2008, 12:32      upc2 Цитата(zltigo @ Mar 5 2008, 15:32) Перефр... Mar 5 2008, 12:47 DimaD Приведу пример на тех двух программистах, которые ... Mar 5 2008, 08:34 upc2 Цитата(Kalina @ Mar 3 2008, 22:02) Всем д... Mar 5 2008, 10:46  zltigo Цитата(Kalina @ Mar 5 2008, 18:14) Но сам... Mar 5 2008, 17:25 DimaD Цитата(Kalina @ Mar 5 2008, 19:05) С одно... Mar 6 2008, 06:28 mart-13 Цитата(DimaD @ Mar 6 2008, 09:28) Вот име... Mar 6 2008, 07:50 Kalina Цитата(DimaD @ Mar 6 2008, 09:28) по пово... Mar 6 2008, 08:22  zltigo Цитата(Kalina @ Mar 6 2008, 11:22) Но сам... Mar 6 2008, 09:21   Kalina Цитата(zltigo @ Mar 6 2008, 12:21) У как ... Mar 6 2008, 10:05    zltigo Цитата(Kalina @ Mar 6 2008, 13:05) Наскол... Mar 6 2008, 10:25     mart-13 Цитата(zltigo @ Mar 6 2008, 13:25) Нет. И... Mar 6 2008, 10:53      zltigo Цитата(mart-13 @ Mar 6 2008, 13:53) ... Mar 6 2008, 14:41 DimaD Давайте обсудим эту тему и многое другое за ... Mar 6 2008, 08:38 Kalina Цитата(DimaD @ Mar 6 2008, 11:38) Давайте... Mar 6 2008, 08:53 rv3dll(lex) БЛИН если на то пошло всю память 51 контроллера мо... Mar 6 2008, 09:06 Carbon Можно измерять период подсчитывая импульсы аппарат... Mar 6 2008, 12:02 Сергей Борщ Цитата(Carbon @ Mar 6 2008, 14:02) Таким ... Mar 6 2008, 13:05  Carbon Цитата(Сергей Борщ @ Mar 6 2008, 16:05) Е... Mar 6 2008, 14:36 rv3dll(lex) усложню задачу - без использования таймера сложени... Mar 6 2008, 13:23 rv3dll(lex) из своего процессорного опыта - это было по необхо... Mar 6 2008, 17:57 Сергей Борщ Цитата(rv3dll(lex) @ Mar 6 2008, 19... Mar 6 2008, 18:49  rv3dll(lex) Цитата(Сергей Борщ @ Mar 6 2008, 21:35) В... Mar 6 2008, 19:03  Прохожий Цитата(Сергей Борщ @ Mar 6 2008, 21:49) Е... Mar 6 2008, 19:14   Demeny Цитата(Прохожий @ Mar 6 2008, 22:14) К ст... Mar 7 2008, 07:30   mdmitry Цитата(Прохожий @ Mar 6 2008, 22:14) Кодi... Mar 7 2008, 09:04   andron86 Цитата(Прохожий @ Mar 6 2008, 20:14) К ст... Mar 7 2008, 09:16    Прохожий Цитата(andron86 @ Mar 7 2008, 12:16) я бы... Mar 7 2008, 19:51  Kalina Цитата(Сергей Борщ @ Mar 6 2008, 21:49) в... Mar 6 2008, 20:31   Прохожий Цитата(Kalina @ Mar 6 2008, 23:31) Если н... Mar 6 2008, 21:19 Kalina Уважаемые форумчане, большое спаисбо за тот опы... Mar 6 2008, 18:00 Прохожий Цитата(Kalina @ Mar 6 2008, 21:00) Уважае... Mar 6 2008, 18:31 Pyku_He_oTTyda ЦитатаПрохожий
Спасибо! Хороший магазин с демо... Mar 7 2008, 05:14 Algol По поводу эффективного программирования на Си и дл... Mar 7 2008, 07:51 Demeny Цитата(Algol @ Mar 7 2008, 10:51) По пово... Mar 7 2008, 08:17  zltigo Цитата(Demeny @ Mar 7 2008, 11:17) Я плак... Mar 7 2008, 12:18
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|