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

📄 os_cpu_c.txt

📁 stm32 ucos 精简移殖版本 不需作任何修改直接便可运行。包含串口 定时器
💻 TXT
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 919] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o.\output\os_cpu_c.o --depend=.\output\os_cpu_c.d --device=DARMSTM --apcs=interwork -O1 -I. -I..\BSP -I..\..\..\..\..\uCOS-II\Ports\arm-cortex-m3\Generic\RealView -I..\..\..\..\..\uCOS-II\Source -I..\..\..\..\..\CPU\ST\STM32\inc -I..\..\..\..\..\uC-CPU -I..\..\..\..\..\uC-CPU\Arm-Cortex-M3\RealView -I..\..\..\..\..\uC-LIB -IC:\Keil\ARM\INC\ST\STM32F10x --omf_browse=.\output\os_cpu_c.crf ..\..\..\..\..\uCOS-II\Ports\ARM-Cortex-M3\Generic\RealView\os_cpu_c.c]
                          THUMB

                          AREA ||.text||, CODE, READONLY, ALIGN=2

                  OSInitHookBegin PROC
;;;71     #endif
;;;72     }
000000  4770              BX       lr
;;;73     #endif
                          ENDP

                  OSInitHookEnd PROC
;;;89     {
;;;90     }
000002  4770              BX       lr
;;;91     #endif
                          ENDP

                  OSTaskCreateHook PROC
;;;107    #if OS_APP_HOOKS_EN > 0
;;;108        App_TaskCreateHook(ptcb);
000004  f7fff7ff          B.W      App_TaskCreateHook
;;;109    #else
;;;110        (void)ptcb;                                  /* Prevent compiler warning                           */
;;;111    #endif
;;;112    }
;;;113    #endif
                          ENDP

                  OSTaskDelHook PROC
;;;130    #if OS_APP_HOOKS_EN > 0
;;;131        App_TaskDelHook(ptcb);
000008  f7fff7ff          B.W      App_TaskDelHook
;;;132    #else
;;;133        (void)ptcb;                                  /* Prevent compiler warning                           */
;;;134    #endif
;;;135    }
;;;136    #endif
                          ENDP

                  OSTaskIdleHook PROC
;;;153    #if OS_APP_HOOKS_EN > 0
;;;154        App_TaskIdleHook();
00000c  f7fff7ff          B.W      App_TaskIdleHook
;;;155    #endif
;;;156    }
;;;157    #endif
                          ENDP

                  OSTaskStatHook PROC
;;;173    #if OS_APP_HOOKS_EN > 0
;;;174        App_TaskStatHook();
000010  f7fff7ff          B.W      App_TaskStatHook
;;;175    #endif
;;;176    }
;;;177    #endif
                          ENDP

                  OSTaskStkInit PROC
