beautypg.com

4 stack memory, 4 memory management unit, 5 memory mapping – Maxim Integrated MAXQ622 User Manual

Page 12: 2 .3 .4 stack memory -8

background image

MAXQ612/MAXQ622 User’s Guide

2-8

Maxim Integrated

2.3.4 Stack Memory

The MAXQ612/MAXQ622 implement a soft stack that uses the on-chip data memory (SRAM) for storage of program
return addresses and general-purpose use . The stack is used automatically by the processor when the CALL, RET, and
RETI instructions are executed and when an interrupt is serviced; it can also be used explicitly to store and retrieve data
by using the PUSH, POP, and POPI instructions . The POPI instruction acts identically to the POP instruction, except
that it additionally set the IPS bits .
The width of the stack is 16 bits to accommodate the instruction pointer size . As the stack pointer register, SP, is used
to hold the index of the top of the stack, the maximum size of the stack allowed for a MAXQ612/MAXQ622 is the SRAM
data memory size .
On reset, the stack pointer SP initializes to the top of the stack (03F0h) . The CALL, PUSH, and interrupt vectoring
operations increase the stack depth (decrement SP) and then store a value at the memory location pointed to by SP .
The RET, RETI, POP, and POPI operations retrieve the value at @SP and then decrease the stack depth (increment SP) .

2.4 Memory Management Unit

Memory allocation and access control for program and data memory is managed by the MMU .
The MAXQ612/MAXQ622 MMU supports the following:
• Flash code memory of up to 128KB; utility ROM of 6KB and data memory SRAM of 6KB .
• In-system and in-application programming of embedded flash (flash versions only) .
• Access to any of the three memory areas (SRAM, code memory, utility ROM) using the data memory pointers and

the code pointer .

• Execution from any of the program memory areas (code memory, factory written and tested utility ROM routines)

and from data memory .

Given the above capabilities, the following rules apply to the memory map:
• Program memory:
Physical program memory pages (P0, P1, P2, P3) are logically mapped into data space based upon selection of

byte/word access mode and CDA[1:0] bit settings .

• Data memory:
Access can be either word or byte .
All 16 data pointer address bits are significant in either access mode (word or byte) .
The MAXQ612/MAXQ622 can merge program and data into a linear memory map . This is accomplished by mapping
the data memory into the program space or mapping program memory segment into the data space .

2.5 Memory Mapping

Figure 2-3 summarizes the MAXQ612/MAXQ622 default memory maps .

This manual is related to the following products: