Desarrollar en ARM - Todo lo que necesitas saber

Desarrollar en ARM

No hay duda acerca de la popularidad de la gama de diseños de microprocesadores de ARM. Desde pequeños microcontroladores a sus procesadores multi-core de 64 bits, ARM es responsable del diseño y la propiedad intelectual en todo, desde electrodomésticos a granjas de servidores. El uso de procesadores basados ​​en ARM en los teléfonos inteligentes y las tabletas significa que los usuarios tanto en Android y iOS dependen de estos chips de todos los días.

La ubicuidad de la arquitectura ARM significa que hay una gran demanda de ARM desarrolladores experimentados. Se necesitan estos desarrolladores para crear la próxima generación de software que se ejecutará en procesadores ARM. Así que, si quieres escribir software que se ejecutará en procesadores ARM, ¿qué es lo que usted necesita saber?

ARM ha asegurado que todas las herramientas necesarias para el desarrollo de procesadores ARM están disponibles, bajo las dos licencias comerciales y de código abierto.

La primera cosa que usted necesita saber, antes de entrar en los detalles, es que no es difícil. ARM ha asegurado que todas las herramientas necesarias para el desarrollo de procesadores ARM están disponibles, bajo las dos licencias comerciales y de código abierto. La siguiente pregunta es, ¿qué tipo de dispositivo es lo que quieres desarrollar en? Gama de procesadores de ARM comienza con sus microcontroladores Cortex-M. Estos pequeños procesadores funcionar a bajas velocidades de reloj (de alrededor de 16Mhz a 120Mhz en todo) y tienen una pequeña cantidad de memoria RAM del sistema (entre 4K y 256 K). En el otro extremo de la escala están los procesadores de 64 bits de múltiples núcleos que funcionan a la velocidad GHz y tienen acceso a gigabytes de memoria. Entre usted tiene computadoras de placa única, Chromebooks y smartphones.

brazo-arco-evolución

La manera más fácil de describir los diferentes entornos de desarrollo es mirar a ellos uno a la vez. Sin embargo, es importante mantener una cosa en mente, todas estas diferentes categorías están esencialmente usando la misma arquitectura de procesador. Si se hace bien, y con algunas salvedades, es posible tomar un binario construido para un procesador Cortex-M y vincularlo a un programa diseñado para un procesador Cortex-A57 de 64 bits!

Cortex-M

Gama de diseños Cortex-M de ARM son cada vez más importantes como los nuevos vestibles y de Internet-de-Cosas (IoT) los mercados empiezan a explotar. Dado que este tipo de dispositivos son de bajo costo y diseñado para ser omnipresente, el número potencial de chips que serán entregados en los próximos años podría ser diez veces mayor que el número de chips ARM que es el envío de teléfonos inteligentes y tabletas. Este es un mercado potencialmente lucrativo a la espera de ser explorado.

Microcontroladores son muy bare-metal. Cuando se escribe un programa para el que usted tiene que hacer todo el trabajo pesado a ti mismo, no hay necesariamente un sistema operativo de lujo como Linux para proporcionar la gestión de memoria, sistemas de archivos, cerraduras, colas y así sucesivamente. Este estilo de programación se conoce como programación "incrustado". Esto no significa que los desarrolladores se dejan a reinventar la rueda cada vez que escriben un programa, pero la mentalidad tiene que ser diferente. Desarrolladores de sistemas integrados pueden utilizar opcionalmente lo que se conoce como Real-Time Sistema Operativo (RTOS). Un RTOS es pequeño, rápido, determinista y proporciona un valioso conjunto de funciones del sistema operativo base. Y como se puede imaginar que hay un montón de RTOS disponibles para procesadores ARM.

Freescale-Kinetis

Si quieres empezar con la programación integrado con rango ARM Cortex-M entonces probablemente el mejor lugar para empezar es en mbed.org. El proyecto mbed es desarrollado por ARM y que ofrece todas las bibliotecas de software libre, diseños de hardware y herramientas en línea necesarios para crear prototipos rápidos basados ​​en microcontroladores ARM.

