📄 systimer.s
字号:
/* sysTimer.s - pxa270 low level system timer support for sysTimer.c *//* Copyright 2002 Wind River Systems, Inc. *//*TODO - Remove the pxa270 modification history and begin a new history starting with version 01a and growing the history upward with each revision.modification history--------------------01a,21may02,scm written.*//*DESCRIPTIONThis module contains low level system timer support routines written in assemblylanguage for sysTimer.c.*/#define _ASMLANGUAGE#include "vxWorks.h"#include "regs.h"#include "arch/arm/arm.h"#include "arch/arm/mmuArmLib.h"#include "arch/arm/excArmLib.h"#include "sysLib.h"#include "config.h" .data .globl VAR(copyright_wind_river) .long VAR(copyright_wind_river)/* * TODO - add low level system timer support routines * for the timer controller. */ /* internals */ /* Read/Write Timer Mode Registers */ .globl FUNC(sysRead_TMR0) .globl FUNC(sysRead_TMR1) .globl FUNC(sysWrite_TMR0) .globl FUNC(sysWrite_TMR1) /* Enable/Disable Timer */ .globl FUNC(sysEnable_TMR0) .globl FUNC(sysEnable_TMR1) .globl FUNC(sysDisable_TMR0) .globl FUNC(sysDisable_TMR1) /* Enable/Disable Timer Auto Reload */ .globl FUNC(sysEnable_Reload_TMR0) .globl FUNC(sysEnable_Reload_TMR1) .globl FUNC(sysDisable_Reload_TMR0) .globl FUNC(sysDisable_Reload_TMR1) /* Enable/Disable Timer Privileged Write Control for User Mode */ .globl FUNC(sysEnable_PU_Mode_TMR0) .globl FUNC(sysEnable_PU_Mode_TMR1) .globl FUNC(sysDisable_U_Mode_TMR0) .globl FUNC(sysDisable_U_Mode_TMR1) /* Read Timer Terminal Count Status */ .globl FUNC(sysRead_TCS_TMR0) .globl FUNC(sysRead_TCS_TMR1) /* Read/Write Timer Input Clock Select */ .globl FUNC(sysRead_CSel_TMR0) .globl FUNC(sysRead_CSel_TMR1) .globl FUNC(sysWrite_CSel_TMR0) .globl FUNC(sysWrite_CSel_TMR1) /* Read/Write Timer Count Registers */ .globl FUNC(sysRead_TCR0) .globl FUNC(sysRead_TCR1) .globl FUNC(sysWrite_TCR0) .globl FUNC(sysWrite_TCR1) /* Read/Write Timer Reload Registers */ .globl FUNC(sysRead_TRR0) .globl FUNC(sysRead_TRR1) .globl FUNC(sysWrite_TRR0) .globl FUNC(sysWrite_TRR1) /* Read/Clear Timer Interrupt Status Registers */ .globl FUNC(sysRead_TISR0) .globl FUNC(sysRead_TISR1) .globl FUNC(sysClear_TISR0) .globl FUNC(sysClear_TISR1) /* Enable/Read Watch Dog Timer */ .globl FUNC(sysEnable_WDTCR) .globl FUNC(sysRead_WDTCR) .text .align 4/****************************************************************************** sysRead_TMR0 - Read Timer 0 Mode Register.** RETURNS: UINT32 containing the current TMR0 settings.*/_ARM_FUNCTION_CALLED_FROM_C(sysRead_TMR0) /* Read Timer 0 Mode Register */ /* clear reserved bits */ mov pc, lr/****************************************************************************** sysRead_TMR1 - Read Timer 1 Mode Register.** RETURNS: UINT32 containing the current TMR1 settings.*/_ARM_FUNCTION_CALLED_FROM_C(sysRead_TMR1) /* Read Timer 1 Mode Register */ /* clear reserved bits */ mov pc, lr/****************************************************************************** sysWrite_TMR0 - Write Timer 0 Mode Register.** R0: UINT32 containing the current TMR0 settings.** RETURNS: */_ARM_FUNCTION_CALLED_FROM_C(sysWrite_TMR0) /* Write Timer 0 Mode Register */ mov pc, lr/****************************************************************************** sysWrite_TMR1 - Write Timer 1 Mode Register.** R0: UINT32 containing the current TMR1 settings.** RETURNS: */_ARM_FUNCTION_CALLED_FROM_C(sysWrite_TMR1) /* Write Timer 1 Mode Register */ mov pc, lr/****************************************************************************** sysEnable_TMR0 - Enable Timer 0.** RETURNS: */_ARM_FUNCTION_CALLED_FROM_C(sysEnable_TMR0) /* Read Timer 0 Mode Register */ /* Set Enable Bit */ /* Write Timer 0 Mode Register */ mov pc, lr/****************************************************************************** sysEnable_TMR1 - Enable Timer 1.** RETURNS:*/_ARM_FUNCTION_CALLED_FROM_C(sysEnable_TMR1) /* Read Timer 1 Mode Register */ /* Set Enable Bit */ /* Write Timer 1 Mode Register */ mov pc, lr/****************************************************************************** sysDisable_TMR0 - Disable Timer 0.** RETURNS:*/_ARM_FUNCTION_CALLED_FROM_C(sysDisable_TMR0) /* Read Timer 0 Mode Register */ /* Set Disable Bit */ /* Write Timer 0 Mode Register */ mov pc, lr/****************************************************************************** sysDisable_TMR1 - Disable Timer 1.** RETURNS:*/_ARM_FUNCTION_CALLED_FROM_C(sysDisable_TMR1) /* Read Timer 1 Mode Register */ /* Set Disable Bit */ /* Write Timer 1 Mode Register */ mov pc, lr/****************************************************************************** sysEnable_Reload_TMR0 - Enable Timer 0 Auto Reload.** RETURNS:*/_ARM_FUNCTION_CALLED_FROM_C(sysEnable_Reload_TMR0) /* Read Timer 0 Mode Register */ /* Set Enable Auto Reload Bit */ /* Write Timer 0 Mode Register */ mov pc, lr/****************************************************************************** sysEnable_Reload_TMR1 - Enable Timer 1 Auto Reload.** RETURNS:*/_ARM_FUNCTION_CALLED_FROM_C(sysEnable_Reload_TMR1) /* Read Timer 1 Mode Register */ /* Set Enable Auto Reload Bit */ /* Write Timer 1 Mode Register */ mov pc, lr/****************************************************************************** sysDisable_Reload_TMR0 - Disable Timer 0 Auto Reload.** RETURNS:*/_ARM_FUNCTION_CALLED_FROM_C(sysDisable_Reload_TMR0) /* Read Timer 0 Mode Register */ /* Set Disable Auto Reload Bit */ /* Write Timer 0 Mode Register */ mov pc, lr/****************************************************************************** sysDisable_Reload_TMR1 - Disable Timer 1 Auto Reload.** RETURNS:*/_ARM_FUNCTION_CALLED_FROM_C(sysDisable_Reload_TMR1) /* Read Timer 1 Mode Register */ /* Set Disable Auto Reload Bit */ /* Write Timer 1 Mode Register */ mov pc, lr/****************************************************************************** sysEnable_PU_Mode_TMR0 - Privileged and User Mode Write Enable for Timer 0.** RETURNS:*/_ARM_FUNCTION_CALLED_FROM_C(sysEnable_PU_Mode_TMR0) /* Read Timer 0 Mode Register */ /* Set Privileged Write Control Bit */ /* Write Timer 0 Mode Register */ mov pc, lr/****************************************************************************** sysEnable_PU_Mode_TMR1 - Privileged and User Mode Write Enable for Timer 1.** RETURNS:*/_ARM_FUNCTION_CALLED_FROM_C(sysEnable_PU_Mode_TMR1) /* Read Timer 1 Mode Register */ /* Set Privileged Write Control Bit */ /* Write Timer 1 Mode Register */ mov pc, lr/****************************************************************************** sysDisable_U_Mode_TMR0 - Disable User Mode Write Enable for Timer 0.** RETURNS:*/_ARM_FUNCTION_CALLED_FROM_C(sysDisable_U_Mode_TMR0) /* Read Timer 0 Mode Register */ /* Set Privileged Write Control Bit */ /* Write Timer 0 Mode Register */ mov pc, lr/****************************************************************************** sysDisable_U_Mode_TMR1 - Disable User Mode Write Enable for Timer 1.** RETURNS:*/_ARM_FUNCTION_CALLED_FROM_C(sysDisable_U_Mode_TMR1) /* Read Timer 1 Mode Register */ /* Set Privileged Write Control Bit */ /* Write Timer 1 Mode Register */ mov pc, lr/****************************************************************************** sysRead_TCS_TMR0 - Read Timer 0 Terminal Count Status.** RETURNS: UINT32 containing the current TMR0 Terminal Count Status.*/_ARM_FUNCTION_CALLED_FROM_C(sysRead_TCS_TMR0) /* Read Timer 0 Mode Register */ /* clear all but TC bits */ mov pc, lr/****************************************************************************** sysRead_TCS_TMR1 - Read Timer 1 Terminal Count Status.** RETURNS: UINT32 containing the current TMR1 Terminal Count Status.*/_ARM_FUNCTION_CALLED_FROM_C(sysRead_TCS_TMR1) /* Read Timer 1 Mode Register */ /* clear all but TC bits */ mov pc, lr/****************************************************************************** sysRead_CSel_TMR0 - Read Timer 0 Input Clock Select.** RETURNS: UINT32 containing the current TMR0 Input Clock Select.*/_ARM_FUNCTION_CALLED_FROM_C(sysRead_CSel_TMR0) /* Read Timer 0 Mode Register */ /* clear all but Clock Select */ mov pc, lr/****************************************************************************** sysRead_CSel_TMR1 - Read Timer 1 Input Clock Select.** RETURNS: UINT32 containing the current TMR1 Input Clock Select.*/_ARM_FUNCTION_CALLED_FROM_C(sysRead_CSel_TMR1) /* Read Timer 1 Mode Register */ /* clear all but Clock Select */ mov pc, lr/****************************************************************************** sysWrite_CSel_TMR0 - Write Timer 0 Input Clock Select.** R0: UINT32 containing the current TMR0 Input Clock Select.** RETURNS:*/_ARM_FUNCTION_CALLED_FROM_C(sysWrite_CSel_TMR0) /* Read Timer 0 Mode Register */ /* mask out clock select bits */ /* Set Input Clock Select Bits */ /* Write Timer 0 Mode Register */ mov pc, lr/****************************************************************************** sysWrite_CSel_TMR1 - Write Timer 1 Input Clock Select.** R0: UINT32 containing the current TMR1 Input Clock Select.** RETURNS:*/_ARM_FUNCTION_CALLED_FROM_C(sysWrite_CSel_TMR1) /* Read Timer 1 Mode Register */ /* mask out clock select bits */ /* Set Input Clock Select Bits */ /* Write Timer 1 Mode Register */ mov pc, lr/****************************************************************************** sysRead_TCR0 - Read Timer 0 Count Register.** RETURNS: UINT32 containing the current TCR0 setting.*/_ARM_FUNCTION_CALLED_FROM_C(sysRead_TCR0) /* Read Timer 0 Count Register */ mov pc, lr/****************************************************************************** sysRead_TCR1 - Read Timer 1Count Register.** RETURNS: UINT32 containing the current TCR1 setting.*/_ARM_FUNCTION_CALLED_FROM_C(sysRead_TCR1) /* Read Timer 1 Count Register */ mov pc, lr/****************************************************************************** sysWrite_TCR0 - Write Timer 0 Count Register.** R0: UINT32 containing the current TCR0 setting.** RETURNS: */_ARM_FUNCTION_CALLED_FROM_C(sysWrite_TCR0) /* Write Timer 0 Count Register */ mov pc, lr/****************************************************************************** sysWrite_TCR1 - Write Timer 1 Count Register.** R0: UINT32 containing the current TCR1 setting.** RETURNS: */_ARM_FUNCTION_CALLED_FROM_C(sysWrite_TCR1) /* Write Timer 1 Count Register */ mov pc, lr/****************************************************************************** sysRead_TRR0 - Read Timer 0 Reload Register.** RETURNS: UINT32 containing the current TRR0 setting.*/_ARM_FUNCTION_CALLED_FROM_C(sysRead_TRR0) /* Read Timer 0 Reload Register */ mov pc, lr/****************************************************************************** sysRead_TRR1 - Read Timer 1 Reload Register.** RETURNS: UINT32 containing the current TRR1 setting.*/_ARM_FUNCTION_CALLED_FROM_C(sysRead_TRR1) /* Read Timer 1 Reload Register */ mov pc, lr/****************************************************************************** sysWrite_TRR0 - Write Timer 0 Reload Register.** R0: UINT32 containing the current TRR0 setting.** RETURNS: */_ARM_FUNCTION_CALLED_FROM_C(sysWrite_TRR0) /* Write Timer 0 Reload Register */ mov pc, lr/****************************************************************************** sysWrite_TRR1 - Write Timer 1 Reload Register.** R0: UINT32 containing the current TRR1 setting.** RETURNS: */_ARM_FUNCTION_CALLED_FROM_C(sysWrite_TRR1) /* Write Timer 1 Reload Register */ mov pc, lr/****************************************************************************** sysRead_TISR0 - Read Timer 0 Interrupt Status Register.** RETURNS: UINT32 containing the current TISR0 setting.*/_ARM_FUNCTION_CALLED_FROM_C(sysRead_TISR0) /* Read Timer 0 Interrupt Status Register */ /* clear all but Timer 0 Interrupt Pending */ mov pc, lr/****************************************************************************** sysRead_TISR1 - Read Timer 1 Interrupt Status Register.** RETURNS: UINT32 containing the current TISR1 setting.*/_ARM_FUNCTION_CALLED_FROM_C(sysRead_TISR1) /* Read Timer 1 Interrupt Status Register */ /* clear all but Timer 1 Interrupt Pending */ mov pc, lr/****************************************************************************** sysClear_TISR0 - Clear Timer 0 Interrupt Status Register.** RETURNS:*/_ARM_FUNCTION_CALLED_FROM_C(sysClear_TISR0) /* Clear Timer 0 Interrupt Status Register */ mov pc, lr/****************************************************************************** sysClear_TISR1 - Clear Timer 1 Interrupt Status Register.** RETURNS:*/_ARM_FUNCTION_CALLED_FROM_C(sysClear_TISR1) /* Clear Timer 1 Interrupt Status Register */ mov pc, lr/****************************************************************************** sysEnable_WDTCR - Enable Watch Dog Timer.** RETURNS:*/_ARM_FUNCTION_CALLED_FROM_C(sysEnable_WDTCR) /* Write WDT initial sequence */ /* Write WDT final sequence */ mov pc, lr/****************************************************************************** sysRead_WDTCR - Read Watch Dog Timer Register.** RETURNS: UINT32 containing the current WDTCR setting.*/_ARM_FUNCTION_CALLED_FROM_C(sysRead_WDTCR) /* Read Watch Dog Timer Register */ mov pc, lr/***EOF***/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -