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

📄 xllp_arm_primitives.lst

📁 pxa270为硬件平台的wince操作系统XLLP驱动源码
💻 LST
字号:
ARM macroassembler      Page:1 
    1 00000000          ;****************************************************************************** 
    2 00000000          ; 
    3 00000000          ;  COPYRIGHT (C) 2005 Intel Corporation. 
    4 00000000          ; 
    5 00000000          ;  This software as well as the software described in it is furnished under  
    6 00000000          ;  license and may only be used or copied in accordance with the terms of the  
    7 00000000          ;  license. The information in this file is furnished for informational use  
    8 00000000          ;  only, is subject to change without notice, and should not be construed as  
    9 00000000          ;  a commitment by Intel Corporation. Intel Corporation assumes no  
   10 00000000          ;  responsibility or liability for any errors or inaccuracies that may appear  
   11 00000000          ;  in this document or any software that may be provided in association with  
   12 00000000          ;  this document. 
   13 00000000          ;  
   14 00000000          ;  Except as permitted by such license, no part of this document may be  
   15 00000000          ;  reproduced, stored in a retrieval system, or transmitted in any form or by  
   16 00000000          ;  any means without the express written consent of Intel Corporation.  
   17 00000000          ; 
   18 00000000          ;****************************************************************************** 
   19 00000000          ;  PURPOSE: 
   20 00000000          ;      Provide ARM CPU primitive functions (eg. register access) for C code use 
   21 00000000            
   22                           AREA    |.text|, CODE, READONLY, ALIGN=5        ; Align =5 required for "ALIGN 32" to work 
   23 00000000          ; 
   24 00000000          ; Functions made public by this file: 
   25 00000000          ; 
   26 00000000                  EXPORT Xllp_Get_ARM_CPSR 
   27 00000000                  EXPORT Xllp_Set_ARM_CPSR 
   28 00000000                  EXPORT Xllp_Get_ARM_SPSR 
   29 00000000                  EXPORT Xllp_Set_ARM_SPSR 
   30 00000000                  EXPORT Xllp_Get_ARM_SP 
   31 00000000                  EXPORT Xllp_Set_ARM_SP 
   32 00000000                  EXPORT Xllp_Get_ARM_CPAR 
   33 00000000                  EXPORT Xllp_Set_ARM_CPAR 
   34 00000000               
   35 00000000                  EXPORT XllpCpuIdle 
   36 00000000                  EXPORT XllpCpuStandby 
   37 00000000               
   38 00000000              INCLUDE xllp_ARM_macros.inc     ; for RETURN macro 
    1 00000000              IF  !:DEF: _xllp_arm_macros_included 
    2 00000000          xllp_arm_macros_included EQU 1     
    3 00000000          ;****************************************************************************** 
    4 00000000          ; 
    5 00000000          ;  COPYRIGHT (C) 2005 Intel Corporation. 
    6 00000000          ; 
    7 00000000          ;  This software as well as the software described in it is furnished under  
    8 00000000          ;  license and may only be used or copied in accordance with the terms of the  
    9 00000000          ;  license. The information in this file is furnished for informational use  
   10 00000000          ;  only, is subject to change without notice, and should not be construed as  
   11 00000000          ;  a commitment by Intel Corporation. Intel Corporation assumes no  
   12 00000000          ;  responsibility or liability for any errors or inaccuracies that may appear  
   13 00000000          ;  in this document or any software that may be provided in association with  
   14 00000000          ;  this document. 
   15 00000000          ;  
   16 00000000          ;  Except as permitted by such license, no part of this document may be  
   17 00000000          ;  reproduced, stored in a retrieval system, or transmitted in any form or by  
   18 00000000          ;  any means without the express written consent of Intel Corporation.  
   19 00000000          ; 
   20 00000000          ;****************************************************************************** 
   21 00000000            
   22 00000000              MACRO 
   23 00000000              RETURN 
   24 00000000              IF :DEF: Interworking 
   25 00000000                  IF Interworking :LOR: Thumbing 
   26 00000000                   bx  lr 
   27 00000000                  ELSE 
   28 00000000                   mov  pc, lr          ; return 
   29 00000000                  ENDIF ; ELSE of IF Interworking :LOR: Thumbing 
   30 00000000              ELSE ; IF :DEF: Interworking 
   31 00000000                   mov  pc, lr          ; return 
   32 00000000              ENDIF ; ELSE OF IF :DEF: Interworking 
   33 00000000            
   34 00000000              MEND 
   35 00000000            
   36 00000000          ;;------------------------------------------------------------------------------ 
   37 00000000              ENDIF 
   38 00000000              END 
   39 00000000            
   40 00000000          ;****************************************************************************** 
   41 00000000          Xllp_Get_ARM_CPSR FUNCTION 
   42 00000000 e10f0000     mrs     r0, cpsr 
   43 00000004              RETURN 
   24 00000004              IF :DEF: Interworking 
   25 00000004                  IF Interworking :LOR: Thumbing 
   26 00000004 e12fff1e          bx  lr 
   27 00000008                  ELSE 
   29 00000008                  ENDIF ; ELSE of IF Interworking :LOR: Thumbing 
   30 00000008              ELSE ; IF :DEF: Interworking 
   32 00000008              ENDIF ; ELSE OF IF :DEF: Interworking 
   33 00000008            
   44 00000008              ENDFUNC 
   45 00000008               
   46 00000008          Xllp_Set_ARM_CPSR FUNCTION 
   47 00000008 e129f000     msr     cpsr, r0 
   48 0000000c              RETURN 
   24 0000000c              IF :DEF: Interworking 
   25 0000000c                  IF Interworking :LOR: Thumbing 
   26 0000000c e12fff1e          bx  lr 
   27 00000010                  ELSE 
   29 00000010                  ENDIF ; ELSE of IF Interworking :LOR: Thumbing 
   30 00000010              ELSE ; IF :DEF: Interworking 
   32 00000010              ENDIF ; ELSE OF IF :DEF: Interworking 
   33 00000010            
   49 00000010              ENDFUNC 
   50 00000010               
   51 00000010          Xllp_Get_ARM_SPSR FUNCTION 
   52 00000010 e14f0000     mrs     r0, spsr 
   53 00000014              RETURN 
   24 00000014              IF :DEF: Interworking 
   25 00000014                  IF Interworking :LOR: Thumbing 
   26 00000014 e12fff1e          bx  lr 
   27 00000018                  ELSE 
   29 00000018                  ENDIF ; ELSE of IF Interworking :LOR: Thumbing 
   30 00000018              ELSE ; IF :DEF: Interworking 
   32 00000018              ENDIF ; ELSE OF IF :DEF: Interworking 
   33 00000018            
   54 00000018              ENDFUNC 
   55 00000018               
   56 00000018          Xllp_Set_ARM_SPSR FUNCTION 
   57 00000018 e169f000     msr     spsr, r0 
   58 0000001c              RETURN 
   24 0000001c              IF :DEF: Interworking 
   25 0000001c                  IF Interworking :LOR: Thumbing 
   26 0000001c e12fff1e          bx  lr 
   27 00000020                  ELSE 
   29 00000020                  ENDIF ; ELSE of IF Interworking :LOR: Thumbing 
   30 00000020              ELSE ; IF :DEF: Interworking 
   32 00000020              ENDIF ; ELSE OF IF :DEF: Interworking 
   33 00000020            
   59 00000020              ENDFUNC 
   60 00000020               
   61 00000020          Xllp_Get_ARM_SP FUNCTION 
   62 00000020 e1a0000d     mov     r0, sp 
   63 00000024              RETURN 
   24 00000024              IF :DEF: Interworking 
   25 00000024                  IF Interworking :LOR: Thumbing 
   26 00000024 e12fff1e          bx  lr 
   27 00000028                  ELSE 
   29 00000028                  ENDIF ; ELSE of IF Interworking :LOR: Thumbing 
   30 00000028              ELSE ; IF :DEF: Interworking 
   32 00000028              ENDIF ; ELSE OF IF :DEF: Interworking 
   33 00000028            
   64 00000028              ENDFUNC 
   65 00000028               
   66 00000028          Xllp_Set_ARM_SP FUNCTION 
   67 00000028 e1a0d000     mov     sp, r0 
   68 0000002c              RETURN 
   24 0000002c              IF :DEF: Interworking 
   25 0000002c                  IF Interworking :LOR: Thumbing 
   26 0000002c e12fff1e          bx  lr 
   27 00000030                  ELSE 
   29 00000030                  ENDIF ; ELSE of IF Interworking :LOR: Thumbing 
   30 00000030              ELSE ; IF :DEF: Interworking 
   32 00000030              ENDIF ; ELSE OF IF :DEF: Interworking 
   33 00000030            
   69 00000030              ENDFUNC 
   70 00000030               
   71 00000030          Xllp_Get_ARM_CPAR FUNCTION 
   72 00000030 ee1f0f11     mrc     p15, 0, r0, c15, c1, 0 
   73 00000034              RETURN 
   24 00000034              IF :DEF: Interworking 
   25 00000034                  IF Interworking :LOR: Thumbing 
   26 00000034 e12fff1e          bx  lr 
   27 00000038                  ELSE 
   29 00000038                  ENDIF ; ELSE of IF Interworking :LOR: Thumbing 
   30 00000038              ELSE ; IF :DEF: Interworking 
   32 00000038              ENDIF ; ELSE OF IF :DEF: Interworking 
   33 00000038            
   74 00000038              ENDFUNC 
   75 00000038               
   76 00000038          Xllp_Set_ARM_CPAR FUNCTION 
   77 00000038 ee0f0f11     mcr     p15, 0, r0, c15, c1, 0       ; store to CPAR 
   78 0000003c              ;CPWAIT  00000000 
   79 0000003c ee120f10     mrc     p15, 0, r0, c2, c0, 0        ; arbitrary read of CP15 
   80 00000040 e1a00000     mov     r0, r0                       ; wait for it (foward dependency) 
   81 00000044 e24ff004     sub     pc, pc, #4                   ; branch to next instruction 
   82 00000048              RETURN 
   24 00000048              IF :DEF: Interworking 
   25 00000048                  IF Interworking :LOR: Thumbing 
   26 00000048 e12fff1e          bx  lr 
   27 0000004c                  ELSE 
   29 0000004c                  ENDIF ; ELSE of IF Interworking :LOR: Thumbing 
   30 0000004c              ELSE ; IF :DEF: Interworking 
   32 0000004c              ENDIF ; ELSE OF IF :DEF: Interworking 
   33 0000004c            
   83 0000004c              ENDFUNC 
   84 0000004c               
   85 0000004c          XllpCpuIdle  FUNCTION 
   86 0000004c e3a00001     mov     r0, #1 
   87 00000050 ee070e10     mcr     p14, 0, r0, c7, c0, 0        ; Enter Idle mode 
   88 00000054              RETURN 
   24 00000054              IF :DEF: Interworking 
   25 00000054                  IF Interworking :LOR: Thumbing 
   26 00000054 e12fff1e          bx  lr 
   27 00000058                  ELSE 
   29 00000058                  ENDIF ; ELSE of IF Interworking :LOR: Thumbing 
   30 00000058              ELSE ; IF :DEF: Interworking 
   32 00000058              ENDIF ; ELSE OF IF :DEF: Interworking 
   33 00000058            
   89 00000058              ENDFUNC 
   90 00000058            
   91 00000058          XllpCpuStandby  FUNCTION 
   92 00000058 e3a00002     mov     r0, #2 
   93 0000005c ee070e10     mcr     p14, 0, r0, c7, c0, 0        ; Enter Standby mode 
   94 00000060 e1a00000     nop 
   95 00000064 e1a00000     nop 
   96 00000068 e1a00000     nop 
   97 0000006c e1a00000     nop 
   98 00000070 e1a00000     nop 
   99 00000074 e1a00000     nop 
  100 00000078 e1a00000     nop 
  101 0000007c              RETURN 
   24 0000007c              IF :DEF: Interworking 
   25 0000007c                  IF Interworking :LOR: Thumbing 
   26 0000007c e12fff1e          bx  lr 
   27 00000080                  ELSE 
   29 00000080                  ENDIF ; ELSE of IF Interworking :LOR: Thumbing 
   30 00000080              ELSE ; IF :DEF: Interworking 
   32 00000080              ENDIF ; ELSE OF IF :DEF: Interworking 
   33 00000080            
  102 00000080                  ENDFUNC 
  103 00000080          ;------------------------------------------ 
  104 00000080              END 
Assembly terminated, errors: 0, warnings: 0 

⌨️ 快捷键说明

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