Autor Tema: Intro a ARM  (Leído 25599 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado psykhon

  • Moderador Local
  • PIC24F
  • *****
  • Mensajes: 823
Intro a ARM
« en: 18 de Diciembre de 2006, 12:25:49 »
Como en la kedada nadie tenia mucha idea de lo que era la arquitectura arm les transcribo un intro que escribio el ing Zaradnik de electrocomponentes.
el art original se encuentra  aca

El diseño del ARM comenzó en 1983 como un proyecto de desarrollo en la empresa Acorn Computers Ltd, cuya meta era, originalmente, el desarrollo de un procesador avanzado, pero con una arquitectura similar a la del MOS 6502. La primera versión utilizada comercialmente se bautizó como “ARM2” y se lanzó en el año 1986.

La arquitectura del ARM2 posee un bus de datos de 32 bits y ofrece un espacio de direcciones de 26 bits, junto con 16 registros de 32 bits. Uno de estos registros se utiliza como contador de programa, aprovechándose sus 4 bits superiores y los 2 inferiores para contener los flags de estado del procesador.

El ARM2 es probablemente el procesador de 32 bits más simple del mundo, ya que posee sólo 30.000 transistores. Su simplicidad se debe a que no está basado en microcódigo (sistema que suele ocupar en torno a la cuarta parte de la cantidad total de transistores usados en un procesador) y a que, como era común en aquella época, no incluye caché. Gracias a ello, su consumo en energía es bastante bajo, a la vez que ofrece un mejor rendimiento que un procesador del tipo “286”. Su sucesores, ya incluyen memoria caché, lo que mejora los accesos a memoria repetitivos, pero a expensas de hacer un poco más complejo el núcleo del procesador.

El éxito de estos primeros dispositivos “ARMs” dio paso a creación de la compañía Avanced Risc Machines que sería la encargada del diseño y gestión de las nuevas generaciones de procesadores ARM.

El núcleo mantuvo su simplicidad a pesar de los cambios, en efecto, el ARM2 tiene 30.000 transistores, mientras que el ARM6 sólo cuenta con 35.000. La idea era que el usuario final combinara el núcleo del ARM con un número opcional de periféricos integrados y otros elementos, pudiendo crear un procesador completo a la medida de sus necesidades.

De esta forma se abrió paso al otorgamiento de licencias a otros fabricantes de microcontroladores como Freescale, STMicroelectronics, y Atmel entre otros tantos.

El diseño del ARM se ha convertido en uno de los más usados del mundo, desde discos duros hasta juguetes. Hoy en día, cerca del 75% de los procesadores de 32 bits poseen este chip en su núcleo.

Mirando un poco más adentro...

El juego de instrucciones del ARM es similar al del MOS 6502, pero incluye características adicionales que le permiten conseguir un mejor rendimiento en su ejecución. Para mantener el concepto tradicional de RISC, se incluyó el comando de ejecución en un tiempo bastante bueno, siendo por lo general, en un ciclo. La característica más interesante es el uso de los 4 bits como código condicional en la parte superior de cada instrucción, haciendo que cada instrucción pueda ser una condición.

Este corte permite aumentar el espacio para algunos desplazamientos en el acceso a la memoria, pero también permite evitar caer en ciclos fuera de control cuando la aplicación sea para pequeñas instrucciones condicionadas.

Otra característica única del juego de instrucciones es la posibilidad de añadir shifts y rotar en el procesamiento de datos (aritmético, lógico y movimiento de registros), por ejemplo, la instrucción en C "a += (j << 2);" puede ser mejorada como una instrucción simple en el ARM, permitiendo la reubicación del registro.

Todo esto ocasiona que se necesiten menos operaciones de carga y almacenamiento, mejorando el rendimiento. El procesador ARM también tiene algunas características que son raras en otras arquitecturas también consideradas RISC, como el direccionamiento relativo, y el pre y post incremento en el modo de direccionamiento.

Tiene dos modos de funcionamiento: el ARMI con instrucciones que ocupan 4 bytes, más rápidas y potentes (hay instrucciones que sólo están en este modo) pero con mayor consumo de memoria y de energía, y el modo THUMB, más limitado, con instrucciones que ocupan 2 bytes y con menor consumo de corriente.

Con el modo Thumb, se pretende disminuir la cantidad de código escrito, así como mejorar la densidad del código, el rendimiento puede ser superior a un código de 32 bits en donde el puerto de memoria o ancho del bus de comunicaciones sean menores a 32 bits. Por lo general en aplicaciones inserta un pequeño rango de direcciones de memoria con un datapath de 32 bits, y el resto son 16 bits en modo wide o narrower.

Veamos que dispone cada fabricante...

STMicroelectronics

La familia STR750F es una opción muy interesante que dispone ST Microelectronics basada en el core ARM7 de 32 bits “ARM7TDMI” que constituye un estándar en el mundo ARM. Combina en un solo dispositivo gran cantidad de memoria, un set de periféricos muy completo y muy bajo consumo.

Ofrece una muy buena perfomance de 54 MIPS a 60 Mhz de Bus, con un consumo de solo 10 uA en el modo “StandBy” y puede operar tanto en 3,3V como en 5V.



Características destacadas:

• Reloj de Backup en caso de falla del reloj a cristal principal.
• Rápida capacidad de arranque desde los modos de Reset y bajo consumo.
(tan solo 55 uS en ejecutar la primera instrucción).
• En los modos de bajo consumo, se puede activar la función AWU (Auto Wake up)
Que permite despertar al MCU sin necesidad de señales externas o cristal.
• Timers de 16 bits flexibles y PWM Timer con clock rápido y capacidad de sincronización.
• 3 módulos UART con soporte para protocolos LIN.
• Interface SMI (Serial Memory Interface) para sencilla conexión con memorias
FLASH SPI externas para almacenamiento de datos.



Atmel

En el caso de Atmel, la familia AT91SAM7xx constituye la mejor opción para nuestro mercado, basada también en el popular core “ARM7TDMI”, esta familia ofrece una gama muy amplia en capacidad de memoria FLASH, SRAM y cantidad de pines de encapsulado.

También ofrece un muy bajo consumo en relación a la velocidad de procesamiento y la incorporación de un módulo interno de Emulación en Tiempo Real denominado “EmbeddedICE™ In-circuit Emulation” , que permite contar con herramientas muy poderosas.






Freescale

La línea “i.MX” de freescale está basada en el core ARM9 y sus versiones y está orientada a las aplicaciones de muy altas prestaciones, tanto en la capacidad de procesamiento como en el manejo de la capacidad gráfica del producto. Se incorporan controladores de LCD y otros módulos multimedia que hacen muy completo el manejo de entornos gráficos.

Con encapsulados típicos BGA (Ball Grid Array) de alta densidad de conexiones, dispone de una gran cantidad de líneas de I/O y de conexiones con sus distintos periféricos con el mundo exterior.



Las sub familias que integran el mundo “i.MX” son las siguientes:

• i.MX1
• i.MX21 / i.MX21S.
• i.MX27
• i.MX31.
• i.MXL.
• i.MXS.
No, no se lo que estoy haciendo. Nadie sabe que estoy haciendo. Por eso se llama "Investigacion".

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: Intro a ARM
« Respuesta #1 en: 14 de Febrero de 2007, 08:37:00 »
Muy bueno informacion psykhon, me gustaria informarme bien sobre los ARM.

¿Alguien sabe de algun libro, a poder ser en castellano, que me pueda iniciar?

Como proponia otro forero en un hilo, se podria crear un foro de ARM, creo que es un procesador interesante ya que hay muchos fabricantes que basan sun micros en el. Incluso la Nintendo DS tiene un procesador ARM.

Un saludo a todos :-)
BitPIC

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: Intro a ARM
« Respuesta #2 en: 14 de Febrero de 2007, 08:51:47 »
Lo mejorcito que tiene es la capsula...    :shock:
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado Darukur

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 464
    • Informacion, recursos y ejemplos para desarrollos con microcontroladores
