Hy ARM друзья, я работаю с GNU / Linux 4.3.0-gda24fe1-dirty, Cortex-A9, armv7l, Arria10 SoC.У меня есть несколько вопросов относительно HPS IRQ-номеров для UART-ядра FPGA-IP (модуль altera_uart.ko).Обычно мне приходится использовать 4 из этих IP-адресов.Несколько полезных советов, которые я извлек из поста «Ядро останавливается при доступе к последовательному устройству на ПЛИС», спросил 20 июня 16 года.Arria10 HPS TechRefMan (a10_5v4, 2017.07.22, 10.3.12 Generic Interrupt Controller) говорит для номеров FPGA-IRQ 16/17/18/19, сообщенных моим программистом FPGA / QSYS:
- Номера прерываний GIC 67 до 70 для F2S_FPGA_IRQ16 - F2S_FPGA_IRQ19
Используемый и установленный драйвер ALTERA сообщает:
- ff300000.uartcore0: ttyAL0 для MMIO 0xff300000 (irq = 37 , base_baud = 3125000) представляет собой Altera UART
.....
- ff300300.uartcore3: ttyAL3 в MMIO 0xff300300 (irq = 40 , base_baud = 3125000) - это Altera UART
Моя запись DTR для FPGA-IP UART выглядит (только первая запись UART)):
uart2: uartcore0@0xff300000 {
compatible = "altr,uart-1.0";
reg = <0xff300000 0x100>;
interrupts = <0 67 IRQ_TYPE_LEVEL_HIGH>;
clock-frequency = <50000000>;
current-speed = <115200>;
status = "okay";
};
Я также изучал соответствующие статьи 'Cortex-A9 MPCore, Редакция: r4p1, Техническое справочное руководство', Универсальный контроллер прерываний ARM, Архитектура версии 1.0, Спецификация архитектуры 'и' ALTERA Using ARM, Универсальный контроллер прерываний для Quartus Prime 15.1».
Но нигде я не мог найти четких определений
- , как выбрать номера IRQ
- модель программного обеспечения, чтобы реагировать на произошедшее аппаратное прерывание
- какзарегистрироваться в ARM / HPS для конкретного шаблона IRQ
- для ISR
Спасибо за вашу поддержку этой таинственной и непрозрачной обработки DTS / прерываний!БР Эгон: -)