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

📄 ucos_app.lst

📁 lpc2478开发板基于IAR编译器移植ucos实验例程
💻 LST
📖 第 1 页 / 共 2 页
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION    17/Apr/2009  11:42:14 #
# Copyright 1999-2005 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Cpu mode        =  arm                                                  #
#    Endian          =  little                                               #
#    Stack alignment =  4                                                    #
#    Source file     =  E:\lixia\嵌入式\丰宝—桂电嵌入式大赛培训\培训--实例4 #
#                       \Src\uCOS\Src\uCOS_app.c                             #
#    Command line    =  E:\lixia\嵌入式\丰宝—桂电嵌入式大赛培训\培训--实例4 #
#                       \Src\uCOS\Src\uCOS_app.c -lCN                        #
#                       E:\lixia\嵌入式\丰宝—桂电嵌入式大赛培训\培训--实例4 #
#                       \Src\uCOS\RAM_Debug\List\ -o                         #
#                       E:\lixia\嵌入式\丰宝—桂电嵌入式大赛培训\培训--实例4 #
#                       \Src\uCOS\RAM_Debug\Obj\ -z2 --no_cse --no_unroll    #
#                       --no_inline --no_code_motion --no_tbaa               #
#                       --no_clustering --no_scheduling --debug --cpu_mode   #
#                       arm --endian little --cpu ARM7TDMI-S --stack_align   #
#                       4 -e --fpu None --dlib_config "C:\Program Files\IAR  #
#                       Systems\Embedded Workbench 4.0                       #
#                       Evaluation\arm\LIB\dl4tpannl8n.h" -I                 #
#                       E:\lixia\嵌入式\丰宝—桂电嵌入式大赛培训\培训--实例4 #
#                       \Src\uCOS\include\ -I E:\lixia\嵌入式\丰宝—桂电嵌入 #
#                       式大赛培训\培训--实例4\Src\uCOS\ucos-ii\include\ -I  #
#                       "C:\Program Files\IAR Systems\Embedded Workbench     #
#                       4.0 Evaluation\arm\INC\"                             #
#    List file       =  E:\lixia\嵌入式\丰宝—桂电嵌入式大赛培训\培训--实例4 #
#                       \Src\uCOS\RAM_Debug\List\uCOS_app.lst                #
#    Object file     =  E:\lixia\嵌入式\丰宝—桂电嵌入式大赛培训\培训--实例4 #
#                       \Src\uCOS\RAM_Debug\Obj\uCOS_app.r79                 #
#                                                                            #
#                                                                            #
##############################################################################

