Vous êtes sur la page 1sur 17

ATMEL STUDIO 6 , DOS ARQUITECTURAS

UN ENTORNO

Atmel Studio 6 es un ambiente de desarrollo integrado (IDE) para desarrollo


y debug-ging de aplicaciones basadas en microcontroladores Atmel ARM
Cortex TM M y Atmel AVR. Atmel Studio 6 proporciona un entorno compacto
y fcil de usar para escribir, compilar y debugear las aplicaciones escritas en
C/C++ o en cdigo assembler. Atmel Studio 6 es gratis y viene con una gran
librera de cdigo fuente libre - con 1.100 ejemplos de proyectos para ARM y
AVR- para agilizar el proceso de diseo.

Dispositivos soportados y libreras de software.


Atmel Software Framework (ASF) es un coleccin de archivos fuente listo para usar,
escritos y optimizados por expertos y testeados en cientos de diseos. Las libreras para los
drivers de perifricos, los stacks de comunicaciones y las aplicaciones especficas, pueden
ser utilizadas para completar su proyecto rpidamente y fcilmente.
Atmel Software Framework trabaja con todos los dispositivos basados en los procesadores
ARM CortexTM M, AVR UC y AVR XMEGA, y algunos megaAVR, es decir mas
de 300 microcontroladores. Para la compilacin del cdigo generado en C/C++ trabaja un
compilador GNU o con IAR.
Atmel Software Framework usa un conjunto de interfaces para programas de aplicacin
estndar (APIs) para todos los microcontroladores Atmel basados en procesadores ARM
Cortex-M y AVR. Esto simplifica como, su cdigo de aplicacin se comunica con los
perifricos del chip y las interfases de comunicacin. Asegurando que el cdigo de la
aplicacin desarrollada se puede migrar fcilmente a todo el porfolio de productos de
ATMEL.

Compilador C/C++ integrado.


Atmel Studio 6 incluye un compilador GCC C y C++, ensamblador y un simulador, y una
interfaz, sin dificultades con debuggers y programadores. Haciendo el desarrollo de cdigo
mas fcil.
Comenzar un nuevo proyecto es muy fcil, el New Project Wizard configura todos los
seteos del compilador y el linker, quedando todo listo para comenzar a escribir el cdigo.
Se puede comenzar creando un proyecto en blanco o seleccionar uno de los mas de 1000

proyectos de ejemplo disponibles.


El editor de Atmel Studio 6 simplifica la edicin de su cdigo, dejndolo mas eficiente.
Escribiendo algunas pocas letras de un smbolo, Atmel Studio 6 le mostrara un listado de
sugerencias. Escriba un acceso directo para ampliar fragmentos de cdigo que utiliza con
frecuencia. Instantneamente se puede ver el contexto y la definicin de un smbolo con
slo hacer click en l. Pase el mouse sobre los smbolos de cdigo mientras navega para
ver informacin relacionada a este.
El Solution Explorer presenta una vista organizada de todos sus proyectos y sus archivos,
ofrecindole un acceso simple a comandos que se aplican a ellos. Puede crear fcilmente
aplicaciones conteniendo mltiples microcontroladores y desarrollar el cdigo para todos
ellos dentro de la misma solucin.

Debugging y simulacin.
Atmel Studio 6 se conecta sin problemas a todas los debuggers y programadores de
Atmel.

AVR Dragon TM

JTAGICE3

AVRE ONE!

SAM ICE

Aprovechando la ventaja de los modernos microcontroladores Flash, de enviar datos de


debug a la PC, Atmel Studio 6 nos da una perfecta visin de lo que esta sucediendo dentro
del microcontrolador. Puede presentarnos el estado del procesador, la memoria y todas las
interfases de comunicacin y analgicas en vistas que pueden ser fcilmente entendidas,
ofreciendo de esta forma acceso a parmetros crticos del sistema. Dando de esta forma el
camino ms rpido para identificar un problema y optimizar el diseo, ya sea en el
laboratorio o en el campo.

Simulation

El simulador de Atmel Studio 6 modela con precisin la arquitectura AVR y sus


dispositivos. Simula la CPU, incluyendo todas las instrucciones, interrupciones y la
mayora de las entradas salidas analgicas incluidas en el chip. Este simulador en la
actualidad slo es compatible con los dispositivos AVR.
El simulador opera dentro del Atmel Studio 6 aplicacin como un destino de depuracin.
Esto permite al usuario utilizar los comandos de depuracin normales, como Ejecutar,
Pausa, Reset, paso a paso, breakpoints, etc. Las entradas - salidas, la memoria y registro
son completamente funcionales utilizando el simulador.
http://www.atmel.com/Microsite/atmel_studio6/default.aspx
http://www.atmel.com/Microsite/atmel_studio6/videos.aspx

