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

📄 os_flag.s79

📁 ARM仿真案例
💻 S79
📖 第 1 页 / 共 5 页
字号:
//////////////////////////////////////////////////////////////////////////////
//                                                                           /
// IAR ARM ANSI C/C++ Compiler V4.40A/W32 EVALUATION   21/Jul/2006  16:23:24 /
// 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\uCOS-II\os_flag.c        /
//    Command line    =  E:\Project\ucos-ii\leddisp\uCOS-II\os_flag.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\os_flag.s79   /
//                                                                           /
//                                                                           /
//////////////////////////////////////////////////////////////////////////////

        NAME os_flag

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

        RSEG CSTACK:DATA:NOROOT(2)

??DataTable0 EQU 0
??DataTable1 EQU 0
??DataTable10 EQU 0
??DataTable11 EQU 0
??DataTable12 EQU 0
??DataTable13 EQU 0
??DataTable14 EQU 0
??DataTable15 EQU 0
??DataTable16 EQU 0
??DataTable17 EQU 0
??DataTable18 EQU 0
??DataTable19 EQU 0
??DataTable20 EQU 0
??DataTable21 EQU 0
??DataTable22 EQU 0
??DataTable23 EQU 0
??DataTable24 EQU 0
??DataTable25 EQU 0
??DataTable26 EQU 0
??DataTable29 EQU 0
??DataTable3 EQU 0
??DataTable31 EQU 0
??DataTable4 EQU 0
??DataTable5 EQU 0
??DataTable8 EQU 0
??DataTable9 EQU 0
        MULTWEAK ??OSFlagAccept??rA
        MULTWEAK ??OSFlagCreate??rA
        MULTWEAK ??OSFlagDel??rA
        MULTWEAK ??OSFlagNameGet??rA
        MULTWEAK ??OSFlagNameSet??rA
        MULTWEAK ??OSFlagPend??rA
        MULTWEAK ??OSFlagPendGetFlagsRdy??rA
        MULTWEAK ??OSFlagPost??rA
        MULTWEAK ??OSFlagQuery??rA
        MULTWEAK ??OS_CPU_SR_Restore??rT
        MULTWEAK ??OS_CPU_SR_Save??rT
        MULTWEAK ??OS_FlagInit??rA
        MULTWEAK ??OS_FlagUnlink??rA
        MULTWEAK ??OS_MemClr??rT
        MULTWEAK ??OS_Sched??rT
        MULTWEAK ??OS_StrCopy??rT
        MULTWEAK ??OS_StrLen??rT
        PUBLIC OSFlagAccept
        FUNCTION OSFlagAccept,0203H
        LOCFRAME CSTACK, 24, STACK
        PUBLIC OSFlagCreate
        FUNCTION OSFlagCreate,0203H
        LOCFRAME CSTACK, 16, STACK
        PUBLIC OSFlagDel
        FUNCTION OSFlagDel,0203H
        LOCFRAME CSTACK, 24, STACK
        PUBLIC OSFlagNameGet
        FUNCTION OSFlagNameGet,0203H
        LOCFRAME CSTACK, 20, STACK
        PUBLIC OSFlagNameSet
        FUNCTION OSFlagNameSet,0203H
        LOCFRAME CSTACK, 20, STACK
        PUBLIC OSFlagPend
        FUNCTION OSFlagPend,0203H
        LOCFRAME CSTACK, 60, STACK
        PUBLIC OSFlagPendGetFlagsRdy
        FUNCTION OSFlagPendGetFlagsRdy,0203H
        LOCFRAME CSTACK, 8, STACK
        PUBLIC OSFlagPost
        FUNCTION OSFlagPost,0203H
        LOCFRAME CSTACK, 24, STACK
        PUBLIC OSFlagQuery
        FUNCTION OSFlagQuery,0203H
        LOCFRAME CSTACK, 12, STACK
        FUNCTION OS_FlagBlock,0203H
        LOCFRAME CSTACK, 20, STACK
        PUBLIC OS_FlagInit
        FUNCTION OS_FlagInit,0203H
        LOCFRAME CSTACK, 8, STACK
        FUNCTION OS_FlagTaskRdy,0203H
        LOCFRAME CSTACK, 12, STACK
        PUBLIC OS_FlagUnlink
        FUNCTION OS_FlagUnlink,0203H
        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
        
OS_CPU_SR_Restore   SYMBOL "OS_CPU_SR_Restore"
OS_CPU_SR_Save      SYMBOL "OS_CPU_SR_Save"
OS_MemClr           SYMBOL "OS_MemClr"
OS_Sched            SYMBOL "OS_Sched"
OS_StrCopy          SYMBOL "OS_StrCopy"
OS_StrLen           SYMBOL "OS_StrLen"
OSFlagAccept        SYMBOL "OSFlagAccept"
??OSFlagAccept??rA  SYMBOL "??rA", OSFlagAccept
OSFlagCreate        SYMBOL "OSFlagCreate"
??OSFlagCreate??rA  SYMBOL "??rA", OSFlagCreate
OSFlagDel           SYMBOL "OSFlagDel"
??OSFlagDel??rA     SYMBOL "??rA", OSFlagDel
OSFlagNameGet       SYMBOL "OSFlagNameGet"
??OSFlagNameGet??rA SYMBOL "??rA", OSFlagNameGet
OSFlagNameSet       SYMBOL "OSFlagNameSet"
??OSFlagNameSet??rA SYMBOL "??rA", OSFlagNameSet
OSFlagPend          SYMBOL "OSFlagPend"
??OSFlagPend??rA    SYMBOL "??rA", OSFlagPend
OSFlagPendGetFlagsRdy SYMBOL "OSFlagPendGetFlagsRdy"
??OSFlagPendGetFlagsRdy??rA SYMBOL "??rA", OSFlagPendGetFlagsRdy
OSFlagPost          SYMBOL "OSFlagPost"
??OSFlagPost??rA    SYMBOL "??rA", OSFlagPost
OSFlagQuery         SYMBOL "OSFlagQuery"
??OSFlagQuery??rA   SYMBOL "??rA", OSFlagQuery
??OS_CPU_SR_Restore??rT SYMBOL "??rT", OS_CPU_SR_Restore
??OS_CPU_SR_Save??rT SYMBOL "??rT", OS_CPU_SR_Save
OS_FlagInit         SYMBOL "OS_FlagInit"
??OS_FlagInit??rA   SYMBOL "??rA", OS_FlagInit
OS_FlagUnlink       SYMBOL "OS_FlagUnlink"
??OS_FlagUnlink??rA SYMBOL "??rA", OS_FlagUnlink
??OS_MemClr??rT     SYMBOL "??rT", OS_MemClr
??OS_Sched??rT      SYMBOL "??rT", OS_Sched
??OS_StrCopy??rT    SYMBOL "??rT", OS_StrCopy
??OS_StrLen??rT     SYMBOL "??rT", OS_StrLen

        EXTERN OSFlagFreeList
        EXTERN OSFlagTbl
        EXTERN OSIntNesting
        EXTERN OSRdyGrp
        EXTERN OSRdyTbl
        EXTERN OSTCBCur
        EXTERN OS_CPU_SR_Restore
        FUNCTION OS_CPU_SR_Restore,0202H
        EXTERN OS_CPU_SR_Save
        FUNCTION OS_CPU_SR_Save,0202H
        EXTERN OS_MemClr
        FUNCTION OS_MemClr,0202H
        EXTERN OS_Sched
        FUNCTION OS_Sched,0202H
        EXTERN OS_StrCopy
        FUNCTION OS_StrCopy,0202H
        EXTERN OS_StrLen
        FUNCTION OS_StrLen,0202H


        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock0 Using cfiCommon0
        CFI NoFunction
        ARM
??OSFlagAccept??rA:
        ADD      R12,PC,#+1
        BX       R12
        CFI EndBlock cfiBlock0
        REQUIRE OSFlagAccept
// E:\Project\ucos-ii\leddisp\uCOS-II\os_flag.c
//    1 /*
//    2 *********************************************************************************************************
//    3 *                                                uC/OS-II
//    4 *                                          The Real-Time Kernel
//    5 *                                         EVENT FLAG  MANAGEMENT
//    6 *
//    7 *                          (c) Copyright 2001-2003, Jean J. Labrosse, Weston, FL
//    8 *                                           All Rights Reserved
//    9 *
//   10 * File : OS_FLAG.C
//   11 * By   : Jean J. Labrosse
//   12 *********************************************************************************************************
//   13 */
//   14 
//   15 #ifndef  OS_MASTER_FILE
//   16 #include <ucos_ii.h>
//   17 #endif
//   18 
//   19 #if (OS_VERSION >= 251) && (OS_FLAG_EN > 0) && (OS_MAX_FLAGS > 0)
//   20 /*
//   21 *********************************************************************************************************
//   22 *                                            LOCAL PROTOTYPES
//   23 *********************************************************************************************************
//   24 */
//   25 
//   26 static  void     OS_FlagBlock(OS_FLAG_GRP *pgrp, OS_FLAG_NODE *pnode, OS_FLAGS flags, INT8U wait_type, INT16U timeout);
//   27 static  BOOLEAN  OS_FlagTaskRdy(OS_FLAG_NODE *pnode, OS_FLAGS flags_rdy);
//   28 
//   29 /*$PAGE*/
//   30 /*
//   31 *********************************************************************************************************
//   32 *                              CHECK THE STATUS OF FLAGS IN AN EVENT FLAG GROUP
//   33 *
//   34 * Description: This function is called to check the status of a combination of bits to be set or cleared
//   35 *              in an event flag group.  Your application can check for ANY bit to be set/cleared or ALL
//   36 *              bits to be set/cleared.
//   37 *
//   38 *              This call does not block if the desired flags are not present.
//   39 *
//   40 * Arguments  : pgrp          is a pointer to the desired event flag group.
//   41 *
//   42 *              flags         Is a bit pattern indicating which bit(s) (i.e. flags) you wish to check.
//   43 *                            The bits you want are specified by setting the corresponding bits in
//   44 *                            'flags'.  e.g. if your application wants to wait for bits 0 and 1 then
//   45 *                            'flags' would contain 0x03.
//   46 *
//   47 *              wait_type     specifies whether you want ALL bits to be set/cleared or ANY of the bits
//   48 *                            to be set/cleared.
//   49 *                            You can specify the following argument:
//   50 *
//   51 *                            OS_FLAG_WAIT_CLR_ALL   You will check ALL bits in 'flags' to be clear (0)
//   52 *                            OS_FLAG_WAIT_CLR_ANY   You will check ANY bit  in 'flags' to be clear (0)
//   53 *                            OS_FLAG_WAIT_SET_ALL   You will check ALL bits in 'flags' to be set   (1)
//   54 *                            OS_FLAG_WAIT_SET_ANY   You will check ANY bit  in 'flags' to be set   (1)
//   55 *
//   56 *                            NOTE: Add OS_FLAG_CONSUME if you want the event flag to be 'consumed' by
//   57 *                                  the call.  Example, to wait for any flag in a group AND then clear

⌨️ 快捷键说明

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