📄 test2.lis
字号:
.module test2.c
.area data(ram, con, rel)
0000 _LED1::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile D:\MTD\work\iccavr\ucos-M128\test\test2.c
0001 .dbsym e LED1 _LED1 c
0001 _LED2::
0001 .blkb 1
.area idata
0001 00 .byte 0
.area data(ram, con, rel)
0002 .dbfile D:\MTD\work\iccavr\ucos-M128\test\test2.c
0002 .dbsym e LED2 _LED2 c
.area text(rom, con, rel)
0000 .dbfile D:\MTD\work\iccavr\ucos-M128\test\test2.c
0000 .dbfunc e uart0_init _uart0_init fV
.even
0000 _uart0_init::
0000 .dbline -1
0000 .dbline 40
0000 ;
0000 ; #define Test1_GLOBALS
0000 ; #include "includes.h"
0000 ;
0000 ;
0000 ; #define BitSet(a,b) (a |= (1<<b))
0000 ; #define BitClr(a,b) (a &= ~(1<<b))
0000 ; #define BitStatus(a,b) (a&BIT(b))
0000 ; #define uchar unsigned char
0000 ;
0000 ; #define LED1_ON BitClr(PORTB,4)
0000 ; #define LED1_OFF BitSet(PORTB,4)
0000 ; #define LED2_ON BitClr(PORTB,5)
0000 ; #define LED2_OFF BitSet(PORTB,5)
0000 ;
0000 ; //******************************************************************************
0000 ; // Constants
0000 ; #define TaskStartPrio 10 // Task-Prioritaeten
0000 ; //*****************************************************************************
0000 ; // Variablen
0000 ; //INT8U display[5];
0000 ; char LED1=0,LED2=0;
0000 ; OS_STK Task1Stack[OS_TASK_DEF_STK_SIZE]; // startup task stack
0000 ; OS_STK Task2Stack[OS_TASK_DEF_STK_SIZE];
0000 ; //ICC-AVR application builder : 2003-12-28 21:52:56
0000 ; // Target : M8
0000 ; // Crystal: 8.0000Mhz
0000 ;
0000 ; #include <iom128v.h>
0000 ; #include <macros.h>
0000 ; #include <stdio.h>
0000 ;
0000 ;
0000 ; //UART0 initialisation
0000 ; // desired baud rate: 9600
0000 ; // actual: baud rate:9615 (0.2%)
0000 ; // char size: 8 bit
0000 ; // parity: Disabled
0000 ; void uart0_init(void)
0000 ; {
0000 .dbline 41
0000 ; UCSR0B = 0x00; //disable while setting baud rate
0000 2224 clr R2
0002 2AB8 out 0xa,R2
0004 .dbline 42
0004 ; UCSR0A = 0x00;
0004 2BB8 out 0xb,R2
0006 .dbline 43
0006 ; UCSR0C = 0x86;
0006 86E8 ldi R24,134
0008 80939500 sts 149,R24
000C .dbline 44
000C ; UBRR0L = 0x33; //set baud rate lo
000C 83E3 ldi R24,51
000E 89B9 out 0x9,R24
0010 .dbline 45
0010 ; UBRR0H = 0x00; //set baud rate hi
0010 20929000 sts 144,R2
0014 .dbline 46
0014 ; UCSR0B = 0x08;
0014 88E0 ldi R24,8
0016 8AB9 out 0xa,R24
0018 .dbline -2
0018 L2:
0018 .dbline 0 ; func end
0018 0895 ret
001A .dbend
001A .dbfunc e TC2_Init _TC2_Init fV
.even
001A _TC2_Init::
001A .dbline -1
001A .dbline 64
001A ;
001A ; /*UCSR0B = 0x00; //disable while setting baud rate
001A ; UCSR0A = 0x00;
001A ; UCSR0C = 0x06;
001A ; UBRR0L = 0x33; //set baud rate lo
001A ; UBRR0H = 0x00; //set baud rate hi
001A ; UCSR0B = 0x00;
001A ; */
001A ; }
001A ;
001A ; //*****************************************************************************
001A ; // Prototypes
001A ;
001A ; //*****************************************************************************
001A ; // TickISR
001A ; //*****************************************************************************
001A ; // Init Timer/Counter2 fuer Takterzeugung
001A ; void TC2_Init (void){
001A .dbline 68
001A ; /* Only uses TIMER2 overflow for tick interrupt. Timer compare
001A ; * can also be used.
001A ; */
001A ; TIMSK &= ~(BIT(TOIE2)/* | BIT(OCIE2) */); //disable TC2 interrupts
001A 87B7 in R24,0x37
001C 8F7B andi R24,191
001E 87BF out 0x37,R24
0020 .dbline 69
0020 ; TCCR2 = 0x00; //stop
0020 2224 clr R2
0022 25BC out 0x25,R2
0024 .dbline 70
0024 ; TCNT2 = 0x06; //setup
0024 86E0 ldi R24,6
0026 84BD out 0x24,R24
0028 .dbline 71
0028 ; OCR2 = 0xFA;
0028 8AEF ldi R24,250
002A 83BD out 0x23,R24
002C .dbline 72
002C ; TCCR2 = 0x03; //start
002C 83E0 ldi R24,3
002E 85BD out 0x25,R24
0030 .dbline 73
0030 ; TIMSK |= BIT(TOIE2); // enable OVF-interrupt
0030 87B7 in R24,0x37
0032 8064 ori R24,64
0034 87BF out 0x37,R24
0036 .dbline 76
0036 ; //TIMSK |= OCIE2; // enable COMP-interrupt
0036 ;
0036 ; SEI(); // enable global interrupt
0036 7894 sei
0038 .dbline -2
0038 L3:
0038 .dbline 0 ; func end
0038 0895 ret
003A .dbend
.area vector(rom, abs)
.org 40
0028 0C940000 jmp _OSTickISR
.area text(rom, con, rel)
003A .dbfile D:\MTD\work\iccavr\ucos-M128\test\test2.c
003A .dbfunc e main _main fV
.even
003A _main::
003A 2397 sbiw R28,3
003C .dbline -1
003C .dbline 89
003C ; }
003C ;
003C ; //*****************************************************************************
003C ; // Interrupt Timer/Counter0 Overflow
003C ; // OVF_Takt: 4MHz / 1024 / 39 = 10ms
003C ; #pragma interrupt_handler OSTickISR:11
003C ;
003C ; void Task1(void *pdata);
003C ; void Task2(void *pdata);
003C ;
003C ; //*****************************************************************************
003C ; // Start
003C ; void main(void){
003C .dbline 90
003C ; OSInit(); // OS init
003C 0E940000 xcall _OSInit
0040 .dbline 91
0040 ; uart0_init();
0040 DFDF xcall _uart0_init
0042 .dbline 92
0042 ; puts("ATmega128 uc/os-II Test!");
0042 00E0 ldi R16,<L5
0044 10E0 ldi R17,>L5
0046 0E940000 xcall _puts
004A .dbline 93
004A ; putchar(0x0d);
004A 0DE0 ldi R16,13
004C 0E940000 xcall _putchar
0050 .dbline 94
0050 ; putchar(0x0a);
0050 0AE0 ldi R16,10
0052 0E940000 xcall _putchar
0056 .dbline 96
0056 ;
0056 ; OSTaskCreate(Task1, (void *)0, &Task1Stack[OS_TASK_DEF_STK_SIZE-1], 7);
0056 87E0 ldi R24,7
0058 8A83 std y+2,R24
005A 80E0 ldi R24,<_Task1Stack+99
005C 90E0 ldi R25,>_Task1Stack+99
005E 9983 std y+1,R25
0060 8883 std y+0,R24
0062 2227 clr R18
0064 3327 clr R19
0066 00E0 ldi R16,<PL_Task1
0068 10E0 ldi R17,>PL_Task1
006A 0E940000 xcall _OSTaskCreate
006E .dbline 98
006E ;
006E ; OSTaskCreate(Task2, (void *)0, &Task2Stack[OS_TASK_DEF_STK_SIZE-1], 8);
006E 88E0 ldi R24,8
0070 8A83 std y+2,R24
0072 80E0 ldi R24,<_Task2Stack+99
0074 90E0 ldi R25,>_Task2Stack+99
0076 9983 std y+1,R25
0078 8883 std y+0,R24
007A 2227 clr R18
007C 3327 clr R19
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -