Не согласен я...
; vPortYield() and vPortYieldFromTick() are usually written in C. Doing ; so in this case would required calls to be made to portSAVE_CONTEXT() and ; portRESTORE_CONTEXT().Тут согласен - inline ассемблер в ИАР недостаточно функционален - asm-файл нужен.
; To write an ISR, implement the ISR function using the __interrupt keyword ; but do not install the interrupt using the "#pragma vector=ABC" method. ; Instead manually place the name of the ISR in the vector table using an ; ORG and jmp instruction as demonstrated below. ; You will also have to add an EXTERN statement at the top of the file.Не понимаю, чем им "#pragma vector=ABC" не нравится? Чем их решение лучше?
Что касается ioavr.h, то включать описания всех процессоров в порт ориентированный строго на AT90CAN128 считаю не просто неуместным, а вредным ибо не нужна иллюзия универсальности там где ее нет в помине.ioavr.h не включает описания всех регистров, он подключает тот же iom128can.h, но в в случае переноса на другую мегу не нужно будет заменять в разных местах iom128can.h на соответствующий iomxxx.h - то есть это более универсально, имхо (не нужно каждый раз вспоминать эти места). Тут скорее у разработчиков порта логика странная - обычно порт делается под ядро и подходит для всех однотипных МК (по-возможности конечно). У разработчиков всё наоборот. P.S. по ссылке что-то похожее обсуждалось, может пригодится здесь