IPB

Здравствуйте, гость ( Вход | Регистрация )

8 страниц V   1 2 3 > »   
Ответить в данную темуНачать новую тему
> Споры о подходах к программированию МК, ASM vs C, и не только
Прохожий
сообщение 24.7.2010, 14:39
Сообщение #1


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



По просьбам трудящихся отделил кусок от темы.
Обсуждение технических аспектов предлагаю продолжить здесь.
С уважением, MrYuran


Цитата(Wise @ 24.7.2010, 12:34) *
Привет!
...

А почему Вы вдруг за AVR взялись?
Совершенно "левый" МК...
Все, с чем приходилось сталкиваться из выполненного на нем, глючит не по детски.
Давеча вот, чиллер (это такой кондиционер на 300 кВт) на куче мелких AVR сказал, что у него связь потеряна...
И это он делает периодически... С момента его покупки родным предприятием.
Ну, и трудности с доставанием тех же AVR...
Лучше уж PIC24 или dsPIC33.
По крайней мере там все проще и Вам привычней - тот же MPLAB, да и ассемблер поприличнее.
Впрочем, воля Ваша...
Что же касается существа дела, то совет про С, ПМСМ, верный.
Другое дело - форма высказывания в виде наставлений от "старшего брата"...
В догонку.
Вот еще тема с электроникса.
Кто что скажет?

Сообщение отредактировал MrYuran - 29.7.2010, 10:41
Перейти в начало страницы
 
+Цитировать сообщение
Wise
сообщение 24.7.2010, 15:15
Сообщение #2


стажер
***

Группа: Пользователи
Сообщений: 871
Регистрация: 28.11.2009
Пользователь №: 36



Цитата
А почему Вы вдруг за AVR взялись?
Совершенно "левый" МК...
Все, с чем приходилось сталкиваться из выполненного на нем, глючит не по детски.


..Так я бы и не брался..
Не нравятся они, и то, что успел узнать, не внушает..

..Попросил заказчик один, старый знакомый и деньги хорошие платит..
Я ему раньше делал на PIC-ах, а кто-то ему насоветовал, что AVR дешевле и пинов (выходов) у них больше..
Отговорить не получилось.
..Думаю, ну, хрен с ним, заодно, свою базу знаний расширю.. russian_ru.gif
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 24.7.2010, 15:29
Сообщение #3


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(Wise @ 24.7.2010, 17:15) *
..Так я бы и не брался..
Не нравятся они, и то, что успел знать, не внушает..

Так, от то ж...
Цитата(Wise @ 24.7.2010, 17:15) *
..Попросил заказчик один, старый знакомый и деньги хрошие платит..
Я ему раньше делал на PIC-ах, а кто-то ему насоветовал, что AVR дешевле и пинов (выходов) у них больше..
Отговорить не получилось.
Думаю, ну, хрен с ним, заодно, свою базу знаний расширю.. russian_ru.gif

Дык, предупредите товарища.
А то попадет в беду с этим ATMEL-ом.
Там трудности нешуточные с поставками.
И цены уже не низкие.
Вот, почитайте.
А PIC24 - это сочетание систем команд PIC16, PIC18 с PDP11.
Не Ассемблер, а песня.
Ширина данных - 16 бит.
Векторная система прерываний с приоритетами.
И цена низкая.
Перейти в начало страницы
 
+Цитировать сообщение
Harbinger
сообщение 24.7.2010, 16:05
Сообщение #4


посіпака Хунти
Иконка группы

Группа: Мод
Сообщений: 15693
Регистрация: 21.11.2009
Из: Vinnitsa
Пользователь №: 11



Если бы не надо было сейчас в техсупермаркет за соковыжималкой, начал бы всякие деривативы 51 пиарить, их есть, которых подешевле пиков и AVR при сопоставимых возможностях. wink.gif
Перейти в начало страницы
 
+Цитировать сообщение
Wise
сообщение 24.7.2010, 16:28
Сообщение #5


стажер
***

Группа: Пользователи
Сообщений: 871
Регистрация: 28.11.2009
Пользователь №: 36



Цитата
Вот, почитайте.

..Так я видел..
Почему и написал, что бан на месяц..
А вы как это нашли, вы же не заблокированы.. wacko.gif

..Мне в PIC-ах симпатична логичность.
Тридцать команд (примерно) - это как тридцать букв в алфавите.
А когда букв 130.. ..и большая часть из них, собственно, одно и то же..
Хочется спросить авторов: ну, на хрена вот это..

..Одна часть команд работает только с одними регистрами, другая - только с другими.
Карту придется рисовать (что ли) на листе ватмана, где будет указана память и что с чем может работать..
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 24.7.2010, 17:27
Сообщение #6


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(Огурцов @ 24.7.2010, 19:10) *
Связь - это руки, а не МК. Хотя, если шнурок на прямую к МК подключен, то уже не руки, а голова, скорее.

Что, у всех пользователей AVR? И во всех странах сразу? Чиллер - американский.
Цитата(Огурцов @ 24.7.2010, 19:10) *
Значит пользуется огромным спросом на оптовых продажах, и на розницу уже не хватает.

Вы не внимательно прочли флуд по ссылке. Там речь шла как раз об оптовых закупках.
Достать несколько штук - не вопрос.
А вот количество, да по приемлемой цене...

Цитата(Wise @ 24.7.2010, 18:28) *
..Мне в PIC-ах симпатична логичность.
Тридцать команд (примерно) - это как тридцать букв в алфавите.
А когда букв 130.. ..и большая часть из них, собственно, одно и то же..
Хочется спросить авторов: ну, на хрена вот это..

Вы не поверите, авторы AVR - это два студента из Скандинавии.
А система команд типа LOAD - STORE мне не нравилась еще в I8080.
По командам, AVR ближе всего к 51-м. Это развитие этой системы команд.
Цитата(Wise @ 24.7.2010, 18:28) *
..Одна часть команд работает только с одними регистрами, другая - только с другими.
Карту придется рисовать (что ли) на листе ватмана, где будет указана память и что с чем может работать..

А что Вы хотите от наспех сделанного курсового проекта?
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 24.7.2010, 17:45
Сообщение #7


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(Огурцов @ 24.7.2010, 19:28) *
В общем да, смотрите в корень - авр - народный проц, гораздо более удобный простой и понятный, на нем лабают чайники всех стран - новое поколение уже выросло и дало "плоды". А старое, которое было еще гораздо более профи, писало и выросло на пиках. Так что дело не МК vs МК, а в разработчик vs разработчик.

Я и смотрю на мучения уважаемого Wise.
Вроде бы не чайник.
А кроме ругани в адрес AVR при вынужденном переходе, пока ничего от него не слышно.
Я-то, к примеру, представляю себе, откуда растут ноги.
При проектировании ядра кто-то зажал ширину адреса внешних устройств.
Зачем их было вводить, как отдельную сущность, вообще непонятно.
Если только не предположить, что студенты брали за основу MSC51 и динамическую память в качестве RAM.
Как, собственно, там и было в самом начале.
Цитата(Огурцов @ 24.7.2010, 19:28) *
Вообще не читал. Подозреваю, дело в том, что про разный опт речь. А высокие цены, хотя бы на m128 уже года 2 минимум. Так что не удивляет.

А зря - поучительного там достаточно много...
Народ толпой переходит на ARM-ы.
Наступивши на одни грабли все быстро ищут другие, с более увесистой рукояткой.
Перейти в начало страницы
 
+Цитировать сообщение
Wise
сообщение 24.7.2010, 19:38
Сообщение #8


стажер
***

Группа: Пользователи
Сообщений: 871
Регистрация: 28.11.2009
Пользователь №: 36



..Пользователь один, в той теме про компаратор, сообщил мне, что на Си я буду думать про алгоритм, а в ассемблере – только про то, как правильно написать команды.

..Чушь полная.. Даже для AVR, думаю, что приноровлюсь, в итоге. А уж для PIC-ов..
Там, я давно не думаю о командах, это происходит автоматически, как при игре, например, в настольный теннис, рука сама поворачивает ракетку, чтобы правильно принять крутящийся в нескольких плоскостях шарик, а голова занята просчетом игры на несколько ходов вперед.

..Собственно, даже не делал библиотеку подпрограмм. У меня есть некоторая куча проектов, я знаю, примерно, где что лежит, и из таких готовых модулей компилирую новую программу. Присоединить пару файлов к проекту не проблема.

