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

Jozef

На чем писать  

595 проголосовавших

  1. 1. Что чаще используете в разработках?

    • Assembler
      165
    • C
      303
    • Что-то еще
      66


Рекомендуемые сообщения

1 минуту назад, mazzi сказал:

проверяю различные идеи с помощью Ардуино.

Из этого следует, что уровень идей соответствует возможностям Ардуины как СРЕДЫ. Серьезные идеи Ардуиной не проверить.

戦う前に相手のベルトの色に注目

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

2 минуты назад, my504 сказал:

Из этого следует, что уровень идей соответствует возможностям Ардуины как СРЕДЫ. Серьезные идеи Ардуиной не проверить.

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

Пока ты жив, надежда есть.

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

1 минуту назад, mazzi сказал:

горелой спичкой на салфетке

Это будет шуткой художника, а не профессиональным движением или достижением.

Работающий с Ардуиной достигнет с ней бОльшего, чем тот, кто без нее. Но из этого не следует, что уровень задач первого (в схемотехническом и программистском плане) можно считать сколь нибудь серьезным.

戦う前に相手のベルトの色に注目

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

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

2 минуты назад, my504 сказал:

Работающий с Ардуиной достигнет с ней бОльшего, чем тот, кто без нее. Но из этого не следует, что уровень задач первого (в схемотехническом и программистском плане) можно считать сколь нибудь серьезным.

Что есть такого в Ардуино, что может помешать мне достичь своей цели?

Пока ты жив, надежда есть.

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

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

36 минут назад, DrobyshevAlex сказал:

я вам могу написать и на асм код который хуже будет работать чем си

это потому, что ты не владеешь ассемблером в полной мере.

17 часов назад, my504 сказал:

Проще писать сразу на АСМе, но используя все соглашения и структуру кода Си.

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

НЕЛЬЗЯ на ассемблере писать, копируя работу компилятора Си.

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

Мудрость приходит вместе с импотенцией...

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

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

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

2 минуты назад, my504 сказал:

Чтобы не сжечь чего нибудь на Ардуине, нужно просто думать,прежде чем написать код.

Допустим я решил написать код. Я вижу хваленую среду Ардуино. Мое мнение, его писали профессионалы и я могу ему доверять хотя бы на элементарном уровне, таком как в случае если у меня отвалился датчик am2320 подключенный по i2c - я просто получу 0, или false, или ERROR или throw, да что угодно, но это не повесит весь мк.

Да да, можно говорить о том, что это бесплатно, какие претензии на халяву. Но, имхо, нуб его такое бесплатное. А это еще советуют людям, мол берите ардуино)

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

2 минуты назад, Starichok сказал:

НЕЛЬЗЯ на ассемблере писать, копируя работу компилятора Си.

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

Напишите на ассемблере короче чем на си например такое:

   for(i=0;i<16;i++)
   {
      for(j=0;j<4;j++)
      {
         mera[i][j]=disk[s++];
      }
   }

 

Пока ты жив, надежда есть.

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

33 минуты назад, Starichok сказал:

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

НЕЛЬЗЯ на ассемблере писать, копируя работу компилятора Си.

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

Это полная чушь, любезный Старичок. При всем моем к Вам уважении...

Вы даже не понимаете о чем я говорю. От слова совсем. Речь не идет о копировании работы компилятора. речь идет исключительно о соглашениях и СТРУКТУРЕ кода. Если у Вас есть желание подробно узнать об этом, я могу Вас ознакомить, но в личке. Моргните и я прилечу...)))

26 минут назад, mazzi сказал:

Напишите на ассемблере короче чем на си

Смотря на каком АСМе. :D

Скажем, на ASM16 это будет выглядеть так:

	do		#15, 0f
		repeat		#4
			mov	[W0++], [W1++]
0:		nop

А могу написать фрагмент кода на АСМе, который будет короче, чем код на Си. По числу строк - точно. B)

Причем без учета скобок Си. А так и мой пример короче Си реализации.

Изменено пользователем my504

戦う前に相手のベルトの色に注目

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

Несмотря на раздел AVR, обсуждение ведется В ПРИНЦИПЕ, без привязки к платформе (см. название темы), ибо намек товарисча, непрерывно грозящего нассать в ботинок, ранее заключался в том, что если не хватает производительности, то... Ну и далее все указывает на АРМ... :rolleyes:

Изменено пользователем my504

戦う前に相手のベルトの色に注目

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

43 минуты назад, mazzi сказал:

Напишите на ассемблере короче чем на си например такое:

я имел в виду не количество букв в исходном тексте, а количество байт, которые нужно залить в МК.

30 минут назад, my504 сказал:

Вы даже не понимаете о чем я говорю. От слова совсем. Речь не идет о копировании работы компилятора. речь идет исключительно о соглашениях и СТРУКТУРЕ кода.

