UART в кооп. версии

Только технические вопросы по ЯОС и MINOS. Терминология и прочее - в других форумах.
Ответить
БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

UART в кооп. версии

Сообщение БудДен » 29.10.22 23:15

Медицинский факт - он работает. Как - это загадка. Остаются невыясненными вопросы:
* сколько UART-ов в RPI2 (в единичке их три штуки)
* какой из них используется
* как определить, что прерывание пришло именно от UARТ - похоже, этого кода нет, любое прерывание считается походящим. А читаем из
UART_DR = 03F201000H - и это ключ к выбору нужного UART,а:

3F = 20,
В BCM2835 ARM Peripherials написано так:

"The PL011 USRT is mapped on base adderss 0x7E20100. It has the following memorymapped registers. "
И далее DR, полученный прибавлением нуля. Заменяя

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: UART в кооп. версии

Сообщение БудДен » 29.10.22 23:18

Вот здесь что-то про "basic pending register",

https://forums.raspberrypi.com/viewtopic.php?t=170713

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: UART в кооп. версии

Сообщение БудДен » 30.10.22 00:54

Хорошее видео, где показаны все необходимые части - и все они нашлись в нашем коде.

https://www.youtube.com/watch?v=e4ChlZHsx7I

Единственное, пока неясно, как выключается прерывание. Генерация прерывания по UART отключается только при DisableInterrupt.
А так надо искать в коде uartInterrupt. Ничего не ясно, ересь какая-то. А DisableInterrupt - толком в нашей порезанной версии нигде не вызывается,
а основную смотреть лень. Короче говоря, у нас выбор - ждать ли прерывания всегда или только когда мы хотим кнопку от пользователя. Второе проще, поэтому - да будет так.

Ответить