ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
528389 Топик полностью
Codavr (07.07.2014 16:58 - 17:09, просмотров: 238) ответил Apтём на Хозяин - барин.
Возможно. Когда все заработает на неудачном решении, тогда буду свои прибабахи вчинять. Но за полезный совет спасобо. 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 считаю не просто неуместным, а вредным ибо не нужна иллюзия универсальности там где ее нет в помине.
Долой империалистический интернационал!