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

📄 main.s79

📁 ARM仿真案例
💻 S79
📖 第 1 页 / 共 2 页
字号:
//   29 ****************************************************************************/
//   30 

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock3 Using cfiCommon1
        CFI Function Main_Task
        THUMB
//   31  void  Main_Task(void *pdata)
//   32 	{
Main_Task:
        PUSH     {LR}
        CFI ?RET Frame(CFA, -4)
        CFI CFA R13+4
//   33 	pdata=pdata;
//   34 	BSP_Init();
        _BLF     BSP_Init,??BSP_Init??rT
//   35 	
//   36 	OSTaskCreate(Task0, (void *)0, &Task0Stk[TASK_STK_SIZE - 1], 2);
        MOVS     R3,#+2
        LDR      R2,??Main_Task_0  ;; Task0Stk + 252
        MOVS     R1,#+0
        LDR      R0,??Main_Task_0+0x4  ;; Task0
        _BLF     OSTaskCreate,??OSTaskCreate??rT
//   37 	IODIR=CON;
        LDR      R0,??Main_Task_0+0x8  ;; 0xe0028008
        MOVS     R1,#+255
        STR      R1,[R0, #+0]
//   38 	IOSET=CON;
        LDR      R0,??DataTable1  ;; 0xe0028004
        STR      R1,[R0, #+0]
//   39 	OSTaskSuspend(OS_PRIO_SELF);
        MOVS     R0,#+255
        _BLF     OSTaskSuspend,??OSTaskSuspend??rT
//   40 	}
        POP      {R0}
        BX       R0               ;; return
        Nop      
        DATA
??Main_Task_0:
        DC32     Task0Stk + 252
        DC32     Task0
        DC32     0xe0028008
        CFI EndBlock cfiBlock3

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock4 Using cfiCommon0
        CFI NoFunction
        ARM
??Task0??rA:
        ADD      R12,PC,#+1
        BX       R12
        CFI EndBlock cfiBlock4
        REQUIRE Task0
//   41 /****************************************************************************
//   42 * 名称:Task0()
//   43 * 功能:任务
//   44 ****************************************************************************/
//   45 

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock5 Using cfiCommon1
        CFI Function Task0
        THUMB
//   46  void  Task0(void *pdata)
//   47 {   INT16U temp;
Task0:
        PUSH     {R4,LR}
        CFI ?RET Frame(CFA, -4)
        CFI R4 Frame(CFA, -8)
        CFI CFA R13+8
//   48     pdata=pdata;
//   49     temp=0;
        MOVS     R4,#+0
//   50     while(TRUE){if((IOPIN&0x00030000)!=0x00030000)
??Task0_0:
        LDR      R0,??Task0_1     ;; 0xe0028000
        LDR      R0,[R0, #+0]
        MOVS     R1,#+192
        LSLS     R1,R1,#+10       ;; #+196608
        ANDS     R1,R1,R0
        MOVS     R0,#+192
        LSLS     R0,R0,#+10       ;; #+196608
        CMP      R1,R0
        BEQ      ??Task0_2
//   51 		 OSTimeDly(OS_TICKS_PER_SEC/50);
        MOVS     R0,#+2
        _BLF     OSTimeDly,??OSTimeDly??rT
//   52 		if((IOPIN&0x00030000)!=0x00030000)
??Task0_2:
        LDR      R0,??Task0_1     ;; 0xe0028000
        LDR      R0,[R0, #+0]
        MOVS     R1,#+192
        LSLS     R1,R1,#+10       ;; #+196608
        ANDS     R1,R1,R0
        MOVS     R0,#+192
        LSLS     R0,R0,#+10       ;; #+196608
        CMP      R1,R0
        BEQ      ??Task0_0
//   53 			{
//   54 			if((IOPIN&0x00030000)==0x00020000)
        LDR      R0,??Task0_1     ;; 0xe0028000
        LDR      R0,[R0, #+0]
        MOVS     R1,#+192
        LSLS     R1,R1,#+10       ;; #+196608
        ANDS     R1,R1,R0
        MOVS     R0,#+128
        LSLS     R0,R0,#+10       ;; #+131072
        CMP      R1,R0
        BNE      ??Task0_3
//   55 				temp++;
        ADDS     R4,R4,#+1
        LSLS     R4,R4,#+16
        LSRS     R4,R4,#+16
//   56 			if((IOPIN&0x00030000)==0x00010000)
??Task0_3:
        LDR      R0,??Task0_1     ;; 0xe0028000
        LDR      R0,[R0, #+0]
        MOVS     R1,#+192
        LSLS     R1,R1,#+10       ;; #+196608
        ANDS     R1,R1,R0
        MOVS     R0,#+128
        LSLS     R0,R0,#+9        ;; #+65536
        CMP      R1,R0
        BNE      ??Task0_4
//   57 				temp--;
        SUBS     R4,R4,#+1
        LSLS     R4,R4,#+16
        LSRS     R4,R4,#+16
//   58 			while((IOPIN&0x00030000)!=0x00030000);
??Task0_4:
        LDR      R0,??Task0_1     ;; 0xe0028000
        LDR      R0,[R0, #+0]
        MOVS     R1,#+192
        LSLS     R1,R1,#+10       ;; #+196608
        ANDS     R1,R1,R0
        MOVS     R0,#+192
        LSLS     R0,R0,#+10       ;; #+196608
        CMP      R1,R0
        BNE      ??Task0_4
//   59 			IOCLR=CON;
        LDR      R0,??Task0_1+0x4  ;; 0xe002800c
        MOVS     R1,#+255
        STR      R1,[R0, #+0]
//   60 			IOSET=temp;
        LDR      R0,??DataTable1  ;; 0xe0028004
        STR      R4,[R0, #+0]
        B        ??Task0_0
        DATA
??Task0_1:
        DC32     0xe0028000
        DC32     0xe002800c
        CFI EndBlock cfiBlock5
//   61 	}			
//   62    }
//   63 }

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable1:
        DC32     0xe0028004

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock6 Using cfiCommon1
        CFI NoFunction
        THUMB
??OSInit??rT:
        LDR      R3,??Subroutine3_0  ;; OSInit
        BX       R3
        DATA
??Subroutine3_0:
        DC32     OSInit
        CFI EndBlock cfiBlock6

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock7 Using cfiCommon1
        CFI NoFunction
        THUMB
??OSTaskCreate??rT:
        PUSH     {R3}
        CFI CFA R13+4
        LDR      R3,??Subroutine4_0  ;; OSTaskCreate
        MOV      R12,R3
        POP      {R3}
        CFI CFA R13+0
        BX       R12
        Nop      
        DATA
??Subroutine4_0:
        DC32     OSTaskCreate
        CFI EndBlock cfiBlock7

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock8 Using cfiCommon1
        CFI NoFunction
        THUMB
??OSStart??rT:
        LDR      R3,??Subroutine5_0  ;; OSStart
        BX       R3
        DATA
??Subroutine5_0:
        DC32     OSStart
        CFI EndBlock cfiBlock8

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock9 Using cfiCommon1
        CFI NoFunction
        THUMB
??BSP_Init??rT:
        LDR      R3,??Subroutine6_0  ;; BSP_Init
        BX       R3
        DATA
??Subroutine6_0:
        DC32     BSP_Init
        CFI EndBlock cfiBlock9

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock10 Using cfiCommon1
        CFI NoFunction
        THUMB
??OSTaskSuspend??rT:
        LDR      R3,??Subroutine7_0  ;; OSTaskSuspend
        BX       R3
        DATA
??Subroutine7_0:
        DC32     OSTaskSuspend
        CFI EndBlock cfiBlock10

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock11 Using cfiCommon1
        CFI NoFunction
        THUMB
??OSTimeDly??rT:
        LDR      R3,??Subroutine8_0  ;; OSTimeDly
        BX       R3
        DATA
??Subroutine8_0:
        DC32     OSTimeDly
        CFI EndBlock cfiBlock11

        RSEG INITTAB:CODE:ROOT(2)
        DATA
?init?tab?DATA_Z:
        DCD      sfe(DATA_Z) - sfb(DATA_Z), sfb(DATA_Z), sfb(DATA_Z)

        END
//   64 
//   65 
//   66 
// 
// 304 bytes in segment CODE
//  16 bytes in segment DATA_AN
// 512 bytes in segment DATA_Z
//  12 bytes in segment INITTAB
// 
// 224 bytes of CODE memory (+ 92 bytes shared)
// 512 bytes of DATA memory (+ 16 bytes shared)
//
//Errors: none
//Warnings: none

⌨️ 快捷键说明

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