Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
DESARROLLO DE SOFTWARE
PARA SISTEMAS EMBEBIDOS
SISTEMAS EMBEBIDOS
208006_7
Tutor:
Oscar Ivn Valderrama
INTRODUCCION
CodeWarrior,
extrado
de:
sicort.cloudapp.net/CodeWarrior.rar,
se
siguieron los pasos que daba la gua, en la cual se presenta de manera resumida la
forma de crear, compilar y depurar un proyecto, con esto se adquieren los
conocimientos y competencias en uno de los lenguajes de programacin de medio y
bajo nivel de mayor utilizacin en la programacin de este tipo de dispositivos como lo
es el assembler, as como en el uso de las diferentes herramientas que pueden hacer
parte de un sistema de desarrollo enfocado a un determinado dispositivo, el cual fue el
MCU MC68HC908JL3.
El lenguaje C se conoce como un lenguaje de medio nivel, pues podramos situarlo
entre los lenguajes de bajo nivel o de mquina (ensamblador) y los de alto nivel como
el PASCAL, por ejemplo. Ofrece un conjunto bsico de sentencias de control y de
manipulacin de datos que nos permitir construir sentencias y estructuras de nivel
ms alto. En la actualidad existen numerosos compiladores de C.
TABLA DE CONTENIDO
Pg.
INTRODUCCION_________________________________________________ 3
FASE1. ASSEMBLER_____________________________________________ 4
Fase 1. Assembler
3
Campo de datos
7
Contiene datos u operandos para las instrucciones. En los PICs, los datos pueden ser
un registro, un bit de un registro, una etiqueta o un nmero constante (llamado literal).
Algunas instrucciones no llevan datos. Si una instruccin necesita mltiples datos,
deben separarse por comas (,).
La especificacin de la base en la que se expresan los datos u operandos es opcional:
d65, b01000001,0x41, o101 y A son el mismo dato. El sufijo d o D se emplea para
expresar un valor en decimal. El sufijo b o B expresa un valor en binario.
Para expresar un valor en hexadecimal se emplea el sufijo 0x 0X. Un nmero en base
octal se representa mediante el sufijo o O. Finalmente, un valor se puede expresar
mediante un carcter ASCII si se encierra entre comillas simples como A.
Campo de comentarios
El ltimo campo es el del comentario, siempre que haya un punto y coma (;) como
primer carcter. Puede colocarse en cualquier lugar del cdigo fuente.
Los comentarios en ensamblador son muy importantes. Los comentarios deben
describir las tareas que realizan las instrucciones y/o subrutinas. Sin comentarios, es
muy difcil descifrar, algunos das despus, el cdigo fuente que uno mismo ha creado.
El listado que se presenta a continuacin en la Figura 2 presenta el aspecto del cdigo
fuente del programa EJEMPLO1.ASM con los campos de etiquetas, instrucciones,
datos y comentarios recuadrados para su clara distincin.
LIST permite elegir, entre otras cosas, el tipo de microcontrolador a utilizar (P),
nmero de caracteres por lnea (C), tamao de los tabuladores (B), base de
10
Las tres instrucciones que siguen a la etiqueta Inicio realizan la suma de dos nmeros
literales, 7 y 6, y guardan el resultado de la suma en la posicin de memoria 0x10
etiquetada como Resultado.
11
12
13
Ensamblando el proyecto.
14
Una vez generado el proyecto, hay que ensamblarlo, para ello, Seleccionar
Project>Build all.
Si el proyecto no se ensambla correctamente, comprobar los mensajes de error
obtenidos y volver a ensamblar.
Al ensamblar con xito se genera el fichero ejecutable ejemplo1.hex.
Instrucciones
Estas son las todas las instrucciones que hay para poder programar el Pic 16c5x,
16c64, 16c71, 16c74, 16c84.
15
16
17
TIPOS DE ENSAMBLADORES
sistemas muy
Son
ensambladores
que
permiten
el
uso
de
Ensamblador
IBM:
Est
integrado
por
un
ensamblador
un
21
LOOP0
LOOP1
LDA #$FF
INCA
; A = $FF
; A= A+ 1
22
LOOP2
CMP #3
BNE LOOP1
LDA #$FF
LDHX #$1234
LDHX #$4321
LDHX #0
LDX #$FF
INCX
CPX #4
BNE LOOP2
JMP LOOP0
; A = 3?
; Salto a LOOP1 si A!=3.
; A = $FF = 255
; H:X = $1234
; H:X = $4321
; H:X = $0000
; X = $FF
;X=X+1
; X = 4?
; Salto a LOOP1 si A!=4.
; Salto a LOOP0 (Se Repite el Ciclo)
Compilamos y si no tiene errores le damos click en debug se abre una nueva ventana
llamada True-Time Simulator & Real-Time Debugger que ser empleada para simular la
ejecucin del programa compilado.
23
24
Reiniciar
25
Para programar un dispositivo, de acuerdo a lo que nos indica la gua, solo debemos cambiar
el tipo de conexin dependiendo del tipo de POD de programacin que se vaya a utilizar; para
el caso del circuito descrito anteriormente se selecciona la opcin MON08 Interface en la
ventana principal del ambiente de desarrollo.
26
Fase 3. Programacin en C
Realice un pequeo manual de cmo programar microcontroladores y
microprocesadores en C.
Durante el desarrollo de su trabajo comparta en el foro de la actividad sus juicios,
pensamientos con los cuales obtuvo la definicin de pertinencia del curso en el
programa
acadmico.
All
podr
enriquecer
sus
apreciaciones
para
la
29
Lenguaje muy eficiente puesto que es posible utilizar sus caractersticas de bajo
nivel para realizar implementaciones ptimas.
archivo indicado.
Compilacin que genera el cdigo objeto a partir del cdigo ya preprocesado.
Enlazado que une los cdigos objeto de los distintos mdulos y bibliotecas externas
(como las bibliotecas del sistema) para generar el programa ejecutable final.
30
Sin embargo, las funciones integradas deben comportarse como funciones ordinarias,
de conformidad con la norma ISO C. La implicacin principal es que el programa debe
ser capaz de crear un puntero a estas funciones mediante la adopcin de su direccin,
e invocar a la funcin a travs de ese puntero. Si dos punteros a la misma funcin se
derivan en dos unidades de traduccin diferente en el programa, estos dos punteros
deben comparar igual, es decir, la direccin viene por la resolucin del nombre de la
funcin, que tiene enlazado externo.
Herramientas de Programacin:
Al programar en C, es habitual usar algunas herramientas de programacin de uso muy
extendido, sobre todo en entorno de tipo unix:
dbx : Debugger que suele venir instalado con todos los UNIX.
Biblioteca C:
Una biblioteca de C es una coleccin de funciones utilizadas en el lenguaje de
programacin C. Las bibliotecas ms comunes son la biblioteca estndar de C y la
biblioteca del estndar, la cual provee las especificaciones de los estndares que son
ampliamente compartidas entre bibliotecas. La biblioteca ANSI C estndar, incluye
funciones para la entrada y salida de archivos, alojamiento de memoria y operaciones con
datos comunes: funciones matemticas, funciones de manejo de cadenas de texto y funciones
de hora y fecha.
31
Otras bibliotecas C son aquellas utilizadas para desarrollar sistemas Unix, las cuales proveen
interfaces hacia el ncleo. Estas funciones son detalladas en varios estndares tales
como POSIX y el Single UNIX Specification.
Ya que muchos programas han sido escritos en el lenguaje C existe una gran variedad de
bibliotecas disponibles. Muchas bibliotecas son escritas en C debido a que C genera
cdigo rpido; los programadores luego generan interfaces a la biblioteca para que las rutinas
puedan ser utilizadas desde lenguajes de mayor nivel, tales como Java, Perl y Python
Sentencias condicionales;
Hay tres sentencias condicionales en C: if, else y switch
Sentencia if
32
Sentencia else
Ejemplo:
#include<stdlib.h>
int main()
float nota:
printf ("Dame una nota: ")
scanf ("%f", ¬a)
if (nota>9){
printf("Sobresaliente");}
else if(nota >=7){
printf("Notable);}
else if(nota >=5){
printf("Aprobado");}
else{
printf ("Suspenso);}
return
0;
Sentencia switch
Bucles for:
Tienen una gran potencia y flexibilidad, y tienen un esquema muy sencillo y definido.
Este esquema es as:
for(inicializacin del bucle; condicin; incremento).
Ahora vamos a proceder a definir cada una de las partes del esquema bsico,
inicializacin (exp1): es una asignacin que se utiliza para comenzar la variable del
bucle, esto es de la variable de la que parte el bucle. Condicin (exp2): es una
expresin relacional que hace que el bucle concluya cuando no se cumpla. Por ltimo
el incremento (exp3): es la parte que determina como cambia la variable hasta que el
bucle concluye. Es importante sealar que cada parte ha de ser separado por ; .Para
que deje de ejecutarse el bucle como antes hemos mencionado depende de la
condicin,
que
deber
de
ser
falsa
para
que
el
bucle
se
detenga.
Debemos tener en cuenta que a diferencia de otros bucles este no llegar a ejecutarse
si la condicin es falsa, ya que la condicin se comprueba antes de entrar en el bucle.
34
Una de las utilidades del bucle for es en el bucle infinito, que pese a que puede hacerse
con todos los bucles es el for con el que se usa. Estos bucles infinitos son usados para
que el bucle no concluya nunca hasta que en el cuerpo se encuentre un break. Por otro
lado la construccin de este bucle for es muy sencilla, for (; ;).
Bucles while:
Tiene cierta semejanza con el bucle for, as es en el uso de una inicializacin, una
condicin y un incremento. Otra de sus similitudes es el momento en el que analizan la
condicin que en ambos es antes de ejecutar el bucle. Sin embargo, en su esquema
bsico aunque parezcan diferentes, son el mismo:
35
Algunas de las veces podremos saber antes de empezar el bucle cuantas veces se va
a ejecutar.
Bucles do-while:
Este es el nico bucle que al menos se va a ejecutar una vez puesto que este bucle
examina la condicin una vez se ha ejecutado el bucle, esto es, al final del mismo
Este bucle es muy til por ejemplo en mens dado que el men debe de ejecutarse al
menos una vez.
36
Sentencias de salto:
Hay cuatro sentencias
de
salto
en
C:
break,
return,
goto
contine.
Suelen estar condicionadas (que solo las ejecute el programa en un determinado caso).
Se desaconseja la utilizacin de este tipo de sentencia de control, sobre todo el goto,
ya que su uso implica un aumento de la probabilidad de cometer errores, dificulta la
legibilidad del cdigo y es mucho ms difcil corregir errores y cambiar secuencias de
cdigo.
Sentencia break:
La instruccin de salto break se usa para interrumpir (romper) la ejecucin normal de
un bucle, es decir, la instruccin break finaliza la ejecucin de un bucle y, por tanto, el
control del programa se transfiere (salta) a la primera instruccin despus del bucle.
Sentencia return
La instruccin de salto return es utilizada en lenguaje C para devolver el control de
ejecucin desde la funcin que contiene el return a la rutina que la invoc y para indicar
el valor de retorno de una funcin.
Sentencia goto
La instruccin de salto goto se puede usar en un programa, para transferir
incondicionalmente el control del mismo a la primera instruccin despus de una
etiqueta, o dicho de otra forma, al ejecutar una instruccin goto, el control del programa
se transfiere (salta) a la primera instruccin despus de una etiqueta.
Sentencia contine
La instruccin de salto contine siempre se usa para interrumpir (romper) la ejecucin
normal de un bucle. Sin embargo, el control del programa no se transfiere a la primera
instruccin despus del bucle, como s hace la instruccin break, es decir, el bucle no
finaliza, sino que, finaliza la iteracin en curso, transfirindose el control del programa a
la condicin de incremento de contadores y despus a la condicin de salida del bucle,
para decidir si se debe realizar una nueva iteracin o no.
CONCLUSIONES
38
BIBLIOGRAFA
Paraninfo.
Taub Herbert. Circuitos digitales y Microprocesadores. Ed. Mc Graw Hill
lvaro Prez Roldn, Programacin de un microprocesador con la ayuda de
7897-600-0.
Tipos
de
ensambladores,
extrado
http://informatica4194.webnode.mx/contactanos/tipos-de-ensambladores/
39
de:
SISTEMAS
EMBEBIDOS
40