2008-09-17 34 views
8

No es necesario que sea un SO completo, pero al menos debe tener capacidades de multitarea (es decir, un programador).
Indique en qué arquitectura de procesador trabaja.¿Qué sistemas operativos están disponibles para un microprocesador de 8 bits?

Esta es una encuesta , por lo que las capacidades exactas no son realmente importantes. Piense en esto como un lugar para buscar posibilidades cuando aparece su próximo proyecto incrustado de 8 bits ...

Me doy cuenta de que la mayoría de los micro de 8 bits no requieren un sistema operativo, sino solo como un contraejemplo Rabbit Semiconductor ofrece el módulo de procesador RCM3710 con 4 puertos serie, un puerto de Ethernet 10-BaseT, 512K RAM y 512K Flash. Todo por $ 39. Todo basado en un núcleo Z80 de 8 bits.

8-bit does NOT significa necesariamente limitación de recursos extrema.

+0

Existen formas más sencillas y objetivas de recopilar esta información. Si se trata de una opinión subjetiva o una encuesta de popularidad, entonces eso es lo que es probable que obtenga en respuesta a esta pregunta.¡Incluso puede hacer que alguien haga toda la investigación por usted y la publique! – Clifford

Respuesta

4

Creo que Contiki funcionará. Adam Dunkels hace algunas cosas realmente geniales.

Se ejecuta en muchas plataformas, incluyendo el conejo Commodore 64.

+0

No creo que la pregunta sea acerca de * antique * computadoras o procesadores. Se trata de dispositivos de 8 bits utilizados en sistemas integrados (etiquetados). – Clifford

+0

Simplemente estaba diciendo que * podría * funcionar en el Commadore 64. También se puede ejecutar en procesadores modernos de 8 bits. –

0

Escribí uno hace unos años para el Z80 pero el z80 no es compatible con la multitarea o paginación de hardware, la multitarea es posible pero tu libertad es bastante limitada tienes que rodar cosas como saltos absolutos o empezar diferente posiciones en diferentes programas

4

Esto podría ser un punto de vista inusual, pero recomiendo encarecidamente pensar dos o tres veces antes de decidirse a utilizar un sistema operativo para una computadora de 8 bits. Los sistemas operativos son para aplicaciones complejas y las CPU de 8 bits no son la mejor opción para estas tareas.

No estoy diciendo que un sistema operativo debería nunca ser utilizado para un 8 bits, solo que hay menos posibilidades de que sea la mejor solución.

+0

¡Estoy totalmente de acuerdo! Pero tenga en cuenta que estoy más interesado en recopilar posibles sistemas operativos. Lo dejaremos como sin sistema operativo :-) También tenga en cuenta que algunos procesadores de 8 bits permiten 512K o incluso 1M de espacio RAM ... espacio para lo suficientemente complejo ... – Benoit

1

Softools también proporciona un sistema operativo (llamado TurboTask) para los procesadores de conejos.

Hay una biblioteca que proporciona una programación de tareas básica para el Conejo. La biblioteca funciona con el compilador Softools, pero no con el compilador de conejos.

+1

El entorno de desarrollo Rabbit incluye uC/OS-II. Anteriormente se vendía por separado, pero ahora se incluye con el compilador base. – tomlogic

0

Tengo algunas dificultades para visualizar el tipo de procesador de 8 bits que está planeando usar aquí; básicamente, si es lo suficientemente potente como para ejecutar algo así como un sistema operativo (un H8, por ejemplo), casi con seguridad descubre que un micro con núcleo ARM va a ser igual de barato.

+0

¿Igual de barato, pero quizás más hambriento de poder? – user11211

2

¿Cuál es el objetivo aquí? Los SO integrados tienden a costar mucho. (MicroC/OS II, etc.)

Parece que puede estar apoyando el sistema operativo por delante de lo que considero más importantes cuando se trata de la selección de dispositivos. Debe conocer los patrones generales de diseño para la plataforma en la que está trabajando. No intentes meter los conceptos de PC en el más pequeño de los chips integrados como este.

OMFG ... Java NO pertenece a un procesador de 8 bits. De hecho, probé ese chip Maxix/Dallas DS80C400. Tenía un sistema operativo simplificado (lectura: programador) y una pila de TCP/IP cocida en chip, y se veía muy bien en la hoja de datos. Fue un completo desastre. Lento, lento, lento!

Terminé con un procesador suave basado en FPGA y MAC suave. Sin sistema operativo ... Funcionó muy bien. Una vez que un error FIFO envió paquetes tan rápido que todas las PC con Windows en la red bloquearon las interrupciones de manejo (incluso el mouse bloqueado) hasta que apagué la placa de desarrollo.

Personalmente me ha resultado bastante difícil escribir tanto código para un procesador de 8 bits que incluso NECESITA un SO. Estoy seguro de que algunas aplicaciones/situaciones pueden hacerlo más deseable de lo que he visto. El único uso para un sistema operativo que he encontrado es cuando tiene algún dispositivo complejo con controladores de dispositivo para un SO específico que le gustaría usar, y entonces ya no es una pregunta de "sistema operativo general".

