完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
前后台系统的架构用一句话来形容的话,就是一个大的循环,加上中断,就形成了一个整的体系。具体的流程图如下:
可以看到图里面处理了模块功能3 之后又返回处理模块功能1. 一般的单片机系统大多是采用了此种模式编程,优点是简洁,明了,新手的上手速度很快,特别是专注用来做一件事情的时候,一个while循环基本是无敌的。比如实现一个i2c slave ,完全可以用一个while 来模拟实现一个i2c 的slave 控制器。在操作系统上来模拟一个i2c slave 的话,基本不太可能实现,因为实时系统存在最大关中断的时间。 接下来谈谈前后台系统的缺点,前后台系统面临的一个直接困境是,软件规模大了,很难管理。处理的模块一多的话,实时性也根本难以保障。参照上图举例如下: 假设来了中断需要处理模块3,如果模块3的处理是最紧迫的,但是当前cpu 只运行到模块1, 这样的话,必须还要承受模块2的运行时间延迟,才能轮到模块3的处理,当模块越多的时候很可能情况更糟糕。单个循环要解决此类问题的话,只能在中断里面去处理紧急事件,这样会造成中断执行太长,造成多层的中断嵌套,最终可能导致中断栈空间爆掉。更重要的是:不是所有的中断都是紧急的重要的,很可能各个要处理的模块优先级要大于不紧急的中断处理。这样造成的后果是不但各个模块间不能相互通讯,而且实时模块完全得不到处理,在一个中大型软件项目中,采用此类方法可以说是一种管理的灾难。 综上所述,前后台的缺点是远大于优点的,所以就需要一个实时操作系统来解决这些缺点。 |
|
相关推荐
|
|
我最近就是挺担心,由于自己没有形成一定的编程风格规范,以后程序规模大了,就很难把握节点的运行,以至于程序运行紊乱。想问问版主有木有好的文章、书本或者建议能够让我们形成自己的编程规范,避免程序紊乱?
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 11:08 , Processed in 0.573678 second(s), Total 74, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号