7 votos

Desarrollo integrado - dando el siguiente paso

Voy a empezar por decirle a usted lo que yo sé. Entonces yo voy a decir que quiero a esta tierra mágica de conocer todo acerca de los sistemas integrados de desarrollo. Entonces yo voy a hacer lo que mis próximos pasos para llegar allí. Esta respuesta es más bien informativo, pero estoy tratando de conseguir un poco más detallada:

Lo Que Yo Sé

Vamos a ver, estoy justo con C y C++. Obviamente, quiero ser mejor con los idiomas, pero creo que en este punto de la mejor manera para mí para mejorar es seguir usando continuamente y tratar de mejorar mi código como lo escribo. No creo que sería muy beneficioso para dedicar alguna de ejercicios de aprendizaje a sólo el aprendizaje de C más.

Me siento bastante cómodo con el diseño de circuitos sencillos. Veo un chip con una salida de colector abierto y sé que necesito una extracción, etc. Estoy bastante seguro de que dado un IC y su hoja de datos, me puede averiguar cómo interactuar con él o, al menos, hacer las preguntas correctas para averiguar cómo interfaz.

Soy muy buena en matemáticas y el pensamiento lógico. Hay pocos algoritmos/conceptos de diseño que me tiro por un lazo. Este es sin duda mi más fuerte de la zona.

Lo que he Hecho

Hasta ahora, mi experiencia ha sido con 8 bits microcontroladores. Mi curso universitario utilizó un Motorola HC08, un procesador Intel 8051, y un Zilog EZ8. Mi profesor se había incorporado un poco dev consejo para todos los tres de ellos con un 7-seg pantalla y algunas otras cosas. Hemos programado en la asamblea, así que estoy algo familiarizado con el montaje y tomé un básico de arquitectura de computadores curso así que una buena idea sobre el hardware. Sin embargo, hemos trabajado en un entorno de windows y todos los 3 Mcu tenía su propio IDE de la herramienta y la cadena ya la instalación, así que nunca aprendí realmente mi código iban de la asamblea a que se ejecuta en el MCU.

Mi siguiente paso fue aprender por mi cuenta. Yo me puse muy familiarizado con el entorno de Arduino mediante una interfaz con los sensores/memorias/muestra que tanto había pre-escrito bibliotecas y algunas que no. Luego construí mi propia placa Arduino con un ICSP en él y conexiones a otro MCU para que yo pudiera flashear el bootloader en desnudo ATmega328s. De nuevo, sin embargo, el IDE y la herramienta de la cadena ya estaba instalación y nunca tuve una comprensión de cómo pasé de C/Arduino código que se ejecuta en el MCU.

Lo que Quiero Saber

Así que a partir de la anteriormente vinculados respuesta, creo que lo más interesante/acciones beneficiosas para mí sería la bala sobre el aprendizaje de las herramientas (compilador y el enlazador), y el aprendizaje de los diferentes estilos de arquitectura de software (que va de interrupción basada en lazos de control para programadores y RTOSes). Esa es mi opinión sobre lo que sería más útil... pero ya no sé todavía es difícil decir si es correcto o no, así que siéntase libre de sugerir otros puntos de bala a partir de esa respuesta, si usted piensa que sería mejor y por favor, proporcione una explicación de por qué pensar que.


Así que toma mi conocimiento actual como un punto de partida y por encima de la descripción de lo que yo quisiera saber como meta, estoy buscando muy específicos sugerencias sobre dónde ir a continuación. Estoy buscando exacta sugerencias de proyectos, sitios web o entradas de blog para leer, capítulos de libros, etc.

También, hay otros agujeros en mi base de conocimientos que usted cree que debe llenar antes de pasar a los temas antes mencionados?

Gracias

9voto

letronje Puntos 128

Así que a partir de la anteriormente vinculados respuesta, Creo que la mayoría de los interesante/beneficio cosas para mí sería la bala sobre el aprendizaje de los herramientas (compilador y el enlazador), y el aprendizaje de los diferentes estilos de software arquitectura (que va de interrupción basada en lazos de control para programadores y RTOSes)

Portar un pequeño sistema operativo a un nuevo dispositivo que podría ayudar a entender los programadores y RTOSs. FreeRTOS es popular y bien documentado. eCos es otra.

La escritura es un gestor de arranque es una buena manera de conseguir a los apretones con un enlazador como usted desea dividir la memoria flash y en regiones.

Otro consejo es elegir una arquitectura completamente nueva o chip y construir usted mismo una placa de desarrollo. Te obligas a empezar desde el principio y mira todo lo que en la hoja de datos es una buena manera de aprender.

Explorar Protothreads. Trate de escribir los mismos programas, tanto en un hilo y máquina de estado estilo. Una vez que haya terminado con Protothreads, escribir un verdadero programador del subproceso.

6voto

RelaXNow Puntos 1164

Esa es una gran pregunta. Desafortunadamente, no hay una forma de aprender microcontrolador incrustado el desarrollo, así como con el aprendizaje de la mayoría de todo lo demás. Voy a suponer que ya que estamos aquí pidiendo, usted no sólo quiere obtener un determinado proyecto, pero quiere entender realmente lo que está pasando así que usted puede conseguir cualquier proyecto hecho a sí mismo más adelante. Ese es un buen comienzo.

No hay ningún sustituto para hacer un par de proyectos en ensamblador para realmente entender las cosas. Parte del trabajo de los lenguajes de alto nivel es ocultar parte de la complejidad, pero que también oculta de las cosas que usted quiere entender. Arduino es otra capa de eso. Puede estar bien para alguien que no quiere saber cómo funcionan las cosas para hacer algo, pero es muy malo si el objetivo es aprender los detalles. Así que zanja el arduino, olvide que usted tiene un compilador, un rollo de su sleaves y prepárate para realmente disfrutarlo.

El primer lugar para comenzar con cualquier microcontrolador es con su hoja de datos. Los diversos micrcontroller líneas tienen diferentes detalles, pero los conceptos son los mismos. Elija uno y palo con ella hasta que hayas hecho un par de proyectos y sentirse cómodo con él. La TI MSP430, Atmel y Microchip Fotos son todos los principales del microcontrolador líneas. Soy un PIC chico así que voy a hablar de eso. No está mal para ir con uno de los otros, pero creo que hay más accesible el apoyo de la comunidad para Fotos por ahí, y el PIC de la línea es muy amplio, por lo que será más fácil para ir a grandes y pequeños micros desde donde se inicia.

Si usted comienza con el PIC línea, recomiendo el 18F2520. Es bastante capaz microcontrolador, viene en un fácil-a-tornillo-alrededor-con 28 pines paquete, tiene una cantidad decente de memoria de programa y la memoria RAM, y un conjunto digno de periféricos comunes. Conseguir un puñado pequeño y se usa para iniciar con incluso para proyectos pequeños que se podría haber hecho con algo menos. El punto es llegar a conocer bien. Finalmente, usted querrá hacer algo que requiere más que el PIC puede hacer. Esperemos que el tiempo va a ser bastante bueno en las cosas básicas y fácilmente se puede sustituir por un modelo diferente. En realidad, todos los 18F Fotos son los mismos, excepto por la cantidad de pines, la memoria de programa, memoria RAM, y el periférico de la mezcla. Después de un par de proyectos con el 18F2520, usted no tendrá ningún problema en saltar a la derecha en cualquier PIC de 18 años.

Si usted termina haciendo esto profesionalmente, eventualmente vas a ejecución a través de una de los requisitos que dictan algo más pequeño o más barato. Eso es cuando usted mira el 16F o posiblemente incluso 12F o 10F familias. Se verán las cosas en gran parte familiar, pero un par de cosas será un poco más difícil. Esto no debería ser un problema para manejar si usted está comenzando con una sólida comprensión de un 18F. Hoy en día, el 16F y bajar las familias son realmente sólo para el volumen de producción o quizás al espacio físico y a veces de alimentación son muy importantes. Hay una pequeña ventaja en comparación con un 18F para un aficionado.

Ir para arriba, usted puede mirar en el 24, 30 y 33 familias. Estos son, básicamente, todo el mismo, excepto por algunas pequeñas arrugas como lo de voltaje que ejecutar en la parte superior de la velocidad, y si tienen el DSP matemáticas ALU o no. Son más complicados de programar en ensamblador, pero también extrañamente más fácil. Hay más instrucciones a tener en cuenta, pero su por lo tanto, también es más fácil para hacer un montón de cosas. Este es también un buen punto de partida para empezar de nuevo a C si es allí donde quieres ir. El compilador de C para estas piezas es bastante bueno, a diferencia de los compiladores de C para PIC 18 y abajo. También es más fácil para la mezcla de C y la asamblea en el mismo proyecto en estas piezas. No te olvides de ensamblador en total para estos, aunque. Todavía te será útil para saber cuando tienes que escribir un gestor de arranque, de acuerdo con la multitarea que realiza actos contra natura en la pila, escribir realmente apretado código para leer un montón de Un/Ds y calcular el ciclo de trabajo del PWM para el siguiente pulso de su 100KHz PFC fuente de alimentación, etc.