Familiarícese con el siempre común temporizador de 1 ms marque + "volatile char g_TASKS []" lista global de indicadores + un simple bucle principal() que verifica indicadores de tareas y subrutinas de llamadas. Las máquinas de estado son tus amigos. Tendrá un mejor manejo sobre cómo se ejecutará su sistema. Estos son los patrones de diseño de los procesadores de 8 bits.

En cualquier momento necesita que la tarea A espere a que finalice la tarea B, luego agregue un estado de máquina de estado a la tarea A, y haga que la tarea B establezca ese estado ... o algo similar.

Una lista mucho más útil (en mi humilde opinión) sería de buenos procesadores de 8 bits, no de sistemas operativos. Aquí estarían mis criterios: baja potencia, excelente depuración (OCD), excelente entorno de desarrollo (o solo integración de Eclipse), bajo costo, buena compatibilidad con el compilador de C y estabilidad general de la plataforma de depuración/depurador/etc.

+1

En un proyecto, tenía un AVR Atmega16, que estaba haciendo muchas cosas a la vez, incluyendo UI (LCD + perillas) y mensajes de radio. Fue un desastre hasta que cambié a un sistema operativo (FreeRTOS, en este caso). Es un nivel de abstracción que simplifica enormemente su código y reduce los posibles errores. – ziggystar

+0

Creo que es principalmente un ejercicio para usar buenos patrones. Un bucle principal que no hace más que marcar banderas y llamar a subrutinas específicas de tareas es una especie de programador primitivo. El resto es disciplina ... el sistema operativo impone algunas abstracciones que ya deberías tener de todos modos. Luego, casi invariablemente va más allá e impone cosas que no necesita. No hay ninguna razón para que lo que describa no se pueda incluir en las subrutinas de la función principal llamadas "process_ui()" y "process_radio()". (expandir según sea necesario) – darron

+0

Tome un sistema operativo que espera que escriba controladores para, por ejemplo, LCD, perillas y radio. Eso puede limpiar algunos códigos de spaghetti, pero también puede limpiarlo moviendo las funciones a las funciones de acceso "lcd_ *", "knob_ *" y "radio_ *". Piensa en la encapsulación, es importante. En mi opinión, es mucho mejor desarrollar procesos y patrones de diseño sólidos que funcionen para CUALQUIER microcontrolador que utilice (lo que hace que su código sea más portátil) que utilizar media docena de RTOS para la docena de micros diferentes que está utilizando. (O pague tarifas demenciales para los RTOS más grandes que funcionan en casi todas partes) – darron

1

También hay Uzix, para las computadoras basadas en MSX (z80), Unix Like, Posix Compliant, multi-task, preventive y con una pila TCP/IP implementada.

+0

... pero la pregunta está etiquetada como incrustada. ¿Alguna vez viste MSX en un sistema integrado? – Clifford

2

He usado uC/OS en una Z180 (máquina de 8 bits). Tuve que hacer un puerto a nuestro modelo de memoria bancaria almacenada. Pero por lo demás fue genial, especialmente tener un libro detallado que describe toda la funcionalidad. Y a pesar de que era un RTOS, todavía teníamos que usar hilos, etc. con moderación.

4

Para aquellos que sugieren máquinas de estado en lugar de un sistema operativo porque tienen poca sobrecarga, es posible que desee comprobar Contiki. Es muy pequeño y gratis. No tiene un modelo de subprocesamiento tradicional, en su lugar utiliza ProtoThreads: http://www.sics.se/~adam/pt/.

ProtoThreads le dan algo que se aproxima la semántica de roscado sin el añadido de un sistema operativo real con múltiples pilas, etc ... Como beneficio adicional, que no es necesario ningún tipo de sistema operativo para usarlos Contiki o de otra manera.

Los hemos utilizado en un proyecto con gran éxito. Realmente hacen que escribir código complicado sea mucho más fácil.

1

HI-TECH Salvo - Características HI-TECH Salvo es un RTOS multitarea cooperativo, basado en eventos y basado en prioridades. Es para procesadores con RAM severamente limitada (< 256 bytes), funciona dentro de una llamada de hardware; pila de devolución de 8 niveles o menos, admite 16 niveles de prioridad de tarea dinámica por separado, y proporciona comunicación y sincronización entre tareas, comunicación ISR a tarea e intercambio de recursos. Es extremadamente pequeña RAM y huella ROM, no requiere pila PUSH/POP o puntero de pila, ROMable y extensible. Baja latencia de interrupción, cambio de contexto rápido y portátil: escrito en ANSI C, con compilador mínimo.

1

