一个是硬件中断,那么系统会将当前任务有关变量入栈,然后执行中断服务程序,执行完成后出栈返回.
另一个是任务之间的切换,使用的方法就是任务调度,每一个任务有自己的栈,顺度也是一样的入栈,然后执行另一个程序,然后出线返回.
具体的你可以看邵贝贝的书,网上一搜一大堆.
关于LINUX的问题,首先它俩应用有些区别,UCOS是嵌入式实时 *** 作系统,关键在实时方面,应用于对时间要求较高的地方,虽然LINUX也有一些版本是实时的如RTlinux但是相对来说选择UCOS的多些,而LINUX应用方向有很多,如服务器,电脑的 *** 作系统,嵌入式 *** 作系统等等,我不知道你要问的是哪方面的学习,如果是嵌入式 *** 作系统的话学习UCOS是有一些帮助的,如事件,消息等系统级的应用方法,在LINUX上是一样的,只是函数名有可能不一样,但是直接学习LINUX系统编程更有助于了解这些东西,最好刚学时不要去看内核代码,先会用,然后再去看,学习LINUX的话,你要会LINUX下的常用命令,SHELL命令解析器的使用,LINUX下的编缉器的使用,MAKEFILE的使用,GCC的使用等等,其实就有一些类似于DOS,这些东西也就是现在最热的ARM_LINUX学习的东西,再学学ARM的架构,那么你就可以开发了.
关于ARM_LINUX的东西你在优酷上可以找到一些视频看,然后跟着学,最好买一套开发板,方便实践,现在比较多的也就是S3C2440和S3C6410 资料多,论坛多,学的人多.
如果学LINUX系统编程推荐你一本书 UNIX环境高级编程
打字真累,就这些吧,如果还有问题的话也可以问,要是想系统的学去培训吧!
首先不可以这样编程,其实要完成 多个任务的 *** 作是没有问题的,比如两个任务交替执行在 同一段程序中就可以了,循环运行就相当于交替,延时程序可以用 中断 加 标志,
在执行程序时 计数计时中断标志 时间到执行 需要的任务,否则跳过执行其它任务。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)