⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ppclib.s

📁 IBM PowerPC 405 在DiabData开发环境下的ucosII移植代码
💻 S
📖 第 1 页 / 共 4 页
字号:
#-------------------------------------------------------------------------------# Function:     ppcMtgpr28# Description:  Move to gpr28# Input:        none# Output:       gpr28=r3#-------------------------------------------------------------------------------	.text        .align  2	.globl  ppcMtgpr28ppcMtgpr28:        ori     r28,r3,0x0000        blr	.type ppcMtgpr28,@function	.size ppcMtgpr28,.-ppcMtgpr28#-------------------------------------------------------------------------------# Function:     ppcMtgpr29# Description:  Move to gpr29# Input:        none# Output:       gpr29=r3#-------------------------------------------------------------------------------	.text        .align  2	.globl  ppcMtgpr29ppcMtgpr29:        ori     r29,r3,0x0000        blr	.type ppcMtgpr29,@function	.size ppcMtgpr29,.-ppcMtgpr29#-------------------------------------------------------------------------------# Function:     ppcMtgpr30# Description:  Move to gpr30# Input:        none# Output:       gpr30=r3#-------------------------------------------------------------------------------	.text        .align  2	.globl  ppcMtgpr30ppcMtgpr30:        ori     r30,r3,0x0000        blr	.type ppcMtgpr30,@function	.size ppcMtgpr30,.-ppcMtgpr30#-------------------------------------------------------------------------------# Function:     ppcMtgpr31# Description:  Move to gpr31# Input:        none# Output:       gpr31=r3#-------------------------------------------------------------------------------	.text        .align  2	.globl  ppcMtgpr31ppcMtgpr31:        ori     r31,r3,0x0000        blr	.type ppcMtgpr31,@function	.size ppcMtgpr31,.-ppcMtgpr31#-------------------------------------------------------------------------------# Function:     ppcMfuart0iir# Description:  Move from uart0 reg. # Input:        none# Output:       r3=uart0(iir)#-------------------------------------------------------------------------------        .text        .align  2        .globl  ppcMfuart0iirppcMfuart0iir:   	addis   r6,r0,0x0302         ori     r6,r6,0xef60	stw	r3,0(r6)        blr        .type ppcMfuart0iir,@function        .size ppcMfuart0iir,.-ppcMfuart0iir#-------------------------------------------------------------------------------# Function:     ppcMfuart1iir# Description:  Move from uart1 reg.# Input:        none# Output:       r3=uart1(iir)#-------------------------------------------------------------------------------        .text        .align  2        .globl  ppcMfuart1iirppcMfuart1iir:        addis   r6,r0,0x0402        ori     r6,r6,0xef60        stw     r3,0(r6)        blr        .type ppcMfuart1iir,@function        .size ppcMfuart1iir,.-ppcMfuart1iir#------------------------------------------------------------------------------# Function:     ppcMfem0mr0# Description:  Move from mode register 0.# Input:        none# Output:       r3= mode reg0#------------------------------------------------------------------------------        .text        .align  2        .globl  ppcMfem0mr0ppcMfem0mr0:        addis   r4,0,EMAC_BASE@h        ori     r4,r4,EMAC_BASE@l        lwz     r3,0(r4)        blr        .type ppcMfem0mr0,@function        .size ppcMfem0mr0,.-ppcMfem0mr0#------------------------------------------------------------------------------# Function:     ppcMfiic0mdbuf# Description:  Move from iic0 master data buffer.# Input:        none# Output:       r3=iic0mdbuf #------------------------------------------------------------------------------        .text        .align  2        .globl  ppcMfiic0mdbufppcMfiic0mdbuf:        addis   r4,0,IIC_MASTER_ADDR@h        ori     r4,r4,IIC_MASTER_ADDR@l        lwz     r3,0(r4)        blr        .type ppcMfiic0mdbuf,@function        .size ppcMfiic0mdbuf,.-ppcMfiic0mdbuf#------------------------------------------------------------------------------# Function:     ppcMfgpo# Description:  Move from gpio output register.# Input:        none# Output:       r3=gpo#------------------------------------------------------------------------------        .text        .align  2        .globl  ppcMfgpoppcMfgpo:        addis   r4,0,GPIO_BASE@h        ori     r4,r4,GPIO_BASE@l        lwz     r3,0(r4)        blr        .type ppcMfgpo,@function        .size ppcMfgpo,.-ppcMfgpo#------------------------------------------------------------------------------# Function:     ppcMfpb1ap# Description:  Move from peripheral bank1 access reg.# Input:        none# Output:       r3=pb1ap#------------------------------------------------------------------------------        .text        .align  2        .globl  ppcMfpb1apppcMfpb1ap:        addi    r4,0,pb1ap     ##pb1ap configuration         mtdcr   ebccfga,r4        ori     r3,0,ebccfgd	blr       .type ppcMfpb1ap,@function        .size ppcMfpb1ap,.-ppcMfpb1ap#-------------------------------------------------------------------------------# Function:     ppcMt_gpr8# Description:  Move to (@gpr8);gpr8 is having addr, mov r3 to addr# Input:        none# Output:       (@gpr8)=r3#-------------------------------------------------------------------------------	.text        .align  2        .globl  ppcMt_gpr8ppcMt_gpr8:        stw     r3,0(r8)        blr        .type ppcMt_gpr8,@function        .size ppcMt_gpr8,.-ppcMt_gpr8#-------------------------------------------------------------------------------# Function:     ppcMt_gpr9# Description:  Move to @gpr9# Input:        none# Output:       @gpr9=r3#-------------------------------------------------------------------------------	.text        .align  2        .globl  ppcMt_gpr9ppcMt_gpr9:        stw     r3,0(r9)        blr        .type ppcMt_gpr9,@function        .size ppcMt_gpr9,.-ppcMt_gpr9#-------------------------------------------------------------------------------# Function:     ppcMf_gpr8# Description:  Move From @gpr8# Input:        none# Output:       r3 = @gpr8#-------------------------------------------------------------------------------	.text        .align  2        .globl  ppcMf_gpr8ppcMf_gpr8:        lwz     r3,0(r8)        blr        .type ppcMf_gpr8,@function        .size ppcMf_gpr8,.-ppcMf_gpr8#-------------------------------------------------------------------------------# Function:     ppcMf_gpr9# Description:  Move From @gpr9# Input:        none# Output:       r3 = @gpr9#-------------------------------------------------------------------------------	.text        .align  2        .globl  ppcMf_gpr9ppcMf_gpr9:        lwz     r3,0(r9)        blr        .type ppcMf_gpr9,@function        .size ppcMf_gpr9,.-ppcMf_gpr9#-----------------------------------------------------------------------------# Function:     ppcMftcr# Description:  Move from TCR register# Input:        none.# Output:       r3 = contents of TCR register#-----------------------------------------------------------------------------	.text	.align	2        .globl  ppcMftcrppcMftcr:	mftcr	r3        blr	.type ppcMftcr,@function        .size ppcMftcr,.-ppcMftcr#-----------------------------------------------------------------------------# Function:     ppcMttcr# Description:  Move to TCR register# Input:        r3 - new value of TCR.# Output:       none#-----------------------------------------------------------------------------	.text	.align	2        .globl  ppcMttcrppcMttcr:	mttcr	r3        blr 	.type ppcMttcr,@function        .size ppcMttcr,.-ppcMttcr#-----------------------------------------------------------------------------# Function:     ppcMftsr# Description:  Move from TSR register# Input:        none.# Output:       r3 = contents of TSR register#-----------------------------------------------------------------------------	.text	.align	2        .globl  ppcMftsrppcMftsr:	mftsr	r3        blr	.type ppcMftsr,@function        .size ppcMftsr,.-ppcMftsr#-----------------------------------------------------------------------------# Function:     ppcMttsr# Description:  Move to TSR register# Input:        r3 - new value of TSR.# Output:       none#-----------------------------------------------------------------------------	.text	.align	2        .globl  ppcMttsrppcMttsr:	mttsr	r3        blr	.type ppcMttsr,@function        .size ppcMttsr,.-ppcMttsr	#-------------------------------------------------------------------------------# Function:     ppcMfbear# Description:  Move from BEAR register# Input:        none# Output:       r3 - value of BEAR.#-------------------------------------------------------------------------------        .text	.align	2        .globl  ppcMfbearppcMfbear:        addi    r4,r0,mem_bear	mtdcr	memcfga,r4	mfdcr	r3,memcfgd        nop        nop        nop        blr        .type  ppcMfbear,@function        .size  ppcMfbear,.-ppcMfbear#-------------------------------------------------------------------------------# Function:     ppcMtbear# Description:  Move to BEAR register# Input:        r3 - new value of BEAR.# Output:       none#-------------------------------------------------------------------------------        .text	.align	2        .globl  ppcMtbearppcMtbear:        addi    r4,r0,mem_bear	mtdcr	memcfga,r4	mtdcr	memcfgd,r3#ifdef PASS2_405GP        nop        nop        nop#endif        blr        .type  ppcMtbear,@function        .size  ppcMtbear,.-ppcMtbear#-----------------------------------------------------------------------------# Function:     ppcMfpit# Description:  Move from PIT register# Input:        none                  # Output:       r3 - value of PIT.#-----------------------------------------------------------------------------        .text        .align  2        .globl  ppcMfpitppcMfpit:        mfpit   r3        blr        .type ppcMfpit,@function        .size ppcMfpit,.-ppcMfpit#-----------------------------------------------------------------------------# Function:     ppcMtpit# Description:  Move to PIT register# Input:        r3 - new value of PIT.# Output:       none#-----------------------------------------------------------------------------	.text	.align	2        .globl  ppcMtpitppcMtpit:	mtpit	r3        blr	.type ppcMtpit,@function        .size ppcMtpit,.-ppcMtpit#************************************************************************#   Jump to the start the address in r3                                 *#                                                                       *#   CALL BY:    jump_to_func(start_address);                            *#               uint32 start_address;   address to jump to              *#   ON EXIT:    Doesn't return                                          *#                                                                       *#************************************************************************    .align  2    .globl  jump_to_funcjump_to_func:    stwu    r1,-4(r1)    mfspr   r0,8              # Load the return address(LR) in R0    stw     r0,4(r1)          # Store the return address on the stack    mtspr   8,r3              # Load the address into Link Register    bclrl   20,0    lwz     r0,4(r1)          # Get return address into R0    mtspr   8,r0              # Put return address into Link Register    addi    r1,r1,4           # Update the stack pointer    blr#-------------------------------------------------------------------------------# Function:     ppcMtchcr0# Description:  Move to Chip control register 0# Input:        r3 - new value of CHCR0.# Output:       none#-------------------------------------------------------------------------------        .text	.align	2        .globl  ppcMtchcr0ppcMtchcr0:	mtdcr	chcr0,r3        nop        nop        nop        blr        .type  ppcMtchcr0,@function        .size  ppcMtchcr0,.-ppcMtchcr0#-------------------------------------------------------------------------------# Function:     ppcMtpb2ap# Description:  Move to Peripheral Bank 2 Access Parameters# Input:        r3 - new value of PB2AP# Output:       none#-------------------------------------------------------------------------------        .text    	.align  2        .globl  ppcMtpb2apppcMtpb2ap:    addi    r4,0,pb2ap    mtdcr   ebccfga,r4   	mtdcr   ebccfgd,r3    blr		.type  ppcMtpb2ap,@function        .size  ppcMtpb2ap,.-ppcMtpb2ap#-------------------------------------------------------------------------------# Function:     ppcMtpb2cr# Description:  Move to Peripheral Bank 2 Configuration Registers# Input:        r3 - new value of PB2CR# Output:       none#-------------------------------------------------------------------------------        .text        .align  2        .globl  ppcMtpb2crppcMtpb2cr:    addi    r4,0,pb2cr    mtdcr   ebccfga,r4    mtdcr   ebccfgd,r3    blr        .type  ppcMtpb2cr,@function        .size  ppcMtpb2cr,.-ppcMtpb2cr#-------------------------------------------------------------------------------# Function:     restartPPC# Description:  Restart the system by forcing a watchdog timer reset# Input:        none# Output:       none#-------------------------------------------------------------------------------        .text        .align  2        .globl  restartPPCrestartPPC:        addis   r3,0,0x3000     # Init TCR to WP = 2^17 clks, force sys reset, all ints disabled        ori     r3,r3,0        mtspr   tcr,r3wd_loop:        b       wd_loop         # Loop endlessly until the wdt resets the system        .type  restartPPC,@function        .size  restartPPC,.-restartPPC

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -