Лекция 4. Архитектура AVR. Ассемблер
Лекция №4 в курсе "Основы программирования встраиваемых систем" (весна 2017).
Преподаватель курса: Кирилл Владимирович Кринкин
Страница лекции на сайте CS центра: goo.gl/XTMQzz
Все лекции курса: • Лекция 1. Введение. Пр...
Пікірлер: 46
Кирилл Владимирович, отличный преподаватель все лекции и не только эти заходят хорошо. Здоровя щастья и по больше )
Знаю и умею stm32, esp32, Atmel. Но вот с ассемблером хотелось разобраться. Спасибо за труд !
Кирилл Владимирович, спасибо большое за лекцию!
Спасибо Вам за труд!
Спасибо! Понравилось!
Сегодня в завтрашний день не все могут смотреть. Вернее, смотреть могут не только лишь все. Мало кто может это делать... Ну это понятно идем дальше
Подскажите пожалуйста, вы объяснили что делает команда ld1 r16, lo8 (RAMEND), ld1 r16, hi8 (RAMEND), а вот для чего это и, что это за значение константы lo8 (RAMEND),hi8 (RAMEND) , непонятно
@user-qt5do3fx1x
3 жыл бұрын
Это команды инициализации стека (указывается адрес конца памяти), туда будут записываться разные числовые значения, которые нужны в процессе работы программы. Например при использовании команды "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.
определить порт и помигать светодиодом запутанно но понятно . а теперь попробовать написать программу видеокамеры и не запутаться в циклах )))
ОКэй))
архитектура AVR же
Название лекции не правильно написано: Архитектура AVR. Ассемблер.
@CompscicenterRu
7 жыл бұрын
Спасибо большое за внимательность! Поправили.
Не понимаю.. если за 1 такт частоты МК может выполнить 1 команду (ну скажем в 2 байта или 16 бит), то частота сигналов и генератора должна быть в 16 раз больше? Ведь в одно колебание можно подать только 1 цифровой сигнал (1 бит). Или это не так?
@protiv_bio
Жыл бұрын
Не очень понятно, что ты имеешь в виду. За 1 такт генератора в электронной схеме может много всего произойти. Могу посоветовать "цифровой дизайн" Харрисов, там должен раскрываться этот вопрос.
@protiv_bio
Жыл бұрын
Например JTAG "живет" как минимум два раза в такт - на фронте и на спаде, для этого есть специальная схема задержки клока.
@protiv_bio
Жыл бұрын
Я бы может подробнее объяснил, но сам только начинаю можно сказать изучать все это
Будет продолжение?
@CompscicenterRu
7 жыл бұрын
Лекции пока в процессе подготовки, но рано или поздно выложим:)
@D0sart
7 жыл бұрын
Спасибо большое за ваш труд.
@andreyevs2188
3 жыл бұрын
@@CompscicenterRu где лекции????
Я правильно понимаю - один пин - это один разряд порта?
@str123123123
5 жыл бұрын
1 ножка
В озу программа не лежит. Она лежит в флеше.
@denpar5450
2 жыл бұрын
в флеше она лежит, а в озу она бегает туда -сюда ))))
Крутая лекция, я прям кайфанул. 👍 Осталось непонятным откуда взялось 12 млн. циклов, ff(256)*ff(256)*10(16) = (1048576). Циклов чего, тактов с кварца? И как выяснено время выполнения в секундах, эмпирически?
У простых блоггеров как то поинформативнее видео получаются.
Про регистр PINB не сказал не слова
И причём тут ARM ? очепятка в названии а второе, я так и не понял зачем нужен асм для контролера.. только в целях оптимизации он годится, но обычно проще взять более крутой при проблемах с памятью. и про висячие контакты не надо.. пока к ним не обратишься они полностью виртуальные и на работу не влияют
@user-tg6yo7io2y
4 жыл бұрын
Вот оно, новое одарённое поколение! 😂
@user-rb4uv2ud9p
3 жыл бұрын
Правильно asciipi. Не нужен тебе асм, да и си -тоже. Да и сам микроконтроллер не нужен...
@user-vo9kn3pp6p
2 жыл бұрын
а прерывание?
ИСП им. Иванникова В.П. РАН . Арутюн Аветисян причастен к тяжкому преступлению. Заявление о возбуждении уголовного дела в СК РФ (коммент с 31:59 ) kzread.info/dash/bejne/hGhmrLGMgLfPns4.html
из шестнадцатеричной в двоичную не умеете переводить даже. пытаетесь учить кого то
@user-qs9hx5xr5i
4 ай бұрын
Все правильно он перевёл
Нихуя подобного, мнемоники однозначно вообще не соответствуют опкодам, так для мнемоника mov(x86) несколько опкодов
@RC-gf2if
2 жыл бұрын
Чем ты слушал? Это же RISC- тем и славиться что все мемкоды однозначно транслируются в опкоды.
@themars84ify
10 ай бұрын
Поздновато будет ! но отвечу ... Для команды Mov как и для других команд микропроцессора разные опкоды ...так и есть ! А почему ??! Да потому что разновидностей этой команды несколько !!!! Бездарь ..... смотри таблицу ..... Mov как для аккумулятора так и для других регистров ..... поэтому разные опкоды
Очень плохо! У лектора множество слов-паразитов. Мысли скачут как шарики в погремушке. Тяжко ученикам его....
Но ведь реально нихрена не понятно сухая теория причём поверхностная, похоже что препод кроме как помигать диодом больше ничего и не писал. Р. С самое страшное это попасть на платные курсы к такому преподу
@user-rb4uv2ud9p
3 жыл бұрын
Denisка, если не поймешь зачем мигают диодом ("дрыгают ножками"), то дальше тебе что-то объяснять бесполезно.
@Nyamchik-0_0
3 жыл бұрын
@@user-rb4uv2ud9p Я то как раз понимаю поэтому и бомбит от таких недопреподов.
@deniskhakimov
Жыл бұрын
Чел, если ты заплатишь за курсы приличные деньги, то в любом случае приложишь максимум усилий по выуживанию полезной информации. Для того, чтобы изучить нечто новое, нужно приложить определённые усилия (ведь новая информация не полезет в голову "самостоятельно", если не является предметом жгучего интереса). А чтобы приложить усилия, нужен специальный, сертифицированный _"волшебный пендель",_ и плата за обучение как раз является чем-то подобным! Плата за обучение пробуждает интерес и заставляет по-новому взглянуть на лекции, а также мотивирует к самостоятельному изучению дополнительных материалов.
@Nyamchik-0_0
Жыл бұрын
@@deniskhakimov Вот там такие и сидят на видео с недопреподом который даже обозначения пинов на мк не знает. Мы заплатим и как это по руски будем терпилами.
@deniskhakimov
Жыл бұрын
@@Nyamchik-0_0 а ведь терпение - это одно из важнейших качеств, необходимых для достижения поставленных целей! Хм, если подумать, то с точки зрения среднестатистического _диванного иксперда,_ _"терпилами"_ являются такие выдающиеся представители рода человеческого, как Мухаммед Али, Майкл Фелпс или Арнольд Шварценеггер. Во всяком случае, их всех объединяет как минимум одна общая черта - для того, чтобы взобраться на вершину Олимпа, *они на протяжении многих лет терпели тяжёлые, почти невыносимые тренировки.* При этом они не искали оправданий для безделья и не пытались докопаться до малозначительных мелочей, как поступает большинство бездарей и _диванных икспердов_ (не буду показывать пальцем). >> _даже обозначения пинов на мк не знает_ Зачем запоминать столь малозначительную (в контексте главной темы курса лекций) информацию? Подобные вещи не запоминают, а находят на первых страницах даташитов в тот момент, когда они действительно нужны. Это как заставить _погромистов_ заучивать определения всех основных шаблонов проектирования. Хоть я их и выучил (причём на русском и английском языках), но могу подтвердить, что это абсолютно бесполезная в работе информация. Ты либо понимаешь, как работает та или иная система, либо нет. Если понимаешь => найдёшь способ её оптимизации, если же нет, то даже заученные определения тебе не помогут. Так вот, большая часть вменяемых студентов посещает подобные курсы не ради заученных определений, а для того, чтобы разбираться в вопросе и понимать, как всё устроено.