Consejos para un programador incorporado anterior anterior y renovado

5

Fondo -

Programé mi primer SBC en un kit de evaluación MEK6800D2 (que tuve que construir) a finales de los 70 y en otros tableros de la época como el Rockwell 6502 Kim-1, 8085, etc. Ahora soy un 61 un Big Box MS C # vs2010 programador, pero mi interés real siempre ha estado incrustado, pero han sido tantos años. Ahora que estoy cerca de la jubilación, me gustaría pasar a la programación recreativa a mis raíces integradas. C, objetivo C, ASM, otros? (OK trazo la línea en adelante).

Consulta -

Así que ahora estoy viendo los últimos conjuntos de chips incorporados y oh wow, solo entiendo casi la mitad. ¿Hay algún recurso que puedas recomendar para alguien como yo? Libros, sitios, etc.?

BTW - He encontrado que este sitio de estilo de intercambio de pila en particular es muy útil. muchas gracias

    
pregunta ddm

6 respuestas

2

Es posible que desee comenzar con un arduino para tener una idea de lo que son capaces de hacer los chips AVR, luego tal vez abandonar la interfaz personalizada y trabajar con herramientas más genéricas.

Para sistemas un poco más grandes, los núcleos ARM de varios proveedores son bastante populares y apenas más caros.

Además, aunque no lo encuentro de interés personal, y generalmente me siento incómodo con la idea de marketing de la transición de los programadores de escritorio a los sistemas integrados sin un cambio importante en los hábitos de pensamiento, hay algunos tableros ARM pequeños que ejecutan una versión de .NET eso podría aprovechar algo de lo que has estado haciendo últimamente: los ejemplos serían netduino y fez panda.

    
respondido por el Chris Stratton
6

He estado haciendo el diseño de sistemas embebidos durante los últimos 35 años (solo soy un par de años mayor que usted), y actualmente tengo proyectos en uso con 8 bits (Silicon Labs 8051 y Freescale 68HCS08), 16 Procesadores de bits (Microchip 24FJ y dsPIC33FJ) y de 32 bits (TI TMS320DM365).

Los chips de 8 bits probablemente serán lo que inicialmente se sentirá más cómodo, y aún son divertidos de programar en conjunto además de C. El 68HCS08 es una actualización de la línea Motorola 68HC05, y en particular como su conjunto de instrucciones (no es tan bonito como el antiguo 6809, que fue un procesador maravilloso para escribir el código de ensamblaje).

En comparación con los viejos tiempos en que los tableros de desarrollo y los ICE asociados cuestan cientos o incluso miles de dólares, ahora puede obtener tableros de evaluación bastante decentes para under $ 100 , y compiladores gratuitos.

Sólo por diversión, recientemente compré una placa de desarrollo para el chip Parallax Propeller , que tiene 8 núcleos (Parallax los llama "gogs") que se ejecutan en paralelo. All I / O se realiza en software, lo que significa que con muy poco hardware externo, el chip admite cosas como ratones y teclados PS / 2 y salida VGA. Hay un placa de demostración disponible por $ 80. (Tengo su hermano mayor , que actualmente está a la venta por $ 150.)

    
respondido por el tcrosley
4

¿Qué te parece divertido? ¿Cuál es tu presupuesto?

Hay muchos controladores de 8/16 bits que probablemente se sentirían muy nostálgicos por un momento. (ya que en realidad son básicamente lo mismo que con los que jugabas). Se sorprendería de la cantidad de sistemas embebidos profesionales que aún usan los 8051.

Un Arduino te daría un montón de opciones de complementos interesantes, pero para mí realmente parece estar más orientado a los aficionados que tienen que programar para realizar una tarea ... no a las personas que les gusta deprimirse con C y ASM. Si quieres muchas opciones de control incrustado, esto es bueno. Asegúrese de revisar SparkFun.

La hélice se ve divertida ... aunque nunca parece encajar en nada de lo que estoy haciendo. Reinicié mi interés en electrónica tal vez hace diez años con el Basic Stamp II de Parallax (MUY se movió rápidamente a sus cosas SX (sistema tipo PIC, ahora Ubicom))

Los procesadores ARM varían ampliamente. En el extremo inferior, son potentes, pero las herramientas suelen costar demasiado. En el extremo medio y alto, pueden ejecutar un sistema Linux completo y hacer cosas increíbles. (Casi todos los teléfonos los usan ahora) Me estoy mudando a la gama ARM de extremo medio (la versión más baja es capaz de Linux). Mi definición de medio se ajusta a los chips que son lo suficientemente simples para diseñar una PCB de 4 a 6 capas. Los grandes pueden requerir 8+ capas.

Si tuviera que adivinar, diría que después de unos meses para recuperar sus piernas marinas, los FPGA podrían ser realmente interesantes. Puede obtener bonitos tableros de demostración de FPGA por $ 100- $ 200. Las herramientas del proveedor son gratuitas (recomendaría a Altera seguido de cerca por Xilinx). Puede divertirse mucho diseñando su propia lógica, incluidos los microprocesadores pequeños. Hay MUCHOS procesadores 'blandos' para FPGA y cadenas de herramientas completas para desarrollarlos y depurarlos. Supongo que se adapta mejor a la sensación de finales de los 70 y principios de los 80 (no que yo sepa), ya que puedes diseñar mucho de un sistema desde cero. Luego, puede encontrar casi cualquier sensor o dispositivo que desee, y escribir lógica de pegamento personalizada para hablar con él (sin importar la extraña interfaz que estén usando). También hay OpenCores, donde puede agarrar los módulos funcionales que la gente ha escrito si No quieres escribirlo tú mismo o no sabes cómo. Si estás interesado, comenta y buscaré una tabla de inicio decente para ti.

Desafortunadamente, no puedes ir DEMASIADO con los FPGA (a menos que realmente te guste jugar solo con lógica y no interactuar con las cosas) sin diseñar también los PCB. Creo que es mucho más fácil de lo que parece ... las hojas de datos en estos días casi te dicen cómo hacerlo todo. Sin embargo, es mucho más que gestionar.

    
respondido por el darron
2

Los micros flash de 8/16 bits (PIC / AVR, etc.) son probablemente el camino a seguir. Puede programar estos en C o ensamblador, usted tiene el control de toda la máquina y básicamente obtiene un sistema completo en un chip. Sin mencionar que son baratos. La mayor diferencia entre la programación de estos y, digamos, un 6502 es que tienen códigos y espacios de datos separados.

Hay muchas placas simples que usan procesadores más sofisticados, que son mucho más potentes, pero realmente no puedes aprovechar al máximo estos sin sistemas operativos completos. La programación en este tipo de plataformas es un poco diferente de los golpes de bits en un 6800. Esto puede ser una bendición o una maldición, según tu punto de vista. Por un lado, no puedes solo golpear un puerto, tienes que trabajar a través de un controlador de dispositivo (o escribir el controlador de dispositivo) pero por otro lado, obtienes cosas buenas como la multitarea.

    
respondido por el JustJeff
2

1) Obtenga un buen libro de referencia para la programación en C. Realmente me ha gustado este libro:

Permítanos C - Y. Kanetkar

2)Obtengaunbuenlibrodereferenciaquerepasealgunosdelosconceptosbásicosdelossistemasintegrados.

Un Primer de Softfware incrustado - David.E.Simon

3)Obtengaunbuenkitdedesarrollo,comoeltableroBeaglequetieneunacomunidadenlíneamuyactivaydeapoyoparaayudarloconsuspreguntas,etc.Susitiowebtienemuchasideasparaproyectosconlosquepuedeensuciarselasmanos.

sitio web de Beagleboard

4)NopuedeirmásalládelsitiowebdeGanssleparaobtenerinformaciónexcelenterelacionadaconlaprogramaciónintegrada.Tieneexcelentesartículossobrelascomplejidadesdelossistemasembebidos.

The Ganssle Group

5) Puede consultar una pregunta relacionada que se haya publicado:

Material de programación de C embebido

6) En la mayoría de los casos, no te olvides de divertirte con eso. Lee, lee y lee, y ensucia tus manos! Te enfrentarás a algunos problemas difíciles, que te desconcertarán por algunos días, pero esa es la mejor parte. ¡Solo sigue así, y llegarás allí!

    
respondido por el IntelliChick
2

Entiendo totalmente tu deseo de conectar algo y tener un kit de herramientas que simplemente funciona . Como Chris ya mencionó, puedes ir con Netduino, que puede que te resulte más familiar, ya que usa .NET 4.0 Micro Framework. Yo personalmente no lo he usado porque no puedo conseguirlo en ninguna parte! Totalmente agotado.

Sin embargo, recibí un microcontrolador mbed para usar, y en mi opinión, es mucho más fácil de usar que Arduino y su entorno. El compilador es bastante bueno, el editor está en línea (lo que podría ser lo único malo si no tienes la cadena de herramientas local instalada, de lo que no sé nada). Pero literalmente lo enchufas, inicias la página web que está almacenada en su memoria flash, la registras, y puedes saltar al compilador y comenzar a manipular bits. Al menos estaba parpadeando y PWMing sus LEDs en aproximadamente 5 minutos desde el momento en que abrí la caja.

    
respondido por el Dave

Lea otras preguntas en las etiquetas