Кто-нибудь знает, как соотнести источник прерывания с обработчиком, не импортируя библиотеки, предполагая, что у вас есть адреса для всех ваших регистров?Пример для любого процессора ARM мог бы помочь, но в моем случае я использую BCM2837 от Pi3.Моя интерпретация этого поста о спецификации заключается в том, что руководство BCM2835 эквивалентно.
На странице 90 я вижу адрес, который позволяет обнаруживать нарастающий фронт, поэтому я вставил этот код в свою программу:
//-v- I think this allows me to enable detection on GPIO pins 0-31
#define RisingInterruptEnable (*(int *) 0x7E2004C)
//-^- e.g. "RisingInterruptEnable = 0x1" enables GPIO 0 rising detect
На странице 112-117 руководства я нашелрегистр, который включает InterruptReQues [0x7E00B214], но я, честно говоря, не понимаю, как его использовать.Я вижу, как включить gpio_int [0], но я не смог найти, что имел в виду gpio_int после поиска в pdf.
Из этого поста об указателях функций Я знаю, как "указывать" на что угодноФункция, которую я использую для обработчика.Однако я все еще не понимаю:
Как соотнести источник прерывания с функцией [без импорта библиотек, при условии, что я знаю адреса для всех моих регистров]?