;;;216                                                     /* Registers stacked as if auto-saved on exception    */
;;;217        *(stk)    = (INT32U)0x01000000L;             /* xPSR                                               */
000014  f04ff04f          MOV      r3,#0x1000000
000018  6013              STR      r3,[r2,#0]
;;;218        *(--stk)  = (INT32U)task;                    /* Entry Point                                        */
00001a  f842f842          STR      r0,[r2,#-4]!
;;;219        *(--stk)  = (INT32U)0xFFFFFFFEL;             /* R14 (LR) (init value will cause fault if ever used)*/
00001e  1f12              SUBS     r2,r2,#4
000020  f06ff06f          MVN      r3,#1
000024  4610              MOV      r0,r2
000026  6013              STR      r3,[r2,#0]
;;;220        *(--stk)  = (INT32U)0x12121212L;             /* R12                                                */
000028  f04ff04f          MOV      r2,#0x12121212
00002c  f840f840          STR      r2,[r0,#-4]!
;;;221        *(--stk)  = (INT32U)0x03030303L;             /* R3                                                 */
000030  f04ff04f          MOV      r2,#0x3030303
000034  f840f840          STR      r2,[r0,#-4]!
;;;222        *(--stk)  = (INT32U)0x02020202L;             /* R2                                                 */
000038  f04ff04f          MOV      r2,#0x2020202
00003c  f840f840          STR      r2,[r0,#-4]!
;;;223        *(--stk)  = (INT32U)0x01010101L;             /* R1                                                 */
000040  1052              ASRS     r2,r2,#1
000042  f840f840          STR      r2,[r0,#-4]!
;;;224        *(--stk)  = (INT32U)p_arg;                   /* R0 : argument                                      */
000046  f840f840          STR      r1,[r0,#-4]!
;;;225    
;;;226                                                     /* Remaining registers saved on process stack         */
;;;227        *(--stk)  = (INT32U)0x11111111L;             /* R11                                                */
00004a  f04ff04f          MOV      r1,#0x11111111
00004e  f840f840          STR      r1,[r0,#-4]!
;;;228        *(--stk)  = (INT32U)0x10101010L;             /* R10                                                */
000052  0111              LSLS     r1,r2,#4
000054  f840f840          STR      r1,[r0,#-4]!
;;;229        *(--stk)  = (INT32U)0x09090909L;             /* R9                                                 */
000058  f04ff04f          MOV      r1,#0x9090909
00005c  f840f840          STR      r1,[r0,#-4]!
;;;230        *(--stk)  = (INT32U)0x08080808L;             /* R8                                                 */
000060  00d1              LSLS     r1,r2,#3
000062  f840f840          STR      r1,[r0,#-4]!
;;;231        *(--stk)  = (INT32U)0x07070707L;             /* R7                                                 */
000066  f04ff04f          MOV      r1,#0x7070707
00006a  f840f840          STR      r1,[r0,#-4]!
;;;232        *(--stk)  = (INT32U)0x06060606L;             /* R6                                                 */
00006e  f04ff04f          MOV      r1,#0x6060606
000072  f840f840          STR      r1,[r0,#-4]!
;;;233        *(--stk)  = (INT32U)0x05050505L;             /* R5                                                 */
000076  f04ff04f          MOV      r1,#0x5050505
00007a  f840f840          STR      r1,[r0,#-4]!
;;;234        *(--stk)  = (INT32U)0x04040404L;             /* R4                                                 */
00007e  0091              LSLS     r1,r2,#2
000080  f840f840          STR      r1,[r0,#-4]!
;;;235    
;;;236        return (stk);
;;;237    }
000084  4770              BX       lr
;;;238    
                          ENDP

                  OSTaskSwHook PROC
;;;257    #if OS_APP_HOOKS_EN > 0
;;;258        App_TaskSwHook();
000086  f7fff7ff          B.W      App_TaskSwHook
;;;259    #endif
;;;260    }
;;;261    #endif
                          ENDP

                  OSTCBInitHook PROC
;;;277    #if OS_APP_HOOKS_EN > 0
;;;278        App_TCBInitHook(ptcb);
00008a  f7fff7ff          B.W      App_TCBInitHook
;;;279    #else
;;;280        (void)ptcb;                                  /* Prevent compiler warning                           */
;;;281    #endif
;;;282    }
;;;283    #endif
                          ENDP

                  OSTimeTickHook PROC
;;;310    #endif
;;;311    }
00008e  4770              BX       lr
;;;312    #endif
                          ENDP

                  OS_CPU_SysTickHandler PROC
;;;329    void  OS_CPU_SysTickHandler (void)
;;;330    {
000090  b510              PUSH     {r4,lr}
;;;331        OS_CPU_SR  cpu_sr;
;;;332    
;;;333    
;;;334        OS_ENTER_CRITICAL();                         /* Tell uC/OS-II that we are starting an ISR          */
000092  f7fff7ff          BL       OS_CPU_SR_Save
;;;335        OSIntNesting++;
000096  4a10              LDR      r2,|L1.216|
000098  7811              LDRB     r1,[r2,#0]  ; OSIntNesting
00009a  1c49              ADDS     r1,r1,#1
00009c  7011              STRB     r1,[r2,#0]  ; OSIntNesting
;;;336        OS_EXIT_CRITICAL();
00009e  f7fff7ff          BL       OS_CPU_SR_Restore
;;;337    
;;;338        OSTimeTick();                                /* Call uC/OS-II's OSTimeTick()                       */
0000a2  f7fff7ff          BL       OSTimeTick
;;;339    
;;;340        OSIntExit();                                 /* Tell uC/OS-II that we are leaving the ISR          */
0000a6  e8bde8bd          POP      {r4,lr}
0000aa  f7fff7ff          B.W      OSIntExit
;;;341    }
;;;342    
                          ENDP

                  OS_CPU_SysTickInit PROC
;;;356    void  OS_CPU_SysTickInit (void)
;;;357    {
0000ae  b510              PUSH     {r4,lr}
;;;358        INT32U  cnts;
;;;359    
;;;360    
;;;361        cnts = OS_CPU_SysTickClkFreq() / OS_TICKS_PER_SEC;
0000b0  f7fff7ff          BL       OS_CPU_SysTickClkFreq
0000b4  f44ff44f          MOV      r1,#0x3e8
0000b8  fbb0fbb0          UDIV     r1,r0,r1
;;;362    
;;;363        OS_CPU_CM3_NVIC_ST_RELOAD = (cnts - 1);
0000bc  1e49              SUBS     r1,r1,#1
0000be  f04ff04f          MOV      r0,#0xe000e000
0000c2  6141              STR      r1,[r0,#0x14]
;;;364                                                     /* Enable timer.                                      */
;;;365        OS_CPU_CM3_NVIC_ST_CTRL  |= OS_CPU_CM3_NVIC_ST_CTRL_CLK_SRC | OS_CPU_CM3_NVIC_ST_CTRL_ENABLE;
0000c4  6901              LDR      r1,[r0,#0x10]
0000c6  f041f041          ORR      r1,r1,#5
0000ca  6101              STR      r1,[r0,#0x10]
;;;366                                                     /* Enable timer interrupt.                            */
;;;367        OS_CPU_CM3_NVIC_ST_CTRL  |= OS_CPU_CM3_NVIC_ST_CTRL_INTEN;
0000cc  6901              LDR      r1,[r0,#0x10]
0000ce  f041f041          ORR      r1,r1,#2
0000d2  6101              STR      r1,[r0,#0x10]
;;;368    }
0000d4  bd10              POP      {r4,pc}
                          ENDP

0000d6  0000              DCW      0x0000
                  |L1.216|
0000d8  00000000          DCD      OSIntNesting

⌨️ 快捷键说明

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