Hola, vamos por partes.
1.- La duda de la memoria RAM es por que en mi programa a la hora de compilar no hace muchos me surgio el siguiente ERROR. " L1102 ERROR out off allocation space in segment RAM1 at address 0x980 ", yo me imagine que este error era porque no tenia suficiente espacio de RAM en el micro y entonces me puse a investigar por las web de freescale sin demasiado existo lo maximo que encontre es que a lo mejor tenia limitada la memoria RAM ¿pero creo que no es ese mi caso?.
Entonces al ver este FORO decidi hacer la consulta porque no entiendo porque en la nueva imagen que adjunto (te he marcado con circulos rojos lo que no entiendo) si el micro dispone de 2048 bytes porque en el DATA del Proccess Expert aparece 4075 y por ese motivo en la primera pregunta de este hilo hacia la siguiente duda (la carpeta Libs de la imagen que te adjunto hay unos 2018 bytes fijos que se crean con el programa y unos 229 que se crean con las Beans si le resto esto al Data (4075 – 2018 – 229 = 1828) tendría sentido que esas es la parte de memoria que tengo ocupado respecto a los 2048 que tiene el micro")
Para saber realmente la memoria que lleva ocupada tu programa tenes que mirar el map de tu proyecto, lo ubicas en la pestaña \Project Settings\Linker Files\Tu proyecto.map. Es un archivo de texto, cuando lo abras vas a encontrar muchisima información. Casi sobre el final del archivo vas a encontrar un listado de asignación ordenado por direcciones tanto de RAM, IO y ROM. Esos valores son lo que realmente ocupa tu programa.
Cuando el linker reporta el error que comentas es porque no tiene mas lugar para asignar variables en esa área. Lo más probable es que cuando creaste el proyecto lo hayas creado en modo
Tiny, de esta manera el compilador asume que todas las variables están ubicadas en la zero page, y así las direcciona, el problema con este modo es que hay poco espacio para este área, si es correcto lo que te comento deberías crear el proyecto en modo
Small. Otra manera de hacerlo, si es que al proyecto lo creaste como Tiny, es para algunas variables cambiar el lugar de almacenamiento, te pego un ejemplo.
long Pepe;
#pragma DATA_SEG MY_FAR_DATA
long Juan;
void main( void )
{
long Pedro = Pepe + Juan;
Si haces esto con un proyecto vació, vas a ver como Pepe es asignada al address 0x40 ( Comienzo del zero page ) que es el default que asume el compilador al ser tiny, y Juan al address 0x100 que es donde comienza el área FAR_RAM1
Saludos !