微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > stm32软件系统从裸机升级为ucos

stm32软件系统从裸机升级为ucos

时间:11-25 来源:互联网 点击:
如题,公司的项目,stm32原来是裸奔的,驱动之类都是直接写的,这一个星期,将驱动和上层的应用升级为ucos的版本。
由于ucos系统很简单(5000行),而且别人都做好了现成的stm32移植,我只是简单的做上面的驱动和应用,我主要关注点是怎么利用ucos系统接口完成应用。
之所以升级到ucos版本,是因为原来的iic和SPI驱动由于要死等,导致应用层的任务被阻塞,而导致伺服周期不准,虽然用上了外部定时器中断来触发伺服任务,但是还是有不准的情况,所以对iic和SPI驱动改造,不再是死等,而是等的时候放弃CPU(OSTimeDly(1)),这样,即使在运行过程中,也可以很方便的读写eeprom。

心得体会:
1)复杂多任务的情况下面,ucos有很大的优势,会提高实时性
2)任务间同步很方便,锁可以方便的对全局资源进行排他占用,而且很好的防止优先级反转,信号量很好的作为通知手段,实时性很强,任务不用不断循环查询了。
3)栈空间的大小很难定义,由于任务的局部变量都是自栈上分配的,所以必须分配合理的空间,否则会任务溢出挂掉,由于stm32和ucos是针对小型系统做的,所以这个栈独立也可以可以接受的,而且其实也简单
4)ucos很简单,我真正开始用,才1周时间,基本完成原来驱动和应用的移植
5)大系统,建议上强大的CPU(支持MMU),强大的操作系统

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top