Перейти к содержанию
    

Выбор пути ... Assembler или C ?

Сначала писала на асме. После того как пробывал на С, про асм даже не вспоминаю. Действительно, как с велосипеда на мерс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По теме:

http://ru.wikipedia.org/wiki/Си_(язык_программирования)

http://ru.wikipedia.org/wiki/Ассемблер

 

1. почему люди переходят с assemblera на C?

>>> Не знают ASM, задача использовать только Си, большой проект (в плане рутины),

причин может быть много :) .

 

2. какие плюсы и минусы языка С?

>>> Зависит от задачи (так сразу сказать нельзя).

 

3. где без языка С нельзя обойтись?

>>> Си – это фундамент. Разве можно что-то серьёзное построить без фундамента?

 

4. лично ваше мнение относительно обоих? (ненормативная лексика принимается:-)

>>> Оба надо знать.

 

ЗЫ

Тут многие сравнивают мерседес с велосипедом. Но на велосипеде можно проехать там, где мерседесу и не снилась даже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Си очень сильно экономит время разработки, экономит время затрачиваемое на поддержку старых проектов, многие написанные вещи (интерфейсы, протоколы обмена и др.) легко и быстро переносимы с контроллера на контроллер и даже на персоналку и обратно. На Си реально писать даже для очень мелких контроллеров без RAM или с микроскопическим RAM в 64байта.

 

2. Плюсы:

+легко читаемый и изменяемый исходник,

+безопасность (ограничение области видимости для переменных, контроль синтаксиса языка и соответствия типов данных со стороны компилятора),

+легкость работы со структурированными данными (с точностью до бита),

+динамическое использование памяти под переменные,

+битовые и низкоуровневые операции,

+наличие стандартного набора библиотек,

+можно в текст исходника на Си включать кусок на ассемблере,

+много чего ещё... :)

Минусы:

-сложность изучения некоторых вещей - арифметика указателей, выделение памяти,

-естесственно, что в критически важных по скорости и по объему кода вещах Си не уместен,

-компиляторы Си обычно стоят денег.

 

3. Без Си кодирование навароченных и длинных алгоритмов займет много времени, потеря которого не оправдывается когда мегагерц и памяти много. Если мечтаете в будущем произвольно менять мк.платформы, то нарабатывайте для своих задач исходники на Си.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тут многие сравнивают мерседес с велосипедом. Но на велосипеде можно проехать там, где мерседесу и не снилась даже.

Впомнился анекдот времен освоения выпуска "Жигулей". Концовка такая - "и чего только не придумают эти русские, что-бы не строить хороших дорог".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тойота - управляй мечтой

жигули не ссы доедем)))))

 

я наверное сильно отстал от жезни

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

раньше систы ругались, что для работы с отдельными битами если контроллер их поддерживает - приходилось работать с масками читать потом записывать или вставки на ассемблере - сейчас изменилась ситуация?
Сейчас они изучили препроцессор - вся морока раз и навсегда прячется в десятке макросов. Да и уровень оптимизаторов не стоит на месте: вон сколько криков "верните мне мой код!" ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, вы меня убедили, что всё-таки С изучать прийдётся. Видно я правильно сделал, то начал с asm@, теперь его нужно укрепить, чтоб навсегда остался в памяти, как азбука, а вот тогда и начинать вникать в сишку. Проблемой в изучении С я пока вижу различного вида "глюки" и "приколы" , которые встречались при начале изучения контроллеров и по мере уменьшались. Хорошо, что алгоритм работы моего проэкта пока не оперирует большими объёмами данных, а требуют временной точности, вплоть до тактов.

Насколько я понимаю прогресс двигает нас вперёд :07: (частоты, разрядность, объёмы), как вы думаете в будующем останется место простым 8 разрядным контроллерам? Или они полностью "исчезнут" :crying: , а для работы с тем, что появится, без языка высокого уровня не обойтись?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 битники останутся, только их ниша может сократиться - тяжелые процы станут дешевле.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У Си есть еще один большой плюс - портируемость . Особенно это заметно в тех проектах, где математики много.

К тому же, использование Си совсем не означает отказ от ассемблера.

Вывод: нужно уметь пользоваться и тем и тем и знать плюсы-минусы каждого :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