Re: Intro a ARM
« Respuesta #3 en: 14 de Febrero de 2007, 12:59:44 »
Muy buena la info, yo vere de sumar algunos pdf que encontre por ahi...
Alguien tiene alguna version funcional del entorno de trabajo Keil o IAR?

Saludos
El que no sabe lo que busca no entiende lo que encuentra.
Mi Pagina Web:  http://www.sistemasembebidos.com.ar
Mi foro:             http://www.sistemasembebidos.com.ar/foro/

Desconectado manuelroin24

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 665
Re: Intro a ARM
« Respuesta #4 en: 14 de Febrero de 2007, 17:11:55 »
Bueno decir q de todos ellos los mas accesibles para probar serian los de FREESCALE que dan muestras gratis al instante menos de 4 dias , ya tambirn que este tema resulta bastante interesante, vamos pa adelante!!!
El conocimiento se consigue a base de esfuerzo...

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Intro a ARM
« Respuesta #5 en: 14 de Febrero de 2007, 18:10:11 »
Les dejo estos links que me parecen interesantes

GNU Arm

ARM projects

uC Linux : tiene un puerto para los ARM.


Tenía otros links pero no los tengo acá, ya los subiré :)

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado psykhon

  • Moderador Local
  • PIC24F
  • *****
  • Mensajes: 823