..Алгоритмы даже не главное. Большой круг и все мелкие подциклы, обычно, понятны сразу. Интересна оптимизация, то есть, так написать, чтобы выбросить/сократить строчку уже было нельзя.

..Поэтому, Си, как способ мышления, мне не интересен, в применении к программированию МК. С ним ли, без него, я размышляю о сути действий МК в смысле оптимального решения задачи. Но, ассемблер дает мне возможность сделать «конфетку», а что толку от Си – это набор шаблонов, которые не могу поменять и которые часто громоздки в конкретном случае.

..Однако, все поучают и поучают меня товарищи (о великой пользе Си), для которых алгоритм программы нарисовать на бумажке уже есть громадное достижение..
Перейти в начало страницы
 
+Цитировать сообщение
Designer56
сообщение 24.7.2010, 19:50
Сообщение #9


Активный участник
***

Группа: Пользователи
Сообщений: 7045
Регистрация: 22.11.2009
Из: Уфа
Пользователь №: 18



как- то в молодости мне пришлось написать программку для 580-го вообще без трансляторов/компиляторов. Т.е. мнемокод я вручную перекодировал в 16- ричный. Где- то к-байт в целом. Просто потому, что у нас такая система была на работе, без диска совсем. С перфолент все вводилось. Дешевле было вручную сделать. Ничего, как ни странно, не очень долго с отладекой трахался. Мой приятель так же написал монитор для маленького самодельного контроллера на том же 580-м с клавиатуркой и люминесцентным 7- сегментным дисплеем.

Цитата(Harbinger @ 24.7.2010, 23:46) *
Так, может, в Латвии оно, развитие, как-то по-другому происходило? wink.gif



не, просто он упрямый
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 24.7.2010, 19:56
Сообщение #10


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(Огурцов @ 24.7.2010, 20:20) *
Тогда как алгоритм, отличный от железа, будет в общем-то одинаков, что для авр, что для арм.

Тут сказать нечего.
Для PIC-ов все тоже самое.
Вы правы.
Каким бы не был "мотор", все самое интересное определяет периферия.
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 24.7.2010, 20:05
Сообщение #11


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(Wise @ 24.7.2010, 21:38) *
..Пользователь один, в той теме про компаратор, сообщил мне, что на Си я буду думать про алгоритм, а в ассемблере – только про то, как правильно написать команды.

Причина перехода на С не в этом.
Сами понимаете, что выучить систему команд за месяц можно в совершенстве.
Так, чтобы потом о ней не думать.
По утверждению апологетов С, причин здесь несколько:
1. Меньшие временные затраты на само программирование.
Сам сталкивался с этим, когда делал терморегулятор на PIC18 с плавающей арифметикой.
2. Переносимость основных алгоритмов между платформами.
3. Возможность работы с Вашей программой другому индивидууму с минимальными затратами.
4. Возможность работы над проектом в составе коллектива программистов.
Лично для меня самый важный пункт - первый.
Все остальное, ПМСМ, значения не имеет.
Перейти в начало страницы
 
+Цитировать сообщение
Harbinger
сообщение 24.7.2010, 20:17
Сообщение #12


посіпака Хунти
Иконка группы

Группа: Мод
Сообщений: 15693
Регистрация: 21.11.2009
Из: Vinnitsa
Пользователь №: 11



Да тут я был бы апологетом по всем пунктам, и ещё по нескольким.
Но, когда сверху спускают аж два МК на выбор... и тот, у которого вчетверо меньше памяти, на 5 центов дешевле, и архитектура с юности знакомая... в общем, ASM forever, дабы впихнуть невпихуемое. И, блин, получается же!
Недавно делал обратный изврат - в контроллере о 64 К флэши занято аж полтора, причём писалось на Си и ни о каких оптимизациях не приходилось заикаться. Ну не нашлось ничего дешевле и меньше, да чтобы о двух уартах. В принципе, можно было на Tiny2313 сгородить (один из уартов симплексный - RS-485), но он в ту же цену, что та 64-килобайтная зверюга, а мороки больше.
Перейти в начало страницы
 
+Цитировать сообщение
Wise
сообщение 24.7.2010, 20:31
Сообщение #13


