NO TENGO IDEA!!! porq la memoria de programa del pic esta divida en paginas???
tambien se aplica la interrogante a la memoria de datod (dividida en bancos), para cualquier pic indiferentemente???????
Por una razon muy simple:ç
Mira el ancho de las instrucciones del PIC
AA BBBB CCCC DDDD
14 bits.
El formato de las instrucciones GOTO y CALL son:
00 XAAA AAAA AAAA
Mientras que 00 X (donde X diferencia el CALL y el GOTO) es el codigo de operacion los 11 bits marcados como A son la direccion a saltar en binario.
Asi tenemos 2 elevado a la 11 direcciones accedibles directamente en un salto o llamada lo que de una memoria de 2048 pociciones.
El pic 16F877 tiene 8K (8192) pociciones de memoria por lo que deve existir algun mecanismo para direccionarlas y esto es la paginacion hecha sobre el rejistro PCLATH (de PC Latch high o cerrojo de la parte alta del PC) que, cada vez que se ejecuta una instruccion GOTO o CALL carga los bits del PC con lo bits correspondientes del PCLATH (usa los bits 4 y 3)
Con la memoria de datos es muy similar. -Para acceder a las 256 pociciones de memoria usa dos bancos y los pagina a travez de "STATUS, RP0"... ¿o eran cuatro y usaba tambien STATUS, RP1??? bueno, no me acuerdo...
Lo real es que esta organizacion es tipica de los procesadores RISC (que a mi juicio son mucho mejor que otros de cierta marca que vende procesadores para computadoras personales...) que solo cuentan con los bits de la palabra de instruccion para direccionar la memoria.
Mira el ancho de las instrucciones del PIC
AA BBBB CCCC DDDD
14 bits.
El formato de las instrucciones GOTO y CALL son:
00 XAAA AAAA AAAA
Mientras que 00 X (donde X diferencia el CALL y el GOTO) es el codigo de operacion los 11 bits marcados como A son la direccion a saltar en binario.
Asi tenemos 2 elevado a la 11 direcciones accedibles directamente en un salto o llamada lo que de una memoria de 2048 pociciones.
El pic 16F877 tiene 8K (8192) pociciones de memoria por lo que deve existir algun mecanismo para direccionarlas y esto es la paginacion hecha sobre el rejistro PCLATH (de PC Latch high o cerrojo de la parte alta del PC) que, cada vez que se ejecuta una instruccion GOTO o CALL carga los bits del PC con lo bits correspondientes del PCLATH (usa los bits 4 y 3)
Con la memoria de datos es muy similar. -Para acceder a las 256 pociciones de memoria usa dos bancos y los pagina a travez de "STATUS, RP0"... ¿o eran cuatro y usaba tambien STATUS, RP1??? bueno, no me acuerdo...
Lo real es que esta organizacion es tipica de los procesadores RISC (que a mi juicio son mucho mejor que otros de cierta marca que vende procesadores para computadoras personales...) que solo cuentan con los bits de la palabra de instruccion para direccionar la memoria.