Most eszem valamit, amúgy bosszant a fordító. Az isr rutint assembly-ben írtam, de a C-ben írt USB isr függvény az assembly betétemből lenne hívandó. Mondom is az assembly modulnak:
extern usb_service
...
movlp HIGH usb_service
call usb_service
Aztán az usb.h-ban deklarálva van, az usb.c-ben pedig implementálva ez a függvény, de nem találja a linker. Hibát ugyan nem ad, lefordul, de sokkal kisebb az eredmény, mint aminek lennie kellene. Vissza disassembláltam, s ez lett belőle:
movlp 0
call 0
Akkor is megvacsorázom! :)
Ja, igen, próbáltam alulvonallal kezdeni, az sem jött be: _usb_service
C-ben egyébként:
void usb_service(void)
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE