La Red de Conocimientos Pedagógicos - Aprendizaje de inglés - Introducción al brazo integrado

Introducción al brazo integrado

Encontré esto en otro lugar, recién comencé a aprenderlo, jaja, espero que te sea útil.

Diez años de experiencia te enseñan a aprender sistemas embebidos (basados ​​en plataforma ARM).

1. El concepto de sistema integrado

Centrarse en comprender el concepto de "integrado"

Se entiende principalmente desde tres aspectos.

1. Desde una perspectiva de hardware, los periféricos basados ​​en CPU están integrados en el chip de la CPU. Por ejemplo, en las primeras computadoras basadas en la arquitectura X86, la CPU solo tenía las funciones de unidad aritmética y acumulador. Todos los chips debían ampliarse mediante la construcción de un puente externo, como el puerto serie, que se implementaba a través del 16C550/2. Chip controlador de puerto serie externo. En la actualidad, este chip controlador de puerto serie lleva mucho tiempo integrado en la CPU y todas las PC tienen tarjetas gráficas. La CPU del procesador de red IXP de gama relativamente alta bajo la arquitectura ARM Intel Xscale integra un controlador PCI (se puede configurar para admitir cuatro esclavos PCI o un esclavo CPI; también integra tres motores de procesadores de red NPE, dos de los cuales corresponden a dos MAC); direcciones, se puede utilizar para conmutación de puerta de enlace y el otro motor de procesador de red NPE admite DSL. Siempre que se agregue un chip PHY en el exterior, se puede realizar la función de Internet DSL. La serie IXP tiene una frecuencia máxima de hasta 1,8G, admite memoria 2G, puerto Ethernet 1G×10 o 10G×1 o canal óptico Febre. La serie IXP debería ser el procesador más alto de Intel basado en la arquitectura ARM y apuntando a integrarse en el núcleo Xscale.

2. Desde el punto de vista del software, seleccione la aplicación en el kernel del sistema operativo personalizado y descargue el kernel compilado a la ROM. Al personalizar el kernel del sistema operativo, los componentes de la aplicación seleccionados son las "integraciones" del software. Por ejemplo, al personalizar el kernel, WinCE tendrá las opciones correspondientes, incluidas WordPad, PDF, MediaPlay, etc. Si lo deseamos, podemos encontrar estas cosas en la interfaz después de que se inicie. Si se trata del sistema operativo Windows de la PC anterior, será necesario reinstalar la mayoría de las cosas.

3. La verdadera "incrustación" se logra grabando el núcleo del software o el sistema de archivos de la aplicación en la ROM de la plataforma de hardware del sistema integrado.

La definición anterior es la definición que le di a los sistemas integrados hace seis o siete años. El énfasis está en la comprensión. Hay muchas definiciones en el libro, pero nadie se atreve a decir que sus definiciones sean muy precisas en este campo, incluidos los expertos y académicos. Después de todo, los sistemas integrados son un tema muy amplio en el campo de la informática.

2. Estratificación y clasificación profesional de sistemas embebidos.

Los sistemas integrados se dividen en cuatro capas: capa de hardware, capa de controladores, capa de sistema operativo y capa de aplicación.

1. La capa de hardware es la base de todo el sistema integrado. Si está familiarizado con los microcontroladores y las interfaces y puede programar en C y lenguaje ensamblador, será relativamente fácil pasar de la capa de hardware del sistema integrado. La capa de hardware también es la base de la capa de controlador. Un excelente ingeniero de controladores debería poder comprender el diagrama del circuito de hardware y completar el diseño lógico del CPLD. Al mismo tiempo, debería estar bastante familiarizado con el núcleo del sistema operativo y su programación. Pero la plataforma de hardware es la base y el valor agregado depende del software.

La capa de hardware es más adecuada para personas con especialización en electrónica, comunicaciones, automatización, mecatrónica e ingeniería de la información. El conocimiento profesional básico que es necesario dominar son los principios del microcontrolador y la tecnología de interfaz, los principios de la microcomputadora y la tecnología de interfaz y el lenguaje C.