стажер
***

Группа: Пользователи
Сообщений: 871
Регистрация: 28.11.2009
Пользователь №: 36



Цитата
Причина перехода на С не в этом.
..По утверждению апологетов С, причин здесь несколько:


..Возможно.
Я-то один работаю, с давних пор, ну и подход, наверное, специфичный.
Поэтому, большинство перечисленных пунктов меня мало трогает.
А "меньшие временные затраты" - это спорно.
..К тому же, вот, написали вы один раз эту арифметику - ну и все, в другой раз время на именно это будет стремиться к нулю..
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 24.7.2010, 20:48
Сообщение #14


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(Wise @ 24.7.2010, 22:31) *
..Возможно.
Я-то один работаю, с давних пор, ну и подход, наверное, специфичный.
Поэтому, большинство перечисленных пунктов меня мало трогают.
А "меньшие временные затраты" - это спорно.
..К тому же, вот, написали вы один раз эту арифметику - ну и все, в другой раз время на именно это будет стремиться к нулю..

Вот тут, Вы, пожалуй, правы.
Когда один, тогда все прелести С нивелируются, кроме пункта 1.
Недавний пример - управлялка для многофазной дуговой установки.
В центре PIC24FJ128GA108.
Функции:
1. Опрос порядка 100 входов.
2. Индикация состояния каждой из ячеек - авария, перегрев, неполадки с питанием, все это с помигушками.
3. Трехсимвольный семисегментный индикатор.
4. ЧМИ в виде кнопок + и -.
5. Индикация общего состояния девайса, коротыш, готовность и прочее.
6. Система управления током нагрузки.
7. Управление вспомогательными девайсами.
8. Связь с внешним миром - MODBUS/ASCII.
Время исполнения -3 полурабочих дня, где-то около 12 часов.
Вместе с отладкой связи с внешним компьютером.
Все на С и C++, включая отладочний софт для ПК в виде простейшей программулины на C++Builder-е.
Так вот, к своему стыду признаюсь, что из-за спешки на ассемблере изобразил только конфигурирование внешних выводов.
Хотя, у PIC24 ассемблер гораздо приятнее, чем у PIC18, скажем.
Перейти в начало страницы
 
+Цитировать сообщение
Harbinger
сообщение 24.7.2010, 22:11
Сообщение #15


посіпака Хунти
Иконка группы

Группа: Мод
Сообщений: 15693
Регистрация: 21.11.2009
Из: Vinnitsa
Пользователь №: 11



Цитата(Огурцов @ 24.7.2010, 22:52) *
Уяссе. Сколько ж вы зарабатываете за месяц ? Нечто о пяти зеленых нулях ?

Так, наверное же, указано реально затраченное время... wink.gif
Помнится, году так в 2006 дописывал один эфирный протокольчик. Затратил где-то 16 часов на протяжении 2 месяцев. В порядке хобби.
Тут вот даже три ноля ненаших нечасто получаются. "А жить-то надо, надо жить красиво..." - помните?
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 24.7.2010, 22:23
Сообщение #16


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(Огурцов @ 24.7.2010, 23:52) *
Уяссе. Сколько ж вы зарабатываете за месяц ? Нечто о пяти зеленых нулях ?

Вы слишком хорошего мнения обо мне.
А домашние заготовки, о которых здесь уже говорилось?
Все по отдельности уже было ранее, правда, на 18-х PIC-ах.
Просто собрал все в кучу на несколько иной платформе.
С С-ями этот процесс значительно ускоряется.
А про 5 зеленых нулей...
Хотелось бы, но кто их даст?
Тут хотя бы четыре наших нуля.
А первая значащая цифра от трех до пяти...
А вообще - оплата труда в нашей профессии - отдельная тема для разговора.
Предлагаю открыть и поговорить на нее.
Перейти в начало страницы
 
+Цитировать сообщение
Гость_MrYuran_*
сообщение 25.7.2010, 18:07
Сообщение #17





Гости






Цитата(Wise @ 24.7.2010, 20:38) *
Интересна оптимизация, то есть, так написать, чтобы выбросить/сократить строчку уже было нельзя.

