13 bdm accesses of the emac registers – Freescale Semiconductor MCF5480 User Manual

Page 297

Advertising
background image

Background Debug Mode (BDM)

MCF548x Reference Manual, Rev. 3

Freescale Semiconductor

8-47

8.5.3.3.12

BDM Accesses of the Stack Pointer Registers (A7: SSP and USP)

The Version 4 ColdFire core supports two unique stack pointer (A7) registers: the supervisor stack pointer

(SSP) and the user stack pointer (USP). The hardware implementation of these two programmable-visible

32-bit registers does not uniquely identify one as the SSP and the other as the USP. Rather, the hardware

uses one 32-bit register as the currently-active A7; the other is named simply the OTHER_A7. Thus, the

contents of the two hardware registers is a function of the operating mode of the processor:

if SR[S] = 1

then

A7 = Supervisor Stack Pointer

OTHER_A7 = User Stack Pointer

else

A7 = User Stack Pointer

OTHER_A7 = Supervisor Stack Pointer

The BDM programming model supports reads and writes to A7 and OTHER_A7 directly. It is the

responsibility of the external development system to determine the mapping of A7 and OTHER_A7 to the

two program-visible definitions (supervisor and user stack pointers), based on the SR[S].

8.5.3.3.13

BDM Accesses of the EMAC Registers

The presence of rounding logic in the output datapath of the EMAC requires special care for

BDM-initiated reads and writes of its programming model. In particular, any result rounding modes must

be disabled during the read/write process so the exact bit-wise EMAC register contents are accessed.
For example, a BDM read of an accumulator (ACCx) requires the following sequence:

BdmReadACCx (

rcreg

macsr;

// read current macsr contents & save

wcreg

#0,macsr;

// disable all rounding modes

rcreg

ACCx;

// read the desired accumulator

wcreg

#saved_data,macsr;

// restore the original macsr

)

FPL6

0x81D

32 lsbs of floating-point data register 6

FPU7

0x81E

32 msbs of floating-point data register 7

FPL7

0x81F

32 lsbs of floating-point data register 7

FPIAR

0x821

Floating-point instruction address register

FPSR

0x822

Floating-point status register

FPCR

0x824

Floating-point control register

Local Memory and Module Control Registers

RAMBAR0

0xC04

RAM base address register 0

RAMBAR1

0xC05

RAM base address register 1

MBAR

0xC0F

Primary module base address register (not a core register)

Table 8-26. ColdFire CPU Control Register Map (Continued)

Name

CPU Space (Rc)

Register Name

Advertising
This manual is related to the following products: