适用于8位微处理器的操作系统是什么?

时间:2008-09-17 15:54:07

标签: operating-system embedded rtos

它不需要是一个完整的操作系统,但必须至少具有多任务处理功能(即调度程序)。
请提及它的处理器架构。

这是调查,所以确切的功能并不重要。当您的下一个8位嵌入式项目出现时,可以将其视为一个可以查看可能性的地方......

我意识到大多数8位微处理器不需要操作系统,但作为反例,Rabbit Semiconductor为RCM3710处理器模块提供了4个串行端口,10-BaseT以太网端口,512K RAM和512K闪存。所有这一切只需39美元。全部基于8位Z80核心。

8位 NOT 必然意味着极端资源限制。

17 个答案:

答案 0 :(得分:5)

这可能是一个不同寻常的观点,但我强烈建议在决定使用8位计算机的操作系统之前要三思甚至三次。操作系统用于复杂的应用程序需求,8位CPU不是这些任务的最佳选择。

我并不是说操作系统应该从不用于8位,只是因为它是最好的解决方案的可能性。

答案 1 :(得分:4)

我相信Contiki会奏效。 Adam Dunkels做了一些非常酷的事情。

它运行在很多平台上,包括Commodore 64。

答案 2 :(得分:4)

对于那些建议使用状态机代替操作系统的人,因为他们的开销很小,你可能想看看Contiki。 非常小并且免费。它没有传统的线程模型,而是使用ProtoThreads:http://www.sics.se/~adam/pt/

ProtoThreads为您提供近似线程语义的东西,而不会产生具有多个堆栈等的真实操作系统的开销......作为奖励,您不需要任何类型的操作系统来使用它们 Contiki或否则。

我们在一个项目中使用它们取得了巨大成功。他们真的很容易编写复杂的代码。

答案 3 :(得分:3)

Rabbit Semiconductor的处理器端口为MicroC/OS II

答案 4 :(得分:2)

我在Microware的OS9上为摩托罗拉6809切割了我的RTOS牙齿。今天非常精彩,并且充分利用了6809(当时)的高级功能。

答案 5 :(得分:2)

早在70年代中期,我写道,并且在1982年,我停止为摩托罗拉6800/6801/6809提供8位操作系统(SDOS)。这些操作系统有多种形式:

  • 实时多线程(2Kb ROM +你想要的任何RAM)
  • 单用户磁盘操作系统(最大64K内存)
  • 多用户分时共享(使用65Kb内存块的1Mb RAM中的15个用户,每个用户一个)
  • 分布式操作系统(可访问远程磁盘的单用户或多用户系统)

当我需要顾客时,你在哪里: - ? (当我明白IBM选择比尔盖茨作为微处理器操作系统之王时,我放弃了它。)

答案 6 :(得分:2)

这可能不是你想要的,但对于MSX和Armstrad来说,有一个非常棒的GUI操作系统叫做 SymbOS http://www.symbos.de/)。令人惊奇的是,它完全是由一个名叫 Prodatron http://www.prodatron.net/)的德国人制造的。它具有真正的多任务处理和许多应用程序,您可以从现代操作系统中获得:

  • SymCommander - 诺顿指挥官克隆。
  • SymPlay - 视频播放器,视频必须经过预处理,但在此之后,它们会非常流畅地与其他应用程序同时运行。
  • SymSee - 图片浏览器,图片必须先转换为CPC格式。
  • SymAmp - 音乐播放器,支持跟踪器模块甚至是带有特殊硬件的MP3-。
  • 计算器扫雷控制面板等。

我看过它的作者演示了它,观众唯一的评论是“你一定是个傻瓜!”。以前没有人在8位MSX计算机上见过这样的功能。

答案 7 :(得分:2)

我在Z180(8位机器)上使用过uC / OS。我不得不移植到我们的自定义存储区内存模型。但其他方面很棒,特别是有一本描述所有功能的详细书籍。即使它是RTOS,我们仍然必须非常谨慎地使用线程等。

答案 8 :(得分:2)

这里的目标是什么?嵌入式操作系统往往会花费很多。 (MicroC / OS II等)

在设备选择方面,听起来您可能会将OS支持置于我认为更重要的事情之前。您应该了解正在处理的平台的一般设计模式。不要试图将PC概念推到像这样最小的嵌入式芯片中。

OMFG ... Java不属于8位处理器。我实际上尝试过Maxix / Dallas DS80C400芯片。它有一个简化的操作系统(读取:调度程序)和芯片上的TCP / IP堆栈,它在数据表上看起来很棒。这是一场彻底的灾难。慢,慢,慢!

我最终得到了基于FPGA的软处理器和软MAC。没有操作系统......工作得很好。一旦FIFO错误实际上发送的数据包如此之快,以至于网络上的每台Windows PC都锁定了可靠的处理中断(甚至是鼠标锁定),直到我拉开开发板上的电源。

我个人发现为8位处理器编写这么多代码是相当困难的,你甚至需要一个操作系统。我相信一些应用程序/情况可能比我看到的更令人满意。我发现操作系统的唯一用途是当你有一些复杂的设备带有你想要使用的特定操作系统的设备驱动程序时,它就不再是“一般操作系统”的问题。

熟悉常见的1ms计时器tick +“volatile char g_TASKS []”全局标志列表+一个简单的main()循环,它检查任务标志并调用子程序。国家机器是你的朋友。您可以更好地处理系统的运行方式。这些是8位处理器的设计模式。

任何时候您需要任务A等待任务B完成,然后将状态机状态添加到任务A,并让任务B设置该状态......或者沿着这些行的某些内容。

一个更有用的(恕我直言)列表将使用好的8位处理器,而不是操作系统。这将是我的标准:低功耗,出色的调试(OCD),出色的开发环境(或只是Eclipse集成),低成本,良好的C编译器支持,以及调试平台/调试器等的一般稳定性。

答案 9 :(得分:1)

对于基于MSX的(z80)计算机,还有Uzix,Unix Like,Posix兼容,多任务,抢占和实现TCP / IP堆栈。

答案 10 :(得分:1)

HI-TECH Salvo - HI-TECH Salvo功能是一个合作的,事件驱动的,基于优先级的多任务RTOS。它适用于RAM严重受限(<256字节)的处理器,可在硬件调用中工作;返回8级或更少级别的堆栈,支持16个独立的动态任务优先级,并提供任务间通信和同步,ISR到任务通信和资源共享。它具有极小的RAM和ROM占用空间,无需PUSH / POP堆栈或堆栈指针,可ROMable和可扩展。低中断延迟,快速上下文切换和可移植 - 用ANSI C编写,编译器最少。

答案 11 :(得分:1)

Salvo - 在微小的地方(TM)运行的RTOS。 - Salvo适度的ROM和微小的RAM要求意味着您可以在几乎任何单芯片微控制器中使用事件驱动,基于优先级的多任务应用程序,并为您的应用留出足够的空间。使用Salvo,您可以:快速实施新设计*使用现有资源增强功能*提高实时性能*多任务。

答案 12 :(得分:1)

Softools还为Rabbit处理器提供了一个OS(称为TurboTask)。

有一个库为Rabbit提供基本任务调度。该库可与Softools编译器配合使用,但不适用于Rabbit编译器。

答案 13 :(得分:1)

Zilog eZ8,eZ80和ZNEO微控制器的HACK-RTOS

答案 14 :(得分:0)

我在设计你计划在这里使用的8位处理器类型时遇到了一些困难 - 基本上如果它有足够强大的功能来运行OS(例如H8),你几乎肯定会发现ARM-cored micro将会同样便宜。

答案 15 :(得分:0)

我为i8051编写了一个循环调度程序(比i8085 / Z80弱得多),并为16位TI DSP TMS320C54xx(具有优先级,系统调用,锁/互斥锁的调度程序)编写了一个小内核。如果你可以在汇编程序中进行编程并且可以使你的计时器ISR工作,你可以在不到一周的工作时间内实现类似的基本功能。

答案 16 :(得分:0)

几年前我为Z80写了一篇,但是z80不支持硬件多任务处理或分页,多任务处理是可能的,但你的自由度非常有限 你必须在不同的程序中使用诸如没有绝对跳跃或不同的起始位置之类的东西