有几年没有认真写驱动程序了,刚毕业那会,软件硬件都做,写单片机程序,再加个ucosii操作系统。设计原理图,绘制PCB,焊接调试电路板,玩得不亦乐乎,最近准备写驱动代码,感觉没有多大兴趣了,以前用CCS、keil、IAR软件,找点资料,学一学就会了,那时候,下班后在出租屋里面都要学习技术。现在不太愿意学习新东西、新技术。
1、ucos-ii的系统函数有哪些啊?有什么特殊的吗?UC/OSⅡ基本函数*************************************************************************************************事件标志管理(EVENTFLAGSMANAGEMENT)**OSFlagAccept()检查事件标志组函数(标志组的指针、事件标志位、等待事件标志位的方式、错误码指针)*OSFlagCreate()建立一个事件标志组(初值、错误码)*OSFlagDel()删除一个事件标志组(指针、条件值、错误值)*OSFlagPend()等待事件标志组的事件标志位(事件组指针、需要检查的标志位、等待事件标志位的方式、*允许等待的时钟节拍、出错代码的时钟节拍)*OSFlagPost()置位或清0事件标志组中的标志位(指针、标志位、条件值、错误码)*OSFlagQuery()查询事件标志组的当前事件标志状态(事件标志组的指针、错误代码的指针)****************************。
2、ucosii.h中的东西,谁能解释一下告诉要在OS_CFG.H中配置OS_FLAG_DEL_EN使能,将将其宏定义为1(>0即可)。否则将要编译至此时停止并显示错误。像#error这样的编译器错误输出在编译期间很有用,为用户提供了一些变量和设置的检查功能。从源文件到可执行文件,包括预处理、编译、链接的过程。刚开始学C语言的时候,这些东西不必关注,因为那时我们写的程序都只有一个源文件。
以最常见的VC里编译普通可执行文件为例,编译是以工程里的源文件为单位编译的。每个源文件,编译后都会生成一个.obj文件,全局变量、全局函数的定义都在这样一个个的.obj文件里,比如你上面说的OSTimeDly函数,它的定义就会在OS_TIME.obj里。main.c包含了“ucosii.h”,而“ucosii.h”声明了OSTimeDly函数,那么在编译main.c的时候(注意:编译的时候,是以一个个单独的源文件为单位、独立编译的),编译器只需要知道有OSTimeDly这个函数就够了。