Herramientas Para la Compilacin de Programas


Para compilar programas en ensamblador, C o C++ es necesario contar con la cadena de
herramientas "Atmel AVR Toolchain", la cual cuenta a su vez con las aplicaciones
necesarias: compilador C/C++, assembler, linker, debugger e incluso libreras en C para el
desarrollo de programas. Todas estas aplicaciones son tipo "command line", es decir que
deben ejecutarse desde una ventana de comando MSDOS, sin embargo su uso se simplifica

con el uso de un Entorno de Desarrollo Integrado, el cual permite escribir el cdigo de


programa y compilarlo desde la misma interfaz grfica. Para ello dos de las alternativas
ms populares son:

AVR Studio 5: Es el Entorno de Desarrollo Integrado (EDI) oficial de Atmel,


cuenta con todas las herramientas necesarias para escribir, compilar, depurar y
programar microcontroladores AVR, todo desde la misma interfaz grfica; el
instalador completo tiene un tamao de un poco ms de 600MB y puede ser bajado
gratuitamente de este enlace, previo llenado de un formulario de registro.

WinAVR: Es un conjunto de aplicaciones que permiten escribir, compilar, depurar y


programar microcontroladores AVR, incluye los ejecutables del "Atmel AVR
Toolchain" los cuales son ejecutados de manera transparente. Este EDI no es tan
completo ni sofisticado como el anterior, sin embargo posee las herramientas
necesarias y su tamao de descarga es menor (menos de 30MB). Pude ser
descargado gratuitamente del enlace respectivo en el sitio oficial del proyecto
WinAVR: http://winavr.sourceforge.net/

VISUAL MICRO EN ATMEL STUDIO 6.1


Archivo->Nuevo->Sketch Proyect
Utilizacin

Una vez hecho todo esto, veremos que tenemos unos mens nuevos tal que as:

Desde ahi podremos crear un nuevo sketch de Arduino y por supuesto, al igual que el IDE
original, debemos seleccionar la placa correcta y el puerto COM donde est conectada:

Como se puede ver, estan todas las placas de Arduino y para los ms avispados, habreis
visto que tambin soporta la versin 1.5.x de Arduino, que es la necesaria para utilizar el
Arduino DUE. En mi caso, he probado con un Arduino UNO y ha funcionado todo a la
primera.
El funcionamiento es muy similar a la hora de compilar y programar la placa. Para
compilar/verificar podemos pulsar directamente F7 o bien en el men "Build / Build
Solution" y para cargar el programa en la placa, iremos al menu "Project / Upload Last
Sketch Build".

El programador que se oferta en la tienda virtual permite programar cualquier


microcontrolador AVR de ATMEL, los cuales se dividen en dos grupos: ATMEGA
que son de muchos pines y los ATTINY que son los de pocos pines. El
programador no tiene un zcalo debido a que cada microcontrolador tiene las
terminales de programacin en pines diferentes y el programador ATMEL de la
tienda virtual es un programador universal de los microcontroladores ATMEL.
PRIMEROS PASOS:
AVR 8-bit GNU Toolchain: Release
3.4.2.992
The AVR 8-bit GNU Toolchain supports all AVR 8-bit devices. The AVR 8-bit
Toolchain is based on the free and open-source GCC compiler. The toolchain
includes compiler, assembler, linker and binutils (GCC and Binutils) and
Standard C
library (AVR-libc).
Manifest
1. AVR 8-bit GNU Binutils 2.23.1
Binary utilities for AVR 8-bit target (including assembler, linker, etc.).
2. AVR 8-bit GNU Compiler Collection (avr-gcc) 4.7.2
C language and C++ language* compiler for AVR 8-bit target.
3. AVRLibC 1.8.0

C Standard Library for AVR 8-bit


Layout
Listed below are some directories you might want to know about.
`<install_dir>` = The directory where you installed AVR 8-bit GNU Toolchain.
<install_dir>\bin
The AVR software development programs. This directory should be in your
`PATH` environment variable.
This includes:
GNU Binutils
GCC
<install_dir>\avr\lib
avr-libc libraries, startup files, linker scripts,and stuff.
<install_dir>\avr\include
avr-libc header files for AVR 8-bit.
<install_dir>\avr\include\avr = C:\Program Files\Atmel\Atmel Toolchain\AVR8
GCC\Native\3.4.2.1002\avr8-gnu-toolchain\avr\include\avr
header files specific to the AVR 8-bit MCU. Este es de donde, for example,
#include <avr/io.h> viene.
<install_dir>\lib
GCC libraries, other libraries, headers and stuff.
<install_dir>\libexec
GCC program components
<install_dir>\doc
Various documentation.
<install_dir>\source
Documentation on where to find the source code for the various projects and
source code patches that were used to build the tools.
Toolset Background

