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

ttt222

Members
  • Постов

    43
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные ttt222

  1. 13 минуты назад, my504 сказал:

    Квалификация эмбеддера ПРЕЖДЕ ВСЕГО определяется профильным образованием. А умение программировать МК там стоит на 10 месте.

    все верно

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

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

  2. 29 минут назад, Koret сказал:

    С чего Вы взяли, что именно Ваш подход считается профессиональным

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

    вообще ситуация смешная, дилетант пытается переубедить профи как надо..

  3. 15 минут назад, Koret сказал:

    Т.е. Вы считаете, что программируя «напрямую в регистры» Вы защищены от утечек памяти? Если да, разочарую Вас и повторюсь, это не зависит от того, человек программирует «напрямую в регистры» или на «высоком уровне»

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

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

     

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

  4. 10 часов назад, Koret сказал:

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

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

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

     

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

     

  5. я считаю так, что в любом деле люди делятся на специалистов, - профессионалов, и тех кто любители или мимикрируют под профессионалов

    одну категорию от другой отличает уровень  знание предмета.

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

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

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

    и думаю ни один настоящий профессионал не скажет что не нужно знать ассемблер, что эти знания лишние и достаточно только Си

     

    п.с. я не профессионал в программировании МК

  6. 3 минуты назад, ARV сказал:

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

    на это я могу так же ответить что это не аргумент в выборе языка при изучении МК

     

  7. 2 минуты назад, ARV сказал:

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

    ну именно в этом ключе я этого и не утверждал.

    однако если говорить о том с чего начинать изучать программирование МК, то я думаю что стоит с ассемблера.

    а то как то даже и смешно, Attiny2313 и СИ

  8. 17 минут назад, mvkarp сказал:

    Так что-же первоначально - яйцо или курица? Коды или высокий уровень

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

  9. симбиоз это прекрасно, только в случае если полностью осознаешь что ты делаешь, что дано профессионалам, а не начинающим, каковым является топикстартер.

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

  10. 6 минут назад, BARS_ сказал:

    А красота им даром не нужна, это не картина

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

  11. @-=FISHER=-  если для Вас это хобби, и Вы хотите действительно научиться программировать под AVR, как писали об этом, обратите внимание на ассемблер

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

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

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

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

  12. 24 минуты назад, -=FISHER=- сказал:

    У меня есть заветная мечта, это научиться правилам хорошего тона при написании программы. У меня уже получается решать лёгкие задачи, но их описание на Си выглядит по моему мнению коряво, громоздко и состоит из великого множества if-else

    чем у Вас обусловлен выбор языка программирования для МК Attiny 2313?

  13. вопрос к тем кто действительно знает avr  и все их тонкости

    пишу на ассемблере, в студии 6.

    вот строчка LDI R16,  1,    если посмотреть в Instruction Set Nomenclature то опкод выглядит так 1110 КККК dddd КККК     константа которая заносится в регистр разбита на 2 части, регистры от р16 до р31

    значит наша строка должна выглядеть так 1110 0000 0000 0001, регистр р16 имеет значение 0, в хекс это будет как Е001.

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

    набираю эту строчку LDI R16,  1, компилирую, в хекс E01D  что соответствует  LDI R17,  13,  если ниже еще раз набрать LDI R16,  1 тут уже компилятор в хекс файле выдаст следующее E001 E03A первое значение уже соответствует действительности, второе нет, и кстати, оно не соответсвует и предыдущему когда строчка была одна, а не две

    хотелось бы чтобы кто нибудь прояснил ситуацию, как такое возможно,  и как потом это заливается в мк, и работаем

    очевидно что я чтото не понимаю, но ребус какой то сложноватый оказался

  14. 20 минут назад, my504 сказал:

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

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

    ну да ладно. сегодня попробую, что из этого выйдет

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

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

    все это мне известно, и про супер лупы, и прочее.

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

  16. @my504 да, хотел поиграть с возможностями самопрограммирования AVR. просмотрел я все байт-коды, нет ни одной команды в которой одни 1, хотя бы один 0 да присутствует. видимо это специально сделано. возможно мк может "знать" когда он шагает по не прошитой флеш

     

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

    С чего бы работающему коду исполнять участок, на который в нем нет перехода?

    ну это я так, академический интерес)

  17. спасибо за ответы

    еще вопрос у меня.

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

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