А смысл?
Главное - не в алгоритмах или командах.
Главное - чтобы полученный исходник не был привязян к железу.
Если бы и был - то по минимуму и в строго оговоренных местах.
Например, в файлах типа hardware.h, lo_level.h или hal.h
Я уже не позволяю себе в тексте такие вольности, как P1OUT |= 0x40;
или даже LIGHTS_PORT |= HEATER_LIGHT_PIN;
а пишу так:
SetLight(HEATER_LIGHT,LIGHT_ON);
Теперь мне без разницы (в основном приложении), как называются регистры, каким уровнем включается светодиод (высоким или низким) - это всё описано один раз в специально отведённом месте.

Возможно, моё мнение сформировано под влиянием специфики - крупносерийный выпуск разных изделий на сходной программно - аппаратной платформе

Цитата(Wise @ 25.7.2010, 16:11) *
А уйти-то, я, конечно, уйду, из такой странной игры.. russian_ru.gif

А игра порстая- ЖЫЗНЬ
Есть правила, гласные и негласные, есть те, кто при исполнении, есть понятие целесообразности...
Форум - это просто некая проекция общества, со всеми вытекающими
Перейти в начало страницы
 
+Цитировать сообщение
Гость_MrYuran_*
сообщение 25.7.2010, 18:43
Сообщение #18





Гости






Цитата(Wise @ 25.7.2010, 19:37) *
..Поэтому, когда схема построена так, что ни один элемент отбросить нельзя, когда из литературного текста или текста программы, не выбросить строчку, я вижу в этом гармонию и красоту..
..Какой в этом смысл - ответить затрудняюсь.

Когда начальник в очередной раз подходит ко мне и интересуется, как дела (в смысле, когда ж, наконец, будет готово), а я в ответ говорю, что старая программа вызывает во мне когнитивный диссонанс, и я решил переписать её заново, вместо того чтобы поправить десяток строчек, он смотрит на меня как-то странно...
Что он при этом думает, даже не представляю.
Перейти в начало страницы
 
+Цитировать сообщение
Wise
сообщение 25.7.2010, 18:59
Сообщение #19


стажер
***

Группа: Пользователи
Сообщений: 871
Регистрация: 28.11.2009
Пользователь №: 36



Цитата
Когда начальник в очередной раз подходит ко мне


..Возможно, мне повезло больше, у меня начальников нет. Есть только обязательства.
Поэтому, позволяю себе роскошь, делать свою работу хорошо, так, как понимаю это "хорошо".
..Такой вариант, кстати, когда-то выбрал сам..
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 25.7.2010, 19:02
Сообщение #20


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(MrYuran @ 25.7.2010, 20:43) *
Когда начальник в очередной раз подходит ко мне и интересуется, как дела (в смысле, когда ж, наконец, будет готово), а я в ответ говорю, что старая программа вызывает во мне когнитивный диссонанс, и я решил переписать её заново, вместо того чтобы поправить десяток строчек, он смотрит на меня как-то странно...
Что он при этом думает, даже не представляю.

Здесь, ПМСМ, мы и наблюдаем два подхода к программированию.
1. Подход ООП, которого условно придерживается MrYuran.
2. Системный подход, апологетом которого является Wise.
Суть ООП в двух словах можно охарактеризовать как максимальное абстрагирование от "железа" и максимальное использование наработанной ранее "нетленки".
Суть системного подхода - бритва Оккама, т. е. максимальная лаконичность полученного результата.
В первом случае человек первым делом "вьет " себе привычное "гнездо", где ему тепло и хорошо.
Делается это по-разному. С помощью привлечения сторонних программных продуктов, ОС, к примеру.
Или технологии ООП, или того и другого вместе.
Т.е. человек строит систему под себя. "Железо" в этом случае является маленькой несущественной ее частью.
Второй подход - несколько иной.
Существующие аппаратные средства и программная модель ядра вместе с системой прерываний воспринимаются как готовая система.
В этом случае к ней добавлять ничего не надо. Все уже есть и так.
Если господам будет угодно, то можно поговорить о преимуществах и недостатков обоих методов.
Но только сделать это надо не здесь, а в разделе про программирование.
Если на то будет разрешение, могу открыть соответствующую тему.
Перейти в начало страницы
 
+Цитировать сообщение

8 страниц V   1 2 3 > » 
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 25.5.2018, 1:25