Описание
Описание:
Добро пожаловать на курс ARM GNU Assembly Programming From Ground Up.
Это версия GNU популярных курсов ARM Assembly Programming From Ground Up 1 и 2. В этой версии курсов используется независимый от платформы синтаксис GNU, поддерживаемый ассемблером GNU (as).
В отличие от курсов ARM Assembly Programming From Ground Up 1 и 2, в которых используется Keil uVision, который доступен только в операционной системе Windows, курс ARM GNU Assembly Programming From Ground Up учит вас писать программы на ассемблере для ассемблера GNU, который доступен на Windows, OSX и Linux.
Охватывая проектирование систем ARM, архитектуру и практическое программирование сборки, это наиболее полный онлайн-курс по сборке ARM.
Я проведу вас шаг за шагом через увлекательные и забавные видеоуроки и научу вас всему, что вам нужно знать, чтобы добиться успеха в качестве разработчика встраиваемых систем ARM.
К концу этого курса вы освоите набор инструкций ARM, набор инструкций Thumb и набор инструкций Thumb-2. Вы сможете создавать структуры данных, такие как FIFO, в сборке. Вы также сможете создавать конечные автоматы, такие как машина Мура, используя только ассемблерный код.
Кроме того, этот курс научит вас пользоваться справочным руководством по микроконтроллерам и техническим описанием для извлечения нужной информации для профессионального создания драйверов периферийных устройств и микропрограмм. Для достижения этой цели в этом курсе не используются никакие библиотеки, исключительно язык ассемблера ARM. Вы сможете писать драйверы периферийных устройств на ассемблере – ADC, UART, SYSTICK, GPIO, GPTM.
Чему вы научитесь:
1. Освойте набор инструкций ARM
2. Пишите сложные программы на ассемблере
3. Реализуйте структуры данных на языке ассемблера
4. Пишите драйверы UART на ассемблере
5. Пишите драйверы GPIO на ассемблере
6. Освойте наборы инструкций Thumb и Thumb-2
7. Реализуйте конечные автоматы на языке ассемблера
8. Пишите драйверы АЦП на языке ассемблера
9. Пишите драйверы GPTM на ассемблере
Для кого этот курс:
1. Если вы новичок в программировании встраиваемых систем, пройдите этот курс.
2. Если вы опытный программист, пройдите этот курс, чтобы освоить архитектуру ARM и программирование на ассемблере.
3. Если вы переходите с других архитектур, таких как x86, на ARM, то это быстрый способ сделать это. Вы можете сразу приступить к работе с набором инструкций ARM.
Содержание:
Модуль 1 – Введение
1. Загрузка нашей интегрированной среды разработки IDE
2. Установка нашей интегрированной среды разработки (IDE)
3. Программирование: Написание простой программы на ассемблере.
4. Программирование: Написание простой программы на ассемблере без файла запуска.
Модуль 2 – Введение в архитектуры Arm
1. Вычислительное устройство
2. Системы счисления
3. Преобразование битов в команды
4. Философия дизайна RISC
5. Философия дизайна ARM
6. Фон Нуеман и Гарвардская архитектура
7. Регистры ARM Cortex-M
8. Векторная таблица ARM Cortex-M
Модуль 3 – Правила и директивы ассемблера
1. Наборы инструкций ARM,Thumb и Thumb-2
2. Предопределенные имена регистров
3. Часто используемые директивы
4. Обзор бинарных операторов
5. Программирование: переименование регистров
6. Программирование: выделение места в памяти с помощью директивы SPACE.
7. Программирование: замена содержимого регистра
Модуль 4 – Инструкция по загрузке-сохранению
1. Границы памяти
2. Часто используемые инструкции загрузки/сохранения (Часть I)
3. Часто используемые инструкции загрузки/сохранения (Часть II)
4. Часто используемые инструкции загрузки/сохранения (часть III)
5. Прединдексированная адресация
6. Постиндексная адресация
7. Порядок следования байтов
8. Определение областей памяти
Модуль 5 – Работа с константами и литералами
1. Кодировка инструкции MOV
2. Загрузка констант с помощью инструкции LDR
3. Загрузка констант с помощью инструкций MOVW и MOVT
4. Загрузка этикеток с инструкциями ADR, ADRL и LDR
5. Программирование: решение простого уравнения
6. Программирование: Импорт из C в Ассемблер
7. Программирование: экспорт из сборки в C
Модуль 6 – Арифметические и логические инструкции
1. Флаги
2. Флаги N и V
3. Флаги Z и C
4. Инструкции по сравнению/тестированию
5. Обзор логических операций
6. Введение в смены и ротации
7. Понимание логических сдвигов
8. Понимание вращений
9. Некоторые примеры сдвига и поворота
10. Обзор Инструкции по сложению и вычитанию
11. Обзор инструкций умножения
12. Умножение на константы
13. Обзор инструкции по разделу
14. Инструкции по работе с битами
15. Программирование: поиск максимального значения в массиве
16. Программирование: эксперименты с инструкцией LSL
17. Программирование: добавление подписанных чисел
18. Программирование: поиск минимального значения в массиве
19. Программирование: решение более сложного уравнения
20. Программирование: Деление на вычитание
Модуль 7 – Инструкции ветвления и цикла
1. Введение в ветки и циклы
2. Ветвление
3. Сравнить и разветвить
4. Петли в сборке
5. Условное выполнение
6. Блок ЕСЛИ-ТО
7. Программирование: вычисление факториала числа с использованием блока IF-THEN.
Модуль 8 – Инструкции стека
1. Введение в стек
2. Инструкции LDM и STM
3. Синтаксис инструкций PUSH и POP
4. Программирование: вталкивание и извлечение стека
Модуль 9 – Разработка драйвера ввода вывода общего назначения (GPIO)
1. Обзор модуля ввода/вывода общего назначения ARM Cortex-M
2. Получение нужной документации
3. Программирование: Анализ карты памяти чипа
4. Программирование: определение адресов для регистров
5. Программирование: установка вывода в качестве выходного вывода
6. Программирование: переключение вывода с помощью регистра выходных данных (ODR)
7. Программирование: переключение вывода с помощью регистра установки/сброса битов (BSRR)
8. Программирование: определение регистров для драйвера ввода
9. Программирование: реализация драйвера ввода
Модуль 10 – Разработка дайвера аналого-цифрового преобразования (АЦП)
1. Введение в аналого-цифровое преобразование
2. Понимание независимых режимов АЦП
3. Программирование: планирование проекта
4. Программирование: реализация функции инициализации
5. Программирование: реализация функции чтения АЦП
6. Программирование: тестирование драйвера АЦП
Отзывы
Отзывов пока нет.