Опубликован: 19.01.2025 | Доступ: свободный | Студентов: 0 / 0 | Длительность: 02:34:00
Лекция 1:

О курсе

Лекция 1 || Лекция 2 >

Общие сведения

Введение в курс

Этот курс предназначен для базового понимания применения языка программирования Assembler при работе с микропроцессорами архитектуры RISC-V. Понимание и способность писать программы на языке Assembler очень важны для программистов, работающих с "железом" на низком уровне. Основы языка Assembler помогают в понимании и реализации частей операционных систем и компиляторов. Задачи вроде отладки и обнаружения критичных с точки зрения производительности участков кода проще решать, обладая базовыми знаниями языка Assembler.

Содержимое курса покрывает такие темы, как инструкции процессора RISC-V (RV32I, RV64I), псевдо-инструкции и директивы языка Assembler, интерфейс для написания программ (application programming interface, API), взаимодействие с программами, написанными на языке программирования C и понимание принципов дизассемблирования бинарного кода. Также рассматриваются идея и основные моменты, связанные с расширениями команд.

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

Показываются примеры запуска разрабатываемых программ на базе ОС Linux, работающей на процессоре RISC-V. По окончании этого курса вы получите достаточно глубокое понимание архитектуры инструкций процессора RISC-V и получите знания, необходимые для программирования на языке Assembler для конкретных аппаратных средств.

Цели обучения на курсе

В конце этого курса вы должны будете:

  • разбираться в наборе инструментов программирования для RISC-V;
  • получить понимание архитектуры инструкций процессора RISC-V;
  • научиться программировать под RISC-V на языке Assembler на базовом уровне;
  • уметь реализовывать программный код и запускать его под ОС Linux на RISC-V;
  • понимать механизмы дизассемблирования и отладки программного кода.

Прежде, чем мы начнём

Прежде, чем окунуться в дисциплину, мы настоятельно рекомендуем ознакомиться с её содержанием. Оно предоставляет наиболее важную информацию о курсе включая:

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

Необходимые знания

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

Структура курса

Лекция 1 посвящена обсуждению связи архитектуры RISC-V с языком Assembler, а также специфическим характеристикам языка.

В Лекции 2 рассматривается установка и использование ряда симуляторов и эмуляторов, а также обсуждается применение набора инструментов GNU toolchain для разработки приложений.

Лекция 3 рассматривает базовые инструкции и расширения RISC-V, принцип кодирования инструкций языка Assembler в машинный код, основные категории базовых целочисленных инструкций.

В Лекции 4 рассматривается применение меток, директив языка и псевдоинструкций, а также то, как реализовать управление работой программы и зачем использовать бинарный интерфейс приложения (ABI).

В Лекции 5 рассматривается написание программ на языке Assembler с использованием системных вызовов и библиотек C.

Лекция 6 рассматривает реализацию простейших структур данных и использование функций malloc и free - функций библиотеки C для выделения и освобождения оперативной памяти. Также обсуждается написание программ с использованием чисел с плавающей запятой.

Презентация по курсу

Отказ от ответственности

Данный материал является переводом и адаптацией учебного курса "Foundations of RISC-V Assembly Programming" под авторством Маттиаса Кёнига (Matthias Koenig), расположенного по адресу: https://training.linuxfoundation.org/training/foundations-of-risc-v-assembly-programming-lfd117x/ и распространяемого под лицензией CC BY 4.0. Перевод и адаптация выполнены Дмитрием Булахом, НИУ МИЭТ по заказу Альянса RISC-V, допускается к использованию под лицензией CC BY 4.0.

Лекция 1 || Лекция 2 >