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

📄 ucos_ii.asm

📁 ucos 在F2812上的移置,内含三个任务,可以在F2812上跑起来,通过测试,在片外SRAM中运行,完整的工程
💻 ASM
📖 第 1 页 / 共 5 页
字号:
        LSL       ACC,1                 ; |256| 
        ADDL      XAR4,ACC
        MOVB      ACC,#0
        MOVL      *+XAR4[0],ACC         ; |256| 
	.dwpsn	"os_core.c",255,43
        INC       *-SP[3]               ; |255| 
	.dwpsn	"os_core.c",255,17
        MOV       AL,*-SP[3]            ; |255| 
        CMPB      AL,#61                ; |255| 
        B         L9,LO                 ; |255| 
        ; branchcc occurs ; |255| 
DW$L$_OSInit$4$E:
L10:    
	.dwpsn	"os_core.c",258,10
        MOV       *-SP[3],#0            ; |258| 
	.dwpsn	"os_core.c",258,17
        MOV       AL,*-SP[3]            ; |258| 
        CMPB      AL,#13                ; |258| 
        B         L12,HIS               ; |258| 
        ; branchcc occurs ; |258| 
L11:    
DW$L$_OSInit$6$B:
	.dwpsn	"os_core.c",259,9
        ADDB      AL,#1                 ; |259| 
        MOVL      XAR4,#_OSTCBTbl       ; |259| 
        MOVU      ACC,AL
        MOVL      XAR5,#_OSTCBTbl+2     ; |259| 
        LSL       ACC,4                 ; |259| 
        ADDL      XAR4,ACC
        MOVU      ACC,*-SP[3]
        LSL       ACC,4                 ; |259| 
        ADDL      XAR5,ACC
        MOVL      *+XAR5[0],XAR4        ; |259| 
	.dwpsn	"os_core.c",258,58
        INC       *-SP[3]               ; |258| 
	.dwpsn	"os_core.c",258,17
        MOV       AL,*-SP[3]            ; |258| 
        CMPB      AL,#13                ; |258| 
        B         L11,LO                ; |258| 
        ; branchcc occurs ; |258| 
DW$L$_OSInit$6$E:
L12:    
	.dwpsn	"os_core.c",261,5
        MOVB      ACC,#0
        MOVW      DP,#_OSTCBTbl+210
        MOVL      @_OSTCBTbl+210,ACC    ; |261| 
	.dwpsn	"os_core.c",262,5
        MOVL      XAR4,#_OSTCBTbl       ; |262| 
        MOVW      DP,#_OSTCBFreeList
        MOVL      @_OSTCBFreeList,XAR4  ; |262| 
	.dwpsn	"os_core.c",265,10
        MOV       *-SP[3],#0            ; |265| 
	.dwpsn	"os_core.c",265,17
        MOV       AL,*-SP[3]            ; |265| 
        BF        L14,NEQ               ; |265| 
        ; branchcc occurs ; |265| 
L13:    
DW$L$_OSInit$8$B:
	.dwpsn	"os_core.c",266,9
        ADDB      AL,#1                 ; |266| 
        MOV       T,#14                 ; |266| 
        MOVL      XAR4,#_OSEventTbl     ; |266| 
        MPYXU     ACC,T,AL              ; |266| 
        MOV       T,#14                 ; |266| 
        ADDL      XAR4,ACC
        MOVL      XAR5,#_OSEventTbl     ; |266| 
        MPYXU     ACC,T,*-SP[3]         ; |266| 
        ADDL      XAR5,ACC
        MOVL      *+XAR5[0],XAR4        ; |266| 
	.dwpsn	"os_core.c",265,42
        INC       *-SP[3]               ; |265| 
	.dwpsn	"os_core.c",265,17
        MOV       AL,*-SP[3]            ; |265| 
        BF        L13,EQ                ; |265| 
        ; branchcc occurs ; |265| 
DW$L$_OSInit$8$E:
L14:    
	.dwpsn	"os_core.c",268,5
        MOVB      ACC,#0
        MOVW      DP,#_OSEventTbl+14
        MOVL      @_OSEventTbl+14,ACC   ; |268| 
	.dwpsn	"os_core.c",269,5
        MOVL      XAR4,#_OSEventTbl     ; |269| 
        MOVL      @_OSEventFreeList,XAR4 ; |269| 
	.dwpsn	"os_core.c",306,5
        MOVL      XAR4,#_OSTaskIdleStk  ; |306| 
        MOVL      *-SP[2],XAR4          ; |306| 
        MOVB      XAR5,#0
        MOVB      AL,#60                ; |306| 
        MOVL      XAR4,#_OSTaskIdle     ; |306| 
        LCR       #_OSTaskCreate        ; |306| 
        ; call occurs [#_OSTaskCreate] ; |306| 
	.dwpsn	"os_core.c",347,1
        SUBB      SP,#4
	.dwcfa	0x1d, -2
        LRETR
        ; return occurs

DW$62	.dwtag  DW_TAG_loop
	.dwattr DW$62, DW_AT_name("C:/temp/ucos/Debug/UCOS_II.asm:L13:1:1242798384")
	.dwattr DW$62, DW_AT_begin_file("os_core.c")
	.dwattr DW$62, DW_AT_begin_line(0x109)
	.dwattr DW$62, DW_AT_end_line(0x10b)
DW$63	.dwtag  DW_TAG_loop_range
	.dwattr DW$63, DW_AT_low_pc(DW$L$_OSInit$8$B)
	.dwattr DW$63, DW_AT_high_pc(DW$L$_OSInit$8$E)
	.dwendtag DW$62


DW$64	.dwtag  DW_TAG_loop
	.dwattr DW$64, DW_AT_name("C:/temp/ucos/Debug/UCOS_II.asm:L11:1:1242798384")
	.dwattr DW$64, DW_AT_begin_file("os_core.c")
	.dwattr DW$64, DW_AT_begin_line(0x102)
	.dwattr DW$64, DW_AT_end_line(0x104)
DW$65	.dwtag  DW_TAG_loop_range
	.dwattr DW$65, DW_AT_low_pc(DW$L$_OSInit$6$B)
	.dwattr DW$65, DW_AT_high_pc(DW$L$_OSInit$6$E)
	.dwendtag DW$64


DW$66	.dwtag  DW_TAG_loop
	.dwattr DW$66, DW_AT_name("C:/temp/ucos/Debug/UCOS_II.asm:L9:1:1242798384")
	.dwattr DW$66, DW_AT_begin_file("os_core.c")
	.dwattr DW$66, DW_AT_begin_line(0xff)
	.dwattr DW$66, DW_AT_end_line(0x101)
DW$67	.dwtag  DW_TAG_loop_range
	.dwattr DW$67, DW_AT_low_pc(DW$L$_OSInit$4$B)
	.dwattr DW$67, DW_AT_high_pc(DW$L$_OSInit$4$E)
	.dwendtag DW$66


DW$68	.dwtag  DW_TAG_loop
	.dwattr DW$68, DW_AT_name("C:/temp/ucos/Debug/UCOS_II.asm:L7:1:1242798384")
	.dwattr DW$68, DW_AT_begin_file("os_core.c")
	.dwattr DW$68, DW_AT_begin_line(0xf6)
	.dwattr DW$68, DW_AT_end_line(0xf8)
DW$69	.dwtag  DW_TAG_loop_range
	.dwattr DW$69, DW_AT_low_pc(DW$L$_OSInit$2$B)
	.dwattr DW$69, DW_AT_high_pc(DW$L$_OSInit$2$E)
	.dwendtag DW$68

	.dwattr DW$60, DW_AT_end_file("os_core.c")
	.dwattr DW$60, DW_AT_end_line(0x15b)
	.dwattr DW$60, DW_AT_end_column(0x01)
	.dwendentry
	.dwendtag DW$60

	.sect	".text"
	.global	_OSIntEnter

DW$70	.dwtag  DW_TAG_subprogram, DW_AT_name("OSIntEnter"), DW_AT_symbol_name("_OSIntEnter")
	.dwattr DW$70, DW_AT_low_pc(_OSIntEnter)
	.dwattr DW$70, DW_AT_high_pc(0x00)
	.dwattr DW$70, DW_AT_begin_file("os_core.c")
	.dwattr DW$70, DW_AT_begin_line(0x174)
	.dwattr DW$70, DW_AT_begin_column(0x06)
	.dwpsn	"os_core.c",373,1

	.dwfde DW$CIE

;***************************************************************
;* FNAME: _OSIntEnter                   FR SIZE:   0           *
;*                                                             *
;* FUNCTION ENVIRONMENT                                        *
;*                                                             *
;* FUNCTION PROPERTIES                                         *
;*                            0 Parameter,  0 Auto,  0 SOE     *
;***************************************************************

_OSIntEnter:
	.dwcfa	0x1d, -2
	.dwcfa	0x1c, 26, 0
	.dwcfa	0x09, 40, 26
	.dwpsn	"os_core.c",374,5
    SETC INTM 
	.dwpsn	"os_core.c",375,5
        MOVW      DP,#_OSIntNesting
        INC       @_OSIntNesting        ; |375| 
	.dwpsn	"os_core.c",376,5
    CLRC INTM 
	.dwpsn	"os_core.c",377,1
        SPM       #0
        LRETR
        ; return occurs
	.dwattr DW$70, DW_AT_end_file("os_core.c")
	.dwattr DW$70, DW_AT_end_line(0x179)
	.dwattr DW$70, DW_AT_end_column(0x01)
	.dwendentry
	.dwendtag DW$70

	.sect	".text"
	.global	_OSIntExit

DW$71	.dwtag  DW_TAG_subprogram, DW_AT_name("OSIntExit"), DW_AT_symbol_name("_OSIntExit")
	.dwattr DW$71, DW_AT_low_pc(_OSIntExit)
	.dwattr DW$71, DW_AT_high_pc(0x00)
	.dwattr DW$71, DW_AT_begin_file("os_core.c")
	.dwattr DW$71, DW_AT_begin_line(0x18e)
	.dwattr DW$71, DW_AT_begin_column(0x06)
	.dwpsn	"os_core.c",399,1

	.dwfde DW$CIE

;***************************************************************
;* FNAME: _OSIntExit                    FR SIZE:   0           *
;*                                                             *
;* FUNCTION ENVIRONMENT                                        *
;*                                                             *
;* FUNCTION PROPERTIES                                         *
;*                            0 Parameter,  0 Auto,  0 SOE     *
;***************************************************************

_OSIntExit:
	.dwcfa	0x1d, -2
	.dwcfa	0x1c, 26, 0
	.dwcfa	0x09, 40, 26
	.dwpsn	"os_core.c",400,5
    SETC INTM 
	.dwpsn	"os_core.c",401,5
        MOVW      DP,#_OSIntNesting
        MOV       AL,@_OSIntNesting     ; |401| 
        ADDB      AL,#-1
        MOV       @_OSIntNesting,AL     ; |401| 
        MOV       AH,@_OSLockNesting    ; |401| 
        OR        AH,AL                 ; |401| 
        BF        L15,NEQ               ; |401| 
        ; branchcc occurs ; |401| 
	.dwpsn	"os_core.c",402,9
        MOVZ      AR0,@_OSRdyGrp        ; |402| 
        MOVL      XAR4,#_OSUnMapTbl     ; |402| 
        MOV       AL,*+XAR4[AR0]        ; |402| 
        MOV       @_OSIntExitY,AL       ; |402| 
	.dwpsn	"os_core.c",403,9
        MOVZ      AR0,@_OSIntExitY      ; |403| 
        MOVL      XAR4,#_OSRdyTbl       ; |403| 
        MOVZ      AR0,*+XAR4[AR0]       ; |403| 
        MOV       ACC,@_OSIntExitY << #3 ; |403| 
        MOVL      XAR4,#_OSUnMapTbl     ; |403| 
        ADD       AL,*+XAR4[AR0]        ; |403| 
        MOV       @_OSPrioHighRdy,AL    ; |403| 
	.dwpsn	"os_core.c",404,9
        MOV       AL,@_OSPrioCur        ; |404| 
        CMP       AL,@_OSPrioHighRdy    ; |404| 
        BF        L15,EQ                ; |404| 
        ; branchcc occurs ; |404| 
	.dwpsn	"os_core.c",405,13
        MOVU      ACC,@_OSPrioHighRdy
        MOVL      XAR4,#_OSTCBPrioTbl   ; |405| 
        LSL       ACC,1                 ; |405| 
        ADDL      XAR4,ACC
        MOVL      ACC,*+XAR4[0]         ; |405| 
        MOVL      @_OSTCBHighRdy,ACC    ; |405| 
	.dwpsn	"os_core.c",406,13
        MOVB      ACC,#1
        ADDL      @_OSCtxSwCtr,ACC      ; |406| 
	.dwpsn	"os_core.c",407,13
        SPM       #0
        LCR       #_OSIntCtxSw          ; |407| 
        ; call occurs [#_OSIntCtxSw] ; |407| 
L15:    
	.dwpsn	"os_core.c",410,5
    CLRC INTM 
	.dwpsn	"os_core.c",411,1
        SPM       #0
        LRETR
        ; return occurs
	.dwattr DW$71, DW_AT_end_file("os_core.c")
	.dwattr DW$71, DW_AT_end_line(0x19b)
	.dwattr DW$71, DW_AT_end_column(0x01)
	.dwendentry
	.dwendtag DW$71

	.sect	".text"
	.global	_OSSched

DW$72	.dwtag  DW_TAG_subprogram, DW_AT_name("OSSched"), DW_AT_symbol_name("_OSSched")
	.dwattr DW$72, DW_AT_low_pc(_OSSched)
	.dwattr DW$72, DW_AT_high_pc(0x00)
	.dwattr DW$72, DW_AT_begin_file("os_core.c")
	.dwattr DW$72, DW_AT_begin_line(0x1ae)
	.dwattr DW$72, DW_AT_begin_column(0x06)
	.dwpsn	"os_core.c",431,1

	.dwfde DW$CIE

;***************************************************************
;* FNAME: _OSSched                      FR SIZE:   2           *
;*                                                             *
;* FUNCTION ENVIRONMENT                                        *
;*                                                             *
;* FUNCTION PROPERTIES                                         *
;*                            0 Parameter,  1 Auto,  0 SOE     *
;***************************************************************

_OSSched:
	.dwcfa	0x1d, -2
	.dwcfa	0x1c, 26, 0
	.dwcfa	0x09, 40, 26
        ADDB      SP,#2
	.dwcfa	0x1d, -4
DW$73	.dwtag  DW_TAG_variable, DW_AT_name("y"), DW_AT_symbol_name("_y")
	.dwattr DW$73, DW_AT_type(*DW$T$19)
	.dwattr DW$73, DW_AT_location[DW_OP_breg20 -1]
	.dwpsn	"os_core.c",435,5
    SETC INTM 
	.dwpsn	"os_core.c",436,5
        MOVW      DP,#_OSIntNesting
        MOV       AL,@_OSIntNesting     ; |436| 
        OR        AL,@_OSLockNesting    ; |436| 
        BF        L16,NEQ               ; |436| 
        ; branchcc occurs ; |436| 
	.dwpsn	"os_core.c",437,9
        MOVZ      AR0,@_OSRdyGrp        ; |437| 
        MOVL      XAR4,#_OSUnMapTbl     ; |437| 
        MOV       AL,*+XAR4[AR0]        ; |437| 
        MOV       *-SP[1],AL            ; |437| 
	.dwpsn	"os_core.c",438,9
        MOVZ      AR0,*-SP[1]           ; |438| 
        MOVL      XAR4,#_OSRdyTbl       ; |438| 
        MOVZ      AR0,*+XAR4[AR0]       ; |438| 
        MOV       ACC,*-SP[1] << #3     ; |438| 
        MOVL      XAR4,#_OSUnMapTbl     ; |438| 
        ADD       AL,*+XAR4[AR0]        ; |438| 
        MOV       @_OSPrioHighRdy,AL    ; |438| 
	.dwpsn	"os_core.c",439,9
        MOV       AL,@_OSPrioCur        ; |439| 
        CMP       AL,@_OSPrioHighRdy    ; |439| 
        BF        L16,EQ                ; |439| 

⌨️ 快捷键说明

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