📄 main.lst
字号:
###############################################################################
# #
# IAR C/C++ Compiler V5.30.0.50166/W32 for Atmel AVR 26/Dec/2009 09:14:41 #
# Copyright 1996-2009 IAR Systems AB. #
# #
# Source file = E:\design\AVR\IAR_UCOS_II\main.c #
# Command line = E:\design\AVR\IAR_UCOS_II\main.c --cpu=m16 -ms -o #
# E:\design\AVR\IAR_UCOS_II\Debug\Obj\ -lCN #
# E:\design\AVR\IAR_UCOS_II\Debug\List\ -lB #
# E:\design\AVR\IAR_UCOS_II\Debug\List\ #
# --initializers_in_flash -z3 --no_cse --no_inline #
# --no_code_motion --no_cross_call --no_clustering #
# --no_tbaa --debug -e -I "D:\IAR Systems\Embedded #
# Workbench 5.3 For AVR\avr\INC\" -I "D:\IAR #
# Systems\Embedded Workbench 5.3 For AVR\avr\INC\CLIB\" #
# --eeprom_size 512 #
# List file = E:\design\AVR\IAR_UCOS_II\Debug\List\main.lst #
# Object file = E:\design\AVR\IAR_UCOS_II\Debug\Obj\main.r90 #
# #
# #
###############################################################################
E:\design\AVR\IAR_UCOS_II\main.c
1 #include <iom16.h>
\ In segment ABSOLUTE, at 0x59
\ <__C20> volatile __io _A_TIMSK
\ _A_TIMSK:
\ 00000000 DS8 1
\ In segment ABSOLUTE, at 0x53
\ <__C38> volatile __io _A_TCCR0
\ _A_TCCR0:
\ 00000000 DS8 1
\ In segment ABSOLUTE, at 0x3b
\ <__C98> volatile __io _A_PORTA
\ _A_PORTA:
\ 00000000 DS8 1
\ In segment ABSOLUTE, at 0x3a
\ <__C101> volatile __io _A_DDRA
\ _A_DDRA:
\ 00000000 DS8 1
\ In segment ABSOLUTE, at 0x38
\ <__C107> volatile __io _A_PORTB
\ _A_PORTB:
\ 00000000 DS8 1
\ In segment ABSOLUTE, at 0x37
\ <__C110> volatile __io _A_DDRB
\ _A_DDRB:
\ 00000000 DS8 1
\ In segment ABSOLUTE, at 0x35
\ <__C116> volatile __io _A_PORTC
\ _A_PORTC:
\ 00000000 DS8 1
\ In segment ABSOLUTE, at 0x34
\ <__C119> volatile __io _A_DDRC
\ _A_DDRC:
\ 00000000 DS8 1
\ In segment ABSOLUTE, at 0x32
\ <__C125> volatile __io _A_PORTD
\ _A_PORTD:
\ 00000000 DS8 1
\ In segment ABSOLUTE, at 0x31
\ <__C128> volatile __io _A_DDRD
\ _A_DDRD:
\ 00000000 DS8 1
\ In segment ABSOLUTE, at 0x27
\ <__C155> volatile __io _A_ADMUX
\ _A_ADMUX:
\ 00000000 DS8 1
\ In segment ABSOLUTE, at 0x26
\ <__C158> volatile __io _A_ADCSRA
\ _A_ADCSRA:
\ 00000000 DS8 1
2 #include "ucos_ii.h"
3
4 #define TASK_STK_SIZE 100
5
6 extern void IntEnter(void);
7 extern void IntExit(void);
8
9 typedef struct os_icb
10 {
11 unsigned int CSTACK;
12 unsigned int RSTACK;
13 unsigned int frame;
14 }OS_ICB;
\ In segment NEAR_Z, align 1, keep-with-next
\ 00000000 REQUIRE `?<Segment init: NEAR_Z>`
15 OS_ICB OSICB;
\ OSICB:
\ 00000000 DS8 6
16
\ In segment NEAR_Z, align 1, keep-with-next
\ 00000000 REQUIRE `?<Segment init: NEAR_Z>`
17 OS_STK Task1Stk[TASK_STK_SIZE];
\ Task1Stk:
\ 00000000 DS8 100
\ In segment NEAR_Z, align 1, keep-with-next
\ 00000000 REQUIRE `?<Segment init: NEAR_Z>`
18 OS_STK Task2Stk[TASK_STK_SIZE];
\ Task2Stk:
\ 00000000 DS8 100
\ In segment NEAR_Z, align 1, keep-with-next
\ 00000000 REQUIRE `?<Segment init: NEAR_Z>`
19 OS_STK Task3Stk[TASK_STK_SIZE];
\ Task3Stk:
\ 00000000 DS8 100
\ In segment NEAR_Z, align 1, keep-with-next
\ 00000000 REQUIRE `?<Segment init: NEAR_Z>`
20 OS_STK Task4Stk[TASK_STK_SIZE];
\ Task4Stk:
\ 00000000 DS8 100
21
22 void AvrInit(void);
23 void Task1(void *);
24 void Task2(void *);
25 void Task3(void *);
26 void Task4(void *);
27
\ In segment CODE, align 2, keep-with-next
28 void main (void)
\ main:
29 {
30 AvrInit();
\ 00000000 .... RCALL AvrInit
31 OSInit();
\ 00000002 ........ CALL OSInit
32 OSTaskCreate(Task1, (void *)0, (void *)&Task1Stk[TASK_STK_SIZE - 1], 0);
\ 00000006 E060 LDI R22, 0
\ 00000008 .... LDI R20, LOW((Task1Stk + 99))
\ 0000000A .... LDI R21, HIGH((Task1Stk + 99))
\ 0000000C E020 LDI R18, 0
\ 0000000E E030 LDI R19, 0
\ 00000010 .... LDI R16, LOW(Task1/2)
\ 00000012 .... LDI R17, (Task1/2) >> 8
\ 00000014 ........ CALL OSTaskCreate
33 OSTaskCreate(Task2, (void *)0, (void *)&Task2Stk[TASK_STK_SIZE - 1], 1);
\ 00000018 E061 LDI R22, 1
\ 0000001A .... LDI R20, LOW((Task2Stk + 99))
\ 0000001C .... LDI R21, HIGH((Task2Stk + 99))
\ 0000001E E020 LDI R18, 0
\ 00000020 E030 LDI R19, 0
\ 00000022 .... LDI R16, LOW(Task2/2)
\ 00000024 .... LDI R17, (Task2/2) >> 8
\ 00000026 ........ CALL OSTaskCreate
34 OSTaskCreate(Task3, (void *)0, (void *)&Task3Stk[TASK_STK_SIZE - 1], 2);
\ 0000002A E062 LDI R22, 2
\ 0000002C .... LDI R20, LOW((Task3Stk + 99))
\ 0000002E .... LDI R21, HIGH((Task3Stk + 99))
\ 00000030 E020 LDI R18, 0
\ 00000032 E030 LDI R19, 0
\ 00000034 .... LDI R16, LOW(Task3/2)
\ 00000036 .... LDI R17, (Task3/2) >> 8
\ 00000038 ........ CALL OSTaskCreate
35 OSTaskCreate(Task4, (void *)0, (void *)&Task4Stk[TASK_STK_SIZE - 1], 3);
\ 0000003C E063 LDI R22, 3
\ 0000003E .... LDI R20, LOW((Task4Stk + 99))
\ 00000040 .... LDI R21, HIGH((Task4Stk + 99))
\ 00000042 E020 LDI R18, 0
\ 00000044 E030 LDI R19, 0
\ 00000046 .... LDI R16, LOW(Task4/2)
\ 00000048 .... LDI R17, (Task4/2) >> 8
\ 0000004A ........ CALL OSTaskCreate
36 OSStart();
\ 0000004E ........ CALL OSStart
37 }
\ 00000052 9508 RET
38
\ In segment CODE, align 2, keep-with-next
39 void AvrInit(void)
\ AvrInit:
40 {
41 //以下为全局设定
42 DDRB=0xFF;
\ 00000000 EF0F LDI R16, 255
\ 00000002 BB07 OUT 0x17, R16
43 PORTB=0;
\ 00000004 E000 LDI R16, 0
\ 00000006 BB08 OUT 0x18, R16
44 DDRD=0xFF;
\ 00000008 EF0F LDI R16, 255
\ 0000000A BB01 OUT 0x11, R16
45 PORTD=0;
\ 0000000C E000 LDI R16, 0
\ 0000000E BB02 OUT 0x12, R16
46 DDRC=0xFF;
\ 00000010 EF0F LDI R16, 255
\ 00000012 BB04 OUT 0x14, R16
47 PORTC=0;
\ 00000014 E000 LDI R16, 0
\ 00000016 BB05 OUT 0x15, R16
48 DDRA=0xFC;
\ 00000018 EF0C LDI R16, 252
\ 0000001A BB0A OUT 0x1A, R16
49 PORTA=0;
\ 0000001C E000 LDI R16, 0
\ 0000001E BB0B OUT 0x1B, R16
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -