procesadores procesador para moviles mejores entre diferencias diferencia cortex arquitectura a76 assembly arm simulator

assembly - moviles - ¿Qué necesito para el desarrollo de un procesador ARM?



procesadores arm para moviles (4)

Estoy familiarizado con la arquitectura y el ensamblaje X86 [-64]. Quiero comenzar a desarrollar para un procesador ARM. Pero a diferencia de los procesadores de escritorio, no tengo un procesador ARM real. Creo que necesito un simulador de ARM.

http://www.armtutorial.com/ say

Se requerirá un compilador ensamblador ARM, el más accesible es el ARMulator.

Pensé en descargar Armulator pero encontré en http://forums.arm.com/index.php?showtopic=13744 que

No se vende por separado. Pero puedes descargar una evaluación de RVDS, que incluye RVISS / ARMulator

He descargado e instalado RVDS pero parece muy complejo. No puedo averiguar qué debo hacer para escribir el ensamblado de ARM y ejecutarlo .

¿Tienes alguna mejor sugerencia?


Opciones para entornos

  • Instale Linux en el emulador del sistema QEMU . Puede emular una variedad de conjuntos de chips basados ​​en ARM.
  • Obtenga un emulador para un conjunto de chips ARM específico, como la computadora de mano de un juego. Gameboy Advance es divertido de jugar. NoCash GBA y VisualBoy Advance son dos grandes emuladores de GBA.

Herramientas

Necesitarás una cadena de herramientas. Una cadena de herramientas es una colección de herramientas de bajo nivel como un ensamblador, un enlazador, un compilador, un archivador y un montón de otras cosas útiles. Aún más, desea una cadena de herramientas cruzadas, lo que significa que la cadena de herramientas se ejecuta en un sistema, pero crea ejecutables para otra arquitectura. De esta manera, puede crear aplicaciones que se ejecutan en dispositivos ARM, pero en su PC basada en x86. Es más rápido y más conveniente.

Si ejecuta Windows, DevkitPro es una opción bastante buena. Para las variantes de Unix / Linux / BSD, tiene los toolchains gratuitos de CodeSourcery y la cadena de herramientas de GCC de gnuarm.com . Hay varios otros, pero no necesitas más opciones.

Documentación

Obtenga la especificación de su CPU ARM de elección en infocenter.arm.com . Una referencia que necesita sin importar la CPU es el Manual de Referencia de ARM Architecture (a menudo abreviado ARMARM). Estoy alojando una versión anterior, que abarca la arquitectura ARM y la versión del conjunto de instrucciones hasta ARMv4T, here , pero también encontrará las versiones actual y posterior en infocenter.arm.com . Si elige GBA, observe que la CPU es ARM7TDMI, con el conjunto de instrucciones versión ARMv4T.

El ARMARM contiene consejos y ejemplos para la codificación habitual del sistema esencial, consejos sobre cómo proceder en ciertos problemas de diseño, así como una referencia tanto del conjunto de instrucciones ARM, conjunto de instrucciones Thumb y coprocesadores como MMU, MPU, DSP y FPUs.

Si te apegas a QEMU, eso es todo lo que necesitas, ya que el kernel de Linux maneja todo. QEMU también tiene emulación de modo de usuario (con un código auxiliar de biblioteca C). Si busca uno de los emuladores de GBA, aquí hay una buena referencia sobre los registros de hardware y hardware de GBA: CowBiteSpec . También asegúrese de visitar http://www.gbadev.org/ .

Nintendo DS también es una opción, pero aún no conozco ningún emulador decente para esa computadora de mano. Buena suerte para ti :-)

EDITAR: Aquí hay un ejemplo trivial de algún código GBA que escribí hace años: GBA Color fill 240x160 Ejemplo de 16 bits


Algunos comentarios, no compiten por una respuesta completa a la pregunta de los carteles.

El beagleboard es genial, $ 150 pero lleva otros $ 150 en usb para que sea útil. El beagleboard embest es más barato en general debido a la falta de cosas que tienes que comprar para ir con él. Pero ahora está el hawkboard, también una placa basada en omap, cuesta menos de $ 100 y hasta ahora parece muy bien hecho. Me gusta más que el beagleboard en este momento, mucho menos doloroso.

El tablero de Open-RD ofrece mucho más que el beagleboard para ese rango de precio, algo a considerar si tienes un presupuesto de juguetes. tanto la placa abierta como la incluida por otros $ 100 tienen un conector sata completo para que pueda poner una unidad portátil en ella y no tener que usar dispositivos flash lenta o usb.

El póster no tiene los recursos para comprar estos juguetes. Yo diría que si continúas persiguiendo esto y te vuelves bueno en ARM integrado, tendrás la voluntad y encontrarás el camino. Por eso menciono que Sparkfun y otros tienen tableros de $ 30 a $ 50 que funcionan de la caja. Publica una pregunta para antes de comprar, pero pregunta cuál es mejor. Tengo muchos y hay algunos que me parecieron inutilizables o demasiado dolorosos para molestar, no quisiera que gastaras todo tu presupuesto de juguetes en algo que no vale la pena tener.

Tengo un código de ejemplo de integrador de brazo qemu por aquí, permítanme empaquetarlo y proporcionar un ejemplo de trabajo. Tengo muchos otros códigos de brazo y gba por ahí, quizás también los publique.

La arquitectura ARM comenzó y la última vez que trabajé con sus personas / herramientas usando un emulador llamado armulator (google / wikipedia). Así que emular el brazo en particular no es raro.

Escribir su propio emulador podría / podría ser un proyecto divertido o tomar uno existente y agregar sus propios periféricos. qemu y mame son demasiado voluminosos para jugar con lo que es, es posible que puedas extraer el brazo de mame sin demasiados problemas.

EDITAR:

Un ejemplo de brazo simple para ejecutar en qemu:

http://www.dwelch.com/integrator.tar.gz

EDIT2

Esto es divertido, descubrí que el brazo está fuera del público, gdb tiene un skeye de copia y otros también, lo agarró, lo royó solo a un brazo y escribió un rápido programa de prueba de brazo y pulgar. He estado buscando un brazo / thumbulador independiente de todos modos.

http://www.dwelch.com/armulator-20100421a.tar.gz


Podría obtener algo así como una BeagleBoard para jugar, solo cuestan alrededor de $ 200. Puede instalar Ubuntu y la cadena de herramientas ARM en él.