2. Capa del controlador, esta parte es más difícil. El ingeniero del controlador no solo debe poder comprender el diagrama del circuito sino también ser muy competente en el núcleo del sistema operativo, para que el controlador que escriba no lo haga. Monopolizan el sistema operativo cuando se llama al sistema en intervalos de tiempo, por el contrario, hacen que otras tareas no se puedan mover. No comprenden la arquitectura del núcleo del sistema operativo y la programación en tiempo real, y no tienen un buen estilo de escritura de controladores. . Mucha gente puede hacer esto agregando controladores como mencionan la mayoría de los libros. Pero es posible que ni siquiera alcance el nivel de un ingeniero de controladores junior, por lo que el controlador escrito de esta manera es como cuando abrimos un programa después de ejecutarlo en Windows, interrumpimos el programa anterior o esperamos un momento y luego ejecutamos el programa abierto posteriormente.

Si desea convertirse en un excelente conductor, no es fácil lograrlo sin tres o cuatro años de habilidades básicas y sin aprender las últimas partes del núcleo del sistema operativo. Sin embargo, su salario es el más alto entre las cuatro capas de sistemas integrados. .

La capa de controlador es más adecuada para personas con especialización en electrónica, comunicaciones, automatización, mecatrónica e ingeniería de la información, especialmente arquitectura informática. Además de las disciplinas básicas de la capa de hardware, también debe ser muy competente en estructuras y algoritmos de datos, principios de sistemas operativos y principios de compilación.

3. La capa del sistema operativo. Para la capa del sistema operativo actual, solo se puede decir que es un simple trasplante, o no tienen manos ni pies. un sistema operativo. Gran parte de este trabajo lo realizan ingenieros de conducción. El sistema operativo es responsable de depurar las tareas del sistema y administrar discos y archivos. La naturaleza en tiempo real de los sistemas integrados es muy importante. Se dice que el sistema operativo XP tardó dos años en completarse por 300 personas de Microsoft y la carga de trabajo total fue de 600 personas-año. Se estima que el sistema operativo del Instituto de Software de la Academia China de Ciencias tardará cientos de años en aparecer. Así que esta parte del trabajo carece relativamente de sentido.

4. La capa de aplicación es relativamente sencilla. Si puede llamar a la función de la interfaz de programación en Windows, solo cambiará el entorno de compilación y desarrollo en el sistema operativo. Lo mismo ocurre si Java participa en la programación. Los algoritmos involucrados en los sistemas integrados son manejados por algorítmicos profesionales y no necesariamente entran en la categoría de sistemas integrados. Pero si se trata de bases de datos integradas en sistemas integrados, programación de redes basadas en sistemas integrados y desarrollo de aplicaciones de protocolo basadas en una determinada capa de aplicación (como SIP, H.323, Astrisk), es más complicado y difícil.

En tercer lugar, objetivos y posicionamiento.

Primero ten un objetivo, luego ubícalo.

Aprender ARM, desde una perspectiva de hardware, implica aprender el diseño de circuitos de interfaz, por un lado, y aprender lenguaje C ensamblador y programación a nivel de placa, por el otro. Desde una perspectiva de software, necesita aprender los controladores a nivel del sistema operativo y la portabilidad basada en procesadores ARM. Estos deben ser muy claros para los principiantes, ya sea por el hardware o la familiaridad del sistema operativo con la aplicación, pero no importa lo que aprenda, siempre que no se trate de programación de aplicaciones API pura por encima del nivel del sistema operativo, los registros de hardware deben ser comprensible, el ensamblaje a nivel de placa y la programación en C deben ser comprensibles. Por lo tanto, aún necesita dominar la capa de hardware y el controlador del sistema integrado, el diseño del circuito de interfaz de ARM y el entorno de desarrollo de depuración y programación en lenguaje C y ensamblador de ARM.

