1. conceptos de sistemas integrados
Concéntrese en entender el concepto de "incrustación"
Se entiende principalmente desde tres aspectos.
1. en términos de hardware, los periféricos basados es es en la CPU se integran en el chip de la cpu. Por ejemplo, en las Primeras computadoras basadas en la arquitectura x86, la CPU solo funcionaba como unidades aritméticas y acumuladores, y todos los chips necesitaban expandirse construyendo puentes externos. Implementación, Puerto serie, etc. se realiza con un chip de controlador de Puerto serie externo 16c550 / 2. el chip de controlador de Puerto serie actual se ha integrado en la cpu. el PC tiene una tarjeta gráfica y la mayoría de los procesadores integrados tienen un controlador lcd, pero en cierto sentido, es equivalente a una tarjeta gráfica. La CPU del procesador de red IXP bajo la arquitectura relativamente alta de ARM Intel xscale integra un controlador PCI (se puede configurar para soportar cuatro dispositivos esclavos PCI o para configurar dispositivos esclavos ipc); También integra tres motores de procesador de red npe, dos de los cuales corresponden a dos direcciones Mac y están disponibles para el cambio de pasarela, mientras que el otro motor de procesador de red NPE admite dsl. Basta con agregar el chip phy al exterior para lograr el acceso a Internet dsl. La serie IXP puede alcanzar una frecuencia máxima de 1,8g y admite memoria 2g, puertos Ethernet 1G * 10 o 10g * 1 o canales ópticos de canal febre. La serie IXP debería ser el procesador más alto que Intel pretende ser el núcleo de xscale después de integrarse bajo la arquitectura del sistema arm.
2. a partir del software, seleccione la aplicación en el núcleo del sistema operativo personalizado y descargue el núcleo a la ROM después de la compilación. El componente de aplicación seleccionado al personalizar el núcleo del sistema operativo es para completar la "incrustación" del software. Por ejemplo, cuando WinCE está personalizando el núcleo, hay opciones correspondientes, incluyendo wordpad, pdf, mediaplay, etc. si elegimos, después de que CE se inicie, puedes encontrar estas cosas en la interfaz. Si se trata del sistema operativo Windows de la computadora anterior, la mayoría de las cosas deben reinstalarse.
3. grabar el núcleo del software o el sistema de archivos de aplicación en la ROM de la Plataforma de hardware del sistema integrado para lograr una verdadera "incrustación".
La definición anterior es la que me enfoqué en entender en un sistema integrado hace 6 o 7 años. Hay muchas definiciones en el libro, pero en este campo, nadie se atreve a decir que sus definiciones son muy precisas. Sí, incluidos esos expertos y académicos, después de todo, los sistemas integrados son una disciplina integral en el campo de la informática.
2. clasificación jerárquica y especializada de los sistemas integrados.
El sistema integrado se divide en cuatro capas, la capa de hardware, la capa de accionamiento, la capa del sistema operativo y la capa de aplicación.
1. la capa de hardware es la base de todo el sistema integrado. Si está familiarizado con los microcontroladores e interfaces y puede programarse en lenguaje C y ensamblador, es relativamente fácil salir de la capa de hardware del sistema integrado, que también es el conductor. Sobre la base de esta capa, un excelente ingeniero de conducción debe ser capaz de entender el diagrama de circuito del hardware y completar el diseño lógico de PLD por sí mismo. Al mismo tiempo, debe estar muy 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 los profesionales de la electrónica, las comunicaciones, la automatización, la mecatrónica y la ingeniería de la información. Los conocimientos básicos profesionales que deben dominarse incluyen el principio de un solo chip y la tecnología de interfaz, el principio de un solo chip y el proceso de interfaz, y el lenguaje c.
2. capa de accionamiento. Esta parte es más difícil. Los ingenieros de conductores no solo deben ser capaces de entender el diagrama de circuito, sino también muy competentes en el núcleo del sistema operativo, para que los conductores que escriben no monopolicen la pieza de tiempo del sistema operativo cuando llaman al sistema. Por lo tanto, otras tareas no se pueden realizar, no entienden la arquitectura del núcleo y la programación en tiempo real del sistema operativo, y no tienen un buen estilo de escritura del conductor. De acuerdo con la forma de agregar un controlador mencionada en la mayoría de los libros, muchas personas pueden hacerlo, pero es posible que incluso no alcancen este nivel en el nivel de los ingenieros de accionamiento junior, por lo que cuando se llama a la aplicación, el controlador escrito es como si abriéramos un programa y lo ejecutáramos bajo windows. Cuando abrimos un programa, interrumpe el anterior o espera. Se tarda un tiempo en ejecutar el programa que se abre más tarde. Si quieres ser un buen conductor, no tienes tres o cuatro años de conocimiento. No es fácil tener éxito sin estudiar el núcleo del sistema operativo, pero en un sistema integrado de cuatro niveles, el salario es el más alto.
La capa de accionamiento es más adecuada para los profesionales de la electrónica, las comunicaciones, la automatización, la mecatrónica y la ingeniería de la información, especialmente las arquitecturas sesgadas por computadora. Además de las disciplinas básicas de la capa de hardware, también se necesitan estructuras de datos, algoritmos y operaciones. Los principios del sistema y los principios de compilación deben ser muy competentes en la comprensión.
3. capa del sistema operativo. Para la capa del sistema operativo, actualmente puede ser solo un simple trasplante, pero pocas personas provienen de sistemas operativos ya escritos o carecen de sistemas operativos de brazos y piernas. Esta parte del trabajo es realizada principalmente por ingenieros de conducción. Completado. El sistema operativo es responsable de la depuración de tareas del sistema, la gestión de discos y archivos, y el tiempo real del sistema integrado es muy importante. Se dice que Microsoft invirtió a 300 personas en el desarrollo del sistema operativo Windows en dos años. El número total de horas es de 600 años. Se estima que el sistema operativo Nuwa Hopen del Instituto de software de la Academia China de Ciencias tardará cientos de años en completarse. Por lo tanto, esta parte del trabajo es relativamente inútil.
4. la capa de aplicación es relativamente fácil. Si sabes cómo llamar a la función de interfaz de programación bajo windows, solo cambiará el entorno de compilación y desarrollo bajo el sistema operativo. Lo mismo ocurre si se trata de programación java. Los algoritmos involucrados en el sistema integrado son manejados por personal algorítmico profesional y no necesitan pertenecer a la categoría de sistema integrado. Sin embargo, si se trata de bases de datos integradas bajo sistemas integrados, programación de redes basada en sistemas integrados y desarrollo de aplicaciones de protocolo basadas en ciertos niveles de aplicación (como sip, h.323, astrisk), será más complejo y difícil.
3. objetivos y posicionamiento.
Primero hay un objetivo y luego lo encontramos.
Aprender arm, en términos de hardware, por un lado, es aprender el diseño de circuitos de interfaz, por otro lado, aprender compilación y programación a nivel de tablero en lenguaje c. Desde el punto de vista del software, es necesario aprender los conductores y trasplantes a nivel de sistema operativo basados es es en procesadores arm. Estos deben ser claros para los principiantes, ya sea por el hardware o por la familiaridad del sistema operativo con la aplicación, pero no importa lo que aprendas, siempre y cuando no sea un nivel puro del sistema operativo o una programación de capa de aplicación basada en API superior, el hardware todavía necesita entender lo que se registra, Y todavía necesita ser capaz de entender el montaje a nivel de placa y la programación c. Por lo tanto, para la capa de hardware y el controlador del sistema integrado, todavía es necesario dominar el diseño del Circuito de interfaz arm, el lenguaje C de ARM y el entorno de desarrollo de depuración de programación del lenguaje de montaje.
Por lo tanto, los principiantes deben dominar la dirección, cuáles son sus objetivos y alcanzar ese nivel. Luego comience a aprender mejor, los sistemas integrados relacionados con ARM de dos niveles más prácticos, la capa de hardware y la capa de accionamiento, independientemente de cuál capa aprenda bien, serán muy prometedores.
Si quieres partir del nivel de aplicación de los sistemas integrados, puede estar lejos de ARM y otros sistemas. Es necesario centrarse en las aplicaciones ambientales de los sistemas operativos integrados y las cadenas de herramientas de desarrollo correspondientes, como el desarrollo de aplicaciones EVC bajo el sistema operativo WinCE (similar a los VC bajo windows), y confiar en algunos protocolos de audio y video si quieres hacer un avance, Por ejemplo, el desarrollo de capas de aplicación basadas en protocolos sip o h.323 en el campo de VoIP o el desarrollo basado en bases de datos de red integradas.
Para los principiantes, debemos hacer todo lo posible. No pienses que el salario del conductor es alto y piensa en él como una Dirección. Debemos combinar nuestras propias características. En lo que respecta a los cuatro niveles del sistema integrado, hay expertos en todos los niveles. Por supuesto, también hay expertos. En correspondencia con el Alto salario, trabajo en la capa de hardware. En el pasado, tenía que deducir casi 3.000 yuanes del impuesto sobre la renta personal de mi salario mensual. Por supuesto, por un lado, desempeño el papel de ingeniero y, por otro lado, el papel de supervisor e individuo. Hago este puesto solo, pero solo esas horas de trabajo. En términos de hardware, es posible que pocas personas compitan conmigo, lo que me permite obtener tanto salario.
4. selección de sistemas de desarrollo.
Muchos principiantes de ARM quieren tener un sistema disponible, pero tendrán el malentendido de que cuanto mayor sea la versión del procesador, mejor será el rendimiento, al igual que muchos piensan que arm9 y arm7 son mejores, y creo que para los principiantes deberían ser sensatos al respecto. La elección del sistema de desarrollo depende de la dirección del sistema integrado, si desarrollar o aplicar el controlador, o hacer el diseño de la capa de hardware del sistema integrado y las pruebas a nivel de tablero. Si quieres desde el nivel del sistema operativo o del nivel de la aplicación, ya sea el conductor o la aplicación, por supuesto, cuanto mayor sea el rendimiento del procesador, mejor, pero el autoaprendizaje en este asunto es muy difícil, no meses, medio año o un año. Lo que se puede hacer en dos años.
En cierto sentido, la diferencia entre arm7 y 9 es que algunos conjuntos de instrucciones funcionales se enriquecen y la frecuencia principal aumenta, como 286 y 386. Para los usuarios, es posible que no sepan nada, pero solo pueden sentir que es un poco más rápido.
Arm7 es más adecuado para aquellos que quieran partir del nivel de hardware, ya que los procesadores de la serie arm7 tienen pocas mmu internas y son relativamente fáciles de controlar. Por ejemplo, s3c44b0, la caché se puede cerrar fácilmente y hay muchos registros de interfaz interna. es fácil ver y entender que varias interfaces se pueden controlar a través del control del programa de hardware o las instrucciones de línea de comando axd paso a paso. Basado en la idea de un solo chip 51, es fácil de entender y se puede considerar un solo chip de 32 bits, eliminando así a muchos ingenieros 51. Quieren centrar su atención en la confusión de los ingenieros de desarrollo de arm, hardware de sistemas integrados, para que no sean llevados al nivel del sistema operativo por algunas empresas de la industria que realmente no conocen el sistema integrado, para que se sientan asustados y para que la industria carezca aún más de talento en este sentido.
Los sistemas integrados prestan gran atención a la interfaz tanto en el diseño de hardware como en la conducción de software. Al elegir una plataforma, también debe comprobar los recursos externos del procesador. Cuanto más contacto tengas con recursos externos, más te familiarizarás con ellos, y tus oportunidades de empleo exitoso en el futuro se decidirán. Cuanto más alto es, más alta es la "habilidad relevante" a la que se refiere la contratación, porque una persona no puede llegar a todos los procesadores en solo unos años, y los procesadores utilizados por las unidades de contratación pueden ser completamente desconocidos para nosotros. en el pasado, los procesadores ARM (decenas de millones de valor de mercado) producidos por decenas de pequeñas Empresas taiwanesas también eran útiles. Pero estas cosas son tan comunes que las empresas que usan estos procesadores solo pueden reclutar. ¿¿ cuáles son las personas con experiencia laboral relevante? En términos de hardware, se trata del diseño de interfaces periféricas, y en términos de software, está relacionado con el controlador de interfaz y la experiencia de desarrollo de aplicaciones en el sistema operativo. Llevo casi diez años en esta industria. ARM apareció en 2000. Comencé a estudiar arm7 en un día y luego fui directamente a xscale (esta placa está entre arm10 - 11). Trabajé durante cinco años y recluté a no menos de cientos de personas para entrevistas. Todavía hay una comprensión profunda de estos aspectos.
Personalmente, creo que el s3c44b0 de Samsung es más adecuado para principiantes. ¿¿ por qué dices eso? Debido a que la interfaz es rica en recursos, la tecnología es madura y hay más materiales, debe ser muy adecuada para principiantes. Si hay un problema, puede ser fácil encontrar a alguien que lo ayude y lo resuelva, porque la mayoría de la gente está familiarizada con él, al igual que el Microcontrolador 51, con más de N bits. Los números a nivel de expertos pueden ayudarlo y las preguntas relacionadas pueden ser respondidas rápidamente. Sin embargo, la industria cree que este ARM no es adecuado para usar, pero para los principiantes, esto es algo bueno.
Por lo tanto, la elección del sistema de desarrollo depende de sus objetivos futuros, los recursos de interfaz del tablero de desarrollo y la versatilidad de la industria.
5. cómo tratar la capacitación.
Déjame hablar de mí primero. He trabajado en esta industria durante casi diez años y he comenzado con la industria nacional de sistemas integrados. Siempre he estado a la vanguardia de la industria de sistemas integrados. He diseñado muchos productos de plataforma de sistemas integrados de alta gama y he proporcionado soluciones para muchas empresas. Antes de dejar el cargo, diseñó IP - PBX para una empresa financiada por Estados Unidos dedicada a voip. Ha sido gerente de proyecto, Director de proyecto, director técnico y Gerente de departamento. Ha acumulado muchos contactos y años de experiencia. Teniendo en cuenta el desajuste entre el empleo estudiantil y la contratación corporativa, la compañía quería contratar personal, pero no era fácil para los estudiantes y los ingenieros recién graduados encontrar trabajo, así que intenté crear zhitianxing Technology co., Ltd. para llevar a cabo la educación y capacitación de sistemas integrados.
Debido a la falta de contacto entre investigadores de primera línea y profesores de primera línea, hay una escasez de talentos integrados en china. La tecnología de las universidades extranjeras está por delante de las empresas del sector, mientras que la situación nacional es que la tecnología de sistemas integrados de las empresas del sector está muy por delante de las universidades. Con el fin de construir un puente entre la industria y la universidad, traer habilidades avanzadas a los estudiantes universitarios, crear cartas de triunfo para los estudiantes en la competencia laboral, crear oportunidades para que los ingenieros de la industria mejoren rápidamente y se creen a sí mismos, Renuncié a un puesto en una empresa extranjera con un salario anual de más de 200000 yuanes para formar sistemas integrados.
Para el entrenamiento, es gastar dinero para ganar tiempo. A muchos ingenieros les gusta estudiar por sí mismos y piensan que la formación no vale la pena. también es posible. Por supuesto, entrenar puramente por dinero no será muy valioso, pero es posible que hayan perdido mucho dinero. No sé si han calculado. si una semana de formación les puede dar dos años de autoestudio para dominar el conocimiento, pasarán entre tres y seis meses digiriendo el contenido de la formación una vez finalizada. De esta manera, podrá ahorrar al menos un año y medio para aprender otras cosas o trabajar en otra altura, y luego, a más tardar dos años después, recibirá el salario correspondiente a su nivel, el salario. la relación con el nivel se reduce un año en comparación con el mismo grupo de personas. El costo mensual es de al menos 1000 libras, y el costo de la capacitación es de al menos 10000 libras más. Al mismo tiempo, también ahorra un año. En resumen, corrí al frente del equipo.
En otro nivel, la formación de los recién llegados equivale a comprar un seguro de desempleo por adelantado para sí mismos, y un maestro los lleva al taoísmo. Este verano, el estudiante más joven de mi clase es un estudiante de segundo año, y este año es solo un estudiante de tercer año. Acabo de estudiar mcu este semestre, pero ahora el trabajo de programación de ARM es muy impresionante. ¿¿ seguirá desempleado más de un año después de graduarse?
Además, a través de la formación, puedes aprender cosas que la gente común en muchas industrias no sabe y, al mismo tiempo, encontrar un maestro para ti mismo. Por ejemplo, dos ingenieros fabricaron dispositivos portátiles con s3c2410 y pxa255, y ambos pudieron trabajar en cuatro unidades. En el próximo año, si sales a buscar trabajo, la brecha salarial entre los dos puede duplicarse como máximo. ¿¿ por qué? Esta es una regla que la gente común en la industria no conoce. 2410 es un producto civil. La industria lo usa mal. El costo de fabricar un producto es muy sensible. Por supuesto, también es sensible al costo del talento. El pxa255 es un producto de intel. Una CPU 255 puede comprar tres 2410. Siempre ha sido definido por la industria como un producto noble. Las empresas utilizadas son grandes empresas o empresas que sirven al ejército. No les importa el costo. Mientras lo hagas bien, todo es fácil de decir, pero pocas personas lo hacen porque desarrollar sistemas es costoso.
En cuanto a encontrar un buen maestro para sí mismo, creo que sí, debido a la posible relación competitiva entre ingenieros del mismo nivel, muchas personas son reacias a enseñar a los demás lo que saben, lo que significa que perderán sus empleos. Es el llamado aprendiz de iglesia, el maestro murió de hambre, pero para nosotros, no hay tal relación. He alcanzado un cierto programa en el diseño de la plataforma del sistema integrado. En la actualidad, trabajo en este campo tecnológico en china. Es difícil abrirse paso, así que les he abierto muchas cosas, como la interfaz de tiempo mencionada en el diseño de la interfaz a continuación. Si no hablo de ello, creo que es casi un ingeniero de hardware senior. Solo el 10% lo sabe.
6. habilidades necesarias para convertirse en ingeniero de hardware de sistemas integrados avanzados.
En términos de hardware, hay varias direcciones. Las señales simples se dividen en señales digitales y analógicas. La simulación es más difícil de hacer. suele requerir una acumulación de experiencia a largo plazo. Si la precisión de la resistencia o el capacitor no es suficiente, la desviación de la señal puede ser grande. Por lo tanto, los jóvenes hacen menos trabajo. Con el desarrollo de la tecnología, ha aparecido la digitalización de circuitos analógicos. Por ejemplo, los módulos de radiofrecuencia del módem del teléfono móvil utilizan chips maduros. En ese momento, solo dos empresas en el mundo tenían la tecnología y sentían que tenían una función de simulación. Las personas menos fuertes no son adecuadas para esto. Si realmente puedes obtener el módulo de radiofrecuencia del teléfono móvil, siempre y cuando alcances el nivel general, el salario mensual puede ser superior a 15k.
La otra es la parte digital, que se puede dividir en microcontroladores 51 / arm, DSP y FPGAs en la dirección general. La mayoría de las universidades nacionales de ingenieros de FPGAs se dedican a la verificación frontal de núcleos IP en empresas de diseño ic. Esta parte no está involucrada. A nivel de portal, el futuro no es muy claro. Incluso si eres ingeniero de verificación frontal de ic, tienes que trabajar durante varios años para estar a la altura. La interfaz de hardware DSP se ha completado relativamente. Si no se acerca al conductor o al algoritmo, el futuro no será muy bueno. El contenido del microcomputador de un solo chip ARM es más. La posesión de productos en la industria es grande y la población de aplicaciones es amplia. Por lo tanto, el espacio de empleo es enorme. El diseño de hardware puede reflejar mejor el nivel y los estándares del diseño de la interfaz. Este es el PK de varios ingenieros de hardware senior. Base para juzgar el nivel. Lo más importante en el diseño de la interfaz es ver el tiempo, no una simple conexión. Por ejemplo, el procesador pxa255 i2c requiere una velocidad de 100 kbps. Si el periférico i2c está conectado a él pero no alcanza los 100 kbps, esto conducirá inevitablemente a un fallo de diseño. Hay muchas situaciones de este tipo. Por ejemplo, un microcomputador de un solo chip 51 se puede conectar a un LCD en el bus, pero por qué este LCD no se puede colgar en el bus ARM y puede haber un controlador externo de tarjeta SD winband en el bus arm7, pero por qué este controlador es un problema si no puedes acceder al procesador arm9 o xscale.
Por lo tanto, la interfaz no es una conexión simple, depende del tiempo y los parámetros. Un excelente ingeniero de hardware debería ser capaz de diseñar productos con mejores costos y rendimiento sin un plan de referencia. Según el plan existente, también tiene que hacer el corte de viabilidad adecuado, pero esto no es aleatorio, me encontré con un ingeniero que a veces quemaba varias CPU cuando cambiaba el chip 5v DC en el esquema por un chip DC de 1,8v y lo cambiaba directamente por un ldo. Hace unos días, algunas personas querían que ayudara a optimizar sus programas anteriores para dispositivos GPS portátiles basados en la Plataforma pxa255. Pregunté sobre la situación. El mapa se almacena en la tarjeta sd, SPI se utiliza entre la tarjeta SD y el controlador MMC de la interfaz pxa255, por lo que la lectura del mapa es muy lenta, una situación que es un grave defecto en el diseño, no un problema de programa, así que hice algunas sugerencias para que lo actualizaran y lo intentaran de nuevo. Por lo tanto, si quieres ser un excelente ingeniero, necesitas dominar la integridad del sistema y entender los circuitos existentes. En otras palabras, Cuánto puedes ver y entender después de un conjunto de dibujos eléctricos. Si no entiendes más del 80%, significa que no eres un buen ingeniero.
Le siguen la capacidad de puesta en marcha del circuito y la capacidad de revisión de dibujos, pero la capacidad más básica es el diseño de principios y el dibujo de PCB de diseño lógico. Esto se refiere al ingeniero de diseño de hardware. Los ingenieros de ECAD también pueden separarse de los ingenieros de diseño de hardware mencionados anteriormente, que son ingenieros profesionales que dibujan placas de PCB e ingenieros de diseño de EMC que ayudan a otros a resolver problemas de emc. Los ingenieros de hardware son ingenieros de prueba a nivel de tablero, es decir, ingenieros de hardware con buenas capacidades de lenguaje c, que pueden verificar las funciones de hardware a través de programas de prueba escritos por ellos mismos durante la puesta en marcha de la placa de circuito. Luego se entrega a los desarrolladores de conductores basados en el nivel del sistema operativo.
En resumen, el contenido del hardware es muy complejo. Si entrenas en hardware, te convertirás en un maestro. A menudo evalúo este plan para otros. A menudo niego los diseños de muchos ingenieros de hardware veteranos. Por lo tanto, los ingenieros lo harán. esta situación ofende a algunas personas, pero es cierto que el hardware tiene muchas incógnitas que confunden a muchos ingenieros de hardware veteranos.
Por lo tanto, los ingenieros superiores de hardware deben tener estas habilidades técnicas. En primer lugar, deben dominar las ayudas diseñadas por eda, como protel orcad powper PCB maplux2ise, el lenguaje vdhl. Deben ser capaces de usar estas herramientas para dibujar tablas de dibujo para diseños lógicos y luego realizar revisiones de diseño de interfaz. Capacidad de dibujo y capacidad de puesta en marcha. Si puedes entrar en la etapa de planificación y diseño maestro, básicamente te convertirás en ingeniero superior.
El hardware depende de la experiencia y la acumulación. Afilar una espada en diez años y una aguja en cien años.