?? os_cpu_c.lst
字號:
###############################################################################
# #
# IAR ANSI C/C++ Compiler V6.10.2.52244/W32 for ARM 07/Aug/2011 12:10:28 #
# Copyright 1999-2010 IAR Systems AB. #
# #
# Cpu mode = thumb #
# Endian = little #
# Source file = F:\stm32\我的程序\Micrium\Software\uCOS-II\Ports\ARM-Cor #
# tex-M3\Generic\IAR\os_cpu_c.c #
# Command line = F:\stm32\我的程序\Micrium\Software\uCOS-II\Ports\ARM-Cor #
# tex-M3\Generic\IAR\os_cpu_c.c -D USE_STDPERIPH_DRIVER #
# -D STM32F10X_CL -lCN F:\stm32\我的程序\Micrium\Software\ #
# EWARM\OS-II\Flash\List\ -o F:\stm32\我的程序\Micrium\Sof #
# tware\EWARM\OS-II\Flash\Obj\ --no_cse --no_unroll #
# --no_inline --no_code_motion --no_tbaa --no_clustering #
# --no_scheduling --debug --endian=little --cpu=Cortex-M3 #
# -e --fpu=None --dlib_config #
# D:\arm\INC\c\DLib_Config_Normal.h -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\APP\ -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP\ #
# -I F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP #
# \ST\CMSIS\CM3\CoreSupport\ -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP\ST #
# \CMSIS\CM3\DeviceSupport\ST\STM32F10x\ -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP\ST #
# \STM32F10x_StdPeriph_Driver\inc\ -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP\uC #
# OS-II\ -I F:\stm32\我的程序\Micrium\Software\EWARM\OS-II #
# \..\..\uCOS-II\Ports\ARM-Cortex-M3\Generic\IAR\ -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\..\uCO #
# S-II\Source\ -I F:\stm32\我的程序\Micrium\Software\EWARM #
# \OS-II\..\..\uC-LIB\ -I F:\stm32\我的程序\Micrium\Softwa #
# re\EWARM\OS-II\..\..\uC-LIB\Ports\ARM-Cortex-M3\IAR\ -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\..\uC- #
# CPU\ -I F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\. #
# .\..\uC-CPU\ARM-Cortex-M3\IAR\ -On --use_c++_inline #
# List file = F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\Flash\Lis #
# t\os_cpu_c.lst #
# Object file = F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\Flash\Obj #
# \os_cpu_c.o #
# #
# #
###############################################################################
F:\stm32\我的程序\Micrium\Software\uCOS-II\Ports\ARM-Cortex-M3\Generic\IAR\os_cpu_c.c
1 /*
2 *********************************************************************************************************
3 * uC/OS-II
4 * The Real-Time Kernel
5 *
6 *
7 * (c) Copyright 2006, Micrium, Weston, FL
8 * All Rights Reserved
9 *
10 * ARM Cortex-M3 Port
11 *
12 * File : OS_CPU_C.C
13 * Version : V2.89
14 * By : Jean J. Labrosse
15 * Brian Nagel
16 *
17 * For : ARMv7M Cortex-M3
18 * Mode : Thumb2
19 * Toolchain : IAR EWARM
20 *********************************************************************************************************
21 */
22
23 #define OS_CPU_GLOBALS
24 #include <ucos_ii.h>
\ In section .bss, align 4
\ __absolute OS_STK OS_CPU_ExceptStk[128U]
\ OS_CPU_ExceptStk:
\ 00000000 DS8 512
\ In section .bss, align 4
\ __absolute unsigned int *OS_CPU_ExceptStkBase
\ OS_CPU_ExceptStkBase:
\ 00000000 DS8 4
25
26 /*
27 *********************************************************************************************************
28 * LOCAL VARIABLES
29 *********************************************************************************************************
30 */
31
32 #if OS_TMR_EN > 0u
\ In section .bss, align 2
33 static INT16U OSTmrCtr;
\ OSTmrCtr:
\ 00000000 DS8 2
34 #endif
35
36 /*
37 *********************************************************************************************************
38 * SYS TICK DEFINES
39 *********************************************************************************************************
40 */
41
42 #define OS_CPU_CM3_NVIC_ST_CTRL (*((volatile INT32U *)0xE000E010uL)) /* SysTick Ctrl & Status Reg. */
43 #define OS_CPU_CM3_NVIC_ST_RELOAD (*((volatile INT32U *)0xE000E014uL)) /* SysTick Reload Value Reg. */
44 #define OS_CPU_CM3_NVIC_ST_CURRENT (*((volatile INT32U *)0xE000E018uL)) /* SysTick Current Value Reg. */
45 #define OS_CPU_CM3_NVIC_ST_CAL (*((volatile INT32U *)0xE000E01CuL)) /* SysTick Cal Value Reg. */
46 #define OS_CPU_CM3_NVIC_PRIO_ST (*((volatile INT8U *)0xE000ED23uL)) /* SysTick Handler Prio Reg. */
47
48 #define OS_CPU_CM3_NVIC_ST_CTRL_COUNT 0x00010000uL /* Count flag. */
49 #define OS_CPU_CM3_NVIC_ST_CTRL_CLK_SRC 0x00000004uL /* Clock Source. */
50 #define OS_CPU_CM3_NVIC_ST_CTRL_INTEN 0x00000002uL /* Interrupt enable. */
51 #define OS_CPU_CM3_NVIC_ST_CTRL_ENABLE 0x00000001uL /* Counter mode. */
52 #define OS_CPU_CM3_NVIC_PRIO_MIN 0xFFu /* Min handler prio. */
53
54 /*
55 *********************************************************************************************************
56 * OS INITIALIZATION HOOK
57 * (BEGINNING)
58 *
59 * Description: This function is called by OSInit() at the beginning of OSInit().
60 *
61 * Arguments : none
62 *
63 * Note(s) : 1) Interrupts should be disabled during this call.
64 *********************************************************************************************************
65 */
66 #if OS_CPU_HOOKS_EN > 0u
\ In section .text, align 2, keep-with-next
67 void OSInitHookBegin (void)
68 {
69 INT32U size;
70 OS_STK *pstk;
71
72 /* Clear exception stack for stack checking.*/
73 pstk = &OS_CPU_ExceptStk[0];
\ OSInitHookBegin:
\ 00000000 .... LDR.N R2,??DataTable4
\ 00000002 1100 MOVS R1,R2
74 size = OS_CPU_EXCEPT_STK_SIZE;
\ 00000004 8022 MOVS R2,#+128
\ 00000006 1000 MOVS R0,R2
75 while (size > 0u) {
\ ??OSInitHookBegin_0:
\ 00000008 0028 CMP R0,#+0
\ 0000000A 04D0 BEQ.N ??OSInitHookBegin_1
76 size--;
\ 0000000C 401E SUBS R0,R0,#+1
77 *pstk++ = (OS_STK)0;
\ 0000000E 0022 MOVS R2,#+0
\ 00000010 0A60 STR R2,[R1, #+0]
\ 00000012 091D ADDS R1,R1,#+4
\ 00000014 F8E7 B.N ??OSInitHookBegin_0
78 }
79
80 OS_CPU_ExceptStkBase = &OS_CPU_ExceptStk[OS_CPU_EXCEPT_STK_SIZE - 1u];
\ ??OSInitHookBegin_1:
\ 00000016 .... LDR.N R2,??DataTable4_1
\ 00000018 .... LDR.N R3,??DataTable4_2
\ 0000001A 1360 STR R3,[R2, #+0]
81
82 #if OS_TMR_EN > 0u
83 OSTmrCtr = 0u;
\ 0000001C .... LDR.N R2,??DataTable4_3
\ 0000001E 0023 MOVS R3,#+0
\ 00000020 1380 STRH R3,[R2, #+0]
84 #endif
85 }
\ 00000022 7047 BX LR ;; return
86 #endif
87
88 /*
89 *********************************************************************************************************
90 * OS INITIALIZATION HOOK
91 * (END)
92 *
93 * Description: This function is called by OSInit() at the end of OSInit().
94 *
95 * Arguments : none
96 *
97 * Note(s) : 1) Interrupts should be disabled during this call.
98 *********************************************************************************************************
99 */
100 #if OS_CPU_HOOKS_EN > 0u
\ In section .text, align 2, keep-with-next
101 void OSInitHookEnd (void)
102 {
103 }
\ OSInitHookEnd:
\ 00000000 7047 BX LR ;; return
104 #endif
105
106 /*
107 *********************************************************************************************************
108 * TASK CREATION HOOK
109 *
110 * Description: This function is called when a task is created.
111 *
112 * Arguments : ptcb is a pointer to the task control block of the task being created.
113 *
114 * Note(s) : 1) Interrupts are disabled during this call.
115 *********************************************************************************************************
116 */
117 #if OS_CPU_HOOKS_EN > 0u
\ In section .text, align 2, keep-with-next
118 void OSTaskCreateHook (OS_TCB *ptcb)
119 {
\ OSTaskCreateHook:
\ 00000000 10B5 PUSH {R4,LR}
\ 00000002 0400 MOVS R4,R0
120 #if OS_APP_HOOKS_EN > 0u
121 App_TaskCreateHook(ptcb);
\ 00000004 2000 MOVS R0,R4
\ 00000006 ........ BL App_TaskCreateHook
122 #else
123 (void)ptcb; /* Prevent compiler warning */
124 #endif
125 }
\ 0000000A 10BD POP {R4,PC} ;; return
126 #endif
127
128
129 /*
130 *********************************************************************************************************
131 * TASK DELETION HOOK
132 *
133 * Description: This function is called when a task is deleted.
134 *
135 * Arguments : ptcb is a pointer to the task control block of the task being deleted.
136 *
137 * Note(s) : 1) Interrupts are disabled during this call.
138 *********************************************************************************************************
139 */
140 #if OS_CPU_HOOKS_EN > 0u
\ In section .text, align 2, keep-with-next
141 void OSTaskDelHook (OS_TCB *ptcb)
142 {
\ OSTaskDelHook:
\ 00000000 10B5 PUSH {R4,LR}
\ 00000002 0400 MOVS R4,R0
143 #if OS_APP_HOOKS_EN > 0u
144 App_TaskDelHook(ptcb);
\ 00000004 2000 MOVS R0,R4
\ 00000006 ........ BL App_TaskDelHook
145 #else
146 (void)ptcb; /* Prevent compiler warning */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -