¿Dónde puedo averiguar qué idioma usaría una MCU?

0

He buscado en la hoja de datos, ATSAM4LC2BA-AU, pero no encontré nada con respecto al idioma que usa, esperaba codificar C en él, ¿también algo sobre la necesidad de un cargador de arranque?

    
pregunta OzzieSpin

4 respuestas

3

El chip que mencionas usa un procesador ARM Cortex M4, por lo que se puede usar cualquier compilador que apunte a ese núcleo. Por ejemplo, GCC tiene frontends para C y muchos otros idiomas, y un back-end que admite M4. El 'front end' del compilador come código de lenguaje de alto nivel, y el 'back end' expulsa el código objeto que está vinculado para crear un programa en binario que se puede programar en la memoria flash del microcontrolador. Ese particular tiene hasta 512k bytes de flash. Hay otros compiladores como Keil que vienen con mucho soporte (y una etiqueta de precio proporcional si necesita más que una cantidad limitada de capacidad).

Un gestor de arranque es un programa usado para cargar otros programas. Las MCU normalmente tienen al menos una forma de cargar código de objeto que no usa un cargador de arranque, ya que el propio cargador de arranque tiene que cargarse de alguna manera para empezar. Algunos pueden tener un gestor de arranque en la ROM.

Esta serie en particular, como muchos micros de gama alta, tiene un puerto JTAG . Normalmente utilizarías un adaptador de interfaz JTAG conectado entre su computadora y el sistema tanto para escribir en la memoria flash como para la depuración. Por lo general, es una buena idea dedicar esos pines particulares al puerto JTAG y no intentar compartirlos con ninguna otra función.

Las placas de evaluación pueden tener otra MCU en la placa que realiza una función similar.

    
respondido por el Spehro Pefhany
5

Los microcontroladores no "usan" un idioma. Ejecutan instrucciones de la máquina que se almacenan en binario en la memoria de su programa.

Si desea codificar en C, entonces usted tiene que usar un programa que convierte la C que escribe en las instrucciones de la máquina que ejecutará el micro. Esto se llama un compilador . Probablemente también necesites un enlazador para ir con eso, aunque los compiladores y enlazadores generalmente vienen agrupados.

Sin embargo , necesita aprender cómo las máquinas de computación realmente funcionan primero. En una máquina grande con un sistema operativo, es útil comprender lo que hacen un compilador, bibliotecario y enlazador, y lo que la máquina en sí hace en última instancia. En una máquina pequeña como un microcontrolador, es esencial. Sin esta comprensión, no vas a lograr nada con un micro.

    
respondido por el Olin Lathrop
3

En general, un procesador dado no "usa" ningún lenguaje de alto nivel en particular. En su lugar, tendrá un conjunto de instrucciones particular que se modela más simplemente en lenguaje ensamblador. Los idiomas de nivel superior, como C, requieren un compilador que se adapte al chip objetivo específico.

Y, en general, los programas de MCU se almacenan en la ROM en lugar de hacerlo externamente en la cinta o algo más, por lo que no se requiere un cargador de arranque.

    
respondido por el WhatRoughBeast
0

Para agregar a la respuesta de Olin. Normalmente no usas o al menos necesitas un gestor de arranque para un mcu como este. La lógica mcu por lo general proporciona formas de reprogramar el flash para que no necesite un cargador de arranque que permita al desarrollador interrumpir el arranque normal y reprogramar el flash. Algunos mcus, quizás este además de las soluciones basadas en lógica, también pueden incluir un cargador de arranque instalado de fábrica que permite utilizar otras interfaces (uart o usb o spi, etc.) para reprogramar el flash.

Si no ha dominado el conjunto de herramientas (compilador, ensamblador, enlazador) o al menos ha encontrado un sandbox que lo ha hecho por usted, entonces no está listo para cargar archivos binarios en el flash de todos modos, cargador de arranque o jtag o otro.

    
respondido por el old_timer

Lea otras preguntas en las etiquetas