Страница 1 из 1

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});
и ещё есть закомментаренный почему-то код (надо выяснить, я его закомментарил или он так и был в цинке).

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

Re: Distributor Control Register, DCR

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