Una cosa buena acerca de la Microchip línea es que un solo programador/depurador funciona a través de la totalidad del lote. Si usted es serio acerca de hacer esto profesionalmente, obtener el Hielo Real. Para ahorrar un poco de dinero, usted puede conseguir el ICD3, que es sólo un poco pelado abajo de Hielo Real. Lo único que no es un HIELO (tonto de marketing ataca de nuevo), pero es un buen circuito depurador. MPLAB, su IDE depurador y el simulador, también funciona a través de toda la línea de productos.

De nuevo, para profesionales o aquellos que quieran convertirse en profesionales en esto, vaya a la anual Microchip conferencia magistral. Sí, es en Arizona en el verano, pero están ahí para aprender, así que olvídate de los 115 degF en la sombra. (En realidad me gusta explorar Arizona en el verano, así que me voy una semana de antelación con mi pequeña tienda de rugosidad y alrededor de las zonas de interior. Es increíble cómo algunas personas están en la gran bosques nacionales sólo una corta distancia de Phoenix.) Los maestros también es un buen lugar para recoger las herramientas de desarrollo. Generalmente los venden por algo así como 45% de descuento a Maestros. (Estoy un nivel de platino Microchip socio de diseño, por lo tanto, obtener de ellos el 45% de descuento todo el tiempo, que es por eso que no estoy exactamente en el Masters de descuento).

Si usted empieza a explorar los microcontroladores haciendo PIC proyectos, echa un vistazo a mi sitio web donde puedo entrar en más detalles de cómo generalmente de estructura PIC proyectos y le dan un montón de herramientas gratuitas para hacer algunas cosas de lujo. Si usted entiende buen diseño de software y la limpieza, usted conseguirá a aggrevated en el MPASM. Hacer un proyecto o dos para entender lo que funciona y lo que no, y luego miro a mi contenedores y otras herramientas que te permiten hacer mucho más, pero se mantiene fiel a las buenas prácticas de diseño de software. Ensamblador no tiene que ser un lío sólo porque la mayoría de lo que es. Si usted está realmente en él, puede que deje por la clase que le estoy enseñando a los Maestros de este verano sobre este tema.

5voto

kender Puntos 18446

Directamente a la dirección de su pregunta de "¿Qué Quiero Saber":

He encontrado que llamar al compilador directamente a través de la línea de comandos, para familiarizarse con sus opciones y, a continuación, escribir su propio Makefiles para hacer todas sus compilaciones ha sido muy beneficioso para mí en el aprendizaje el proceso de generación - que suena como algo que usted quiere aprender. Básicamente, esto separa la herramienta de la cadena, desde el IDE y permite conocer la herramienta de la cadena de más de la IDE. Esto es una cosa que estoy tratando de mejorar.

Me di cuenta de que has usado arduino en el pasado, lo cual es genial porque ahora puedo recomendar el uso de avr-gcc como compilador a partir de ahora. Darle una oportunidad, disponible en todas las plataformas (Linux, WinAVR para windows, Mac) y la documentación en el avr-gcc herramienta de la cadena y avrdude (programador) es grande, y debe haber un montón de ejemplo Makefiles fuera allí para que usted pueda aprender. Una buena cantidad de esta información es transferible a otro hardware, por ejemplo el brazo-gcc.

3voto

user4245 Puntos 324

Una cosa que no mencionaste es comunicaciones.

Parece que sería un agujero que podría conectar a aprender los diversos protocolos de comunicación estándar utilizados en la industria - cosas como:

etc.

2voto

Rodney Amato Puntos 908

Lo bueno de una comprensión que tienes de registros, operación y tales, en 8 bits con el micro? Podría ser una buena idea para hacer un poco de montaje. Esto tiene el beneficio de la enseñanza exactamente lo que está pasando. Esto puede ayudar a resolver fallas extrañas con más idiomas.

AVRs han agradable simple ensamblador y de los registros. Es una buena plataforma para obtener su alimento húmedo. También hay algunos buenos tutoriales para que la plataforma fuera de allí.

Esto le dará a usted la parte inferior de la línea de lo que el micro está haciendo. A continuación, el siguiente paso de cómo el compilador y el enlazador tomar C/Arduino a código de máquina será más fácil de entender.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X