вполне возможно, что я тебя не понял.

под словом "структура" я однозначно понимаю структуру, а именно:

создание функций и передача параметров в функции через стек и подобные особенности Си. так вот, на ассемблере это всё совершенно не нужно делать.

но это очень куцее объяснение моего понимания структуры Си..

39 минут назад, my504 сказал:

Если у Вас есть желание подробно узнать об этом, я могу Вас ознакомить

большое спасибо, но пока у меня нет такого желания.

Мудрость приходит вместе с импотенцией...

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

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

12 минут назад, Starichok сказал:

создание функций и передача параметров в функции через стек и подобные особенности Си.

Вообще то на АСМе тоже стоит создавать функции. Экономия на call и return выглядит смешной на фоне угрозы запутать код так, что сам в нем утонешь. Передача переменных в функцию через стек  - это особенность определенного компилятора и к Си не имеет никакого отношения. При относительно небольшом количестве переменных их обычно передают через РОНы и через РОНы возвращают значение функции. Вот локальные переменные действительно можно открывать в стеке, но это если есть аппаратный механизм такого действа. Например, в 16-разрядных микрочипах это так называемый фрейм, который открывается закрывается инструкциями lnk #N/ulnk и позволяют исключить локальные НЕ статик переменные в функциях из регулярной области ОЗУ, что резко упрощает их администрирование. Работа с этими переменными ничуть не сложнее работы с регистрами. Система команд это поддерживает, а необходимости перегружать эти переменные из ОЗУ в РОНы нет никакой.

Кроме того, очень эффективна работа через указатели на функции (или вычисляемый переход), что позволяет создать очень быстрый код, заменяя идиотские деревья условий...

Изменено пользователем my504

戦う前に相手のベルトの色に注目

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

в ассемблере функции, как таковые, не нужны вообще.

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

а если какие-то действия нужно выполнить более одного раза, то в ассемблере это оформляется подпрограммой, а не функцией.

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

Мудрость приходит вместе с импотенцией...

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

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

6 минут назад, Starichok сказал:

а если какие-то действия нужно выполнить более одного раза, то в ассемблере это оформляется подпрограммой, а не функцией.

Не расстраивайте меня, Старичок... Функция Си превращается после компиляции в самый обычный вызов call. Таким образом, при сопоставлении АСМа и Си  "подпрограмма"  и "функция" идентичны до неразличимости.

АСМ код выстроенный как непрерывный без вызовов либо примитивен и не подлежит обсуждению в местном контексте (нечего в нем обсуждать), либо код на АСМе написан безграмотно и в смысле его масштабирования, и в смысле сопровождения. Такой код работает гораздо медленнее выстроенного под фичи архитектуры МК.

戦う前に相手のベルトの色に注目

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

я конеш понимаю упоротость профи, но так же понимаю, что форум тут в основном любительский. А любителям как правило до звезды ваши потуги выжать из примитивного камня каждый такт. Важнее решить задачу не утонув в собственном "творчестве". И если я могу получить быстрее и проще за 50 рублей, а мне скажут - нееет, друг. Это не спортивно. Заплати 150 и траxайcя по возрослому. Ответ будет скорее всего такой - иди как ты дружище лесом. И да, чаще всего я намекаю именно на то о чем все подумали. И как показывает статистика об этом уже думают очень многие нормальные люди. И да, я не брезгую взять в руки 16-ый пик если надо и даже ардуино, об который все так боятся запачкаться. Просто потому что знаю что могу от них получить и за какое время. А еще знаю что живу один раз и не собираюсь ушатывать свою жизнь в клавиши. Зачем? Чтобы потом гордо заявлять - да я вас всех на пальце имел, потому что я крутой асмофрик и могу в два байта упихать программу полета на марс? В контексте реального мира это ничего не стоит

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

1 минуту назад, mail_robot сказал:

А еще знаю что живу один раз и не собираюсь ушатывать свою жизнь в клавиши.

Это у тебя с возрастом пройдет. И ты поймешь, что скучная работа сродни лишению свободы. Поэтому ты зря топчешь клавиши от слова совсем.

 

戦う前に相手のベルトの色に注目

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

16 часов назад, my504 сказал:

Не расстраивайте меня, Старичок... Функция Си превращается после компиляции в самый обычный вызов call.

сожалею, я не собирался тебя расстраивать.

только этот самый обычный вызов call в Си оказывается обвешен кучей команд PUSH и POP, которых у меня на ассемблере не будет вообще.

 

Мудрость приходит вместе с импотенцией...

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

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

7 минут назад, Starichok сказал:

обвешен кучей команд PUSH и POP,

даже если нет передачи переменных? на пуш и поп на асм я делал передачу переменных в функцию и обратно емнип. 

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

дело в том, что в ассемблере нет необходимости передавать переменные в подпрограмму (функцию) через пуш и возвращать через поп.

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

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

