реклама на сайте
подробности

 
 
5 страниц V  < 1 2 3 4 5 >  
Reply to this topicStart new topic
> Выбор пути ... Assembler или C ?
upc2
сообщение Mar 5 2008, 10:46
Сообщение #31


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



Цитата(Kalina @ Mar 3 2008, 22:02) *
Всем добрый день!

Недавно начал осваивать микроконтроллеры фирмы ATMEL. Первое с чем имел дело - AT90S2313, теперь перешёл на ATmega. Проэкты в основном небольшие (думаю это времено), пользуюсь AVR Studio. Язык, который использую - assembler. Часто посещаю форум, и особо часто попадаю на программы написанные на С.
Так вот, хочу задать вопрос всем, кто чувствует себя уже уверенными пользователями обоих языков, вы не могли бы обьяснить начинающему:

1. почему люди переходят с assemblera на C?
2. какие плюсы и минусы языка С?
3. где без языка С нельзя обойтись?
4. лично ваше мнение относительно обоих? (ненормативная лексика принимается:-)

Всем, кто отзовется, заранее благодарен!


Хорошо , что вы уже задумались. Значит сами до всего дойдете.

Программировать контроллеры Siemens можно на 9 языках. Вот здесь бы не запутаться.
Go to the top of the page
 
+Quote Post
Kalina
сообщение Mar 5 2008, 11:00
Сообщение #32


Частый гость
**

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



Цитата(Сергей Борщ @ Mar 5 2008, 13:19) *
осмысленные действия уже через полчаса после File->New (примерно столько нужно на прочтение документации по нужному периферийному модулю, например - портам, если хотим мигать светодиодом).


Значит при переходи с одного семейства к другому, при использовании С, минимум необходимо будет знать основые параметры, указаные на первой странице даташита,(по ним прикидывать возможность использования данного контроллера в проэкте), а при необходимости, если ничего не получается smile3046.gif , лезть глубже?
Go to the top of the page
 
+Quote Post
DimaD
сообщение Mar 5 2008, 11:24
Сообщение #33





Группа: Новичок
Сообщений: 10
Регистрация: 5-03-08
Пользователь №: 35 645



Kalin@ смелее переходите на Си. Я уже мигаю светодиодами. Скачай WinAVR для Си, он поддерживается в AVRStudio последней версии.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 5 2008, 12:05
Сообщение #34


Гуру
******

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



Цитата(Kalina @ Mar 5 2008, 13:00) *
Значит при переходи с одного семейства к другому, при использовании С, минимум необходимо будет знать основые параметры, указаные на первой странице даташита,
Ну не только на первой странице, а хотя бы прочитать - какие регистры есть у интересующего нас периферийного модуля, что туда надо записать и что оттуда можно прочитать. В остальном все верно.

Цитата(upc2 @ Mar 5 2008, 12:46) *
Программировать контроллеры Siemens можно на 9 языках. Вот здесь бы не запутаться.
"Настоящие программисты пишут на Фортране на любом языке" lol.gif


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 5 2008, 12:32
Сообщение #35


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Сергей Борщ @ Mar 5 2008, 15:05) *
"Настоящие программисты пишут на Фортране на любом языке" lol.gif

Перефразируя эту классическую фразу - "Настоящие эмбеддеры пишут на ASM на любом языке"
и это к сожалению совсем не весело sad.gif. По нынешним временам я бы предпочел работать с человеком который начинал с высокоуровневых языков. Ну а ASM уже потом от уровня "читаю и перевожу со словарем" можно при необходимости продвигать.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
upc2
сообщение Mar 5 2008, 12:47
Сообщение #36


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



Цитата(zltigo @ Mar 5 2008, 15:32) *
Перефразируя эту классическую фразу - "Настоящие эмбеддеры пишут на ASM на любом языке"
и это к сожалению совсем не весело sad.gif. По нынешним временам я бы предпочел работать с человеком который начинал с высокоуровневых языков. Ну а ASM уже потом от уровня "читаю и перевожу со словарем" можно при необходимости продвигать.


10-я возможность Сиеменсов утилита Prodave предоставляющая все возможности управления контроллером для любого высокоуровнего языка в DLL-библиотеках.
Go to the top of the page
 
+Quote Post
Kalina
сообщение Mar 5 2008, 15:14
Сообщение #37


Частый гость
**

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



Цитата(DimaD @ Mar 5 2008, 14:24) *
Я уже мигаю светодиодами

А слабо на С для меги8 реализовать измеритель скорости движения авто, управлением шаговым двигателем указателя стрелки, выводом на ЖКИ, обработку аварийных ситуаций и это всё в реальном времени. Но сама фишка заключается в том, чтобы уместить всё это в 2 кБ!!!!!!!!!!! wacko.gif
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 5 2008, 15:59
Сообщение #38


Гуру
******

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



Цитата(Kalina @ Mar 5 2008, 17:14) *
Но сама фишка заключается в том, чтобы уместить всё это в 2 кБ!!!!!!!!!!! wacko.gif
Вот и объясняйте теперь - какая вам разница, записаны в остальные 6К флеша 0xFFFF или какие-то другие байты? При примерно одинаковом уровне владения С и АСМ одна и та же задача на С реализуется в несколько раз быстрее, чем на АСМ. Вот сэкономленное время я знаю куда деть, а сэкономленые 6К - ума не приложу... У меня был один проект, когда довольно большой кусок кода в дополнение к загрузчику надо было впихнуть в 2К область загрузчика. Код (и код загрузчика тоже) был за неделю написан и отлажен на всех 8К на С, потом были взяты ассемблерные файлы после компилятора и ужаты вручную. Ужимание заняло еще неделю. Я не представляю, сколько бы я писал это на ассемблере с нуля.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Kalina
сообщение Mar 5 2008, 17:05
Сообщение #39


Частый гость
**

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



Цитата(Сергей Борщ @ Mar 5 2008, 18:59) *
Я не представляю, сколько бы я писал это на ассемблере с нуля.


Вы абсолютно правы. Проэкт, о котором я писал, сделали два человека, я и мой друг. Мы разделили его на две части. На это всё ушло около 6 месяцев. Самое трудное было при совмещении блоков. Мы уйму времени тратили для того, чтобы устранять "глюки". Приходилось отслеживать каждый регистр, даже байты в ОЗУ пересекались. Но теперь я для себе вынес один урок - если алгоритм составлен правильно, программа ВНИМАТЕЛЬНО!!!! написана, значит она будет работать с первой компиляции. Или, как говорят, правильно собраная схема в настройке не нуждается.
С одной стороны на С возможно писать было бы быстрее, легче( если бы я её знал smile.gif ) но я почему-то ИМХО я бы не добился той точности и быстродействия, что требовалась.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 5 2008, 17:25
Сообщение #40


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Kalina @ Mar 5 2008, 18:14) *
Но сама фишка заключается в том, чтобы уместить всё это в 2 кБ!!!!!!!!!!! wacko.gif

Нет, "сама фишка" в сравнении стомости чипа сего девайса со стоимостью автомобиля. И стоимостью шести месяцев работы двух человек.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
singlskv
сообщение Mar 5 2008, 18:39
Сообщение #41


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Kalina @ Mar 5 2008, 20:05) *
Проэкт, о котором я писал, сделали два человека, я и мой друг. Мы разделили его на две части. На это всё ушло около 6 месяцев.

Наверное я чего то недопонимаю но 2Кбайта 6месяцев и еще на 2их ???

то есть, примерно 250 человекодней
2Кб <=> =<1024 команды на асм

то есть вы писали не более 4асемблерных команд за день ?
Go to the top of the page
 
+Quote Post
Kalina
сообщение Mar 5 2008, 19:06
Сообщение #42


Частый гость
**

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



Цитата(singlskv @ Mar 5 2008, 21:39) *
Наверное я чего то недопонимаю


