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

📄 main.s79

📁 ARM仿真案例
💻 S79
字号:
//////////////////////////////////////////////////////////////////////////////
//                                                                           /
// IAR ARM ANSI C/C++ Compiler V4.40A/W32 EVALUATION   21/Jul/2006  17:04:02 /
// Copyright 1999-2005 IAR Systems. All rights reserved.                     /
// Time limited license: 22 days left                                        /
//                                                                           /
//    Cpu mode        =  interwork                                           /
//    Endian          =  little                                              /
//    Stack alignment =  4                                                   /
//    Source file     =  E:\Project\ucos-ii\leddisp\App\main.C               /
//    Command line    =  E:\Project\ucos-ii\leddisp\App\main.C -lCN          /
//                       E:\Project\ucos-ii\leddisp\Debug\List\ -lA          /
//                       E:\Project\ucos-ii\leddisp\Debug\List\ -o           /
//                       E:\Project\ucos-ii\leddisp\Debug\Obj\ -s9 --no_cse  /
//                       --no_unroll --no_inline --no_code_motion --no_tbaa  /
//                       --no_clustering --no_scheduling --debug --cpu_mode  /
//                       thumb --endian little --cpu ARM7TDMI-S              /
//                       --stack_align 4 --interwork -e --fpu None           /
//                       --dlib_config "e:\Program Files\IAR                 /
//                       Systems\Embedded Workbench 4.0                      /
//                       Evaluation\ARM\LIB\dl4tptinl8n.h" -I                /
//                       E:\Project\ucos-ii\leddisp\ -I                      /
//                       E:\Project\ucos-ii\leddisp\App\ -I                  /
//                       E:\Project\ucos-ii\leddisp\ARM\ -I                  /
//                       E:\Project\ucos-ii\leddisp\BSP\ -I                  /
//                       E:\Project\ucos-ii\leddisp\uCOS-II\ -I "e:\Program  /
//                       Files\IAR Systems\Embedded Workbench 4.0            /
//                       Evaluation\ARM\INC\"                                /
//    List file       =  E:\Project\ucos-ii\leddisp\Debug\List\main.s79      /
//                                                                           /
//                                                                           /
//////////////////////////////////////////////////////////////////////////////

        NAME main

        RTMODEL "StackAlign4", "USED"
        RTMODEL "__cpu_mode", "__pcs__interwork"
        RTMODEL "__data_model", "absolute"
        RTMODEL "__dlib_file_descriptor", "0"
        RTMODEL "__endian", "little"
        RTMODEL "__rt_version", "6"

        RSEG CSTACK:DATA:NOROOT(2)

        MULTWEAK ??BSP_Init??rT
        MULTWEAK ??LED_Off??rT
        MULTWEAK ??LED_On??rT
        MULTWEAK ??Main_Task??rA
        MULTWEAK ??OSInit??rT
        MULTWEAK ??OSStart??rT
        MULTWEAK ??OSTaskCreate??rT
        MULTWEAK ??OSTimeDlyHMSM??rT
        MULTWEAK ??main??rA
        PUBWEAK ?init?tab?DATA_Z
        PUBLIC Main_Task
        FUNCTION Main_Task,0603H
        LOCFRAME CSTACK, 8, STACK
        PUBLIC Main_TaskStk
        PUBLIC main
        FUNCTION main,0a03H
        LOCFRAME CSTACK, 4, STACK
        
        CFI Names cfiNames0
        CFI StackFrame CFA R13 HUGEDATA
        CFI Resource R0:32, R1:32, R2:32, R3:32, R4:32, R5:32, R6:32, R7:32
        CFI Resource R8:32, R9:32, R10:32, R11:32, R12:32, CPSR:32, R13:32
        CFI Resource R14:32, SPSR:32
        CFI VirtualResource ?RET:32
        CFI EndNames cfiNames0
        
        CFI Common cfiCommon0 Using cfiNames0
        CFI CodeAlign 4
        CFI DataAlign 4
        CFI ReturnAddress ?RET CODE
        CFI CFA R13+0
        CFI R0 Undefined
        CFI R1 Undefined
        CFI R2 Undefined
        CFI R3 Undefined
        CFI R4 SameValue
        CFI R5 SameValue
        CFI R6 SameValue
        CFI R7 SameValue
        CFI R8 SameValue
        CFI R9 SameValue
        CFI R10 SameValue
        CFI R11 SameValue
        CFI R12 Undefined
        CFI CPSR SameValue
        CFI R14 Undefined
        CFI SPSR SameValue
        CFI ?RET R14
        CFI EndCommon cfiCommon0
        
        
        CFI Common cfiCommon1 Using cfiNames0
        CFI CodeAlign 2
        CFI DataAlign 4
        CFI ReturnAddress ?RET CODE
        CFI CFA R13+0
        CFI R0 Undefined
        CFI R1 Undefined
        CFI R2 Undefined
        CFI R3 Undefined
        CFI R4 SameValue
        CFI R5 SameValue
        CFI R6 SameValue
        CFI R7 SameValue
        CFI R8 SameValue
        CFI R9 SameValue
        CFI R10 SameValue
        CFI R11 SameValue
        CFI R12 Undefined
        CFI CPSR SameValue
        CFI R14 Undefined
        CFI SPSR SameValue
        CFI ?RET R14
        CFI EndCommon cfiCommon1
        
BSP_Init            SYMBOL "BSP_Init"
LED_Off             SYMBOL "LED_Off"
LED_On              SYMBOL "LED_On"
OSInit              SYMBOL "OSInit"
OSStart             SYMBOL "OSStart"
OSTaskCreate        SYMBOL "OSTaskCreate"
OSTimeDlyHMSM       SYMBOL "OSTimeDlyHMSM"
??BSP_Init??rT      SYMBOL "??rT", BSP_Init
??LED_Off??rT       SYMBOL "??rT", LED_Off
??LED_On??rT        SYMBOL "??rT", LED_On
Main_Task           SYMBOL "Main_Task"
??Main_Task??rA     SYMBOL "??rA", Main_Task
??OSInit??rT        SYMBOL "??rT", OSInit
??OSStart??rT       SYMBOL "??rT", OSStart
??OSTaskCreate??rT  SYMBOL "??rT", OSTaskCreate
??OSTimeDlyHMSM??rT SYMBOL "??rT", OSTimeDlyHMSM
main                SYMBOL "main"
??main??rA          SYMBOL "??rA", main

        EXTERN BSP_Init
        FUNCTION BSP_Init,0202H
        EXTERN LED_Off
        FUNCTION LED_Off,0202H
        EXTERN LED_On
        FUNCTION LED_On,0202H
        EXTERN OSInit
        FUNCTION OSInit,0202H
        EXTERN OSStart
        FUNCTION OSStart,0202H
        EXTERN OSTaskCreate
        FUNCTION OSTaskCreate,0202H
        EXTERN OSTimeDlyHMSM
        FUNCTION OSTimeDlyHMSM,0202H

// E:\Project\ucos-ii\leddisp\App\main.C
//    1 
//    2 /********************************************************************************************************/
//    3 
//    4 #include <includes.h>
//    5 
//    6 #define  TASK_STK_SIZE                  64

        RSEG DATA_Z:DATA:SORT:NOROOT(2)
//    7 OS_STK        Main_TaskStk[TASK_STK_SIZE];
Main_TaskStk:
        DS8 256

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock0 Using cfiCommon0
        CFI NoFunction
        ARM
??main??rA:
        ADD      R12,PC,#+1
        BX       R12
        CFI EndBlock cfiBlock0
        REQUIRE main
//    8 void  Main_Task(void *data);
//    9 /*******************************************************************************
//   10 * 函数名称: main
//   11 * 功能描述: c语言的主函数,由它启动多任务环境
//   12 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock1 Using cfiCommon1
        CFI Function main
        THUMB
//   13 int main (void)
//   14 {
main:
        PUSH     {LR}
        CFI ?RET Frame(CFA, -4)
        CFI CFA R13+4
//   15     OSInit();
        _BLF     OSInit,??OSInit??rT
//   16     OSTaskCreate(Main_Task, (void *)0, &Main_TaskStk[TASK_STK_SIZE - 1], 0);
        MOVS     R3,#+0
        LDR      R2,??main_0      ;; Main_TaskStk + 252
        MOVS     R1,#+0
        LDR      R0,??main_0+0x4  ;; Main_Task
        _BLF     OSTaskCreate,??OSTaskCreate??rT
//   17     OSStart();
        _BLF     OSStart,??OSStart??rT
//   18 }
        MOVS     R0,#+0
        POP      {R1}
        BX       R1               ;; return
        DATA
??main_0:
        DC32     Main_TaskStk + 252
        DC32     Main_Task
        CFI EndBlock cfiBlock1

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

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock3 Using cfiCommon1
        CFI Function Main_Task
        THUMB
//   23   void  Main_Task(void *p_arg)
//   24 {   int i;
Main_Task:
        PUSH     {R4,LR}
        CFI ?RET Frame(CFA, -4)
        CFI R4 Frame(CFA, -8)
        CFI CFA R13+8
//   25     p_arg = p_arg;            /* 避免编译警告 */
//   26     BSP_Init(); 
        _BLF     BSP_Init,??BSP_Init??rT
//   27     LED_Off(0);
        MOVS     R0,#+0
        _BLF     LED_Off,??LED_Off??rT
//   28     while (TRUE){        
//   29         for (i = 1; i <= 16; i++) {
??Main_Task_0:
        MOVS     R4,#+1
//   30             LED_On(i);
??Main_Task_1:
        LSLS     R0,R4,#+24
        LSRS     R0,R0,#+24
        _BLF     LED_On,??LED_On??rT
//   31             OSTimeDlyHMSM(0, 0, 0, 50);
        MOVS     R3,#+50
        MOVS     R2,#+0
        MOVS     R1,#+0
        MOVS     R0,R1
        _BLF     OSTimeDlyHMSM,??OSTimeDlyHMSM??rT
//   32             LED_Off(i);
        LSLS     R0,R4,#+24
        LSRS     R0,R0,#+24
        _BLF     LED_Off,??LED_Off??rT
//   33         }
        ADDS     R4,R4,#+1
        CMP      R4,#+17
        BLT      ??Main_Task_1
//   34         for (i = 1; i <= 16; i++) {
        MOVS     R4,#+1
//   35             LED_On(17 - i);
??Main_Task_2:
        MOVS     R0,#+17
        SUBS     R0,R0,R4
        LSLS     R0,R0,#+24
        LSRS     R0,R0,#+24
        _BLF     LED_On,??LED_On??rT
//   36             OSTimeDlyHMSM(0, 0, 0, 50);
        MOVS     R3,#+50
        MOVS     R2,#+0
        MOVS     R1,#+0
        MOVS     R0,R1
        _BLF     OSTimeDlyHMSM,??OSTimeDlyHMSM??rT
//   37             LED_Off(17 - i);
        MOVS     R0,#+17
        SUBS     R0,R0,R4
        LSLS     R0,R0,#+24
        LSRS     R0,R0,#+24
        _BLF     LED_Off,??LED_Off??rT
//   38         }
        ADDS     R4,R4,#+1
        CMP      R4,#+17
        BGE      ??Main_Task_0
        B        ??Main_Task_2
        CFI EndBlock cfiBlock3
//   39     }  
//   40 } 

        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
??LED_Off??rT:
        LDR      R3,??Subroutine6_0  ;; LED_Off
        BX       R3
        DATA
??Subroutine6_0:
        DC32     LED_Off
        CFI EndBlock cfiBlock8

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

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

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

        END
//   41 /**********************************End Of File***********************************/
// 
// 218 bytes in segment CODE
// 256 bytes in segment DATA_Z
//  12 bytes in segment INITTAB
// 
// 130 bytes of CODE memory (+ 100 bytes shared)
// 256 bytes of DATA memory
//
//Errors: none
//Warnings: none

⌨️ 快捷键说明

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