Re: Intro a ARM
« Respuesta #6 en: 14 de Febrero de 2007, 23:41:30 »
les cuento que aparentemente elko tiene algunos lpc de phillips que estan entre los mas comunes junto con la serie at91sam7xxx de atmel (de los cuales tengo una par de samples) y los costos descosen a un pic, 60mips, 50 y pico de i/o, una animalada de perifericos por algo mas que 10 dollar, realmente muy tentador,espero terminar un par de cosas y me pongo a full con estos superchiches
No, no se lo que estoy haciendo. Nadie sabe que estoy haciendo. Por eso se llama "Investigacion".

Desconectado psykhon

  • Moderador Local
  • PIC24F
  • *****
  • Mensajes: 823
Re: Intro a ARM
« Respuesta #7 en: 14 de Febrero de 2007, 23:48:26 »
me olvidava que quienes tengan proteus sp5 para arriba pueden encontrar en el directorio samples la carpeta uclinux en la que hay un sistema corriendo linux para uc arm!!! realmente impresionante, carguenlo y jueguen (necesita 2ghz de cpu para simular bien)
No, no se lo que estoy haciendo. Nadie sabe que estoy haciendo. Por eso se llama "Investigacion".

Desconectado psykhon

  • Moderador Local
  • PIC24F
  • *****
  • Mensajes: 823
Re: Intro a ARM
« Respuesta #8 en: 14 de Febrero de 2007, 23:49:44 »
No, no se lo que estoy haciendo. Nadie sabe que estoy haciendo. Por eso se llama "Investigacion".

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: Intro a ARM
« Respuesta #9 en: 15 de Febrero de 2007, 12:18:17 »
Veo que hay bastante gente interesada en los ARM, me gustaria iniciarme.

Soy un novato en estos micros, por lo que he visto la circuiteria mas o menos es parecida a otros micros como por ejemplo los PIC no? ( bueno sin contar el JTAG que creo que el sistema de programacion).

Veo tambien que se le pueden poner sistemas operativos tipo windos y linux (embeded supongo). ¿Esto es cierto?

¿Es verdad que se pueden programar con herramientas como el Visual Studio 2005, el CodeBlocks y el gcc entre otras?

La verdad soy muy novato en esto, pero me gustaria saltar la barrera y empezar a explorar y hacer pruebas con estos micros.

Un saludo.
BitPIC

Desconectado psykhon

  • Moderador Local
  • PIC24F
  • *****
  • Mensajes: 823
Re: Intro a ARM
« Respuesta #10 en: 15 de Febrero de 2007, 12:20:52 »
Veo que hay bastante gente interesada en los ARM, me gustaria iniciarme.

Soy un novato en estos micros, por lo que he visto la circuiteria mas o menos es parecida a otros micros como por ejemplo los PIC no? ( bueno sin contar el JTAG que creo que el sistema de programacion).

Veo tambien que se le pueden poner sistemas operativos tipo windos y linux (embeded supongo). ¿Esto es cierto?

¿Es verdad que se pueden programar con herramientas como el Visual Studio 2005, el CodeBlocks y el gcc entre otras?

La verdad soy muy novato en esto, pero me gustaria saltar la barrera y empezar a explorar y hacer pruebas con estos micros.

Un saludo.
empeza leyendo los links que hay en este hilo ya que la familia arm es extensisima
No, no se lo que estoy haciendo. Nadie sabe que estoy haciendo. Por eso se llama "Investigacion".

Desconectado Zaphyrus

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 323
    • Mi blog: Es cuestión de actitud
Re: Intro a ARM
« Respuesta #11 en: 16 de Febrero de 2007, 08:44:48 »
Muy buena información!!!

Les cuento que con el entorno de desarrollo Eclipse se pueden usar las herramientas GNU GCC para ARM incluso desde Linux. No me acuerdo si se puede simular el código pero creo que leí por ahí que es posible.

