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

📄 main.s79

📁 ARM仿真案例
💻 S79
📖 第 1 页 / 共 2 页
字号:
??main_0:
        DC32     TaskStartStk + 252
        DC32     TaskStart
        CFI EndBlock cfiBlock1
//   20 }

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock2 Using cfiCommon0
        CFI NoFunction
        ARM
??TaskStart??rA:
        ADD      R12,PC,#+1
        BX       R12
        CFI EndBlock cfiBlock2
        REQUIRE TaskStart
//   21 
//   22 /*********************************************************************************************************
//   23 ** 函数名称: TaskStart
//   24 ** 功能描述: μCOS-II的第一个任务,通常由它初始化目标板和建立其它任务
//   25 ********************************************************************************************************/

        RSEG DATA_C:CONST:SORT:NOROOT(2)
//   26 INT8U const ShowTable[11] = {
ShowTable:
        DATA
        DC8 63, 6, 91, 79, 102, 109, 125, 7, 127, 111, 0, 0
//   27       0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x00};

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock3 Using cfiCommon1
        CFI Function TaskStart
        THUMB
//   28         void  TaskStart(void *pdata)
//   29 {
TaskStart:
        PUSH     {R4,R5,LR}
        CFI ?RET Frame(CFA, -4)
        CFI R5 Frame(CFA, -8)
        CFI R4 Frame(CFA, -12)
        CFI CFA R13+12
        SUB      SP,SP,#+4
        CFI CFA R13+16
//   30     INT8U temp,i;
//   31 
//   32     pdata = pdata;                                                  /* 避免编译警告 */
//   33 
//   34     BSP_Init();                                                   /* 目标板初始化 */
        _BLF     BSP_Init,??BSP_Init??rT
//   35     PINSEL0 = (PINSEL0 & 0xfffcfff0);
        LDR      R0,??TaskStart_0  ;; 0xe002c000
        LDR      R1,[R0, #+0]
        LDR      R2,??TaskStart_0+0x4  ;; 0xfffcfff0
        ANDS     R2,R2,R1
        STR      R2,[R0, #+0]
//   36     IODIR = HC595_CS;
        LDR      R0,??TaskStart_0+0x8  ;; 0xe0028008
        MOVS     R1,#+128
        LSLS     R1,R1,#+1        ;; #+256
        STR      R1,[R0, #+0]
//   37     
//   38     for (;;)
//   39     {
//   40         for (i = 0; i < 10; i++)
??TaskStart_1:
        LDR      R4,??TaskStart_0+0xC  ;; ShowTable
        MOVS     R5,#+10
//   41         {
//   42             SPIStart();
??TaskStart_2:
        _BLF     SPIStart,??SPIStart??rT
//   43             IOCLR = HC595_CS;
        LDR      R0,??TaskStart_0+0x10  ;; 0xe002800c
        MOVS     R1,#+128
        LSLS     R1,R1,#+1        ;; #+256
        STR      R1,[R0, #+0]
//   44             SPIRW(&temp, ~ShowTable[i]);
        LDRB     R0,[R4, #+0]
        MVNS     R1,R0
        LSLS     R1,R1,#+24
        LSRS     R1,R1,#+24
        MOV      R0,SP
        _BLF     SPIRW,??SPIRW??rT
//   45             IOSET = HC595_CS;
        LDR      R0,??TaskStart_0+0x14  ;; 0xe0028004
        MOVS     R1,#+128
        LSLS     R1,R1,#+1        ;; #+256
        STR      R1,[R0, #+0]
//   46             SPIEnd();
        _BLF     SPIEnd,??SPIEnd??rT
//   47             OSTimeDly(OS_TICKS_PER_SEC / 5); 
        MOVS     R0,#+20
        _BLF     OSTimeDly,??OSTimeDly??rT
//   48                       
//   49         }
        ADDS     R4,R4,#+1
        SUBS     R5,R5,#+1
        BEQ      ??TaskStart_1
        B        ??TaskStart_2
        Nop      
        DATA
??TaskStart_0:
        DC32     0xe002c000
        DC32     0xfffcfff0
        DC32     0xe0028008
        DC32     ShowTable
        DC32     0xe002800c
        DC32     0xe0028004
        CFI EndBlock cfiBlock3
//   50     }
//   51 }

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

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

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

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

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

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

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

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock11 Using cfiCommon1
        CFI NoFunction
        THUMB
??OSTimeDly??rT:
        LDR      R3,??Subroutine9_0  ;; OSTimeDly
        BX       R3
        DATA
??Subroutine9_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
//   52 
//   53 /*********************************************************************************************************
//   54 **                            End Of File
//   55 ********************************************************************************************************/
// 
// 232 bytes in segment CODE
//  16 bytes in segment DATA_AN
//  12 bytes in segment DATA_C
// 256 bytes in segment DATA_Z
//  12 bytes in segment INITTAB
// 
// 144 bytes of CODE  memory (+ 100 bytes shared)
//  12 bytes of CONST memory
// 256 bytes of DATA  memory (+  16 bytes shared)
//
//Errors: none
//Warnings: none

⌨️ 快捷键说明

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