Microchip Technology DM183037 Data Sheet

Page of 696
PIC18F97J94 FAMILY
DS30575A-page 114
 2012 Microchip Technology Inc.
6.1
Program Memory Organization
PIC18 microcontrollers implement a 21-bit Program
Counter that is capable of addressing a 2-Mbyte
program memory space. Accessing a location between
the upper boundary of the physically implemented
memory and the 2-Mbyte address will return all ‘0’s (a
NOP instruction).
The entire PIC18F97J94 family offers a range of
on-chip Flash program memory sizes, from 32 Kbytes
(up to 16,384 single-word instructions) to 128 Kbytes
(65,536 single-word instructions).
• PIC18F65J94, PIC18F85J94 and PIC18F95J94 – 
32 Kbytes of Flash memory, storing up to 
16,384 single-word instructions
• PIC18F66J94, PIC18F86J94 and PIC18F96J94 – 
64 Kbytes of Flash memory, storing up to 
32,768 single-word instructions
• PIC18F66J99, PIC18F86J99 and PIC18F96J99 – 
96 Kbytes of Flash Memory, storing up to 
49,152 single-word instructions
• PIC18F67J94, PIC18F87J94 and PIC18F97J94 – 
128 Kbytes of Flash memory, storing up to 
65,536 single-word instructions
The program memory maps for individual family
members are shown in 
6.1.1
HARD MEMORY VECTORS
All PIC18 devices have a total of three hard-coded
return vectors in their program memory space. The
Reset vector address is the default value to which the
Program Counter returns on all device Resets; it is
located at 0000h.
PIC18 devices also have two interrupt vector
addresses for handling high-priority and low-priority
interrupts. The high-priority interrupt vector is located at
0008h and the low-priority interrupt vector is at 0018h.
The locations of these vectors are shown, in relation to
the program memory map, in 
.
6.1.2
FLASH CONFIGURATION WORDS
Because PIC18F97J94 family devices do not have per-
sistent configuration memory, the top eight words of
on-chip program memory are reserved for configuration
information. On Reset, the configuration information is
copied into the Configuration registers.
The Configuration Words are stored in their program
memory location in numerical order, starting with the
lower byte of CONFIG1 at the lowest address and end-
ing with the upper byte of CONFIG8. The actual
addresses of the Flash Configuration Word for devices
in the PIC18F97J94 family are shown in 
Their location in the memory map is shown with the
other memory vectors in 
. Additional details
on the device Configuration Words are provided in
.
FIGURE 6-2:
HARD VECTOR FOR 
PIC18F97J94 FAMILY 
DEVICES
TABLE 6-1:
FLASH CONFIGURATION 
WORD FOR PIC18F97J94 
FAMILY DEVICES
Device
Program 
Memory 
(Kbytes)
Configuration 
Word Addresses
PIC18F65J94
PIC18F85J94
PIC18F95J94
32
7FF0h to 7FFFh
PIC18F66J94
PIC18F86J94
PIC18F96J94
64
FFF0h to FFFFh
PIC18F66J99
PIC18F86J99
PIC18F96J99
96
17FF0h to 17FFFh
PIC18F67J94
PIC18F87J94
PIC18F97J94
128
1FFF0h to 1FFFFh
Reset Vector
Low-Priority Interrupt Vector
0000h
0018h
On-Chip
Program Memory
High-Priority Interrupt Vector
0008h
1FFFFFh
Read ‘0’
Legend:
(Top of Memory) represents upper boundary 
of on-chip program memory space (see 
 for device-specific values). 
Shaded area represents unimplemented 
memory. Areas are not shown to scale. 
Flash Configuration Words
(Top of Memory-17)
(Top of Memory)