Salvo - El RTOS que se ejecuta en lugares pequeños (TM). - La ROM modesta de Salvo y sus minúsculos requisitos de RAM significa que puede tener aplicaciones multitarea basadas en prioridades y orientadas a eventos en casi cualquier microcontrolador de un solo chip, con mucho espacio libre para su aplicación.Con Salvo, puede: Implementar nuevos diseños rápidamente * Mejorar la funcionalidad utilizando los recursos existentes * Mejorar el rendimiento en tiempo real * Multitarea.

+0

podría combinar esta respuesta con la anterior. Usted está hablando de lo mismo ... – Benoit

1

Esto probablemente no es lo que quieres, pero para MSX y Armstrad hay un sistema operativo de GUI absolutamente sorprendente llamado SymbOS (http://www.symbos.de/). Lo sorprendente es que fue hecho completamente por un tipo alemán llamado Prodatron (http://www.prodatron.net/). Cuenta con multitarea real y muchas aplicaciones de lo que cabría esperar de OS moderna:

  • SymCommander - Norton Commander clon.
  • SymPlay - reproductor de video, los videos deben ser preprocesados, pero después de eso se ejecutan de manera muy suave y simultánea con otras aplicaciones.
  • SymSee - visor de imágenes, de nuevo las imágenes se deben convertir primero al formato CPC.
  • SymAmp - reproductor de música, admite módulos de seguimiento e incluso MP3-s con hardware especial.
  • Calculadora, Buscaminas, Panel de control etc.

lo he visto hizo una demostración de su autor y el único comentario de audiencia fue "Usted debe ser grazy!". Nadie había visto antes tales características en una computadora MSX de 8 bits.

+1

No creo que MSX figure muy bien en los sistemas integrados (pregunta etiquetada como "incrustada"), MSX * fue * esencialmente un SO/Arquitectura de escritorio. – Clifford

2

A mediados de los años 70 escribí, y en 1982 I paré enviando un sistema operativo de 8 bits (SDOS) para Motorola 6800/6801/6809. Esos sistemas operativos llegaron en varios sabores:

  • Tiempo real multiproceso (2 Kb ROM + cualquier RAM que queríamos)
  • usuario único sistema operativo de disco (64 K de memoria max)
  • multiusuario tiempo compartido (15 usuarios en 1 MB de memoria RAM el uso de bancos de 65KB de memoria, uno por usuario)
  • sistema operativo distribuido (sistema único o multiusuario con acceso a discos remotos)

¿Dónde estabas cuando yo necesitaba un cliente: -? (Lo dejé cuando quedó claro que IBM eligió a Bill Gates por rayo para ser el rey del microprocesador OS).

+0

¿Alguno de los sabores multihilo disponibles para el 6800 o el 6801? Si es así, es posible que haya escrito el primer sistema operativo multitarea de 8 bits. Hay una pregunta sobre esto en: https://retrocomputing.stackexchange.com/questions/4537/had-any-8-bit-computer-system-os-concepts-for-concurrency-and-multitasking-lik – traal

+0

Sí, lo eran, pero no, no escribí el primer multitarea de 8 bits para el 6800. Mientras estaba en los laboratorios de productos avanzados de TRW en 1974, John Liberty implementó un procesador dual 6800 (cada CPU usó la mitad del reloj simétrico para hacer su acceso a la memoria); una CPU hizo un trabajo de propósito general, la otra a menudo hizo E/S en un solo bit en tiempo real para cosas como mag cintas. Un compañero llamado Dick Moran escribió el multiprocesador multiprocesador "BKOS" (Sistema operativo básico de Kernal) que manejaba tanto las CPU con bloqueos atómicos como todo el bit. Estas placas de CPU se convirtieron en el núcleo de los terminales POS de la compañía May. ... –

+0

... IIRC, el Intel 8085 salió antes que el 6800. La mayoría de los tableros de CPU para eso no podían tomar una interrupción para salvar sus vidas, por lo que no tenía mucho sentido construir un RTOS para ellos. .... Pero ... algunos lo hicieron. Estoy seguro de que algún alma escribió un SO multitarea para el 8085. Recuerdo haber hablado con un ingeniero de misiles Raytheon que creo que había hecho esto. A finales de los 70, hice lo que pensé que era un sistema operativo mulitasking bastante agradable para el Z80, pero en ese momento yo era probablemente uno más entre la multitud que lo había hecho. –

1

Hack-RTOS para Zilog EZ8, eZ80 y microcontroladores ZNEO

0

que he escrito un planificador round-robin para i8051 (que es mucho más débil que el i8085/Z80) y un pequeño núcleo para una TI de 16 bits DSP TMS320C54xx (planificador con prioridades, llamadas al sistema, bloqueos/mutexes). Si puede programar en ensamblaje y puede hacer que funcionen los ISR de su temporizador, puede obtener funcionalidades básicas similares implementadas y funcionando en menos de una semana de trabajo.

1

Corté mis dientes RTOS en el OS9 de Microware para el Motorola 6809. Brillante por su día e hizo un excelente uso de las funciones avanzadas del 6809 (entonces).

Cuestiones relacionadas