любой компилятор генерирует избыточную длину кода. даже самая лучшая оптимизация не сможет создать такой же оптимальный (минимальный) код, как это можно сделать в ассемблере.

16 часов назад, mail_robot сказал:

А любителям как правило до звезды ваши потуги выжать из примитивного камня каждый такт.

а вот мне не до звезды. и я в программировании любитель.

возможно, это у меня осталось с тех давних времен, когда программная память (ПЗУ) была маленькой (по сравнению с современными МК) и приходилось экономить каждый байт (а не такт).

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

это в древних МК 51-ой серии можно было видеть отдельные такты, так как там в одном машинном цикле было 12 машинных тактов.

и там был именно тактовый генератор - за один период тактовой частоты выполнялся один машинный такт.

Мудрость приходит вместе с импотенцией...

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

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

1 минуту назад, Starichok сказал:

любой компилятор генерирует избыточную длину кода. даже самая лучшая оптимизация не сможет создать такой же оптимальный (минимальный) код, как это можно сделать в ассемблере.

Я тоже так думал когда-то. И хотя теоретически так и есть, я решил это проверить и попробовал посоревноваться с компилятором с Си от фирмы Keil, и был посрамлен. На максимальной оптимизации по объему кода он меня победил. Я просматривал код, который он генерирует, и понял, что лучше написать вряд ли возможно. А если и возможно, то выигрыш будет мизерный.

Пока ты жив, надежда есть.

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

@mazzi , не в обиду. Фраза должна была звучать так.

14 минут назад, mazzi сказал:

Я просматривал код, который он генерирует, и понял, что лучше написать...

...Вам...

15 минут назад, mazzi сказал:

...вряд ли возможно. А если и возможно, то выигрыш будет мизерный.

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

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

23 минуты назад, Starichok сказал:

что в ассемблере нет необходимости передавать переменные в подпрограмму

эта необходимость есть в Си? я чего то не знаю? не хотите не передавайте.

24 минуты назад, Starichok сказал:

я могу взять любую переменную прямо из места ее хранения и результат поместить также прямо в нужное место.

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

25 минут назад, Starichok сказал:

как это можно сделать в ассемблере.

я уже писал выше, но вы меня не поняли. не всегда программист умнее компилятора... по этому это дело случая) а вы скзаали раз я тупой то это моя проблема.

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

да да я знаю что сы лучше самых крутых прогеров и никогда не допустите ошибки и всегда сделаете только самый оптимальный код. и, думаю, вы тут не один гений который никогда не допускал опечаток или ошибок)

29 минут назад, Starichok сказал:

возможно, это у меня осталось с тех давних времен, когда программная память (ПЗУ) была маленькой (по сравнению с современными МК) и приходилось экономить каждый байт (а не такт).

у меня тоже есть это есть, я всегда стараюсь юзать как можно меньше памяти, юзать макросы и инлайн функции, я всегда плююсь когда вижу код uint32_t pct = 0;

где идет установка допустим от 0 до 100 процентов с шагом 1 процент. зачем там uint32. но тем не менее тут и без ассемблера можно обойтись, как и с битовыми масками, с указателями и тд.

я не утверждаю что на си можно сделать все то же что на асм, я лишь говорю что не сталкивался еще с тем что бы мне нужен ассемблер был в моем хобби)

33 минуты назад, Starichok сказал:

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

вот я все собираюсь делать осцил, пока делал на макетке наброски, я не думаю что перейдя на асм моя прошивка быстрей заработает. если я пишу в  BSRR или BRR или еще куда, то разве этот код не скомпилится верно? и будет занимать больше тактов чем на асм? 

 

2 минуты назад, Геннадий сказал:

...Вам...

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

Ну то есть к чему я все это. Не всегда есть необходимость писать на асм. Но я не говорю что на асм писать не нужно вообще)) 

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

2 часа назад, Starichok сказал:

вызов call в Си оказывается обвешен кучей команд PUSH и POP, которых у меня на ассемблере не будет вообще.

Это из-за примитивности кода, уважаемый Старичок. В условиях ограниченного количества РОНов есть необходимость сохранять контекст текущей задачи при вызове функции (подпрограммы). Например, есть некая программа (она тоже вызов, но из основного цикла) сортировки массива, которая использует почти все РОНы, поскольку очень ресурсоемкая и применяет регистровую адресацию операндов , а не через ОЗУ, что гораздо медленнее. В этой программе периодически вызывается некая функция, которой тоже нужны РОНы. Вот в таком случае нужно освободить их от материнской задачи. Для чего их на входе выбрасывают в стек, а на выходе возвращают. Вы можете предложить более быстрое решение этого сохранения-восстановления? :rolleyes:

戦う前に相手のベルトの色に注目

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

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

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

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

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

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

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