AVR 8-bit GNU Toolchain is a collection of executable, open source software


development tools for the Atmel AVR
8-bit series of microcontrollers. It includes the GNU GCC compiler for C and C+
+.
Compiler
The compiler is the GNU Compiler Collection, or GCC. This compiler is incredibly
flexible and can be hosted on many platforms, it can target many different
processors/operating systems (motor de compiladores), and can be configured
for multiple different languages (interfaces de usuarios).The GCC included in
AVR 8-bit GNU Toolchain is targeted for the AVR 8-bit microcontroller and is
configured to compile C or C++.
'' CAUTION: There are caveats on using C++. See the avr-libc FAQ. C++
language is not fully supported and has
some limitations. libstdc++ is unsupported.''
Because this GCC is targeted for the AVR 8-bit MCUs, the main executable that
is created is prefixed with the
target name: `avr-gcc` (with '.exe' extension on MS Windows). It is also referred
to as AVR GCC.
`avr-gcc` is just a "driver" program only. The compiler itself is called `cc1.exe`
for C, or `cc1plus.exe` for C++. Also,
the preprocessor `cpp.exe` will usually automatically be prepended with the
target name: `avr-cpp`. The actual set of component programs called is usually
derived from the suffix of each source code file being processed.
GCC compiles a high-level computer language into assembly, and that is all. It
cannot work alone. GCC is coupled with another project, GNU Binutils, which
provides the assembler, linker, bibliotecario and more. Since 'gcc' is just a
"driver" program, it can automatically call the assembler and linker directly to
build the final program.

Assembler, Linker, Librarian and More


GNU Binutils is a collection of binary utilities. This also includes the assembler,
as. Sometimes you will see it

referenced as GNU as or gas. Binutils includes the linker, ld; the librarian or
archiver, ar. There are many other programs included that provide various
functionality.
Note that while the assembler uses the same mnemonics as proposed by
Atmel, the "glue" (pseudo-ops, operators,expression syntax) is derived from
the common assembler syntax used in Unix assemblers, so it is not directly
compatible to Atmel assembler source files.
Binutils is configured for the AVR target and each of the programs is prefixed
with the target name. So you have programs such as:
avr-as: The Assembler.
avr-ld: The Linker.
avr-ar: Create, modify, and extract from archives (libraries).
avr-ranlib: Generate index to archive (library) contents.
avr-objcopy: Copy and translate object files.
avr-objdump: Display information from object files including disassembly.
avr-size: List section sizes and total size.
avr-nm: List symbols from object files.
avr-strings: List printable strings from files.
avr-strip: Discard symbols.
avr-readelf: Display the contents of ELF format files.
avr-addr2line: Convert addresses to file and line.
avr-c++filt: Filter to demangle encoded C++ symbols.
See the binutils user manual for more information on what each program can
do.
C Library
avr-libc is the Standard C Library for AVR 8-bit GCC. It contains many of the
standard C routines, and many non-standard routines that are specific and
useful for the AVR 8-bit MCUs.
NOTE: The actual library is currently split into two main parts, libc.a and libm.a,
where the latter contains

mathematical functions (everything mentioned in <math.h>, and a bit more).


Thus it is a good idea to always include the `-lm` linker option. Also, there are
additional libraries which allow a customization of the printf and scanf function
families.
avr-libc also contains the most documentation on how to use (and build) the
entire toolset, including code examples. The avr-libc user manual also contains
the FAQ on using the toolset.
Debugging
Atmel Studio provides a debugger and also provides simulators for the parts
that can be used for debugging as well. Note that `Atmel Studio` is currently
free to the public, but it is not Open Source.
Source Code
Atmel AVR 8-bit GNU Toolchain uses modified source code from GCC, Binutils
and AVR-LibC. The source code used for building the packaged binaries are
available at:
http://distribute.atmel.no/tools/opensource/Atmel-AVR-Toolchain-3.4.2/avr/
The modifications are also available as patches in the above link. Please
PARA QU SON USADOS LOS LOCK BITS?

Lock bits are used in a variety of microcontrollers, and are generally used to enforce
(aplicar) hardware-level security of the code inside them (no readback of the flash is
common, also sometimes referred to as 'code protect').
They're not 100% secure, but are generally good enough to keep 'honest people' out of your
code. Enterprising hackers often find ways around the lock bits (glitching, fuzzing, and
sometimes even making holes into specific parts of the IC to expose signal lines and
transistors).
Take a look at sites like Flylogic Engineering to get a taste the level of sophistication out
there when it comes to microcontroller security.