Сейчас я вам объясню, и вам всё станет понятно.

1. Разработка, которой мы занимаемся, первая в нашей практике, мы недавно только дипломы защитили smile.gif. Сами же выступали в роли ведущих, так как начальника, который бы мог нас направить или нам помочь у нас не было.
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
Go to the top of the page
 
+Quote Post
singlskv
сообщение Mar 5 2008, 19:27
Сообщение #43


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Kalina @ Mar 5 2008, 22:06) *
Сейчас я вам объясню, и вам всё станет понятно.
1. Разработка, которой мы занимаемся, первая в нашей практике, мы недавно только дипломы защитили smile.gif. Сами же выступали в роли ведущих, так как начальника, который бы мог нас направить или нам помочь у нас не было.
............................
Ну, тогда все объяснимо и понятно, просто у Вас прозвучала фраза
"а слабо ли уместить в 2Кб......." , которая не очень вяжется с Вашим нынешним объяснением...
Учитывая Ваше объяснение, могу предположить что и на С можно влезть в те же 2К.
Цитата
5. Интересно, а сами вы пользуетесь таким методом подсчёта?
Нет конечно, но просто есть какие то разумные рамки,
а те сроки которые указали Вы по крайней мере на порядок отличаются от реальных.
Цитата
P.S. ИМХО есть ещё одно преимущество С, для неё написано много библиотек, или просто я плохо искал *.аsm ?
для асм есть много чего, только в большенстве случаев это просто не оправдано,
хотя конечно есть некоторый процент задач где без асм никуда...
Go to the top of the page
 
+Quote Post
DimaD
сообщение Mar 6 2008, 06:28
Сообщение #44





Группа: Новичок
Сообщений: 10
Регистрация: 5-03-08
Пользователь №: 35 645



Цитата(Kalina @ Mar 5 2008, 19:05) *
С одной стороны на С возможно писать было бы быстрее, легче( если бы я её знал smile.gif ) но я почему-то ИМХО я бы не добился той точности и быстродействия, что требовалась.


Вот именно, легче и быстрее, если владеть асмом и Си одинаково. А вот по поводу точности --- готов поспорить.
Вам ведь известно, что такое токоизмерительные клещи!!! Так вот, точность измерения тока 2%. Диапазон - 600А. При этом они сами калибруются (без всяких там подстроечников), и тоже обрабатывают кучу информации, TRMS, есть ЖКИ. Код на Си занимает 12 КБ!!!!!! Время от начала разработки до полного завершения прибора -- 3мес. Так на асме быстрее будет?
Просто я вот к чему веду. При переходе к созданию все более и более серьезных проектов, переход с асма на Си просто необходим.
Go to the top of the page
 
+Quote Post
mart-13
сообщение Mar 6 2008, 07:50
Сообщение #45


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 12-12-07
Из: Украина
Пользователь №: 33 226



Цитата(DimaD @ Mar 6 2008, 09:28) *
Вот именно, легче и быстрее, если владеть асмом и Си одинаково. А вот по поводу точности --- готов поспорить.
Вам ведь известно, что такое токоизмерительные клещи!!! Так вот, точность измерения тока 2%. Диапазон - 600А. При этом они сами калибруются (без всяких там подстроечников), и тоже обрабатывают кучу информации, TRMS, есть ЖКИ. Код на Си занимает 12 КБ!!!!!! Время от начала разработки до полного завершения прибора -- 3мес. Так на асме быстрее будет?
Просто я вот к чему веду. При переходе к созданию все более и более серьезных проектов, переход с асма на Си просто необходим.

Вы хотите сказать, что точность аппаратного АЦП контроллера, которым по всей видимости Вы измеряете Ваш ток зависит от Вашей программы, или еще хуже от языка, на котором она написана?????
Go to the top of the page
 
+Quote Post

5 страниц V  < 1 2 3 4 5 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 04:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01481 секунд с 7
ELECTRONIX ©2004-2016