?? lib_sdram_execute.s
字號:
; ATMEL Microcontroller Software Support - ROUSSET -
; ----------------------------------------------------------------------------
; DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
; DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
; LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
; OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
; LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
; EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;-----------------------------------------------------------------------------
;- File source : Execute.s
;- Object : Execution code to allow consumption measurement
;- Translator : ARM Software Development Toolkit V2.5
;-
;- Exported Resources : ExecuteTest
;- Imported Resources : None
;-
;- 1.0 2002/06/25 ED : Creation
;------------------------------------------------------------------------------
AREA TEST, CODE, READONLY
NB_LOOP EQU 16
;------------------------------------------------------------------------------
;- Function : ExecuteTest
;- Treatments :
;- Input Parameters :
;- r0 = address where to run the test function from
;- r1 = 0 indicates to run the test in ARM, else in Thumb
;- Output Parameters :
;- r0 = copied assembler code length
;- Registers lost : None
;- Called Functions : None
;- Called Macros : None
;------------------------------------------------------------------------------
EXPORT ExecuteTest
ExecuteTest
stmdb r13!, {r4,r5,r6,r14}
mov r4, r0
movs r2, r1
ldreq r2, =ExecuteArmTest
ldrne r2, =ExecuteThumbTest
bic r2, r2, #3
ldr r3, =Execute_end
sub r5, r3, r2
CopyTest_loop
ldr r12, [r2], #4
str r12, [r0], #4
cmp r2, r3
blo CopyTest_loop
;- Test Arm or Thumb Call requested
movs r2, r1
beq ArmCall
;- Thumb Call
add r4, r4, #1
mov lr, pc
bx r4
;- Exit
b Exit
;- Arm Call
ArmCall
mov lr, pc
mov pc, r4
;- Exit
Exit
mov r0, r5
ldmia r13!, {r4,r5,r6, r14}
bx r14
;------------------------------------------------------------------------------
;- Function : ExecuteArmTest
;- Treatments :
;- Input Parameters : None
;- Output Parameters : None
;- Registers lost : None
;- Called Functions : None
;- Called Macros : None
;------------------------------------------------------------------------------
EXPORT ExecuteArmTest
ExecuteArmTest
mov r0, #0
mov r1, #NB_LOOP
ArmTest_first_loop
add r0, r0, #1
cmp r1, r0
beq EndArmExecute
mov r6, #0
mov r7, #NB_LOOP
ArmTest_second_loop
add r6, r6, #1
cmp r7, r6
beq ArmTest_first_loop
b ArmTest_second_loop
EndArmExecute
bx lr
;------------------------------------------------------------------------------
;- Function : ExecuteThumbTest
;- Treatments : AT91 Thumb execution function
;- Input Parameters : None
;- Output Parameters : None
;- Registers lost : None
;- Called Functions : None
;- Called Macros : None
;------------------------------------------------------------------------------
CODE16
EXPORT ExecuteThumbTest
ExecuteThumbTest
mov r0, #0
mov r1, #NB_LOOP
ThumbTest_first_loop
add r0, r0, #1
cmp r1, r0
beq EndThumbExecute
mov r6, #0
mov r7, #NB_LOOP
ThumbTest_second_loop
add r6, r6, #1
cmp r7, r6
beq ThumbTest_first_loop
b ThumbTest_second_loop
EndThumbExecute
bx lr
CODE32
ALIGN
NbLoop
DCD NB_LOOP
Execute_end
END
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -