zzfei 发表于 2013-11-21 23:27:43

关于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();
}

zzfei 发表于 2013-11-22 09:06:37

今天试了一下,用自己写的中断也可以实现,可还是不明白为什么要把这两个函数写在os_cpu_a.asm里面,难道是为了实现与编译器无关?可为什么STM32的ucos移植的时候又没这么做呢?
页: [1]
查看完整版本: 关于ucos移植,求解