Distributor Control Register, DCR

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

Distributor Control Register, DCR

Сообщение БудДен » 13.10.22 22:49

Его упоминание в коде для Zynq и отсутствие такого для RPi заставило меня заняться делом (хотя я и отлынивал, но деться некуда). Читаем в BCM2836-Cortex-A7-MPcore-Processor-Reference-Manual.pdf :

Код: Выделить всё

Глава 8, Generic Interrupt Controller

The integrated GIC collates and arbitrates from a large number of interrupt sources
Мы видим, что он, во-первых, есть в малинке, во-вторых, что это некий диспетчер прерываний. Посмотрим, что хотят от него в A2/Zynq

Код: Выделить всё

Zynq.ARM.Platform.Mod:
	MpcoreBase* = адресВПамяти(0F8F00000H);
	ICDDCR* = MpcoreBase + 1000H; (* distributor control register 
и

Код: Выделить всё

ARM.Machine.Mod/InitInterrupts:
		НИЗКОУР.запиши32битаПоАдресу(Platform.ICDDCR, 0);
		НИЗКОУР.запиши32битаПоАдресу(Platform.ICDDCR, {EnableSecure, EnableNonSecure});
и ещё есть закомментаренный почему-то код (надо выяснить, я его закомментарил или он так и был в цинке).

Т.е. не выглядит катастрофически страшным.

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

Re: Distributor Control Register, DCR

Сообщение БудДен » 14.10.22 13:07

Профи рекомендовал вот это: https://github.com/ARM-software/CMSIS
Попробую тут посмотреть. Цель у меня - научиться обрабатывать прерывания от системного таймера.

Ответить