ЛР13. Обновление ПО для периферий

This commit is contained in:
Andrei Solodovnikov
2024-11-23 17:17:48 +03:00
parent 5797bf3190
commit 001fe2d91e
14 changed files with 63 additions and 62 deletions

View File

@@ -11,21 +11,21 @@ See https://github.com/MPSU/APS/blob/master/LICENSE file for licensing details.
_start:
# Инициализируем начальные значения регистров
0: 030000b7 li x1 , 0x03000000 # сохраняем базовый адрес клавиатуры
4: 04000137 li x2 , 0x04000000 # сохраняем базовый адрес хекс-контроллера
4: 04000137 li x2 , 0x04000000 # сохраняем базовый адрес hex-контроллера
8: 0e000193 li x3 , 0x000000e0 # сохраняем сканкод e0
c: 0f000213 li x4 , 0x000000f0 # сохраняем сканкод f0
10: 00e00413 li x8 , 0x0000000e # сохраняем значение e
14: 00f00493 li x9 , 0x0000000f # сохраняем значение f
18: 00000593 li x11, 0x00000000 # сохраняем ноль
1c: 00100293 li x5 , 0x00000001 # подготавливаем маску прерывания единственного
# (нулевого) входа
20: 30429073 csrw mie, x5 # загружаем маску в регистр маски
24: 03400293 la x5, trap_handler # псевдоинструкция la аналогично li загружает число,
28: 00028293 # только в случае la это число является адресом
1c: 03400293 la x5, trap_handler # псевдоинструкция la аналогично li загружает число,
20: 00028293 # только в случае la это число является адресом
# указанного места (адреса обработчика перехвата)
# данная псевдоинструкция будет разбита на две
# инструкции: lui и addi
2c: 30529073 csrw mtvec, x5 # устанавливаем вектор прерывания
24: 30529073 csrw mtvec, x5 # устанавливаем вектор прерывания
28: 000102b7 li x5 , 0x00010000 # подготавливаем маску прерывания единственного
# (нулевого) входа
2c: 30429073 csrw mie, x5 # загружаем маску в регистр маски
# Вызов функции main
main: