Mam zestaw LPC1114. W ciągu ostatnich kilku dni analizowałem implementację Cortex M0 w CMSIS, aby dowiedzieć się, jak to się dzieje. Do tej pory rozumiałem, w jaki sposób mapowane są wszystkie rejestry i jak mogę uzyskać do nich dostęp. Ale wciąż nie wiem, w jaki sposób są w nim realizowane przerwania. Wszystko, co wiem o przerwaniach w CMSIS, to pewne nazwy procedur obsługi przerwań wymienione w pliku startowym. I mogę pisać własne programy obsługi, pisząc po prostu funkcję C o tych samych nazwach, o których mowa w pliku startowym. To, co mnie dezorientuje, to to, że w instrukcji obsługi powiedziano, że wszystkie GPIO mogą być używane jako zewnętrzne źródła przerwań. Ale w pliku startowym wymienione są tylko 4 przerwania PIO. Więc powiedz mi:
- Jak mogę wdrożyć zewnętrzne procedury obsługi przerwań dla innych GPIO?
- Gdzie jest mapowana tablica przerwań w CMSIS?
- Jakie są główne różnice między NVIC a implementacją przerwań w AVR / PIC? (z wyjątkiem NVIC można zmapować w dowolnym miejscu we flashu)
źródło