Saludos.
"¿Lo quiere rápido, barato, o bien hecho? Puede elegir dos de las tres cosas." Arthur C. Clarke.
Mi Proyecto Final de Carrera-Microprocesador RISC de 16 bits en HDL: http://martin.calveira.googlepages.com/home
Mi página web o blog: http://es-cuestion-de-actitud.blogspot.com/
Martín Calveira - Zárate - Argentina

Desconectado psykhon

  • Moderador Local
  • PIC24F
  • *****
  • Mensajes: 823
Re: Intro a ARM
« Respuesta #12 en: 17 de Febrero de 2007, 12:30:32 »
pronto voy a subir un libro sobre arm que creo que esta hecho por keil, aca va el indice
 http://www.hitex.co.uk/arm/lpc2000book/toc.html   
No, no se lo que estoy haciendo. Nadie sabe que estoy haciendo. Por eso se llama "Investigacion".

Desconectado psykhon

  • Moderador Local
  • PIC24F
  • *****
  • Mensajes: 823
Re: Intro a ARM
« Respuesta #13 en: 17 de Febrero de 2007, 13:49:18 »
TREMENDA CONTESTACION!!!! la pregunta se la hizo un brazuca a otro
Pregunta
Boa Noite! gostaria de saber se uma pessoa totalmente leiga na parte de programação e projetos com microcontroladores, seria capaz de já partir para essa tecnologia, ou teria que começar pelos pic's primeiramente?. No meu caso específico, tenho afinidade com a eletrônica analógica, tenteu aprender pic, mais aqui no meu Estado não tem cursos específicos. É isso ai. Obrigado.
Contestacion

Prezado cliente, não é necessário ter conhecimento prévio ou experiência com PICs para se trabalhar com o ARM. Como você alega não ter conhecimento de programação, acredito que o maior desafio seria esse. Se você souber ler em inglês técnico, pode seguir o livro a que me refiro no anúncio. Esse livro foi escrito por um especialista em ARM, especificamente a família LPC da NXP ao qual o LPC2148 pertence. Sugiro que comece aprendendo C. Após isso, leia o livro. A muitos outros materiais na web, caso feche negócio, posso auxiliá-lo a criar um metódo de estudos, escolher o material de estudos e criar um cronograma. O ARM é muito simples de usar, é mais simples do que PIC na minha opinião, pois é mais poderoso, tem mais memória e afinal é um microcontrolador de 32 bits. No PIC, usando um bom compilador com o CC, pode-se programar em C e esquecer suas limitações, mas um projetista ou estudante, logo-logo terá de se deparar com as limitações do PIC, o que cria um entrave maior ao projeto e aprendizado. Enquanto no ARM, se tem mais liberdade devido as suas restrições serem menores. Se vai começar a aprender um microcontrolador, sugiro que comece com um ARM. Hoje a maior parte dos Pocket PCs, handhelds, PDAs e smart phones usam ARM, o preço do ARM tem caido bastante e a diferença de preço entre um PIC de última geração e um ARM, como os da família LPC2000, praticamente não existe; o preço é quase o mesmo. Nesse caso, por que usar um pic se podemos usar um ARM? Acho que só deve-se começar com um PIC, quem realmente tiver motivo para isso, caso contrário, os ARMs são excelentes e a família LPC da NXP tem preços muito bons. Quanto ao estuda, é possível aprender sozinho, muita gente aprende só, mas nem todo mundo consegue se organizar e se motivar o suficiente para isso. Um curso não é essencial, ajuda muito, mas se você realmente quiser (ter inglês técnico é quase que pré-requisito), irá conseguir. Boa sorte e obrigado por sua pergunta.
No, no se lo que estoy haciendo. Nadie sabe que estoy haciendo. Por eso se llama "Investigacion".

Desconectado psykhon

  • Moderador Local
  • PIC24F
  • *****
  • Mensajes: 823
Re: Intro a ARM
« Respuesta #14 en: 17 de Febrero de 2007, 13:54:47 »
ja, estoy inspirado. miren como les caliento la kbeza, en este link esta una libreria para la reproduccion de mp3 para arm, miren los requerimientos y alucinen
http://209.85.165.104/search?q=cache:ek_7xTcFRHMJ:https://datatype.helixcommunity.org/mp3dec+arm+libraries+mp3&hl=es&ct=clnk&cd=4&gl=ar&client=firefox-a
SOLO 26 MHZ!!!, cuando un arm de 14 dollar corre a 60 mhz!!!!!
No, no se lo que estoy haciendo. Nadie sabe que estoy haciendo. Por eso se llama "Investigacion".


 

anything