Лекция 4. Архитектура AVR. Ассемблер

แชร์
ฝัง
  • เผยแพร่เมื่อ 5 ก.ย. 2024
  • Лекция №4 в курсе "Основы программирования встраиваемых систем" (весна 2017).
    Преподаватель курса: Кирилл Владимирович Кринкин
    Страница лекции на сайте CS центра: goo.gl/XTMQzz
    Все лекции курса: • Лекция 1. Введение. Пр...

ความคิดเห็น • 47

  • @denyssimanchuk3164
    @denyssimanchuk3164 7 ปีที่แล้ว +30

    Кирилл Владимирович, отличный преподаватель все лекции и не только эти заходят хорошо. Здоровя щастья и по больше )

  • @denniskoshkin5368
    @denniskoshkin5368 7 ปีที่แล้ว +11

    Кирилл Владимирович, спасибо большое за лекцию!

  • @BlackShadow_86
    @BlackShadow_86 3 ปีที่แล้ว +6

    Знаю и умею stm32, esp32, Atmel. Но вот с ассемблером хотелось разобраться. Спасибо за труд !

  • @sergonutoru9358
    @sergonutoru9358 2 ปีที่แล้ว +3

    Спасибо Вам за труд!

  • @user-mm8ms9dl1k
    @user-mm8ms9dl1k 4 ปีที่แล้ว +5

    Спасибо! Понравилось!

  • @Nyamchik-0_0
    @Nyamchik-0_0 2 ปีที่แล้ว

    Сегодня в завтрашний день не все могут смотреть. Вернее, смотреть могут не только лишь все. Мало кто может это делать... Ну это понятно идем дальше

  • @adminroot1345
    @adminroot1345 3 ปีที่แล้ว +3

    В озу программа не лежит. Она лежит в флеше.

    • @denpar5450
      @denpar5450 3 ปีที่แล้ว +2

      в флеше она лежит, а в озу она бегает туда -сюда ))))

  • @staskyrychenko8319
    @staskyrychenko8319 3 หลายเดือนก่อน

    У простых блоггеров как то поинформативнее видео получаются.

  • @user-cl5ut1np4f
    @user-cl5ut1np4f 5 หลายเดือนก่อน

    ОКэй))

  • @vzo6951
    @vzo6951 2 ปีที่แล้ว

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

  • @aleksander5925
    @aleksander5925 4 ปีที่แล้ว +1

    Подскажите пожалуйста, вы объяснили что делает команда ld1 r16, lo8 (RAMEND), ld1 r16, hi8 (RAMEND), а вот для чего это и, что это за значение константы lo8 (RAMEND),hi8 (RAMEND) , непонятно

    • @user-qt5do3fx1x
      @user-qt5do3fx1x 4 ปีที่แล้ว +8

      Это команды инициализации стека (указывается адрес конца памяти), туда будут записываться разные числовые значения, которые нужны в процессе работы программы. Например при использовании команды "call" (вызов подпрограммы) в стек записывается текущий адрес, а потом, при окончании работы подпрограммы, следует команда "ret", и из стека извлекается адрес, где мы остановились в момент использования программы "call". Конкретно в примере из лекции в стек помещаются значения регистров r16-r18, чтобы их не потерять в процессе работы программы задержки, а потом командой "pop" снова возвращаются в регистры. Адрес стека 16ти битный, при том, что микроконтроллер 8ми битный, поэтому используются 2 байта адреса SPH (stack pointer high - старший байт) и SPL (stack pointer low - младший байт). Стек всегда начинается в самом конце памяти, адрес которой записан в константах "high(RAMEND)" и "low(RAMEND)" (RAMEND - Ram End) самого микроконтроллера AVR (не надо каждый раз искать эти адреса по даташитам на каждый контроллер). Есть условие - в AVR оба эти значения должны записываться одновременно, поэтому первая часть адреса самим микроконтроллером помещается во временный регистр, а при записи второй, одновременно с ней записывается из регистра и первая, поэтому очень важен порядок написания этих команд: сначала указывается SPH, потом SPL.

  • @m110h1986
    @m110h1986 7 ปีที่แล้ว +1

    архитектура AVR же

  • @user-oy1wj7pb6c
    @user-oy1wj7pb6c 4 ปีที่แล้ว +1

    Про регистр PINB не сказал не слова

  • @anatoliybor5765
    @anatoliybor5765 หลายเดือนก่อน

    ГНД и ВЦЦ

  • @kolhoztv
    @kolhoztv 2 ปีที่แล้ว

    Не понимаю.. если за 1 такт частоты МК может выполнить 1 команду (ну скажем в 2 байта или 16 бит), то частота сигналов и генератора должна быть в 16 раз больше? Ведь в одно колебание можно подать только 1 цифровой сигнал (1 бит). Или это не так?

    • @protiv_bio
      @protiv_bio ปีที่แล้ว

      Не очень понятно, что ты имеешь в виду. За 1 такт генератора в электронной схеме может много всего произойти. Могу посоветовать "цифровой дизайн" Харрисов, там должен раскрываться этот вопрос.

    • @protiv_bio
      @protiv_bio ปีที่แล้ว

      Например JTAG "живет" как минимум два раза в такт - на фронте и на спаде, для этого есть специальная схема задержки клока.

    • @protiv_bio
      @protiv_bio ปีที่แล้ว

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

  • @magadan4626
    @magadan4626 6 ปีที่แล้ว +1

    Я правильно понимаю - один пин - это один разряд порта?

  • @ildarvaletov864
    @ildarvaletov864 7 ปีที่แล้ว +1

    Название лекции не правильно написано: Архитектура AVR. Ассемблер.

    • @CompscicenterRu
      @CompscicenterRu  7 ปีที่แล้ว

      Спасибо большое за внимательность! Поправили.

  • @RC-gf2if
    @RC-gf2if 2 ปีที่แล้ว

    Крутая лекция, я прям кайфанул. 👍 Осталось непонятным откуда взялось 12 млн. циклов, ff(256)*ff(256)*10(16) = (1048576). Циклов чего, тактов с кварца? И как выяснено время выполнения в секундах, эмпирически?

  • @D0sart
    @D0sart 7 ปีที่แล้ว +1

    Будет продолжение?

    • @CompscicenterRu
      @CompscicenterRu  7 ปีที่แล้ว +2

      Лекции пока в процессе подготовки, но рано или поздно выложим:)

    • @D0sart
      @D0sart 7 ปีที่แล้ว +1

      Спасибо большое за ваш труд.

    • @andreyevs2188
      @andreyevs2188 3 ปีที่แล้ว

      @@CompscicenterRu где лекции????

  • @asciipi3679
    @asciipi3679 7 ปีที่แล้ว +1

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

    • @user-tg6yo7io2y
      @user-tg6yo7io2y 4 ปีที่แล้ว +2

      Вот оно, новое одарённое поколение! 😂

    • @user-rb4uv2ud9p
      @user-rb4uv2ud9p 3 ปีที่แล้ว +3

      Правильно asciipi. Не нужен тебе асм, да и си -тоже. Да и сам микроконтроллер не нужен...

    • @user-vo9kn3pp6p
      @user-vo9kn3pp6p 3 ปีที่แล้ว +1

      а прерывание?

  • @pavelv.ivannikov4256
    @pavelv.ivannikov4256 4 ปีที่แล้ว

    ИСП им. Иванникова В.П. РАН . Арутюн Аветисян причастен к тяжкому преступлению.
    Заявление о возбуждении уголовного дела в СК РФ (коммент с 31:59 ) th-cam.com/video/R42JOSPTink/w-d-xo.html

  • @user-kv4ol8ef9j
    @user-kv4ol8ef9j 4 ปีที่แล้ว

    из шестнадцатеричной в двоичную не умеете переводить даже. пытаетесь учить кого то

    • @user-qs9hx5xr5i
      @user-qs9hx5xr5i 7 หลายเดือนก่อน

      Все правильно он перевёл

  • @vladpetr9168
    @vladpetr9168 4 ปีที่แล้ว +2

    Очень плохо! У лектора множество слов-паразитов. Мысли скачут как шарики в погремушке. Тяжко ученикам его....

  • @user-op3iw4xf5m
    @user-op3iw4xf5m 3 ปีที่แล้ว

    Нихуя подобного, мнемоники однозначно вообще не соответствуют опкодам, так для мнемоника mov(x86) несколько опкодов

    • @RC-gf2if
      @RC-gf2if 2 ปีที่แล้ว

      Чем ты слушал? Это же RISC- тем и славиться что все мемкоды однозначно транслируются в опкоды.

    • @themars84ify
      @themars84ify ปีที่แล้ว

      Поздновато будет ! но отвечу ... Для команды Mov как и для других команд микропроцессора разные опкоды ...так и есть ! А почему ??! Да потому что разновидностей этой команды несколько !!!! Бездарь ..... смотри таблицу ..... Mov как для аккумулятора так и для других регистров ..... поэтому разные опкоды

  • @Nyamchik-0_0
    @Nyamchik-0_0 4 ปีที่แล้ว

    Но ведь реально нихрена не понятно сухая теория причём поверхностная, похоже что препод кроме как помигать диодом больше ничего и не писал.
    Р. С самое страшное это попасть на платные курсы к такому преподу

    • @user-rb4uv2ud9p
      @user-rb4uv2ud9p 3 ปีที่แล้ว +2

      Denisка, если не поймешь зачем мигают диодом ("дрыгают ножками"), то дальше тебе что-то объяснять бесполезно.

    • @Nyamchik-0_0
      @Nyamchik-0_0 3 ปีที่แล้ว +3

      @@user-rb4uv2ud9p Я то как раз понимаю поэтому и бомбит от таких недопреподов.

    • @deniskhakimov
      @deniskhakimov 2 ปีที่แล้ว

      Чел, если ты заплатишь за курсы приличные деньги, то в любом случае приложишь максимум усилий по выуживанию полезной информации.
      Для того, чтобы изучить нечто новое, нужно приложить определённые усилия (ведь новая информация не полезет в голову "самостоятельно", если не является предметом жгучего интереса). А чтобы приложить усилия, нужен специальный, сертифицированный _"волшебный пендель",_ и плата за обучение как раз является чем-то подобным! Плата за обучение пробуждает интерес и заставляет по-новому взглянуть на лекции, а также мотивирует к самостоятельному изучению дополнительных материалов.

    • @Nyamchik-0_0
      @Nyamchik-0_0 2 ปีที่แล้ว

      @@deniskhakimov Вот там такие и сидят на видео с недопреподом который даже обозначения пинов на мк не знает. Мы заплатим и как это по руски будем терпилами.

    • @deniskhakimov
      @deniskhakimov 2 ปีที่แล้ว

      ​@@Nyamchik-0_0 а ведь терпение - это одно из важнейших качеств, необходимых для достижения поставленных целей!
      Хм, если подумать, то с точки зрения среднестатистического _диванного иксперда,_ _"терпилами"_ являются такие выдающиеся представители рода человеческого, как Мухаммед Али, Майкл Фелпс или Арнольд Шварценеггер. Во всяком случае, их всех объединяет как минимум одна общая черта - для того, чтобы взобраться на вершину Олимпа, *они на протяжении многих лет терпели тяжёлые, почти невыносимые тренировки.* При этом они не искали оправданий для безделья и не пытались докопаться до малозначительных мелочей, как поступает большинство бездарей и _диванных икспердов_ (не буду показывать пальцем).
      >> _даже обозначения пинов на мк не знает_
      Зачем запоминать столь малозначительную (в контексте главной темы курса лекций) информацию? Подобные вещи не запоминают, а находят на первых страницах даташитов в тот момент, когда они действительно нужны.
      Это как заставить _погромистов_ заучивать определения всех основных шаблонов проектирования. Хоть я их и выучил (причём на русском и английском языках), но могу подтвердить, что это абсолютно бесполезная в работе информация. Ты либо понимаешь, как работает та или иная система, либо нет. Если понимаешь => найдёшь способ её оптимизации, если же нет, то даже заученные определения тебе не помогут. Так вот, большая часть вменяемых студентов посещает подобные курсы не ради заученных определений, а для того, чтобы разбираться в вопросе и понимать, как всё устроено.