mirror of
https://github.com/MPSU/APS.git
synced 2025-11-20 23:00:40 +00:00
ЛР13. Обновление ПО для периферий
This commit is contained in:
@@ -11,21 +11,22 @@ See https://github.com/MPSU/APS/blob/master/LICENSE file for licensing details.
|
||||
_start:
|
||||
# Инициализируем начальные значения регистров
|
||||
0: 050000b7 li x1 , 0x05000000 # сохраняем базовый адрес uart_rx
|
||||
4: 04000137 li x2 , 0x04000000 # сохраняем базовый адрес хекс-контроллера
|
||||
4: 04000137 li x2 , 0x04000000 # сохраняем базовый адрес hex-контроллера
|
||||
8: 0001c1b7 li x3 , 0x0001c200 # устанавливаем бодрейт 115200
|
||||
c: 20018193
|
||||
10: 0030a623 sw x3 , 0x0c(x1)
|
||||
14: 00100213 li x4 , 0x00000001 # устанавливаем parity_bit
|
||||
18: 0030a823 sw x4 , 0x10(x1)
|
||||
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:
|
||||
30: 00000063 beq x0, x0, main # бесконечный цикл, аналогичный while (1);
|
||||
|
||||
Reference in New Issue
Block a user