E:\lixia\嵌入式\丰宝—桂电嵌入式大赛培训\培训--实例4\Src\uCOS\Src\uCOS_app.c
      1          /*
      2          *********************************************************************************************************
      3          *
      4          *                                             EXAMPLE CODE
      5          *                                 uC/OS-II 2.84在LPC2400实验板上的范例程序
      6          *                                 本程序的各种配置在app_cfg.h文件
      7          *
      8          * Filename      : uCOS_app.c
      9          * Version       : V1.00
     10          * Programmer(s) : HuangJianhua
     11          * Time          : 2008-01-11
     12          *********************************************************************************************************
     13          */
     14          #include <includes.h>
     15          #include "type.h"
     16          #include "target.h"                                     /* 目标板驱动 */
     17          #include "bsp.h"                                        /* BSP,包括中断初始化和串口驱动等 */
     18          
     19          #include "fio.h"                                        /* Led驱动 */
     20          
     21          /*
     22          *********************************************************************************************************
     23          *                                           常量定义
     24          *********************************************************************************************************
     25          */
     26          #define OS_VIEW_MODULE 1                                /* 启用OS_VIEW */
     27          
     28          /*
     29          *********************************************************************************************************
     30          *                                            本地变量
     31          *********************************************************************************************************
     32          */

   \                                 In segment DATA_Z, align 4, align-sorted
     33          static  OS_STK          AppTaskStartStk[APP_TASK_START_STK_SIZE];       /*任务堆栈 */
   \                     AppTaskStartStk:
   \   00000000                      DS8 2048

   \                                 In segment DATA_Z, align 4, align-sorted
     34          static  OS_STK          AppTaskLEDStk[APP_TASK_LED_STK_SIZE];
   \                     AppTaskLEDStk:
   \   00000000                      DS8 2048
     35          
     36          /*
     37          *********************************************************************************************************
     38          *                                         本地函数原型
     39          *********************************************************************************************************
     40          */
     41          static  void            AppTaskStart                (void *p_arg);
     42          static  void            AppTaskLed (void *p_arg);
     43          
     44          #if OS_VIEW_MODULE > 0
     45          static  void            AppTerminalRx               (CPU_INT08U rx_data);
     46          #endif
     47          
     48          /*
     49          *********************************************************************************************************
     50          *                                                main()
     51          *
     52          *********************************************************************************************************
     53          */

   \                                 In segment CODE, align 4, keep-with-next
     54          void  main (void)
     55          {
   \                     main:
   \   00000000   00402DE9           PUSH     {LR}
   \   00000004   04D04DE2           SUB      SP,SP,#+4
     56              CPU_INT08U  err;
     57          
     58              TargetResetInit();                                          /* 目标板初始化 */
   \   00000008   ........           _BLF     TargetResetInit,??TargetResetInit??rA
     59              GPIOInit(3,1,1);                                            /* Led初始化 */
   \   0000000C   0120A0E3           MOV      R2,#+1
   \   00000010   0110A0E3           MOV      R1,#+1
   \   00000014   0300A0E3           MOV      R0,#+3
   \   00000018   ........           _BLF     GPIOInit,??GPIOInit??rA
     60              Ser_Init ();                                                /* 串口初始化 */
   \   0000001C   ........           _BLF     Ser_Init,??Ser_Init??rA
     61              Ser_Printf("\r\nuC/OS-II now start running ... \r\n");
   \   00000020   64009FE5           LDR      R0,??main_0      ;; `?<Constant "\\r\\nuC/OS-II now start ...">`
   \   00000024   ........           _BLF     Ser_Printf,??Ser_Printf??rA
     62          
     63              BSP_IntDisAll();                                            /* 禁用中断,直到OS启用 */
   \   00000028   ........           _BLF     BSP_IntDisAll,??BSP_IntDisAll??rA
     64          
     65              OSInit();                                                   /* uC/OS-II初始化 */
   \   0000002C   ........           _BLF     OSInit,??OSInit??rA
     66          
     67              OSTaskCreateExt(AppTaskStart,                               /* 建立初始任务 */
     68                              (void *)0,
     69                              (OS_STK *)&AppTaskStartStk[APP_TASK_START_STK_SIZE - 1],
     70                              APP_TASK_START_PRIO,
     71                              APP_TASK_START_PRIO,
     72                              (OS_STK *)&AppTaskStartStk[0],
     73                              APP_TASK_START_STK_SIZE,
     74                              (void *)0,
     75                              OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
   \   00000030   0300A0E3           MOV      R0,#+3
   \   00000034   01002DE9           PUSH     {R0}
   \   00000038   0000A0E3           MOV      R0,#+0
   \   0000003C   01002DE9           PUSH     {R0}
   \   00000040   800FA0E3           MOV      R0,#+512
   \   00000044   01002DE9           PUSH     {R0}
   \   00000048   40009FE5           LDR      R0,??main_0+0x4  ;; AppTaskStartStk
   \   0000004C   01002DE9           PUSH     {R0}
   \   00000050   0100A0E3           MOV      R0,#+1
   \   00000054   01002DE9           PUSH     {R0}
   \   00000058   0130A0E3           MOV      R3,#+1
   \   0000005C   30209FE5           LDR      R2,??main_0+0x8  ;; AppTaskStartStk + 2044
   \   00000060   0010A0E3           MOV      R1,#+0
   \   00000064   2C009FE5           LDR      R0,??main_0+0xC  ;; AppTaskStart
   \   00000068   ........           _BLF     OSTaskCreateExt,??OSTaskCreateExt??rA
   \   0000006C   14D08DE2           ADD      SP,SP,#+20       ;; stack cleaning
     76          
     77          #if OS_TASK_NAME_SIZE > 13
     78              OSTaskNameSet(APP_TASK_START_PRIO, "Start Task", &err);     /* 任务命名 */
   \   00000070   0D20B0E1           MOVS     R2,SP
   \   00000074   20109FE5           LDR      R1,??main_0+0x10  ;; `?<Constant "Start Task">`
   \   00000078   0100A0E3           MOV      R0,#+1
   \   0000007C   ........           _BLF     OSTaskNameSet,??OSTaskNameSet??rA
     79          #endif
     80          
     81              OSStart();                                                  /* 开始多任务调度  */
   \   00000080   ........           _BLF     OSStart,??OSStart??rA
     82          }
   \   00000084   04D08DE2           ADD      SP,SP,#+4        ;; stack cleaning
   \   00000088   0080BDE8           POP      {PC}             ;; return
   \                     ??main_0:
   \   0000008C   ........           DC32     `?<Constant "\\r\\nuC/OS-II now start ...">`
   \   00000090   ........           DC32     AppTaskStartStk
   \   00000094   ........           DC32     AppTaskStartStk + 2044
   \   00000098   ........           DC32     AppTaskStart
   \   0000009C   ........           DC32     `?<Constant "Start Task">`
     83          
     84          /*
     85          *********************************************************************************************************
     86          *                                          STARTUP TASK
     87          *
     88          * Description : 这是一个初始任务范例,它启动其它任务,并在串口上打印提示信息。
     89          *               系统节拍tick必须在这里,也就是多任务开始以后启动。
     90          *
     91          * Arguments   : p_arg   是一个参数 passed to 'AppStartTask()' by 'OSTaskCreate()'.
     92          *
     93          * Returns     : none
     94          *
     95          * Notes       : 程序的第一行只是为了防止出现编译警告。编译器不会为它产生任何代码。
     96          *********************************************************************************************************
     97          */

   \                                 In segment CODE, align 4, keep-with-next
     98          static  void  AppTaskStart (void *p_arg)
     99          {
   \                     AppTaskStart:
   \   00000000   30402DE9           PUSH     {R4,R5,LR}
   \   00000004   0040B0E1           MOVS     R4,R0
    100              (void)p_arg;
    101              CPU_INT32U      delay0;
    102          
    103              BSP_Init();                                                 /* 在BSP初始化时进行系统节拍tick初始化  */
   \   00000008   ........           _BLF     BSP_Init,??BSP_Init??rA
    104          
    105          #if OS_TASK_STAT_EN > 0
    106              OSStatInit();                                               /* 启动系统统计任务  */
   \   0000000C   ........           _BLF     OSStatInit,??OSStatInit??rA
    107          #endif
    108          
    109          #if OS_VIEW_MODULE > 0
    110              OSView_Init(115200);                                        /* OSView 初始化, baud rate = 115200                          */
   \   00000010   400BA0E3           MOV      R0,#+65536
   \   00000014   C20C80E3           ORR      R0,R0,#0xC200
   \   00000018   ........           _BLF     OSView_Init,??OSView_Init??rA
    111              OSView_TerminalRxSetCallback(AppTerminalRx);
   \   0000001C   90009FE5           LDR      R0,??AppTaskStart_0  ;; AppTerminalRx
   \   00000020   ........           _BLF     OSView_TerminalRxSetCallback,??OSView_TerminalRxSetCallback??rA
    112              OSView_RxIntEn();                                           /* 启动接收中断  */
   \   00000024   ........           _BLF     OSView_RxIntEn,??OSView_RxIntEn??rA
    113          #endif
    114          
    115          /******************************************* 创建其它任务在这里实现 *************************************/
    116              OSTaskCreateExt(AppTaskLed,                                 /* 第二个任务建立 */
    117                              (void *)0,
    118                              (OS_STK *)&AppTaskLEDStk[APP_TASK_LED_STK_SIZE - 1],
    119                              APP_TASK_Led_PRIO,
    120                              APP_TASK_Led_PRIO,
    121                              (OS_STK *)&AppTaskLEDStk[0],
    122                              APP_TASK_LED_STK_SIZE,
    123                              (void *)0,
    124                              OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
   \   00000028   0300A0E3           MOV      R0,#+3
   \   0000002C   01002DE9           PUSH     {R0}
   \   00000030   0000A0E3           MOV      R0,#+0
   \   00000034   01002DE9           PUSH     {R0}
   \   00000038   800FA0E3           MOV      R0,#+512
   \   0000003C   01002DE9           PUSH     {R0}
   \   00000040   70009FE5           LDR      R0,??AppTaskStart_0+0x4  ;; AppTaskLEDStk
   \   00000044   01002DE9           PUSH     {R0}
   \   00000048   0200A0E3           MOV      R0,#+2

⌨️ 快捷键说明

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