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

📄 usb_hwa.asm

📁 UC/OS下的USB驱动程序和说明文档(包括上位机驱动程序和固件程序)
💻 ASM
字号:
; /*********************************************************************
; *                SEGGER MICROCONTROLLER SYSTEME GmbH                 *
; *        Solutions for real time microcontroller applications        *
; **********************************************************************
; *                                                                    *
; *           (C) 2003    SEGGER Microcontroller Systeme GmbH          *
; *                                                                    *
; *        Internet: www.segger.com    Support:  support@segger.com    *
; *                                                                    *
; **********************************************************************
; 
; ----------------------------------------------------------------------
; File        : USB_HWA.asm
; Purpose     : Assembly routines
; ---------------------------END-OF-HEADER------------------------------
; 


    NAME    MiscA(16)


    RSEG    CODE(2)
    Public  USB_HW_memcpy, USB_HW_Send64, USB_HW_Read64


;       ***************************************************************
;       *
;       *        USB_HW_memcpy
;       *
;       ***************************************************************
;

; void USB_HW_memcpy(void * pDest, void * pSrc, unsigned NumBytes) {
; A0: pDest
; R0: pSrc
; R2: NumBytes
USB_HW_memcpy:
       ADD.B   #-0x1, SP
       PUSHM   A1,R3,R1

       MOV.W   R2, R3                ; NumBytes
       MOV.W   A0, A1                ; pDest
       MOV.W   R0, A0                ; pSrc
       mov.b   #0, R1H               ; high byte source addr
; Copy solitary byte
       push    R3
       and     #1, R3
       smovf.b                       ; while (--R3) (R1H:A0++) -> (A1++)
       pop     R3
; Copy words as required
       sha.w   #-1, R3
       smovf.w                       ; while (--R3) (R1H:A0++) -> (A1++)

       POPM    A1,R3,R1
       ADD.B   #0x1, SP
       RTS     

;       ***************************************************************
;       *
;       *        USB_HW_Send64
;       *
;       ***************************************************************
;

; void USB_HW_Send64(OS_U16 * pData);
; A0: pData
USB_HW_Send64:
       PUSHM   A1
       mov.w   #2e4h, A1
       mov.w   [A0]  ,[A1]
       mov.w   2[A0] ,[A1]
       mov.w   4[A0] ,[A1]
       mov.w   6[A0] ,[A1]
       mov.w   8[A0] ,[A1]
       mov.w   10[A0] ,[A1]
       mov.w   12[A0] ,[A1]
       mov.w   14[A0] ,[A1]
       mov.w   16[A0] ,[A1]
       mov.w   18[A0] ,[A1]
       mov.w   20[A0] ,[A1]
       mov.w   22[A0] ,[A1]
       mov.w   24[A0] ,[A1]
       mov.w   26[A0] ,[A1]
       mov.w   28[A0] ,[A1]
       mov.w   30[A0] ,[A1]
       mov.w   32[A0] ,[A1]
       mov.w   34[A0] ,[A1]
       mov.w   36[A0] ,[A1]
       mov.w   38[A0] ,[A1]
       mov.w   40[A0] ,[A1]
       mov.w   42[A0] ,[A1]
       mov.w   44[A0] ,[A1]
       mov.w   46[A0] ,[A1]
       mov.w   48[A0] ,[A1]
       mov.w   50[A0] ,[A1]
       mov.w   52[A0] ,[A1]
       mov.w   54[A0] ,[A1]
       mov.w   56[A0] ,[A1]
       mov.w   58[A0] ,[A1]
       mov.w   60[A0] ,[A1]
       mov.w   62[A0] ,[A1]

       POPM    A1
       RTS     

;       ***************************************************************
;       *
;       *        USB_HW_Read64
;       *
;       ***************************************************************
;

; void USB_HW_Read64(OS_U16 * pData);
; A0: pData
USB_HW_Read64:
       PUSHM   A1
       mov.w   #2e6h, A1
       mov.w   [A1],  [A0] 
       mov.w   [A1], 2[A0]
       mov.w   [A1], 4[A0]
       mov.w   [A1], 6[A0]
       mov.w   [A1], 8[A0]
       mov.w   [A1], 10[A0]
       mov.w   [A1], 12[A0]
       mov.w   [A1], 14[A0]
       mov.w   [A1], 16[A0]
       mov.w   [A1], 18[A0]
       mov.w   [A1], 20[A0]
       mov.w   [A1], 22[A0]
       mov.w   [A1], 24[A0]
       mov.w   [A1], 26[A0]
       mov.w   [A1], 28[A0]
       mov.w   [A1], 30[A0]
       mov.w   [A1], 32[A0]
       mov.w   [A1], 34[A0]
       mov.w   [A1], 36[A0]
       mov.w   [A1], 38[A0]
       mov.w   [A1], 40[A0]
       mov.w   [A1], 42[A0]
       mov.w   [A1], 44[A0]
       mov.w   [A1], 46[A0]
       mov.w   [A1], 48[A0]
       mov.w   [A1], 50[A0]
       mov.w   [A1], 52[A0]
       mov.w   [A1], 54[A0]
       mov.w   [A1], 56[A0]
       mov.w   [A1], 58[A0]
       mov.w   [A1], 60[A0]
       mov.w   [A1], 62[A0]

       POPM    A1
       RTS     



    END

⌨️ 快捷键说明

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