Unsupported Locations Windowing Example; Using The Linker Locator To Set Up A Window - Intel 8XC196K Series User Manual

Table of Contents

Advertisement

4.2.2.4

Unsupported 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.2.2.5

Using the Linker Locator to Set Up a Window

In this example, the linker locator is used to set up a window. The linker locator locates the win-
dow in the upper register file and determines the value to load in the WSR for access to that win-
dow. (Please consult the manual provided with the linker locator for details.)
*********
mod1
**************
mod1 module main
public function1
extrn
?WSR
wsr
equ
14h:byte
sp
equ
18h:word
oseg
var1:
dsw
1
var2:
dsw
1
var3:
dsw
1
cseg
function1:
push
wsr
ldb
wsr, #?WSR
add var1, var2, var3
;
;
;
ldb
wsr, [sp]
add sp, #2
ret
end
********
mod2
**************
;Main module for linker
;Must declare ?WSR as external
;Allocate variables in an
;overlayable segment
;Prolog code for wsr
;Prolog code for wsr
;Use the variables as registers
;Epilog code for wsr
;Epilog code for wsr
MEMORY PARTITIONS
4-21

Advertisement

Table of Contents
loading

Table of Contents