Tableros compatibles mbed comienzan en sólo $ 12.95 cada uno.

Tableros compatibles mbed comienzan en sólo $ 12.95 cada uno. Eso le conseguirá una tabla FROM-KL25Z con un procesador Cortex-M0 48MHz, 16K de RAM y 128 K de memoria flash para almacenar el software. También incluye un acelerómetro de 3 ejes, algunos LED y un sensor táctil capacitiva. El proyecto mbed proporciona un compilador de C en línea y acceso a RTOS de ARM llamada RTX. Eso significa que por menos de $ 15 y con acceso a un navegador web se puede empezar a programar un tablero de Cortex-M0.

En el sitio web hay un montón de ejemplos, junto con la documentación completa. También hay un montón de información acerca de cómo conectar sensores y componentes de comunicación a las diferentes tablas.

Mbed.org no es la única solución a la programación para los procesadores Cortex-M. Muchos de los fabricantes de mesa proporcionan sus propias herramientas. Por ejemplo, TI tiene una gama de tablas (llamado Launchpad) y también proporciona sus propias herramientas para el desarrollo de esas tablas. Otros ejemplos incluyen la Arduino Due, que utiliza una en procesadores Cortex-M3 y el Arduino Zero, que utiliza un procesador Cortex-M0 +.

También hay soluciones comerciales de ARM (Keil y ARM Development Studio) y otras empresas como IAR, Atollic, Rowley Associates y Keolabs. Estas herramientas admiten varios tableros de múltiples fabricantes. También hay soluciones de código abierto específicamente el compilador de cadena y herramientas como emIDE, CoIDE y EM :: Blocks herramienta GNU.

Raspberry Pi

Otro punto de entrada de bajo costo en el mundo de la ARM es la Raspberry Pi. En su corazón es el sistema de Broadcom BCM2835 en un chip (SoC), que incluye un ARM1176JZF-S funcionando a 700 MHz. El más barato Pi es de sólo $ 25 y viene con 256 MB de RAM, pero no tiene un puerto Ethernet. La versión de $ 35 tiene Ethernet y un 256 MB adicional de memoria.

frambuesa-pi-aa

La junta se ejecuta una versión especialmente construida de Debian Linux llamada Raspbian. Dado que el dispositivo tiene Linux significa que muchas de las herramientas comunes de desarrollo de Linux están inmediatamente disponibles, incluyendo el compilador de GNU (para C y C ++) y Java. También hay lenguajes de scripting como Python, Perl y Lua disponibles, además de Golang de Google también ha sido portado a ARM y funciona de manera excelente en la Raspberry Pi.

La Universidad de Cambridge tiene un tutorial en línea gratuito que muestra cómo escribir un sistema operativo muy básica sobre la Raspberry Pi en lenguaje ensamblador!

Casi cualquier programa que escribe para el Pi en un alto nivel compilado idioma, o utilizando un lenguaje interpretado, funcionará sin cambios en un PC con Linux, también hay un grado de compatibilidad con Windows y Mac OS X, en especial si se escribe el código de una manera portátil.

Para sacar el máximo provecho del Pi necesitará un televisor o monitor con un puerto HDMI y es necesario agregar un ratón y el teclado. Usted también necesita una tarjeta SD para arrancar Raspbian y para el almacenamiento local. Así que el costo real es probablemente alrededor de $ 50 a $ 60 (con exclusión de la TV), sin embargo, que todavía es una forma muy barata de conseguir en el desarrollo para ARM.

Si quieres ir más allá de simplemente escribir programas en un entorno Linux entonces la Universidad de Cambridge tiene un tutorial en línea gratuito que muestra cómo escribir un sistema operativo muy básica sobre la Raspberry Pi en lenguaje ensamblador!

También vale la pena mencionar el BEAGLEBONE Negro que utiliza un procesador Cortex-A8. El Cortex-Una serie de ARM utiliza la arquitectura ARMv7, en lugar de la arquitectura ARMv6 utilizado por el chip Broadcom en el Frambuesa Pi. Los precios para el BEAGLEBONE Negro comienzan alrededor de $ 55.