Por lo tanto, los principiantes deben tener una buena comprensión de la dirección, cuáles son sus objetivos y a qué nivel quieren llegar. Luego, comenzaremos a aprender las dos capas prácticas de los sistemas integrados relacionados con ARM: la capa de hardware y la capa de controlador. No importa cuál aprendamos bien, tendremos un futuro brillante.

Si desea pasar del nivel de aplicación de los sistemas integrados, es posible que aún esté lejos de sistemas como ARM. Deberíamos centrarnos en las aplicaciones ambientales de los sistemas operativos integrados y las cadenas de herramientas de desarrollo correspondientes, como el desarrollo de aplicaciones EVC en el sistema operativo WinCe (similar a VC en Windows). Si desea lograr un gran avance, debe confiar en algunos protocolos de audio y video, como el desarrollo de la capa de aplicación basado en los protocolos SIP o H.323 en el campo VOIP, o el desarrollo basado en bases de datos de red integradas.

Para los principiantes, deben actuar de acuerdo con sus habilidades y no tomar esto como una dirección solo porque el salario del conductor es alto. Para combinar tus propias características. En ese nivel, hay cuatro niveles de expertos en sistemas integrados y, por supuesto, los expertos también tienen salarios altos. Trabajo en la capa de hardware. En el pasado, el impuesto sobre la renta personal me deducía casi 3.000 yuanes de mi salario mensual. Por supuesto, yo desempeñaba el papel de ingeniero por un lado y el de supervisor y papel por otro. Ocupé dos puestos por mi cuenta. Tal vez haya muy pocas personas haciendo PK de hardware conmigo, por lo que puedo obtener un salario tan alto.

Cuarto, selección del sistema de desarrollo.

Muchas personas que son nuevas en ARM esperan tener un sistema que puedan usar, pero existe el malentendido en la vida de que cuanto mayor sea la versión del procesador, mayor será el rendimiento, mejor. Creo que ARM9 y ARM7 son igual de buenos. Creo que los novatos deberían ser más racionales a este respecto.

La elección del sistema de desarrollo depende en última instancia de la dirección del sistema integrado, ya sea que estén realizando el desarrollo de controladores o aplicaciones, o si están realizando el diseño de la capa de hardware y las pruebas a nivel de placa de los sistemas integrados. Si desea hacerlo desde el nivel del sistema operativo o el nivel de la aplicación, ya sea un controlador o una aplicación, por supuesto, cuanto mayor sea el rendimiento del procesador, mejor, pero es difícil aprender esto usted mismo y No se puede hacer en unos pocos meses, medio año o dos años.

En cierto sentido, la diferencia entre ARM7 y 9 es que algunos conjuntos de instrucciones funcionales son más ricos y la frecuencia principal es más alta, como 286 y 386. Los usuarios pueden no notar nada, pero simplemente sienten que la velocidad es un poco rápida.

ARM7 es más adecuado para personas que quieren iniciarse en el nivel de hardware, porque los procesadores de la serie ARM7 tienen muy pocas MMU y son fáciles de controlar. Por ejemplo, S3C44B0 puede desactivar fácilmente el caché y los registros de la interfaz interna también son fáciles de entender. Se pueden controlar varias interfaces mediante programas de hardware o instrucciones de línea de comando de un solo paso de AXD. Basado en la idea del microcontrolador 51, es fácil entenderlo y considerarlo como un microcontrolador de 32 bits, eliminando así la confusión de muchos ingenieros de 51 que quieren convertirse en ingenieros de desarrollo ARM de hardware de sistemas integrados, para que No se dejará confundir por alguien en la industria que no entiende realmente los sistemas integrados. Las malas empresas lo llevan al nivel del sistema operativo, lo que los desanima y hace que la industria carezca aún más de talentos en esta área.

Los sistemas integrados conceden gran importancia a las interfaces tanto en el diseño del hardware como en los controladores de software. La selección de plataforma también depende de los recursos externos del procesador. Cuanta mayor exposición y familiaridad con los recursos externos, mayores serán las posibilidades de éxito laboral en el futuro. Estas son las “habilidades relevantes” mencionadas en la contratación, ya que una persona no puede estar expuesta a todos los procesadores en tan solo unos años. El procesador que utiliza nuestro empleador puede ser nuevo para nosotros. Tomemos como ejemplo los procesadores ARM producidos por docenas de pequeñas empresas en la provincia de Taiwán (el precio de mercado es de decenas de millones), también son muy fáciles de usar. Pero estos procesadores no son universales, por lo que las empresas que los utilizan sólo pueden contratar personas con experiencia laboral relevante. ¿Cuáles son los trabajos relacionados? El aspecto del hardware es el diseño de la interfaz periférica y el aspecto del software es el controlador de interfaz relacionado y la experiencia en el desarrollo de aplicaciones en el sistema operativo. Llevo casi diez años en el negocio. Cuando apareció ARM en 2000, comencé a trabajar en ARM7 en un día y luego fui directamente a Xscale (esta placa está entre ARM10-11). Trabajé durante cinco años y entrevisté a cientos de personas. Todavía tengo un profundo conocimiento de estos aspectos.

Personalmente, creo que el S3C44b0 de Samsung es más adecuado para principiantes. ¿Por qué dices eso? Debido a que los recursos de la interfaz son ricos, la tecnología es madura y hay mucha información, debería ser muy adecuada para principiantes. Si hay un problema, puede ser fácil encontrar a alguien que le ayude a resolverlo. Debido a que la mayoría de la gente está familiarizada con él, al igual que el microcontrolador 51, hay muchos expertos que pueden ayudarlo y las preguntas relacionadas se pueden responder rápidamente. Sin embargo, la industria piensa que este brazo está podrido, pero para los principiantes es algo bueno.

Por lo tanto, la elección del sistema de desarrollo depende de su dirección de desarrollo futuro, los recursos de la interfaz de la placa de desarrollo y la universalidad de la industria.

¿Cómo ve el verbo (abreviatura de verbo) la formación?

Antes que nada, déjame hablar de mí. He estado en la industria durante casi diez años, comenzando con la industria de sistemas integrados nacionales y siempre he estado a la vanguardia de la industria de sistemas integrados. He diseñado muchos productos de plataformas de sistemas integrados de alta gama y he proporcionado soluciones para muchas empresas. Antes de dejar su trabajo, diseñó IP-PBX para una empresa estadounidense dedicada a la telefonía por Internet. He trabajado como director de proyectos, director de proyectos, director técnico y director de departamento. He acumulado muchas conexiones y muchos años de experiencia. Teniendo en cuenta el desajuste entre el empleo de estudiantes y la contratación de empresas, las empresas no pueden contratar personas y es difícil para los estudiantes e ingenieros recién graduados encontrar trabajo, por lo que establecimos Zhitianxing Technology Co., Ltd. para llevar a cabo educación y capacitación sobre sistemas integrados. .

Debido a que los investigadores científicos de primera línea no tienen acceso a profesores de primera línea, hay una falta de talentos integrados en China. La tecnología de las universidades extranjeras está por delante de las empresas industriales, pero la situación interna es esa. La tecnología de sistemas integrados de las empresas industriales está muy por delante de las universidades. Para construir un puente entre la industria y las universidades, brindar habilidades avanzadas a los estudiantes universitarios, crear una carta de triunfo para los estudiantes en la competencia laboral y brindar a los ingenieros de la industria oportunidades para crearse a sí mismos, dejé mi trabajo con un salario anual de más de 200.000 yuanes y recibió capacitación en sistemas integrados.

Para la formación, significa gastar dinero para ganar tiempo.

Muchos ingenieros prefieren el autoestudio y piensan que no vale la pena formarse. Esto también es posible. Por supuesto, entrenar únicamente por dinero no valdrá mucho, pero con el entrenamiento de fuerza, pueden perder mucho. No sé si han saldado esta cuenta. Si una semana de formación puede brindarles conocimientos que pueden dominar en dos años de autoestudio, entonces pasarán de tres meses a medio año asimilando el contenido de la formación después de la formación. De esta manera, ahorrará al menos un año y medio para aprender otras cosas o trabajar en otro nivel. Luego, a más tardar en dos años, recibirá un salario correspondiente a su nivel, que es la relación entre salario y nivel. El mismo grupo de personas acortó el tiempo en un año, el salario mensual fue de al menos 1.000 yuanes y la tarifa de formación fue de al menos 1.000 yuanes. Esto también ahorró un año, ya sea por ocio o no.

Por otro lado, la formación de los recién llegados equivale a comprar un seguro de desempleo por adelantado, y un maestro los guiará hacia la profesión. El estudiante más joven de nuestra clase este verano es un estudiante de segundo año y este año solo es un tercer año. Acaba de aprender microcontroladores este semestre, pero ahora su trabajo de programación en ARM ya es muy colorido. ¿Estaré desempleado más de un año después de graduarme?

Además, a través de la formación, puedes saber muchas cosas que la gente corriente de la industria no sabe y también puedes encontrar un maestro. Por ejemplo, dos ingenieros utilizaron S3C2410 y PXA255 para fabricar dispositivos portátiles respectivamente. Ambos trabajaron durante cuatro años y luego salieron a buscar trabajo. La diferencia de salarios entre ellos puede ser de hasta un factor de dos. ¿Por qué? Esta es una regla desconocida para la gente corriente de la industria. 2410 es un producto civil, pero ha sido absorbido por la industria. Al fabricar productos, somos muy sensibles a los costos y, por supuesto, también somos muy sensibles a los costos de talento. El PXA255 es cosa de Intel. Con una CPU 255 se pueden comprar tres 2410, que la industria siempre ha definido como un producto aristocrático. Las empresas utilizadas son todas grandes empresas o empresas que prestan servicios militares y no les importa el costo.

Creo que es cierto que he encontrado un buen profesor para mí, porque existe una competencia potencial entre ingenieros del mismo nivel y muchas personas no están dispuestas a enseñar a otros lo que saben, lo que significa que Él lo haría. Si hubiera perdido su trabajo, el llamado aprendiz de la iglesia habría muerto de hambre, mientras que para nosotros no existe tal relación. He alcanzado cierto nivel de programación en el diseño de plataformas de sistemas embebidos. En la actualidad, me resulta difícil abrirme paso en la tecnología doméstica, por lo que hay muchas cosas abiertas a todos. Por ejemplo, si no hablo de la interfaz secuencial mencionada en el diseño de la interfaz, creo que solo 10 personas pueden conocerla.

6. Habilidades para convertirse en ingeniero senior de hardware de sistemas integrados.

En cuanto al hardware, hay varias direcciones. Las señales simples se dividen en señales digitales y señales analógicas. La simulación es difícil de realizar y normalmente requiere un largo período de experiencia. Una sola resistencia o condensador no es lo suficientemente preciso y puede desviar significativamente la señal. Por tanto, los jóvenes hacen menos. Con el desarrollo de la tecnología, han surgido circuitos analógicos digitales, como el módulo de radiofrecuencia del módem de los teléfonos móviles, que utilizan conjuntos completos de chips maduros. En ese momento, sólo dos empresas en el mundo tenían esta tecnología, y las personas que sentían que sus capacidades de simulación no eran fuertes no eran adecuadas para esto. Si realmente pueden conseguir el módulo de radiofrecuencia del teléfono móvil, siempre que alcance el nivel promedio, su salario mensual puede ser de más de 15K.

La otra es la parte digital, que generalmente se puede dividir en microcontroladores 51/ARM, DSP y FPGA. La mayoría de los ingenieros nacionales de FPGA se dedican a la verificación inicial de núcleos IP en empresas de diseño de circuitos integrados y su futuro no está claro. Incluso un ingeniero de verificación de circuitos integrados tardará varios años en volverse competente. La interfaz de hardware de DSP está relativamente estereotipada. Si no está cerca del controlador o del algoritmo, el futuro no será bueno. Los microcontroladores ARM tienen mucho contenido, una gran cantidad de productos industriales y una amplia gama de aplicaciones, por lo que existe un enorme espacio de empleo. El diseño de la interfaz refleja mejor el nivel y el nivel del diseño del hardware. ingeniero para competir entre sí y juzgar su nivel. Lo más importante en el diseño de una interfaz es el tiempo, no la simple conexión. Por ejemplo, la velocidad I2C del procesador PXA255 requiere 100 Kbps. Si se le conecta un periférico I2C, el diseño inevitablemente fallará. Hay muchas situaciones de este tipo.

