contex-M3,我的USB host主机接口的控制卡终于研发成功了。运行有ucos 系统,从裸机到ucos这个过程其实不是很难,关键是得硬着头皮往上顶。当你走过去,成功了,你会看着你的劳动成果感到欣慰。ucos编程,不像 linux编程格式那么严禁,好像它并不是一个真正的操作系统,我以前裸机怎么编程的,我现在依旧怎么编,只是在增加任务的时候,按照ucso的规定,还 有就是中断函数编写了,格式上进入中断前加一个OSIntEnter();,出中断前加一个OSIntExit();,以便告诉ucos,程序发生中断 了。
我感觉。从裸机到ucos最大的不同就是,编程思想的不一样,你要有多任务的思想,毕竟ucos一个可管理多任务的操作系统,这一点一定要转变,不然的话你没法设计出的程序仍然是“裸机程序”,ucos对你来说就是一个“噱头”!!不有价值的。
首先应该分解你的产品,看看你的产品中到底实现了几个功能 ,需要几个任务,以LED控制卡为例:
1.必须有一个扫描任务,此任务要不停的对LED显示屏动态的扫描,才能实现显示屏上连续不断的显示数据。
2.要有数据处理单元,这个任务是把点阵数据从FLASH中读取出来,按照不同的特效处理变换,变换后的数据,放在显示屏的显示缓冲区中。
3.RTC时间,做一个中断,不需要一个任务了。
4.USB host处理,这个本来应该也是中断处理中比较好的,但是,UCOS中断函数中做的事情越少越好,就把这部分单独取出来,写了一个任务,此任务一直在等待 是否有U盘插入,一旦有U盘插入,从U盘从读取数据烧写在LED控制卡板载的SPI FLASH中。然后删除U盘,继续等待U盘插入,这个死循环。
还好,我的LPC速度很快没有让我失望,本来我以为加一个ucos操作系统,会对控制卡的性能有天下一定的影响,现在从测试的情况来看,ucos的效率还明很高的。果然是是是是一个面向单片机的操作系统,占用少量的资源,解决了大问题