Si el Cortex-A8 no proporciona el rendimiento que necesita, entonces hay una gama de placa única Computadoras de Hardkernel. El ODROID-U3 utiliza un procesador basado 1.7GHz quad-core Cortex-A9 de Samsung, y viene con 2 GB de RAM. Cuesta solo $ 65. Para obtener un rendimiento de gama alta está la ODROID-XU3. Utiliza un procesador Samsung Exynos 5422. El 5422 utiliza la tecnología Big.little de ARM y contiene cuatro núcleos Cortex-A15 y cuatro núcleos Cortex-A7.

Androide

Si usted ya tiene un teléfono inteligente o tableta Android, entonces usted puede escribir software para ello. La manera oficial a escribir software Android es con Java utilizando la Android SDK. Si no está familiarizado con la programación o con Java entonces esto podría no ser la mejor manera de comenzar a aprender. Pero si usted está decidido a aprender a continuación, Google ofrece una gran cantidad de Tutoriales de programación Android.

Nexus 4 para obtener Android Lollipop

Sin embargo el uso de Java no es la única manera de desarrollar para Android. Una alternativa posible es el SDK de Corona. Utiliza el lenguaje de programación Lua y compiladores de Corona producir el .apk Android definitiva sin necesidad de que conozco a ningún Java o cualquier API específicas Android. Otras alternativas incluyen Xamarin (que utiliza C #), mermelada (que utiliza C ++, Objective-C, Lua, o HTML5), y la Unidad. Si conoces HTML, CSS y javascript, entonces debería echar un vistazo a PhoneGap. PhoneGap es un SDK gratuito y de código abierto que permite crear aplicaciones de Android utilizando APIs web estandarizados. PhoneGap no es la única solución HTML5, los demás vale la pena explorar incluyen jQuery móvil y Sencha Touch. La lista dada anteriormente no está completo, pero te da una idea de lo que es posible.

Servidores de 64 bits

En el otro extremo de la escala es la nueva generación de procesadores basados ​​en Cortex-A50 de 64 bits. Varios diferentes fabricantes de chips están produciendo procesadores compatibles ARMv8, muchos para el mercado de los servidores. Probablemente, el fabricante de chips ARM servidor más conocido es AMD. La compañía planea utilizar la eficiencia de alta energía del diseño de ARM en la sala de servidores para reducir los costos generales de energía necesarios para ejecutar las granjas de servidores masivos. Dado que los chips ARM no necesitan grandes disipadores de calor y luego los fabricantes de servidores pueden obtener múltiples servidores en una sola hoja, y múltiples cuchillas en una unidad. En general, eso significa más procesadores por pie cuadrado.

La colección de compiladores de GNU ya soporta la arquitectura ARMv8 y programas escritos en una plataforma ARM Linux de 32 bits debe ejecutarse en procesadores de 64 bits sin modificaciones.

Dado que estos sistemas es probable que ejecute Linux luego desarrollar para 64 bits ARM es igual que el desarrollo de cualquier otro sistema operativo de 64 bits, incluyendo Linux de 64 bits de Intel. La colección de compiladores de GNU ya soporta la arquitectura ARMv8 y programas escritos en una plataforma ARM Linux de 32 bits debe ejecutarse en procesadores ARM de 64 bits sin modificaciones. Suponiendo que el código no depender de ningún engaño de 32 bits (como operaciones de bits que asumen una palabra de 32 bits), a continuación, pasar a 64-bits será fácil. El kernel de Linux ya está totalmente 64 bits conscientes, como lo son las diferentes herramientas y servicios del sistema.

Conclusión

Sea cual sea su área de interés de wearables a granjas de servidores, desde computadoras de placa única para los teléfonos inteligentes, hay una amplia oportunidad para escribir software que se ejecuta en dispositivos que utilizan procesadores basados ​​en ARM. Las herramientas están disponibles, el hardware es abundante, lo que te está deteniendo?


» » » Desarrollar en ARM - Todo lo que necesitas saber