8XC196MC, MD, MH USER’S MANUAL

Appendix C includes a table of the windowable SFRs with the WSR values and direct addresses for each window size. The following examples explain how to determine the WSR value and di- rect address for any windowable location. An additional example shows how to set up a window by using the linker locator.

4.2.2.132-byte Windowing Example

Assume that you wish to access location 014BH (a location in the upper register file used for gen- eral-purpose register RAM) with register-direct addressing through a 32-byte window. Table 4-11 on page 4-15 shows that you need to write 4AH to the window selection register. It also shows that the base address of the 32-byte memory area is 0140H. To determine the offset, subtract that base address from the address to be accessed (014BH – 0140H = 000BH). Add the of fset to the base address of the window in the lower register file (00E0H, from Table 4-12). The direct ad- dress is 00EBH (000BH + 00E0H).

4.2.2.264-byte Windowing Example

Assume that you wish to access the WG_CONTROL register (location 1FCCH) with register-di- rect addressing through a 64-byte window. Table 4-11 shows that you need to write 3FH to the window selection register. It also shows that the base address of the 64-byte memory area is 1FC0H. To determine the offset, subtract that base address from the address to be accessed (1FCCH – 1FC0H = 000CH). Add the offset to the base address of the window in the lower reg- ister file (00C0H, from Table 4-12). The direct address is 00CCH (000CH + 00C0H).

4.2.2.3128-byte Windowing Example

Assume that you wish to access location 1F42H (the EPA0_TIME register) with register-direct addressing through a 128-byte window. Table 4-11 shows that you need to write 1EH to the win- dow selection register. It also shows that the base address of the 128-byte memory area is 1F00H. To determine the offset, subtract that base address from the address to be accessed (1F42H – 1F00H = 0042H). Add the offset to the base address of the window in the lower register file (0080H, from Table 4-12). The direct address is 00C2H (0042H + 0080H).

4.2.2.4Unsupported Locations Windowing Example

Assume that you wish to access location 1FF1H (the P5_MODE register, a memory-mapped SFR) with register-direct addressing through a 128-byte window. This location is in the range of addresses (1FE0–1FFFH) that cannot be windowed. Although you could set up the window by writing 1FH to the WSR, reading this location through the window would return FFH (all ones) and writing to it would not change the contents. However, you could access the peripheral SFRs in the range of 1F80–1FDFH with their windowed direct addresses.

4-16

Page 81
Image 81
Intel 8XC196MD, 8XC196MH manual 2.1 32-byte Windowing Example, 2.2 64-byte Windowing Example, 2.3 128-byte Windowing Example