Cómo aprender RTOS

Como ya ha comprado una placa LPC1768, su elección de RTOS está hecha esencialmente para usted: es casi seguro que elija ARM mbed como su RTOS porque es compatible con esta placa y otros RTOS no son tan compatibles. Esto está bien: mbed es una buena opción.

No podrá aprender mucho sin un proyecto concreto que utilice los periféricos del tablero.

Existen diferentes variantes del LPC1768, por lo que es difícil para mí ser preciso aquí, pero la mayoría tiene varias entradas analógicas, varias salidas en serie y varias salidas PWM. También hay conexiones USB y Ethernet, pero generalmente son periféricos muy complejos para programar, y debe usar los controladores suministrados, al menos hasta que tenga mucha confianza para trabajar con los periféricos más simples. La interfaz USB también se usa para programar la placa, y probablemente no quieras estropear esto.

Debe comenzar en mbed NXP LPC1768 Getting Started, que le indica cómo conectar su dispositivo a una máquina Windows o Mac (Linux también debe funcionar por el aspecto de las cosas, ya que la interfaz de la placa se basa en el navegador y el la placa aparece como una unidad flash).

Hay ejemplos de cómo usar los controladores periféricos en la página de inicio – Libro de cocina | mbed En conjunción con un proyecto elegido adecuadamente, esto debería enseñarle la mayoría de los conceptos básicos.

Habrá algo de vacío si desea llevar su aprendizaje más allá; esto es que el ecosistema de la cama realmente se trata de usar un RTOS preconfigurado (y fácil de usar) con controladores preescritos. Si desea dar el siguiente paso, deberá pasar a un entorno más personalizado. En realidad, recomendaría usar QEMU (que es una máquina virtual de software capaz de emular muchos objetivos) como un objetivo para portar algo como µC / OS-II , que está bien documentado, es pequeño y fácil de entender.

La ventaja de comenzar con algo muy pequeño, una vez que haya aprendido los principios básicos con mbed, es que tendrá que preocuparse por los detalles.

Buena suerte.

Tenga en cuenta que uC / OS-II es un producto patentado con disponibilidad de código fuente; si lo usa en un producto, es posible que se requieran pagos de regalías.

Los RTOS (sistemas operativos en tiempo real) se utilizan ampliamente en aplicaciones de robótica, defensa / aeroespacial / médica.

Un sistema operativo en tiempo real garantiza que la latencia de interrupción es determinista.
Por ejemplo, en una máquina de pulmón cardíaco, es esencial activar un actuador para controlar el flujo sanguíneo cuando el sensor de presión detecta un cambio drástico. La interrupción del sensor debe ser atendida en tiempo real con plazos estrictos. Cualquier retraso puede costar una vida.

Uno de los mejores recursos es el kernel uCOS-II / III. Este es un sistema operativo certificado por la FDA para su uso en aplicaciones de misión crítica como medicina / defensa, etc. El código fuente está disponible gratuitamente para uso personal (no de código abierto), tiene buenos estándares de codificación y comentarios. Esto es ampliamente portado a través de varias arquitecturas.
Incluso puede ejecutarlo en DOS si Linux no es su fuerte.

El libro complementario explica los conceptos RTOS con simplicidad, con fragmentos de código de componentes internos del sistema operativo. Muy recomendable.

https://doc.micrium.com/download

Kernel en tiempo real | Micrium

Supongo que tiene claros los fundamentos básicos de RTOS y desea probar y aprenderlo en hardware real.

Un RTOS genial y de código abierto está disponible para entusiastas como tú. Es FreeRTOS. FreeRTOS le proporciona un puerto para RTOS. Es compatible con una amplia variedad de microcontroladores, FPGA, PSOC, etc. Lo uso en un Arduino Mega y funciona muy bien. FreeRTOS también está disponible para LPC1768. Puede encontrar la lista de MCU compatibles aquí. También hay libros y ejemplos disponibles en el sitio de FreeRTOS, que pueden ayudarlo a comenzar de inmediato. ¡Feliz aprendizaje!

RTOS es un sistema operativo y se utiliza en diferentes plataformas diferentes como freeRTOS, VxWorks y muchos más.

pero RTOS es una colección simple de biblioteca, y esta biblioteca simple contiene código C ++.

tan simple que hacemos una API (interfaz de programa de aplicación) usando código C ++ y para el código de aplicación RTOS simplificado usamos esta API.

Entonces puedo sugerir un libro para eso

“FreeRTOS v9.0”

Kernel de tiempo real FreeRTOS (RTOS)

en este sitio 25 se da un ejemplo de nivel inferior a nivel superior, para que pueda entenderlo muy bien.

Es un sistema operativo increíble. Si entiendes bien, puedes disfrutar como un videojuego.

La mejor de las suertes

Uno aprende RTOS porque tiene que resolver un problema en el que el espacio de la solución requiere un procesador integrado que ejecute un RTOS.

En la programación normal del espacio de usuario, normalmente piensa en términos de archivos y E / S basadas en archivos, y el uso de las bibliotecas de lenguaje de programación normal maneja las E / S por usted.

En las aplicaciones RTOS, su programa principal generalmente se ve así

principal()

{

mientras que (1) {

wait_for_shit_to_happen ();

}

}

con un montón de controladores de interrupciones que hacen varias cosas cuando se pinchan, y la mayoría de esas “cosas” implican pinchar y sondear registros de control de dispositivos físicos que se presentan como ubicaciones de memoria, con una posible cantidad de registros realizados directamente o mediante alguna “escritura en un memoria intermedia que otra persona finalmente descarga periódicamente en el disco o la red “.

Para que todo eso tenga sentido, debe tener una aplicación: “hello world” no es realmente aplicable aquí.

Recomiendo buscar proyectos de automatización del hogar o robótica, y una vez que tenga algo que le haga cosquillas, proceda a partir de allí para seleccionar una placa de controlador integrada y RTOS para experimentar.

Comience con FREERTOS.

Editar:

LPC1768

Antes de comenzar a trabajar, estudie mucho. Esa es la clave.

FreeRTOS – Guía de inicio rápido

Espero que esto sea lo que querías. 🙂

Hola…

Programación en C => Estructura de datos => Aplicación de subproceso único => Linux => Aplicación de subprocesos múltiples => Linux embebido => Mini RTOS => RTOS.

Saludos y saludos,

SaV

More Interesting

¿Debo unirme al entrenamiento de verano RCPL para sistemas integrados?

¿Los chips Xilinx tienen un modo de bajo consumo o hay alguna forma de eliminar el software o reducir significativamente su consumo de energía al reducir la velocidad del reloj?

Cómo aprender a programar sistemas integrados y VLSI por mi cuenta

¿Qué debo aprender en Linux y RTOS para aplicaciones integradas?

¿Cuál es la diferencia entre hacer una maestría en sistemas embebidos y una en informática?

¿Cuál es el futuro de los sistemas embebidos? ¿Cuáles son las principales áreas de investigación? ¿Hay algún cambio disruptivo previsto en el futuro cercano?

¿Cuáles son los componentes de un sistema integrado, hardware y software?

¿Por qué es tan difícil diseñar sistemas embebidos en tiempo real en multiprocesadores? ¿Cuáles son los principales desafíos y cómo se puede mejorar?

¿Cuál es el sistema más pequeño capaz de ejecutar Linux por menos de $ 100?

Mirando el SOC de los microprocesadores y microcontroladores, creo que no hay diferencia entre los dos, ya que ambos pueden reemplazarse entre sí. ¿Es correcto este entendimiento?

¿Cuál es el mejor microcontrolador para trabajar hoy en día, ARM Cortex-M4 o AVR?

¿Debo aprender Embedded C o Java?

¿Cuál es el plan de estudios del curso de personas que pasan por licenciaturas para un control de sistemas integrados?

¿Cómo funcionan los sistemas embebidos en conjugación con gps?

¿Cuál es la relación entre VLSI, VHDL, Verilog, sistemas integrados, ASIC y FPGA? Si conozco VHDL, ¿puedo trabajar en una empresa que requiera conocimiento de VLSI?