как вы думаете в будующем останется место простым 8 разрядным контроллерам? Или они полностью "исчезнут" :crying: ,
что бы вам не говорили местные модераторы :)

но я пока еще не видел 32бит контроллеров с 6,8,14,20,28 ногами :)

 

когда появятся, возможно я полностью перейду на 32бит, хотя еще желательно, 20ма току не только

с 4 ног... а с любых... :)

 

а насчет C vs Asm, Asm нужно просто знать, а писать можно на любом языке, но

лучше конечно на С...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Kalina привет!!! Надо знать и Си, и асм. Проще тогда будет переходить от одного типа контроллеров к другому (я имею ввиду AVR и MSP). Си это скорость написания программ, но больше по обьему кода. В конце концов, можно делать вставки асма в Си. Я сегодня уделю время для Си. Попробую кое-что. Пиши в аську! :beer:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да и стоимость его была не на 2 доллара больше речь о TMS2406 и TMS2812 5 лет назад они только появились.
Ну так я же и говорю, что числа можно двигать. Тираж не 1000 шт, а 300шт - уже $6 разницы незаметно, тираж 100шт - уже $20 незаметно...

Просто далеко не всегда это понимает руководство. А иногда и не только руководство. Я сам иногда "да чё там, ну назачем для такой прикидки ставить явно в 4 раза превышащий по ресурсам кристалл", а потом ну не так, чтобы мучаюсь, но неудобство испытываю :).

 

 

что бы вам не говорили местные модераторы :)

но я пока еще не видел 32бит контроллеров с 6,8,14,20,28 ногами :)

Luminary Micro LM3S101/102 - 28 ног ARM,

 

LM3S101-IRN20 ARM, 20MHz, 8kB flash, 2kB RAM, 2x32-bit Timers, RTC, 1xCCP, 1xUART, 1xSSI/SPI, 2xCMP, 2..18 GPIO, -40..+85C, 28-pin SOIC

 

В Киеве (Элтис) ~11грн (5.05грн/$) за штуку, <10грн мелкий опт.

 

По поводу велосипед vs мерседес.

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

Конечно, железа ;) это всё потребует больше, чем велосипед.

 

Итого я на велосипеде катаюсь (в обеих обсуждаемых смыслах :) ) для удовольствия и чтобы тонус не терять.

А на работу... На метро :), в это время машины в пробках местами двигаются медленнее пешехода.

Это если бы я катался пусть не на уровне участника тур-де-Франс, но где-то близко - то я бы велосипедом зарабатывал, а для развлечения что-то другое придумал бы :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проще тогда будет переходить от одного типа контроллеров к другому (я имею ввиду AVR и MSP).

 

Добрый день, DimaD! :)

 

А вы бы не могли объяснить подробнее, что значит проще ? Это означает, что можно будет не влазить в дебри MSP, а поверхностно его изучить? Или я чего-то не так понял. :07:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приведу пример на тех двух программистах, которые выполняют нам некоторые заказы. Один из них -- схемотехник (очень классный), второй -- программист (еще лучше). Зная Си, им ничего не стоит написать программу (очень быстро) либо для MSP430F427, либо для ATtiny15. Конкретный контроллер выбирают из нужд прибора. Не влазя в дебри, они используют AVR и MSP. Асемблер для этих контроллеров сильно отличается. Вот так!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это означает, что можно будет не влазить в дебри MSP, а поверхностно его изучить? Или я чего-то не так понял. :07:
Скажем так - при освоении последних нескольких семейств (x51, HC12, ARM7, PIC18) программа начинала делать осмысленные действия уже через полчаса после File->New (примерно столько нужно на прочтение документации по нужному периферийному модулю, например - портам, если хотим мигать светодиодом). А понимать, что написано на ассемблере в листинге я начал через несколько недель.

Точнее так: мой первый процессор был PIC16, для него я писал только на ассемблере. Вторым был x51. приступая к работе с ним я узнал, что для микроконтроллеров бывает С. С тех пор ассемблер для всех остальных процессоров я изучаю по листингам компиляторов. Последний раз для x51 писал 9, а для HC12 - 6 лет назад. Их ассемблер давно забыл. А исходники для них на С до сих пор читаю свободно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...