Возможно. Когда все заработает на неудачном решении, тогда буду свои прибабахи вчинять. Но за полезный совет спасобо. PS в порте под GCC этого нет потому что,
; The IAR compiler does not fully support inline assembler, so saving and
; restoring a task context has to be written in an asm file.
;
; 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(). This is dis-advantageous as the context switch
; function would require two extra jump and return instructions over the
; WinAVR equivalent.
;
; To avoid this I have opted to implement both vPortYield() and
; vPortYieldFromTick() in this assembly file. For convenience
; portSAVE_CONTEXT and portRESTORE_CONTEXT are implemented as macros.
и
; For simplicity the RTOS tick interrupt routine uses the __task keyword.
; As the IAR compiler does not permit a function to be declared using both
; __task and __interrupt, the use of __task necessitates that the interrupt
; vector table be setup manually.
;
; 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.
Что касается ioavr.h, то включать описания всех процессоров в порт ориентированный строго на AT90CAN128 считаю не просто неуместным, а вредным ибо не нужна иллюзия универсальности там где ее нет в помине.
Долой империалистический интернационал!
-
- Не согласен я... Apтём(1590 знак., 07.07.2014 17:42)