首先,第一个要解决的问题是,为什么我们需要xos?就像最开始学C编程时,老师告诉我们,指针很重要,那时你肯定有一个大的疑问,指针到底有什么好?心里一直犯嘀咕着:不用指针不一样把程序编出来了? 现在想想看c语言没了指针,是不是寸步难行呢。回到正题,我们到底为什么需要xos?
一般的简单的嵌入式设备的编程思路是下面这样的:
main
{
{处理事务1};
{处理事务2};
{处理事务3};
.......
{处理事务N};
}
isr_server
{
{处理中断};
}
这是最一般的思路,对于简单的系统当然是够用了,但这样的系统实时性是很差的,比如“事务1”如果是一个用户输入的检测,当用户输入时,如果程序正在处理事务1下面的那些事务,那么这次用户输入将失效,用户的体验是“这个按键不灵敏,这个机器很慢”,而我们如果把事务放到中断里去处理,虽然改善了实时性但会导致另外一个问题,有可能会引发中断丢失,这个后果有时候比“慢一点”更加严重和恶劣!又比如事务2是一个只需要1s钟处理一次的任务,那么显然事务2会白白浪费CPU的时间。
这时,我们可能需要改进我们的编程思路,一般我们会尝试采用“时间片”的方式。这时候编程会变成下面的方式:
main
{
{事务1的时间片到了则处理事务1};
{事务2的时间片到了则处理事务

本文探讨了嵌入式系统中实时性的重要性,通过逐步解析简单系统到引入时间片调度的过程,解释了为何需要实时操作系统xOS。xOS能够优雅地处理事务时间片、中断管理、超时处理、内存管理和任务通信,从而提高系统效率和程序的可扩展性。
最低0.47元/天 解锁文章
830

被折叠的 条评论
为什么被折叠?



