5.6.2 Linear Data Memory
The linear data memory is the region from FSR address 0x2000 to FSR address 0x2FEF. This region is a virtual region that points back to the 80-byte blocks of GPR memory in all the banks. Refer to Figure 5-10 for the Linear Data Memory Map.
Important: The address range
0x2000 to 0x2FEF represents the complete addressable Linear Data Memory for PIC® devices (up to Bank 50). The actual implemented Linear
Data Memory will differ from one device to the other in a family. Refer to the table
below for the memory limits of PIC16(L)F18455/56
devices.
Bank # | {bank:offset} | Linear address | PIC16(L)F18455 | PIC16(L)F18456 |
---|---|---|---|---|
0 | 0x020-0x06F | 0x2000-0x204F | 80 | 80 |
1 | 0x0A0-0x0EF | 0x2050-0x209F | 80 | 80 |
2 | 0x120-0x16F | 0x20A0-0x20EF | 80 | 80 |
3 | 0x1A0-0x1EF | 0x20F0-0x213F | 80 | 80 |
4 | 0x220-0x26F | 0x2140-0x218F | 80 | 80 |
5 | 0x2A0-0x2EF | 0x2190-0x21DF | 80 | 80 |
6 | 0x320-0x36F | 0x21E0-0x222F | 80 | 80 |
7 | 0x3A0-0x3EF | 0x2230-0x227F | 80 | 80 |
8 | 0x420-0x46F | 0x2280-0x22CF | 80 | 80 |
9 | 0x4A0-0x4EF | 0x22D0-0x231F | 80 | 80 |
10 | 0x520-0x56F | 0x2320-0x236F | 80 | 80 |
11 | 0x5A0-0x5EF | 0x2370-0x23BF | 80 | 80 |
12 |
0x620-0x64F 0x620-0x66F |
0x23C0-0x23EF 0x23C0-0x240F |
48
|
80 |
13 | 0x6A0-0x6EF | 0x2410-0x245F | 80 | |
14 | 0x720-0x76F | 0x2460-0x24AF | 80 | |
15 | 0x7A0-0x7EF | 0x24B0-0x24FF | 80 | |
16 | 0x820-0x86F | 0x2500-0x254F | 80 | |
17 | 0x8A0-0x8EF | 0x2550-0x259F | 80 | |
18 | 0x920-0x96F | 0x25A0-0x25EF | 80 | |
19 | 0x9A0-0x9EF | 0x25F0-0x263F | 80 | |
20 | 0xA20-0xA6F | 0x2640-0x268F | 80 | |
21 | 0xAA0-0xAEF | 0x2690-0x26DF | 80 | |
22 | 0xB20-0xB6F | 0x26E0-0x272F | 80 | |
23 | 0xBA0-0xBEF | 0x2730-0x277F | 80 | |
24 | 0xC20-0xC6F | 0x2780-0x27CF | 80 | |
25 | 0xCA0-0xCBF | 0x27D0-0x27EF | 32 |
Unimplemented memory reads as 0x00. Use of the linear data memory region allows buffers to be larger than 80 bytes because incrementing the FSR beyond one bank will go directly to the GPR memory of the next bank.
The 16 bytes of common memory are not included in the linear data memory region.