| 数据搜索系统,热门电子元器件搜索 |
|
D301 数据表(PDF) 57 Page - Microchip Technology |
|
|
|||||||||||||||||||||||||||||
D301 数据表(HTML) 57 Page - Microchip Technology |
|
57 / 416 page ![]() 2016-2018 Microchip Technology Inc. DS30010118D-page 57 PIC24FJ256GA705 FAMILY TABLE 4-13: EDS MEMORY ADDRESS WITH DIFFERENT PAGES AND ADDRESSES 4.2.6 SOFTWARE STACK Apart from its use as a Working register, the W15 register in PIC24F devices is also used as a Software Stack Pointer (SSP). The pointer always points to the first available free word and grows from lower to higher addresses. It pre-decrements for stack pops and post- increments for stack pushes, as shown in Figure 4-6. Note that for a PC push during any CALL instruction, the MSB of the PC is zero-extended before the push, ensuring that the MSB is always clear. The Stack Pointer Limit Value register (SPLIM), associ- ated with the Stack Pointer, sets an upper address boundary for the stack. SPLIM is uninitialized at Reset. As is the case for the Stack Pointer, SPLIM<0> is forced to ‘0’ as all stack operations must be word- aligned. Whenever an EA is generated using W15 as a source or destination pointer, the resulting address is compared with the value in SPLIM. If the contents of the Stack Pointer (W15) and the SPLIM register are equal, and a push operation is performed, a stack error trap will not occur. The stack error trap will occur on a subsequent push operation. Thus, for example, if it is desirable to cause a stack error trap when the stack grows beyond address 2000h in RAM, initialize the SPLIM with the value, 1FFEh. Similarly, a Stack Pointer underflow (stack error) trap is generated when the Stack Pointer address is found to be less than 0800h. This prevents the stack from interfering with the SFR space. A write to the SPLIM register should not be immediately followed by an indirect read operation using W15. FIGURE 4-6: CALL STACK FRAME DSRPAG (Data Space Read Register) DSWPAG (Data Space Write Register) Source/Destination Address while Indirect Addressing 24-Bit EA Pointing to EDS Comment x(1) x(1) 0000h to 1FFFh 000000h to 001FFFh Near Data Space(2) 2000h to 7FFFh 002000h to 007FFFh 001h 001h 8000h to FFFFh 008000h to 00FFFEh EPMP Memory Space 002h 002h 010000h to 017FFEh 003h • • • • • 1FFh 003h • • • • • 1FFh 018000h to 0187FEh • • • • FF8000h to FFFFFEh 000h 000h Invalid Address Address Error Trap(3) Note 1: If the source/destination address is below 8000h, the DSRPAG and DSWPAG registers are not considered. 2: This Data Space can also be accessed by Direct Addressing. 3: When the source/destination address is above 8000h and DSRPAG/DSWPAG are ‘0’, an address error trap will occur. Note: A PC push during exception processing will concatenate the SRL register to the MSB of the PC prior to the push. <Free Word> PC<15:0> 000000000 0 15 W15 (before CALL) W15 (after CALL) 0000h PC<22:16> POP : [--W15] PUSH : [W15++] |
|
链接网址 |
| ALLDATASHEET是否为您带来帮助? [ DONATE ] |
关于 Alldatasheet | 广告服务 | 联系我们 | 隐私政策 | 数据表链接 | 链接交换 | 制造商名单 All Rights Reserved©Alldatasheet.com |
| Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
|
Family Site : ic2ic.com |
icmetro.com |