Problemas de distribución del gestor de arranque integrado y del kernel en flash
Este artículo me ha guiado y espero que pueda guiarte a ti también
En los últimos años, el desarrollo de sistemas integrados ha estado en pleno apogeo en China y muchas empresas están en Necesidad urgente de experiencia en Desarrollador de sistemas embebidos. Sin embargo, en los colegios y universidades, la enseñanza de sistemas integrados va a la zaga, y muchos estudiantes universitarios de último año y estudiantes de posgrado recién admitidos tienen dificultades para saber por dónde empezar. En este artículo, el autor presentará brevemente los métodos de aprendizaje de sistemas integrados basándose en su propia experiencia en el desarrollo y la enseñanza de sistemas integrados, y se esforzará por ayudar a los principiantes a encontrar una manera de comenzar.
¿Qué es un sistema integrado?
Al aprender sobre sistemas integrados, primero debe aclarar qué es un sistema integrado. De lo contrario, ¿no sería un error estudiar mucho sin saber qué es? estas aprendiendo? Existen muchas definiciones de sistemas integrados, lo que también es un factor que dificulta el aprendizaje sobre los sistemas integrados. Basado en mi propia comprensión durante el proceso de desarrollo y enseñanza, así como un resumen de las aplicaciones de varios sistemas integrados, el autor presenta una definición simple de sistemas integrados: Sistema integrado es la abreviatura de sistema informático integrado. sistema informático integrado y la seguridad de los sistemas informáticos ordinarios. La siguiente tabla enumera algunas
aplicaciones típicas de los sistemas integrados:
Robots inteligentes (SDR 4, módulo de aterrizaje en Marte)
Electrónica de consumo y entretenimiento (Gameboy Advance, Sony PSP)
Productos de comunicación en red (Smartphone)
Equipo militar (PDA militar)
Coche (navegación, conducción automática, sistema de entretenimiento)
Instrumentos inteligentes (instrumentos virtuales)
Protección de seguridad (prevención de incendios, antirrobo)
Protección del medio ambiente (globos sonoros)
Bancos y consumo comercial (ATM)
Tomemos el módulo de aterrizaje en Marte como ejemplo para analizar la definición de sistemas integrados. Aunque el módulo de aterrizaje en Marte puede parecer un poco insondable desde el punto de vista técnico, su esencia es la aplicación de un sistema informático integrado. Su núcleo es un sistema informático, y la composición de este sistema informático es esencialmente la misma que la de un sistema informático tradicional. La diferencia significativa entre los dos es que el sistema informático utilizado para el módulo de aterrizaje en Marte está instalado en el módulo de aterrizaje en Marte. Por supuesto, un sistema informático que pueda instalarse en un módulo de aterrizaje en Marte requiere un diseño muy especial. Pero, en esencia, el concepto central de los sistemas integrados todavía se encuentra en los sistemas informáticos. El enfoque del aprendizaje de sistemas integrados también está en los sistemas informáticos. Por un lado, los estudiantes deben comprender firmemente el concepto del sistema informático en sí y, lo que es más importante, aprender la diferencia entre el proceso de desarrollo de sistemas integrados y el proceso de desarrollo de sistemas informáticos tradicionales. Lo que hay que señalar aquí es que muchos estudiantes nunca se han involucrado en el desarrollo de sistemas informáticos completos. La enseñanza en colegios y universidades se centra en cursos como la composición de sistemas informáticos, los principios de los sistemas operativos y la programación. Todos los lenguajes están diseñados para permitir a los estudiantes utilizar mejor los sistemas informáticos para programar y diseñar e implementar diversas aplicaciones en plataformas informáticas existentes. Los estudiantes generalmente no tienen la oportunidad de aprender a construir un sistema informático completo y participar personalmente en cada uno. proceso de construcción. Para los sistemas integrados, quienes se dedican al desarrollo de plataformas deben desarrollar un sistema informático completo en persona. Este proceso incluye
l Análisis de requisitos
2 Diseño de hardware
p>4 Cargador de arranque y BSP (paquete de soporte de placa)
5 Trasplante del sistema operativo
6 Desarrollo de aplicaciones
7 Comprobación de rendimiento
El propósito de la enseñanza de sistemas integrados es enseñar a los estudiantes cómo construir un sistema informático integrado que satisfaga las necesidades de una industria especial de acuerdo con sus necesidades. Permita que los estudiantes aprendan cómo construir una plataforma de hardware, realizar el diseño de hardware, seleccionar el mejor sistema operativo integrado que pueda cumplir con los requisitos de la aplicación y completar el proceso de escritura, trasplante y depuración del cargador de arranque, BSP y programas de controladores. Para satisfacer las necesidades de la industria, en última instancia, las aplicaciones correspondientes deben escribirse y depurarse en el sistema establecido, y deben realizarse pruebas e inspecciones de rendimiento.
¿Quién eres y qué necesitas aprender?
Si su trabajo solo requiere escribir un programa de exploración de imágenes en una PC, entonces no necesita comprender cómo debe responder el sistema cuando recibe un paquete de solicitud ARP. De la misma manera, existen muchos aspectos del aprendizaje de sistemas integrados. En lo que respecta al diseño e implementación de sistemas integrados, se requieren básicamente cuatro tipos diferentes de trabajo: trabajo de diseño de sistemas, trabajo de diseño de hardware, trabajo de portabilidad de controladores y sistemas operativos, y trabajo de diseño y desarrollo de aplicaciones.
Trabajo de diseño del sistema
En la etapa de diseño del sistema, el analista del sistema determinará la composición básica del hardware del sistema en función de las necesidades, y elegirá qué procesador usar y qué procesador usar. utilizar en función de las necesidades del sistema operativo y utilizar dichas herramientas de desarrollo de software. Los analistas de sistemas suelen ser personas que han participado en todo el proceso de diseño de sistemas integrados, tienen un buen conocimiento de la industria de aplicaciones de sistemas y tienen muy claro el proceso de desarrollo del sistema integrado en sí.
Trabajo de diseño de hardware
Los diseñadores de hardware del sistema necesitan diseñar esquemas de hardware basados en los resultados del diseño de los analistas del sistema. Por lo general, se requiere que los diseñadores de hardware estén familiarizados con los componentes de hardware de los sistemas integrados. Los diseñadores de hardware deben comprender los procesadores de sistemas integrados de uso común, las memorias (Flash, SDRAM), los chips Ethernet MAC, los chips de códec de audio/vídeo, los chips de administración de energía, los circuitos de interfaz de bus (USB, PCI), los módulos de pantalla de cristal líquido, etc. principios de los elementos del circuito de hardware, como dispositivos lógicos de programación (FPGA/CPLD), módulos de comunicación de red inalámbrica (Bluetooth, WLAN, GPRS), métodos de conexión, precauciones de uso, métodos básicos de depuración, etc. Puede encontrar diagramas esquemáticos de las placas de evaluación de muchas empresas en Internet. Debe estudiar estos diagramas esquemáticos detenidamente para descubrir cómo y por qué el procesador está conectado a la memoria, la tarjeta de red, el módulo LCD y otros dispositivos. A través del estudio de estos circuitos, podemos comprender rápidamente la composición de todo el sistema integrado. Aunque existen ciertas diferencias entre estos circuitos y los circuitos de los productos reales, especialmente para los dispositivos portátiles, estas diferencias no afectan el aprendizaje de los sistemas integrados por parte de los principiantes. Los componentes básicos del diseño de hardware.
Los conocimientos anteriores a menudo requieren un largo período de aprendizaje y acumulación, y requieren la oportunidad de participar personalmente en la práctica. Para los estudiantes que acaban de entrar en contacto con el desarrollo de hardware de sistemas integrados, generalmente es imposible comprender todo este conocimiento, pero no lo sabrán todo. Según mi propia experiencia en desarrollo y enseñanza, el autor cree que, en primer lugar, se debe seleccionar un procesador de sistema integrado convencional y relativamente simple, como AT91M40800, S3C44B0 y otros procesadores de sistema integrados basados en el núcleo ARM7TDMI. Conjunto de instrucciones de procesadores RISC de 32 bits. En la enseñanza universitaria, los cursos de informática de un solo chip generalmente se centran en el chip único de la serie 8051. Dado que la estructura y los métodos de desarrollo de los procesadores modernos de 32 bits son bastante diferentes de los de los microcontroladores de 8 bits, los estudiantes aún deben esforzarse un poco. Estudie los siguientes microcontroladores de 32 bits. Tomando el procesador ARM como ejemplo, los estudiantes deben comprender los múltiples modos de trabajo del procesador, los registros de respaldo, las características del conjunto de instrucciones RISC, la MMU y las direcciones virtuales, los procesos de manejo de interrupciones, etc. En el proceso de aprender el conjunto de instrucciones, es mejor utilizar estas instrucciones para experimentar en el simulador cada vez que aprenda algunas instrucciones para observar los resultados de la ejecución del procesador. Por un lado, este proceso permite a los alumnos lograr mejores resultados al aprender las instrucciones por sí mismos y, por otro lado, también es una forma de aprender las propias herramientas de desarrollo. Luego, podrá comenzar a aprender cómo usar y configurar los recursos del chip. En este momento, se necesita una placa de desarrollo fácil de usar. Los estudiantes pueden conectar la placa de desarrollo a la PC de depuración a través del emulador JTAG para descargar y depurar el programa. En particular, debemos estudiar cuidadosamente el proceso de inicialización del sistema y el proceso de manejo de interrupciones. Si encuentra un problema durante el proceso de desarrollo, debe analizar la causa del problema usted mismo, reducir el posible alcance del problema mediante el análisis y finalmente encontrar el problema. Lo más importante es mantener la confianza en la resolución de problemas. La forma de afrontar las dificultades a menudo puede determinar si el sistema final se puede depurar con éxito. Luego, los alumnos pueden comenzar a estudiar detenidamente la conexión entre el procesador y la memoria, la configuración del espacio de almacenamiento y los principios de funcionamiento y uso de varios dispositivos de expansión externos, como tarjetas de red y tarjetas de sonido AC97.
Los dispositivos programables a menudo son necesarios en el diseño de hardware de sistemas integrados, y los estudiantes también necesitan una cierta cantidad de tiempo para aprender a usar dispositivos programables de uso común (CP L D / FP G A). Los productos de uso común incluyen las empresas Xilinx y Altera. Para el diseño esquemático del hardware del sistema, debe utilizar herramientas EDA para el diseño esquemático. Las herramientas de diseño esquemático EDA más utilizadas incluyen principalmente Cadence's Capture, Protel99 SE, etc. A continuación, puede consultar el diagrama de circuito de la placa de evaluación y comenzar a dibujar el diagrama esquemático de acuerdo con los requisitos de diseño del sistema. Durante el proceso de elaboración del diagrama esquemático, debe comprender los motivos de las conexiones del circuito de la placa de evaluación. No debe confundirse con problemas que no estén claros en este momento. Por ejemplo, las líneas de dirección de algunos procesadores están en unidades de bytes, mientras que las líneas de direcciones de otros procesadores están en unidades de dos bytes. Cuando se conecta a una memoria de 16 bits, no debe dar por sentado un 0. El dispositivo está conectado directamente a A 0 de la memoria. Además, los estudiantes también deben tener ciertas habilidades de dibujo de placas PCB, porque en esta etapa, muchas empresas no pueden separar completamente el trabajo de diseño esquemático y el trabajo de dibujo de PCB, y a menudo requieren que los diseñadores de hardware puedan hacer ambos.
Realizar diseño esquemático y diseño de tableros. Incluso en una empresa donde el diseño de PCB y el diseño esquemático están separados, el diseñador de esquemas aún necesita que el diseñador de esquemas establezca requisitos de diseño para diferentes señales para el diseñador de PCB.
Trabajo de trasplante de controladores y sistemas operativos
En comparación con el desarrollo de sistemas de microcontroladores tradicionales de 8 bits, una diferencia significativa entre el desarrollo de sistemas integrados modernos es el uso generalizado de sistemas operativos integrados. . Después de obtener la placa de circuito soldada y realizar pruebas básicas, es hora de trasplantar el controlador y el sistema operativo. El primer paso es escribir y trasplantar el gestor de arranque. El gestor de arranque es equivalente al BIOS del sistema de PC. Para algunos sistemas operativos integrados, como uc/OSII, el desarrollo y la depuración se pueden realizar sin un gestor de arranque. Pero para Windows CE y sistemas Linux integrados, el gestor de arranque es necesario. Este artículo toma
Windows CE como ejemplo para dar una breve explicación.
El trabajo de trasplante del sistema Windows CE es principalmente el proceso de desarrollo de BSP (Board Support Package). BSP aísla diferencias de hardware específicas del núcleo del sistema operativo y se compone principalmente de tres partes: Bootloaer, OAL (OEMAbstraction
Capa) y controlador de dispositivo. El gestor de arranque en el sistema WindowsCE se llama Eboot. Eboot se escribe en la memoria flash de arranque del sistema. Eboot se ejecuta cuando se inicia el sistema y se completa la función de descargar la imagen del sistema operativo Windows CE en la PC de depuración al SDR A M del sistema de destino a través de la tarjeta de red e iniciar la ejecución. Para un trasplantador de sistemas, primero debe leer la documentación y comprender los conceptos básicos y el proceso de desarrollo del cargador de arranque y BSP del sistema Windows CE
. (Oh, todavía tengo que hacer este trabajo, no lo he pensado todavía (principiante ^_^)) El sistema de desarrollo Platform Builder de Windows CE proporciona documentos y rutinas detallados. Los desarrolladores deben leer los documentos y las rutinas con atención. Comprender la relación de llamada entre varias funciones. Un paso importante en el proceso de desarrollo es abrir el puerto serie para que la placa de destino pueda enviar datos a la PC de depuración a través del puerto serie de la PC. Debido a que el emulador del sistema ARM es relativamente caro y la depuración del sistema operativo a menudo no utiliza el depurador JTAG para la depuración en un solo paso. Por lo tanto, poder observar el proceso de ejecución y los resultados del programa desde el puerto serie es muy importante para la depuración. Una de las cuestiones más difíciles después de abrir el puerto serie es la depuración del chip de la tarjeta de red. Las personas que son nuevas en el desarrollo de sistemas integrados a menudo no tienen experiencia en el uso de chips de tarjetas de red directamente en el nivel de registro, y las descripciones de los chips de tarjetas de red son generalmente breves. Esto requiere que los desarrolladores aprendan algunos conocimientos básicos de Ethernet y comprendan la capa MAC. Ethernet Tener conocimientos básicos. Además, el uso de varias herramientas de depuración de red (captura de paquetes) también puede reducir en gran medida la dificultad de depuración del sistema.
El OAL del sistema debe modificarse de acuerdo con el hardware específico. Esta parte se puede realizar consultando el documento. Durante el proceso de depuración, el error se puede analizar en función de la información del puerto serie. Para aprovechar al máximo la función de las herramientas de búsqueda de cadenas de archivos cruzados, busque la ubicación de los errores en un vasto mar de archivos fuente. Por supuesto, a medida que los desarrolladores se familiaricen y comprendan la estructura del directorio de archivos del sistema, la velocidad de localización de errores seguirá acelerándose. Los controladores de Windows CE son relativamente fáciles de escribir. La estructura del programa es relativamente simple, los estudiantes pueden consultar el artículo Inicio de MSDN > Biblioteca MSDN >Desarrollo móvil e integrado > Sistema operativo integrado
Desarrollo del sistema > Columnas SPOT the Geek y los controladores WindowsCE.
Desarrollo de aplicaciones
La diferencia entre el desarrollo de aplicaciones para sistemas integrados y el desarrollo de aplicaciones en una PC no es muy grande. Para los sistemas Windows CE, Microsoft ha proporcionado herramientas de desarrollo relativamente completas. En particular, el uso de .NET Compact Framework hace que las aplicaciones basadas en Windows CE.NET Compact Framework sean multiplataforma. Los desarrolladores pueden utilizar el lenguaje C# de Windows para desarrollar y simular la depuración de aplicaciones CE .NET directamente en la PC, o pueden conectar el sistema de destino a la PC para la depuración en línea. En la actualidad, existen muchos sistemas que admiten J2ME (versión de sistema integrado de JAVA), lo que le da a JAVA una mayor ventaja en el desarrollo de aplicaciones de sistemas integrados. Además, como desarrollador profesional de software de sistemas integrados, también necesita comprender completamente el conocimiento de la tecnología orientada a objetos y los patrones de diseño. Por supuesto, como principiante, no necesita estudiar este aspecto en profundidad.
Procesadores de sistemas integrados y sistemas operativos de uso común
Procesadores
Los procesadores de sistemas integrados de uso común incluyen principalmente procesadores ARM, procesadores Power PC y procesadores integrados con núcleo MIPS. procesadores de núcleo blando (como Alter's Nios y Xilinx's MicroBlaze, etc.) y DSP (procesador de señal digital), etc.
La principal característica del procesador ARM es su alto ratio rendimiento/vatios. Los procesadores ARM se utilizan ampliamente en teléfonos móviles, PDA y otros campos. Entre los más famosos se encuentran los procesadores de la serie XScale basados en núcleos ARM producidos por Intel Corporation. Debido a que los procesadores basados en núcleos ARM producidos por todas las empresas tienen el mismo modelo de programación, los procesadores de sistemas integrados basados en ARM suelen ser la primera opción en sistemas portátiles y que funcionan con baterías. Los procesadores PowerPC (PPC para abreviar) tienen un sólido rendimiento informático y capacidades de procesamiento de datos. Los procesadores de sistemas integrados basados en PPC se utilizan ampliamente en los campos de las redes y las comunicaciones de datos. Entre ellos, el MPC860/MPC8260 producido por Motorola se utiliza ampliamente en productos de red integrados. Los procesadores MIPS se caracterizan por tener capacidades de procesamiento muy potentes. Como procesador de alto rendimiento, los procesadores MIPS son adecuados para aplicaciones de red, empresariales y de electrónica de consumo avanzada. Especialmente en sistemas decodificadores, los procesadores MIPS tienen una alta participación de mercado. A medida que la escala de dispositivos programables continúa expandiéndose, las personas pueden personalizar los procesadores según las necesidades e implementar fácilmente procesadores personalizados para ciertas aplicaciones especiales dentro de los dispositivos programables. Además del procesador, los sistemas informáticos también requieren muchos otros componentes. Por ejemplo, en los sistemas de procesamiento de datos de medios multicanal, a menudo se utilizan dispositivos programables para implementar funciones de procesamiento de datos de alta velocidad y DSP de núcleo blando para implementar complejos. Algoritmos de procesamiento de señales digitales, y también requiere un procesador para el procesamiento de transacciones. Los procesadores de núcleo blando combinan dispositivos programables, DSP y procesadores, lo que proporciona una gran flexibilidad para el diseño a nivel de sistema.
El DSP (procesador de señales digitales) se diferencia de los procesadores de uso general por sus potentes capacidades de procesamiento de señales digitales. Se proporciona un acumulador múltiple de hardware dentro del DSP y el procesador está diseñado para optimizar métodos de direccionamiento especiales. Algunos DSP también admiten bucles de pérdida cero (Zero OverheadLoop). Para facilitar el diseño de sistemas integrados, los DSP convencionales generalmente proporcionan una gran cantidad de periféricos. Particularmente dignos de mención son el DSP de la serie Blackfin de ADI y el DSP de la serie DM64X de TI. Ambos procesadores proporcionan una gran cantidad de periféricos en chip y son muy adecuados para aplicaciones de sistemas integrados.
Sistema operativo
Window CE.NET/5.0
Como producto de Microsoft, Window CE.NE/5.0 proporciona una herramienta de desarrollo de plataformas completamente funcional Platform Builder y herramientas de desarrollo de aplicaciones Embedded Visual C++/Visual Studio 2003. Dado que Windows CE tiene una interfaz de Windows que resulta familiar para la mayoría de los usuarios, el sistema proporciona numerosos controladores y cuenta con soporte documental completo. Para el desarrollo de aplicaciones, los programadores que estén familiarizados con el desarrollo de sistemas Windows pueden cambiar fácilmente al desarrollo de aplicaciones WindowsCE. Windows CE será un sistema operativo integrado muy prometedor.
VxWorks
VxWorks es un sistema operativo integrado en tiempo real producido por la empresa Windriver (Wind River). El famoso vehículo de aterrizaje en Marte utiliza VxWorks. Windriver proporciona el entorno de desarrollo integrado tornado para VxWorks.
υC/OSII
υC/OS es un sistema operativo integrado de código abierto en tiempo real diseñado y escrito por Jean Labrosse. Fue el sistema operativo integrado con el que el autor entró en contacto por primera vez. con. La lectura y la comprensión profunda del código fuente de C/OS son de gran beneficio para comprender los sistemas en tiempo real.
ARM Linux
ARM linux es un sistema operativo Linux desarrollado y trasplantado por Russell King y otros desarrolladores para procesadores ARM. Los sistemas ARM Linux se publican bajo GNU GPL. Los lectores interesados pueden consultar la introducción de
.
υ CLinux
υ Clinux es una versión de LinuxOS adecuada para procesamiento integrado sin una MMU. υ Clinux también se publica bajo GNU GPL. Los lectores interesados pueden consultar
Problemas y soluciones comunes en el proceso de desarrollo de sistemas integrados
¿Cómo escribir el gestor de arranque en Flash?
Los principiantes generalmente encuentran el problema de cómo escribir programas en el procesador. Para diferentes procesadores, se pueden utilizar diferentes métodos. Por ejemplo, el procesador Xscale de Intel se puede programar utilizando la herramienta JFlash proporcionada por Intel. Para procesadores con software de herramienta de depuración JTAG, puede utilizar la siguiente idea: escribir un programa que pueda escribir datos ubicados en la dirección fija de SDRAM/SRAM en Flash. Al programar, primero descargue este software en SDRAM, luego descargue los datos que se escribirán en Flash a través del software de depuración a un búfer comenzando en una dirección fija de S DRAM / SRAM, y luego comience a ejecutar el programa a través del depurador y transfiera los datos se escriben en Flash. Además, existen muchas herramientas especiales para escribir Flash en Internet, que los desarrolladores pueden elegir según sus propias necesidades. (Ahora entiendo por qué descargué flashProgramer.dxe primero para el BF533 que estaba aprendiendo)
¿Qué es arm-elf-gcc?
arm-elf-gcc es un compilador de lenguajes C cruzado. Compilamos programas en la plataforma de PC y el compilador se ejecuta en el mismo procesador en el que se ejecutará el código generado.
Sin embargo, al compilar un programa ARM en una PC, el procesador en el que se ejecuta el compilador es diferente del procesador en el que se ejecuta el código generado. Este compilador se denomina compilador cruzado. Elf se refiere al formato de archivo objeto generado por el compilador. (De hecho, los compiladores de microcontroladores que utilizamos habitualmente, como GCC-AVR, ya son compiladores cruzados. Recién ahora he descubierto qué es un compilador cruzado)
¿Qué ruta de compilación tomaste?
Los programas y controladores del sistema a menudo contienen muchas opciones de compilación. Muchas opciones se definen a través de la línea de comando durante la compilación. Si desea saber qué programa se está compilando, puede utilizar el siguiente método:
.#ifdef PLAT_AAA
#Código de error para la plataforma AAA
#else
#Código de error NO para la plataforma AAA
# endif
De esta manera, sabrá qué ruta se compila durante la compilación. Para los compiladores que admiten el mensaje #pragma ("Estoy aquí"), también puede utilizar la directiva de precompilación del mensaje #pragma.
¿Cómo sé en qué archivo se encuentra ese fragmento de código?
En la programación del sistema, a menudo es necesario buscar cadenas en varios archivos. En la plataforma Windows, puede utilizar la herramienta de búsqueda de cadenas de varios archivos proporcionada por la plataforma. En la plataforma Linux, puede utilizar grep para buscar cadenas. La función de búsqueda de Grep es muy poderosa y admite la búsqueda de expresiones regulares. El uso competente de grep es muy útil para leer el código del sistema y del controlador.
¿Desde qué archivo arranca el sistema?
Para el sistema W i n d o w s C E, generalmente proviene de un archivo ensamblador en el directorio
W I N C E 4 2 0 \PLATFORM\YourPlatform\KERNEL\HAL. Habrá ciertas diferencias en las diferentes versiones del sistema Linux. Tomando el procesador arm como ejemplo, generalmente está en head-armv.S de linux2.4.x\arch\arm\kernel.
¿Hacia dónde va el programa?
Puedes insertar el siguiente código en el programa para lograr esto
printf(“Estoy aquí %s, %d\n”,__FILE__, __LINE__);
El código imprimirá el nombre del archivo y el número de línea donde se encuentra la declaración printf.
Libros recomendados
Jean J.Labrosse MicroC/OS-II The Real-Time Kernel, segunda edición
Este libro es la introducción del autor a la tecnología real integrada. Sistemas de tiempo El libro introductorio se puede comprar en chino en China. Este libro explica con relativa claridad el concepto de sistema en tiempo real y el principio de funcionamiento de cada componente. En particular, revela el código fuente del núcleo del sistema en tiempo real. Se beneficiará mucho de un estudio cuidadoso. Aquí tienes un pequeño consejo: para principiantes, puedes saltarte la lectura del primer capítulo de este libro y empezar a leerlo directamente desde el Capítulo 2.
Abraham Silberschatz, Peter Baer Galvin, Greg Gagne Conceptos de sistemas operativos
Durante el proceso de enseñanza, el autor descubrió que muchos estudiantes de ingeniería informática y electrónica tienen conceptos básicos sobre sistemas operativos. Ninguno de los dos está claro y pocos estudiantes tienen experiencia completa en programación de sistemas. El libro Operating System Concepts sólo puede describirse como un clásico en su apreciación del sistema operativo. Para los estudiantes interesados en una investigación en profundidad sobre sistemas integrados, primero deben sentar una base sólida. Este libro se ha convertido en una lectura obligada.
Andrew S. Tanenbaum Computer Networks
Cuando se trata de Andrew S. Tanenbaum, los estudiantes que estudian informática deben conocer el libro OPERATING SYSTEMs: Design and Implementation. El autor admira sinceramente a los profesores. como Tanenbaum. La pila de protocolos de red es un componente pilar de los sistemas integrados. Para los estudiantes que estén dispuestos a dedicarse a la investigación profunda de la tecnología de redes, este libro les ayudará a construir una base sólida de redes.
Karim Yaghmour Construyendo sistemas Linux integrados
Este libro presenta en detalle la composición de los sistemas Linux integrados, los conceptos básicos y cómo construir cada parte. Todo el libro es breve y puede describirse como breve y conciso. Puede utilizarse como libro de introducción a los sistemas Linux integrados y como guía para todas las partes del proceso de desarrollo.
Advanced RISC Machines Ltd (ARM) ARM7 TDMI
Hoja de datos
Advanced RISC Machines Ltd (ARM) ARM920T
Manual de referencia técnica
¿Cómo se pueden aprender sistemas integrados sin comprender los procesadores integrados más utilizados? La hoja de datos ARM7 TDMI es una buena herramienta para aprender el modelo de programación ARM y el conjunto de instrucciones. En los sistemas integrados, la MMU (unidad de gestión de memoria) es una parte muy importante, pero también es una parte difícil de entender y dominar. El Manual de referencia técnica ARM920T puede ayudarle a explicar este aspecto.
Perter Van Der LinDen Experto en programación en C
El lenguaje más utilizado para la programación integrada a nivel de sistema es C. Muchos estudiantes piensan que son buenos aprendiendo el lenguaje C. Bueno, simplemente lea este libro y descubra la brecha entre usted y los expertos.
Nota: vi este artículo en la edición número 12 de Learning Garden en 2004. El autor del artículo es Yuan Tong
Acerca del autor
Yuan Tong es profesor del curso de sistemas integrados en el Colegio Experimental de la Universidad Tecnológica de Beijing. Una vez trabajó en Microsoft. como estudiante visitante en el Asia Institute 2004.
Después de leer este artículo, no podía esperar para publicarlo porque estaba realmente bien escrito. He estado involucrado en tecnología integrada durante más de un año. Desde 8051 hasta ARM, he estudiado, dudado, feliz y deprimido. . . Recientemente, incluso tuve la idea de rendirme. Al final, fue causado por mi comprensión incompleta del desarrollo integrado. Me sumergí en la tecnología desde el principio, aprendí varias tecnologías y finalmente me perdí en el pozo de lodo creado por. mí mismo. Este artículo explica muy claramente todos los aspectos del desarrollo integrado y tiene un efecto esclarecedor para personas confundidas como yo.
El desarrollo integrado es diferente del desarrollo de escritorio, pero también está muy relacionado y presta gran atención a las capacidades operativas prácticas. Las personas que se dedican al desarrollo de escritorios normalmente no pueden hacer el cambio cuando entran en contacto por primera vez con sistemas integrados. Esto se refleja principalmente en el posicionamiento. Como dice el artículo ¿quién eres y a qué te dedicas? Mi comprensión del hardware se limita al campo de la programación y no sé nada sobre el diseño de PCB, pero eso no significa que no puedas participar en el desarrollo integrado si no entiendes el hardware. En todos los aspectos del desarrollo y diseño de un sistema, lo más importante es hacer tus propias aportaciones en áreas que te interesen y con las que estés familiarizado.
1. Diseño de hardware: requiere experiencia en diseño de hardware y una buena comprensión de varios dispositivos integrados.
2. Trasplante del sistema: requiere experiencia en ensamblaje, comprensión de los principios del sistema operativo y los controladores subyacentes
3. Aplicaciones: se requiere experiencia en programación de escritorio