Por ejemplo, el microcontrolador 51 se puede conectar a la pantalla LCD en el bus, pero ¿por qué no se puede conectar la pantalla LCD al bus ARM? El controlador de la tarjeta SD de Winband se puede conectar al bus ARM7, pero ¿por qué no se puede conectar este controlador? ¿Conectado al procesador ARM9 o Xscale? Todas estas son preguntas. Por tanto, la interfaz no es una simple conexión, depende del tiempo y los parámetros. Un excelente ingeniero de hardware debería poder diseñar un producto más rentable sin una solución de referencia. También será necesario realizar recortes cuando sea apropiado y factible según el esquema existente, pero no al azar. Una vez conocí a un ingeniero que cambió el chip de CC de 5 V a 1,8 V y directamente a LDO en el plan. A veces se quemaban varias CPU. Hace unos días, alguien me pidió que le ayudara a optimizar el programa para su anterior dispositivo GPS portátil basado en la plataforma PXA255. Pregunté sobre la situación. El mapa se almacena en la tarjeta SD y la interfaz SPI entre la tarjeta SD y el controlador MMC del PXA255 hace que el mapa se lea muy lentamente. Esta situación es una falla grave en el diseño, no un problema de programación, así que hice algunas sugerencias y les pedí que actualizaran e intentaran nuevamente. Por lo tanto, si quieres ser un buen ingeniero, debes comprender la integridad del sistema y comprender los circuitos existentes. En otras palabras, si te dan un conjunto de diagramas de circuitos, ¿cuánto puedes entender? Si tiene más de 80 años y no comprende, significa que está lejos de ser un excelente ingeniero. La segunda es la capacidad de depuración de circuitos y la capacidad de verificación de dibujos, pero la capacidad más básica es el diseño esquemático, el diagrama de PCB y el diseño lógico. Esto se refiere a los ingenieros de diseño de hardware. De los ingenieros de diseño de hardware anteriores, también podemos dividir a los ingenieros de ECAD, que son ingenieros de dibujo de PCB profesionales e ingenieros de diseño de EMC para ayudar a las personas a resolver problemas de EMC. Los ingenieros de hardware son ingenieros de pruebas a nivel de placa, es decir, ingenieros de hardware con buenos conocimientos del lenguaje C. Durante el proceso de depuración de la placa de circuito, puede verificar la funcionalidad del hardware mediante programas de prueba escritos por él mismo. Luego se entrega al desarrollador del controlador según el nivel del sistema operativo.

En resumen, el contenido del hardware es muy complicado. Después de practicar, me convertiré en un maestro. A menudo evalúo las soluciones de las personas, y las cosas diseñadas por muchos ingenieros de hardware senior a menudo son rechazadas por mí, por lo que los ingenieros ofenderán a algunas personas cuando hagan esto. Sin embargo, de hecho, hay muchos aspectos desconocidos del hardware, lo que hace que muchos ingenieros de hardware senior se sientan muy atraídos. confundido.

Bueno, un ingeniero de hardware senior debe tener esas habilidades. En primer lugar, deben dominar las herramientas auxiliares para el diseño EDA, como ProtelORCADPowperPCBMaplux2ISE y el lenguaje VDHL, y deben poder utilizar estas herramientas para dibujar y el bloc de bocetos para el diseño lógico. Luego están las capacidades de revisión de dibujos y diseño de interfaz, y luego las capacidades de depuración. Si pueden hacer un diseño general, básicamente pueden convertirse en ingenieros superiores.

El hardware depende de la experiencia y la acumulación. Se necesitan diez años para afilar una espada y cien años para afilar una aguja.