Слава Богу, прошли те тяжелые времена и сейчас с памятью проблем нет
Проблемы с памятью могут возникать в любые времена. Например, сейчас наша контора выпускает одно изделие, программа к которому написана мной на ассемблере (под АТмегу-162). Правда, изначально я на нём писал не из-за ограничений по памяти, а из-за моей нелюбви к Си/Си++ (были б для АТмеги доступные компиляторы Ады или Паскаля, писал бы на этих языках). Но, как в конечном итоге выяснилось, ассемблер был бы необходим: требования заказчика постоянно менялись (есно, в сторону усложнения), и в итоге программа на ЯВУ просто не полезла бы в имеющуюся в этом проце память. Но к тому времени, когда заказчик полностью удовлетворился, было изготовлено уже множество железяк (плат с распаянными процом и прочими электронными компонентами), поэтому заменить процессор на более мощный было экономически очень проблематично.
В общем, _уметь_ писать на асме, думаю, должен каждый профессиональный разработчик встраиваемых систем. Другое дело, что нет смысла на нём писать всё и всегда.
В общем, _уметь_ писать на асме, думаю, должен каждый профессиональный разработчик встраиваемых систем. Другое дело, что нет смысла на нём писать всё и всегда.
Согласен с вами полностью. Но пишу только на ассемблере.
Зарегистрирован: Ср май 13, 2009 20:36:44 Сообщений: 344
Рейтинг сообщения:0
на С тоже нормально было бы. про нелюбовь к С и любовь к паскалю-смеялся. АВР С достаточно простой язык даже после паскаля. оптимизация на С дает такойже и даже лучший результат чем асм в больших проектах т.к. компилятор не дураки писали а лучшые умы мира.
для таких злых заказчиков любые фирмы производители чипов выпускают совместимые по ножкам чипы которые без проблем потом внедряются в готовое изделие.
ваш пример из серии: сэкономили 3 рубля потом извращались оптимизированием месяц и кое как сдали потомучто ничего не влазило-это хороший пример как НЕ нужно разрабатывать изделия.
грамотная разработка предусмативает планирование на начальном этапе. а если заказчик хочет чтото менять и увеличивать после разработки шире заданных вначале границ-пускай платит соответствующую денюшку. не учите начинающих плохому
В общем, _уметь_ писать на асме, думаю, должен каждый профессиональный разработчик встраиваемых систем. Другое дело, что нет смысла на нём писать всё и всегда.
професионал обязан, но для младших контроллеров, на мощных ядрах за асм по рукам очень больно бить нужно, ибо структура у них такая (суперскалярность, неявное исполнение инструкций, конвеер) что явное оптимизирование на асме может даже снизить быстродействие и зачем писать на асме если мегабайты памяти только под код?
А тот кто занимается разработкой но не претендует на роль элиты в электроннике - тому оно вообще никоем боком не нужно.
Кстати что за убогий такой бизнес который не соблюдает договор - превоначальное ТЗ или заключает дополнительные договора для изменения ТЗ на нереальный срок что даже плату утюгом для аврки не отутюжить за 1 день?
на С тоже нормально было бы. про нелюбовь к С и любовь к паскалю-смеялся. АВР С достаточно простой язык даже после паскаля. оптимизация на С дает такойже и даже лучший результат чем асм в больших проектах т.к. компилятор не дураки писали а лучшые умы мира.
Нелюбовь к Си объясняется отнюдь не сложностью -- Ада значительно сложней и Паскаля, и Си вместе взятых, с ней разве что Си++ со всеми его наворотами поспорить в этом плане может Я Си не люблю за ненадёжность: слишком уж легко делать _дурацкие_ ошибки (вроде случайного & вместо && и наоборот). Паскаль (и Ада, есно) просто не даёт возможности подобные ошибки совершать в принципе.
Что касается оптимизации, то и согласен, и нет. В теории человек может написать лучше компилятора, на практике на это обычно слишком много времени уйдёт, да и редко когда такая нужда возникает. В моём случае программирование на ассемблере объяснялось, как я уже сказал, нежеланием использовать Си, а не ограничениями "железа" (на них бы я наткнулся лишь через полгода после начала работы, если не больше -- поскольку заказчик задачу раздул в ннадцать раз уже в ходе разработки) -- благо, что асм АВРок очень неплохой (для 8-разрядного процессора, разумеется), и писать на нём было весьма приятно. Вот если б использовался контроллер с ядром 8051, я б, наверное, всё же писал бы на Си
Цитата:
для таких злых заказчиков любые фирмы производители чипов выпускают совместимые по ножкам чипы которые без проблем потом внедряются в готовое изделие.
Так уже и сами процы купили, и даже запаять несколько сотен успели...
Цитата:
ваш пример из серии: сэкономили 3 рубля потом извращались оптимизированием месяц и кое как сдали потомучто ничего не влазило-это хороший пример как НЕ нужно разрабатывать изделия.
Абсолютно согласен с Вами. Увы, решение об использовании конкретно АТмеги 162 принималось до меня, я б, наверное, смог бы настоять на 644 (она используется в других наших изделиях), где памяти в 4 раза больше.
Цитата:
грамотная разработка предусмативает планирование на начальном этапе. а если заказчик хочет чтото менять и увеличивать после разработки шире заданных вначале границ-пускай платит соответствующую денюшку. не учите начинающих плохому
Так, блин, заказчик внутренний, так сказать А с планированием та проблема, что этот самый заказчик сам не знал, чего хотел. В общем, "такой же, но с перламутровыми пуговицами"
професионал обязан, но для младших контроллеров, на мощных ядрах за асм по рукам очень больно бить нужно, ибо структура у них такая (суперскалярность, неявное исполнение инструкций, конвеер) что явное оптимизирование на асме может даже снизить быстродействие и зачем писать на асме если мегабайты памяти только под код?
Во-первых, не смешивайте процессоры ПК и микроконтроллеры: в первых суперскалярность имеет место уже давно (со времён первых пней), во вторых если и применяется, то редко (в АРМах, например, простой пятиступенчатый конвейер, но никакой суперскалярности -- во всяком случае, я таковых АРМов не знаю). Во-вторых, ручная оптимизация может снизить скорость по сравнению с автоматической (компилятором, "заточенным" под конкретную архитектуру), но только в том случае, если человек, пишущий на асме, не учитывает особенности этой самой архитектуры -- а какая тогда это оптимизация? В-третьих, мегабайты памяти под код -- это, конечно, замечательно, но клепать программу в мегабайт, когда она укладывается в 10 килобайт -- тоже не дело, не говоря о том, что ёмкость кэшей куда меньше ёмкости ОЗУ/ПЗУ, а для обеспечения высокой производительности надо, чтобы кэш-промахи как можно реже случались -- а значит, нужно, чтобы как можно большая часть и кода, и данных помещалась в кэше целиком.
Цитата:
А тот кто занимается разработкой но не претендует на роль элиты в электроннике - тому оно вообще никоем боком не нужно.
Даже если ты -- не элита, ассемблер ты знать должен, если ты профессионал: мало ли что потребуется по ходу дела.
Цитата:
Кстати что за убогий такой бизнес который не соблюдает договор - превоначальное ТЗ или заключает дополнительные договора для изменения ТЗ на нереальный срок что даже плату утюгом для аврки не отутюжить за 1 день?
Уже отписал в предыдущем посте. Заказчик -- внутренний, никаких договоров нет в принципе. Просто говорит разработчикам: вы должны сделать то-то. Сделаешь, заказчик посмотрит и говорит: всё замечательно, но вот надо бы добавить вот такую вот мелочь... Ну и так далее. Что такая организация порочна, на этом проекте и убедились (собсно, я-то знал это всегда, но всё начиналось без меня).
Даже если ты -- не элита, ассемблер ты знать должен, если ты профессионал: мало ли что потребуется по ходу дела.
зачем? есть контроллеры под 30р, на котором на си можно почти всё написать, тот же авр под си архетектура официально заточена. Куда дешевле и проще что то может понадобиться, я хз. Зачем изучать то что в принципе не нужно. мало того программу асме править менее наглядно и менее наглядно разбираться.
Вот представь девайс к которому время от времени возврощаются разработчики, нередко каждый раз разные и нужно вносить правки, например раз в год. Какой проэкт дольше протянет без переписывания? т.е. соберёт меньше всего глюков и проще всего разобраться любому в нём будет, конечно же оформленый на языках выского уровня грамотными людьми (я не говорю про криворучек которые си освоили чисто для галочки в универе, а говорю про тех кто им умеет и хочет пользоваться). Естествено на си или паскале или ином нормальном языке.
Писал (и успешно отладил) в 1997 году программы на ассемблере для двух устройств на i8048 или на i8748 (этот убогий контроллер был выбран не мной, потому что у людей был внутрисхемный эмулятор).
Меня удивило то, что программы были длиной на 20 экранов, писал и отлаживал я их долго, так как устройства были сложные, а они не занимали даже трети памяти 8048 (кажется у него был 1кБ ЕPRОМ).
Сейчас, когда памяти везде стало больше, писать на ассемблере, наверно, неоправдано, хотя знать полезно. Хотя на ассемблере всегда знаешь все задержки, а на С?
Писал (и успешно отладил) в 1997 году программы на ассемблере для двух устройств на i8048 или на i8748 (этот убогий контроллер был выбран не мной, потому что у людей был внутрисхемный эмулятор).
Меня удивило то, что программы были длиной на 20 экранов, писал и отлаживал я их долго, так как устройства были сложные, а они не занимали даже трети памяти 8048 (кажется у него был 1кБ ЕPRОМ).
Сейчас, когда памяти везде стало больше, писать на ассемблере, наверно, неоправдано, хотя знать полезно. Хотя на ассемблере всегда знаешь все задержки, а на С?
если хочешь быть профессионалом, т.е. тем кто может что угодно на чём угодно, в кратчайшые сроки, в разумных пределах естественно, то асм знать обязан и желательно много видов.
Но если ты простой разработчик устройств то он тебе не нужен, за редкими исключениями, например ДСП процессоры или младшие PicMicro контроллеры.
Большенству хороших разработчиков аппаратуры асм не нужен вообще, я считаю пропогандирование асма чистосердечным признанием "я никакай програмист и инженер, я не смог и не захотел найти ниодного компилятора, неговоря о том что не стал разбираться в них, я заранее знаю что что бы я не напишу я напишу криво и неоптимально на чём угодно кроме асма." А практика ещё показывает что часто и на асме сплошное уродство идёт и отговорка "он же эталон быстродействия, почему у меня цикл в 4 уровня вложености по 10000 итераций в каждом уровне зависает?"
Большенству хороших разработчиков аппаратуры асм не нужен вообще, я считаю пропогандирование асма чистосердечным признанием "я никакай програмист и инженер, я не смог и не захотел найти ниодного компилятора, неговоря о том что не стал разбираться в них, я заранее знаю что что бы я не напишу я напишу криво и неоптимально на чём угодно кроме асма." А практика ещё показывает что часто и на асме сплошное уродство идёт и отговорка "он же эталон быстродействия, почему у меня цикл в 4 уровня вложености по 10000 итераций в каждом уровне зависает?"
Большинство хороших разработчиков аппаратуры (на современных микроконтроллерах) в темы про i8080 не лезут и демагогией не занимаются, а делают свое дело. Здесь речь идет именно об этом процессоре. Писать нормальные программы для i8080 можно только на ассемблере. Адресное пространство процессора всего 64К, что исключает использованее встроенных компиляторов. Внешнее компилирование программ на языках высокого уровня дает избыточный код и, как следствие, приводит к дефициту памяти.
Большинство хороших разработчиков аппаратуры (на современных микроконтроллерах) в темы про i8080 не лезут и демагогией не занимаются, а делают свое дело. Здесь речь идет именно об этом процессоре. Писать нормальные программы для i8080 можно только на ассемблере. Адресное пространство процессора всего 64К, что исключает использованее встроенных компиляторов. Внешнее компилирование программ на языках высокого уровня дает избыточный код и, как следствие, приводит к дефициту памяти.
а ничего что есть нормальный си компиляторы даже для ат-тини и пикмикро без озу вообще? А ничего что персооналки и с 16кбайтами памяти шли и никто не жаловался и даже в советских книгах были описания оптимизирующих компиляторов си написаных для уже существующего си для 8080? Помоему это ты тут троллиш внаглую отрицая аксиомы, и говориш что си для 8080 нереален во всех смыслах что 65килобайт физически мало для простейшего компилятора си.
пруфлинк:
Цитата:
Turbo Pascal 1.0, 1983 год. Компилирует непосредственно в машинный код. Требует 32 килобайта оперативной памяти. Стоит меньше 50 долларов. Имеет интегрированный компилятор/редактор, высокую скорость компиляции. Позволяет размещать динамические данные в куче (heap) — динамической области памяти.
Зарегистрирован: Ср май 13, 2009 20:36:44 Сообщений: 344
Рейтинг сообщения:0
да кстати я на аттини писал достаточно неплохие и быстрые программы на С. это учитывая что атмега обычная для которых реально сложные программы писать можно стоит 30-50р. стоит ли заморачиваться?
повторяю компилятор не дураки писали и они уж получше некоторых разбираются в архитектуре процессоров и в асме тем более. кроме того неплохие теории оптимизации разработаны крупнейшими фирмами. зря старались чтоли они "дураки" и миллиарды вкладывали?
Не, хлопцы... Для профессиональных программистов, коими вы пытаетесь себя позиционировать, вы делаете слишком много грамматических ошибок в своих сообщениях. Скорее всего вы из тех нерадивых студентов, которые не смогли освоить даже i8080, а берутся рассуждать о более высоких материях. Кому интересно мнение студента-недоучки, да еще в таких больших объемах и в такой довольно резкой форме?
Не, хлопцы... Для профессиональных программистов, коими вы пытаетесь себя позиционировать, вы делаете слишком много грамматических ошибок в своих сообщениях.
ясно, нормальных доводов уже нет. Всегда интересны такие люди, ты им нормальное логически правильное доказательство, с ссылками на первоисточник. А они сразу на личности, а вреале что? фингал засветиш нераздумывая?
Зарегистрирован: Ср май 13, 2009 20:36:44 Сообщений: 344
Рейтинг сообщения:0
asgrisha писал(а):
Не, хлопцы... Для профессиональных программистов, коими вы пытаетесь себя позиционировать, вы делаете слишком много грамматических ошибок в своих сообщениях. Скорее всего вы из тех нерадивых студентов, которые не смогли освоить даже i8080, а берутся рассуждать о более высоких материях. Кому интересно мнение студента-недоучки, да еще в таких больших объемах и в такой довольно резкой форме?
давайте не переходить на личности. вы рассуждаете категориями и авторитетами и уходите от сути
в любом коммерческом проекте самое главное-время окупаемости. остальное уже не так важно.
так что мнение инженера или студента тоже не играет роли. важно чтоб было написано быстро, окупалось быстро, легко сопровождалось. ни под один из этих пунктов асм не подходит а значит не может использоваться для серьезных проектов. из личного опыта: для серьезных не используется!
давайте не переходить на личности. вы рассуждаете категориями и авторитетами и уходите от сути в любом коммерческом проекте самое главное-время окупаемости. остальное уже не так важно. так что мнение инженера или студента тоже не играет роли. важно чтоб было написано быстро, окупалось быстро, легко сопровождалось. ни под один из этих пунктов асм не подходит а значит не может использоваться для серьезных проектов. из личного опыта: для серьезных не используется!
ни только асм, но и оригинальное 8080 ядро никому не нужно, и вообще всё старье которому в обычно универах учат или всякие извращенцы и ракетные учёные для "изучения" берут, а на деле как правило убедиться что "да это сложно и поэтому не для меня".
Чтож, предлагаю продолжить слушать "аргументацию" данного автора дальше. Мне интересно куда же дальше он пойдёт и куда с личностей перейдёт. Пусть человек выскажется.
Зарегистрирован: Чт июл 30, 2009 00:23:28 Сообщений: 102 Откуда: Мать городов Русских
Рейтинг сообщения:0
Человек спросил-а Вы письками начали меряться.. Молодость решили вспомнить?
Доктор: - Расскажите, какая у вас продолжительность совокупления? Пациент: - Два часа сорок три минуты. Доктор: - Ну для вашего возраста это прекрасный результат. Расскажите подробнее. Пациент: - Последний раз сорок минут ждал, когда встанет, три минуты секса, а потом два часа лежал...
А для вопрошающего есть схема музыкального звонка ВМ80+ГФ24+573РФ2(5).Работает уже 20лет.
_________________ Пью.Курю.Ругаюсь матом!!!!Иногда всем этим злоупотребляю....
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения