Curso de KellyBootloader - #01 - especificaciones de la Beta 3> - ErickBinaryFormat

Todo esto lo tome del documento mark down de la especificación de la Beta 3 de KellyBootloader para arriba…

EBF Manual Specification - For KellyBootloader beta 3 and upper

EBF-Specifications

TODO LO QUE HAY AQUÍ SON SLLO RECOMENDACIONES Y SEGUIRLAS NO ES OBLIGATORIO, 0ERO SE RECOMIENDA PARA MEJOR COMOATIBILIDAD

EBF-SPC-001

La especificación EBF-SPC-001 estableze qué los 64 kilobytes disponible de Ram se distribuyen en las siguientes regiones

Start:   End:     Description:
000000-000009 - > registros temporales usados en operaciones
000011-002000 - > variables direccionables estáticas
002001-004999 - > pools, buffers y array dinamicos
005000-006000 - > variables dinamicas
006001-010000 - > para tu kernel
010001-015000 - > memoria personalizable
015001-050000 - > para los procesos multitarea
050001-??????? - > reservada

EBF-SPC-002

La especificación EBF-SPC-002 especifica que si quieres usar 32 bits usa 2 compartimientos de la memoria

EBF-SPC-003

La especificación EBF-SPC-003 especifica que un pool es conformado por una parte de memoria principal y las secundarias
Ex: un pool ubicado en 002052 con una longitud de 000003 qué tiene los siguientes valores (1, 2, 3) esta localizado con el siguiente te método de memoria

Val  000003 000001 000002 000003
Pos  002052 002053 002054 002055

EBF-SPC-004

La sintaxis del compilador de alto nivel es como C pero no usas ; si no que saltos de linea

EBF-SPC-005

Todos los binarios formatiados con el ErickBinaryFormat tiene que iniciar con las 2 letras del mágico y la tercera letra tiene que ser the valor del carácter 3 en únicode (no el número literal, es el carácter con ese código) después irán las instrucciones del programa

EBF-SPC-006

Los parámetros del programa al ser ejecutados en la terminal tendrán sus pools localizados en las siguientes regiones

Param:  AdPool:
000001  003001
000002  003002
000003  003003
000004  003004
000005  003005
000006  003006
000007  003007

Cómo manejas la ram?

1 me gusta

pues simplemente hay un array interno al que pueden acceder los binarios, la verdad como no se manejar ram real entonces lo simulo con

prototype t16								memory_acces[32000];

(sacado del .h de ErickBinaryFormat)

32 mb? Tremendo, si quieres escalar a más te recomiendo que empieces a buscar otra forma mejor, después se te va hacer complicado manejar el array.

son en realidad 64 kilobytes ya que t16 es un alias de

typedef short t16;

asi que son 64 kilobytes pero son 32000 espacios disponibles en la memoria