Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
MANEJO DE MEMORIA
25/ OCT/2018
1
Resumen
2
Índice
INTRODUCCIÓN ---------------------------------------------------------------------- 4 -
SOLUCIÓN PROPUESTA----------------------------------------------------------- 5 -
RESULTADOS ------------------------------------------------------------------------- 5 -
CONCLUSIONES ---------------------------------------------------------------------- 6 -
REFERENCIAS ------------------------------------------------------------------------ 6 -
APÉNDICES ---------------------------------------------------------------------------- 7 -
CÓDIGO-----------------------------------------------------------------------------------8
-
3
Introducción
El problema a resolver es escribir un programa que almacene los valores {00, 01,
02, 03, 04, 05, 06, 07, 08,09} en la dirección de memoria 0x1FFFF0F0 Hexadecimal.
4
Solución propuesta
Para resolver el problema se usó un puntero tipo char, el cual permite almacenar 1
byte de memoria, y no es necesario gastar más recurso para almacenar estos
valores, el puntero nos permite apuntar en la dirección de memoria requerida
0x1FFFF0F0. Al hacer la asignación =0x1FFFF0F0, se dice que es la dirección de
memoria hacia dónde va el apuntador. Así guardara los numero del 0 al 9 en
hexadecimal de mayor a menor
Resultados
Revisando la memoria que si indico en el programa podemos ver que los valores
están almacenados en la memoria de forma ordenada
5
Conclusiones
Se puede observar que es sencillo almacenar valores en cierta dirección de
memoria, aunque cabe mencionar que la que se utilizó en el programa es memoria
RAM, lo cual nos lleva a la conclusión de que puede ser leída y escrita.
Referencias:
http://www2.elo.utfsm.cl/~lsb/elo320/clases/c3.pdf
https://ingenieriaticelaya.files.wordpress.com/2014/09/manejo-de-memoria.pdf
notas de clase.
6
Apéndices
El microprocesador utilizado almacena instrucciones y datos conforme a la tarea
que se esté realizando.
En este caso la memoria utilizada es RAM, significa que puede ser leída y escrita
las veces que se necesiten, aunque no siempre podremos tener cierta información
a nuestra disposición porque solo almacena cuando la tarjeta está conectada. Se
podría decir que tiene un almacenamiento temporal.
Ahora un puntero es una variable que contiene la dirección de memoria de un dato
o de otra variable. El puntero apunta al espacio físico donde se encuentra la
variable. Un puntero nos permite sumar o restar números enteros, pero su
funcionamiento es de posiciones, lo que significa que podremos movernos en
espacios de memoria.
A un puntero no se le puede realizar operaciones aritméticas como la suma, resta,
etc. con otro puntero. Ya que solo nos indica una dirección.
7
Código.
/**
* @file memoria_oct18.c
* @brief Application entry point.
*/
#include <stdio.h>
#include "board.h"
#include "pin_mux.h"
#include "clock_config.h"
#include "MKL25Z4.h"
/*
* @brief Application entry point.
*/
int main(void) {
printf("Hello World\n");
uint8_t *p;
p=0x1FFFF0F0;
*p=0x00;
*(p+1)= 0x01;
*(p+2)= 0x02;
*(p+3)= 0x03;
*(p+4)= 0x04;
*(p+5)= 0x05;
*(p+6)= 0x06;
*(p+7)= 0x07;
*(p+8)= 0x08;
*(p+9)= 0x09;