"Lock bits" are used for protecting program and data memory (they are used with both the
AT89 and AVR). They aren't unique to Atmel; Maxim uses them as well, in their secure
8051 products. Other manufacturers use similar protection techniques, but give them a
different name.
TUTORIAL DE ATMEL STUDIO

Entre sus caracteristicas ms importantes tenemos:


- Tiene integrado con su propio compilador en C, el AVR GNU C Compiler (GCC).
- Provee un solo entorno de desarrollo para micrcontroladores de 8-bits, 32-bits y ARM
Cortex-M.
Creando un nuevo AVR C Project
Al ejecutar el programa nos aparece la pantalla de inicio; para la creacin de un nuevo
proyecto hacemos clic en "New Project".

Luego aparece la ventana "New Project", aqui tendremos tres campos importantes de los
cuales elegir.

El primer campo ser el lenguaje de programacin que utilizaremos, en nuestro caso


elegiremos entre "C/C++" o "Assembler" (para los primeros tutoriales); el segundo campo a
elegir es el tipo de proyecto que realizaremos, aqu trabajaremos con "GCC C Executable
Project"; en el tercer campo colocaremos el nombre del proyecto y la ubicacin de este.
Al terminar de elegir las caracteristicas del proyecto de damos clic en "OK" e
inmediatamente nos aparece la ventana de eleccin de microcontrolador.

Aqui elegiremos el tipo de microcontrolador con el que trabajaremos, en este caso estamos
eligiendo un microcontrolador de la familia "megaAVR" de 8 bits y el microcontrolador
elegido es el ATmega16.
Luego de dale clic en "OK" nos aparece el entorno de programacin.

A partir de ahora ya podemos a empezar la programacin, sin embargo antes de empezar es


recomendable
setear
un
par
de
caracteristicas
importantes.
Definicin de la Frecuencia de Reloj:

La primera es la frecuencia de reloj ya que algunas librerias (por ejemplo la libreria


"delay") necesita la definicin de dicha frecuencia para mostrar los resultados esperados.
Para esto vamos a la barra de menu y le damos clic en "Project" y luego en "(nombre del
proyecto) Properties".

Inmediatamente se nos abre una nueva pestaa, aqui vamos a la opcion "Toolchain" y
elegimos "Symbols", seguidamente en la ventana "Defined Symbols (-D)" hacemos clic en
el icono "Add Item" (la hoja con una cruz verde) y nos aparece la ventana "Add Defined
symbols (-D)".

Ahi colocamos lo siguiente, por ejemplo si se va a trabajar con una frecuencia de reloj de
8MHz se escribe "F_CPU=8000000" y le damos clic en "OK".
Definicin de Librerias Externas:
En el caso de que trabajemos con librerias externas vamos a la opcion
"Directories" hacemos clic en el icono "Add Item" (la hoja con una cruz verde) y nos
aparece la ventana "Add Include Paths (-I)".

En esta ventana elegimos la ruta en donde se encuentra nuestras librerias externas, en este
caso las librerias estan en "C:\Users\user\Documents\AtmelLibs", luego le damos clic en
"OK"y guardamos el proyecto. Esta solucin tomar los datos de las librerias externas,
compilar el cdigo y generar un .hex, pero no copiar las librerias a la carpeta de nuestra
solucin.
Solution

Explorer:

En el caso de que queramos compartir tanto nuestro cdigo como las librerias usadas lo
recomendable
es
crear
carpetas
de
forma
jerarquica
y
ordenada.
Para la creacin de carpetas, hacemos click derecho en el proyecto, vamos a "Add" y
creamos un nuevo folder "New Folder".

En este caso crear tambien una subcarpeta llamada UART donde irn los archivos de mi
librera.

Para agregar los archivos de mi librera a la carpeta UART creada, hacemos click derecho
en la carpeta, elegimos "Add" y seleccionamos "Existing Item".

Buscamos la ubicacin de nuestras librerias, las seleccionamos y presionamos "Add"

Y como vemos las librerias han sido correctamente agregadas.

Algo importante al tener en cuenta es lo siguiente, al incluir en nuestro cdigo las librerias,
si estas son de forma externa debemos usar " #include <uart/uart.h> ", pero si las incluimos
a traves del Solution Explorer debemos usar " #include "uart/uart.h" ".
Compilacin:
Para la compilacin de programa desarrollado, en la ventana principal hacemos clic en
"Build Solution".

Si la compilacin fue exitosa, en la parte inferior se mostrar el mensaje "Build


succeeded.", en caso contrario mostrar los errores encontrados y descripciones de estos
errores.
Algunas consideraciones finales de la programacion en C:
- Lo que esta despus de (//) es considerado como comentario.
- ($) : Significa que el nmero esta en hexadecimal.
- 0Bxxxxxxxx significa que el numero ingresado esta en binario.

Vous aimerez peut-être aussi