📄 os_viewc.lst
字号:
##############################################################################
# #
# IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION 12/Dec/2008 17:14:27 #
# Copyright 1999-2005 IAR Systems. All rights reserved. #
# #
# Cpu mode = arm #
# Endian = little #
# Stack alignment = 4 #
# Source file = E:\IAR_2478\IAR_2478\26uCOS\Src\uCOS\UCOS-II\uCOSVie #
# w\os_viewc.c #
# Command line = E:\IAR_2478\IAR_2478\26uCOS\Src\uCOS\UCOS-II\uCOSVie #
# w\os_viewc.c -lCN E:\IAR_2478\IAR_2478\26uCOS\Src\uC #
# OS\RAM_Debug\List\ -o E:\IAR_2478\IAR_2478\26uCOS\Sr #
# c\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:\IAR_2478\IAR_2478\26uCOS\Src\uCOS\include\ -I #
# E:\IAR_2478\IAR_2478\26uCOS\Src\uCOS\ucos-ii\include #
# \ -I "C:\Program Files\IAR Systems\Embedded #
# Workbench 4.0 Evaluation\arm\INC\" #
# List file = E:\IAR_2478\IAR_2478\26uCOS\Src\uCOS\RAM_Debug\List\ #
# os_viewc.lst #
# Object file = E:\IAR_2478\IAR_2478\26uCOS\Src\uCOS\RAM_Debug\Obj\o #
# s_viewc.r79 #
# #
# #
##############################################################################
E:\IAR_2478\IAR_2478\26uCOS\Src\uCOS\UCOS-II\uCOSView\os_viewc.c
1 /*
2 *********************************************************************************************************
3 * uC/OS-View PORT
4 *
5 * (c) Copyright 2003-2006; Micrium, Inc.; Weston, FL
6 *
7 * All rights reserved. Protected by international copyright laws.
8 * Knowledge of the source code may NOT be used to develop a similar product.
9 * Please help us continue to provide the Embedded community with the finest
10 * software available. Your honesty is greatly appreciated.
11 *********************************************************************************************************
12 */
13
14 /*
15 *********************************************************************************************************
16 *
17 * uC/OS-View PORT
18 *
19 * NXP LPC2468
20 *
21 * Filename : os_viewc.c
22 *********************************************************************************************************
23 */
24
25 #include <includes.h>
\ In segment DATA_AN, at 0xfffff11c
\ unsigned long volatile __data VICVectAddr7
\ VICVectAddr7:
\ 00000000 DS8 4
\ In segment DATA_AN, at 0xe002c01c
\ union <unnamed> volatile __data _A_PINSEL7
\ _A_PINSEL7:
\ 00000000 DS8 4
\ In segment DATA_AN, at 0xe0010000
\ unsigned char volatile __data U1RBRTHR
\ U1RBRTHR:
\ 00000000 DS8 1
\ In segment DATA_AN, at 0xe0010004
\ union <unnamed> volatile __data _A_U1IER
\ _A_U1IER:
\ 00000000 DS8 4
\ In segment DATA_AN, at 0xe0010008
\ union <unnamed> volatile __data _A_U1FCR
\ _A_U1FCR:
\ 00000000 DS8 4
\ In segment DATA_AN, at 0xe001000c
\ union <unnamed> volatile __data _A_U1LCR
\ _A_U1LCR:
\ 00000000 DS8 1
\ In segment DATA_AN, at 0xe0010014
\ union <unnamed> const volatile __data _A_U1LSR
\ _A_U1LSR:
\ 00000000 DS8 1
26
27 /*
28 *********************************************************************************************************
29 * CONSTANTS
30 *********************************************************************************************************
31 */
32
33 /*
34 *********************************************************************************************************
35 * EXIT uC/OS-View
36 *
37 * Description: This function is called if your target needs to 'uninstall' uC/OS-View.
38 *
39 * Arguments : none
40 *
41 * Returns ; none
42 *********************************************************************************************************
43 */
44
\ In segment CODE, align 4, keep-with-next
45 void OSView_Exit (void)
46 {
47 ;
48 }
\ OSView_Exit:
\ 00000000 0EF0A0E1 MOV PC,LR ;; return
49
50 /*
51 *********************************************************************************************************
52 * Obtain CPU name
53 *
54 * Description: This function is used to fetch the CPU name.
55 *
56 * Arguments : s is a pointer to a string in which the CPU name will be stored.
57 *
58 * Returns ; none.
59 *********************************************************************************************************
60 */
61
\ In segment CODE, align 4, keep-with-next
62 void OSView_GetCPUName (INT8U *s)
63 {
\ OSView_GetCPUName:
\ 00000000 30402DE9 PUSH {R4,R5,LR}
\ 00000004 0040B0E1 MOVS R4,R0
64 INT8U cpu_clk_freq;
65
66
67 cpu_clk_freq = (INT8U)(BSP_CPU_ClkFreq() / 1000000L);
\ 00000008 ........ _BLF BSP_CPU_ClkFreq,??BSP_CPU_ClkFreq??rA
\ 0000000C F41AA0E3 MOV R1,#+999424
\ 00000010 901F81E3 ORR R1,R1,#0x240
\ 00000014 ........ _BLF ??divu32_a,??rA??divu32_a
\ 00000018 0150B0E1 MOVS R5,R1
68 (void)OS_StrCopy(s, "NXP LPC2468 (xx MHz)");
\ 0000001C 38109FE5 LDR R1,??OSView_GetCPUName_0 ;; `?<Constant "NXP LPC2468 (xx MHz)">`
\ 00000020 0400B0E1 MOVS R0,R4
\ 00000024 ........ _BLF OS_StrCopy,??OS_StrCopy??rA
69 s[13] = cpu_clk_freq / 10 + '0';
\ 00000028 0500B0E1 MOVS R0,R5
\ 0000002C FF0010E2 ANDS R0,R0,#0xFF ;; Zero extend
\ 00000030 0A10A0E3 MOV R1,#+10
\ 00000034 ........ _BLF ??div32_a,??rA??div32_a
\ 00000038 300091E2 ADDS R0,R1,#+48
\ 0000003C 0D00C4E5 STRB R0,[R4, #+13]
70 s[14] = cpu_clk_freq % 10 + '0';
\ 00000040 0500B0E1 MOVS R0,R5
\ 00000044 FF0010E2 ANDS R0,R0,#0xFF ;; Zero extend
\ 00000048 0A10A0E3 MOV R1,#+10
\ 0000004C ........ _BLF ??div32_a,??rA??div32_a
\ 00000050 300090E2 ADDS R0,R0,#+48
\ 00000054 0E00C4E5 STRB R0,[R4, #+14]
71 }
\ 00000058 3080BDE8 POP {R4,R5,PC} ;; return
\ ??OSView_GetCPUName_0:
\ 0000005C ........ DC32 `?<Constant "NXP LPC2468 (xx MHz)">`
72
73 /*
74 *********************************************************************************************************
75 * Obtain Interrupt Stack information
76 *
77 * Description: These functions return the base and size of the interrupt stack, if used.
78 *
79 * Arguments : none
80 *
81 * Returns ; Stack location.
82 *
83 * Notes : Because no ISR stack is used, these functions return zero.
84 *********************************************************************************************************
85 */
86
\ In segment CODE, align 4, keep-with-next
87 INT32U OSView_GetIntStkBase (void)
88 {
89 return (0); /* We are not using an ISR stack */
\ OSView_GetIntStkBase:
\ 00000000 0000A0E3 MOV R0,#+0
\ 00000004 0EF0A0E1 MOV PC,LR ;; return
90 }
91
92
\ In segment CODE, align 4, keep-with-next
93 INT32U OSView_GetIntStkSize (void)
94 {
95 return (0); /* We are not using an ISR stack */
\ OSView_GetIntStkSize:
\ 00000000 0000A0E3 MOV R0,#+0
\ 00000004 0EF0A0E1 MOV PC,LR ;; return
96 }
97
98 /*
99 *********************************************************************************************************
100 * INITIALIZE uC/OS-View COM PORT
101 *
102 * Description: Initialize the hardware required for the OS to run. This will work on any target hardware,
103 * but may have to be tailored a little (regarding the clock frequency). Of course the same
104 * holds true if for some reason you choose to use another timer.
105 *
106 * Arguments : baud_rate is the intended baud rate for the port.
107 *
108 * Returns ; none.
109 *
110 * Note(s) : 1) This function assumes that a free running timer has been initialized. The timer can
111 * either be a 16 bits or 32 bits timer. Your application needs to provide a function
112 * called OSView_TmrRd() that reads the current counts of this timer. The free running
113 * timer is initialized by the BSP function OSView_TmrInit().
114 *********************************************************************************************************
115 */
116
\ In segment CODE, align 4, keep-with-next
117 void OSView_InitTarget (INT32U baud_rate)
118 {
\ OSView_InitTarget:
\ 00000000 F04F2DE9 PUSH {R4-R11,LR}
\ 00000004 0040B0E1 MOVS R4,R0
119 INT16U div; /* Baud rate divisor */
120 INT8U divlo;
121 INT8U divhi;
122 INT8U lcr; /* Line Control Register */
123 INT32U p_clk_freq;
124 INT32U pinsel;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -