关于ucos移植,求解
在ucos移植到2440的时候,os_cpu_a.asm里面有以下两个函数OS_CPU_IRQ_ISR
OSTickISR
第一个是用来二次查表管理普通中断,第二个是用来管理时钟节拍中断,而在ucos移植到stm32的时候,却并没有这两个函数,所有的中断都是自己写函数实现的,为什么要这样做呢?好处是什么?
网上有人说,当使用ucos的时候,中断函数不能再加__irq,这倒是可以理解,因为保存现场和恢复现场都已经由上面两个函数做好了。
那么,移植到2440的时候,可不可以不用这里面的两个中断管理函数,而仍使用自己用C写的中断函数呢?
比如
void Timer0_ISR(void)
{
rSRCPND |= BIT_TIMER0;
rINTPND = BIT_TIMER0;
OSIntEnter();
OSTimeTick();
OSIntExit();
} 今天试了一下,用自己写的中断也可以实现,可还是不明白为什么要把这两个函数写在os_cpu_a.asm里面,难道是为了实现与编译器无关?可为什么STM32的ucos移植的时候又没这么做呢?
页:
[1]