📄 app.lis
字号:
0054 .dbline 124
0054 ; }
0054 ; /*
0054 ; *********************************************************************************************************
0054 ; * STARTUP TASK
0054 ; *
0054 ; * Description : This is an example of a startup task. As mentioned in the book's text, you MUST
0054 ; * initialize the ticker only once multitasking has started.
0054 ; *
0054 ; * Arguments : p_arg is the argument passed to 'AppStartTask()' by 'OSTaskCreate()'.
0054 ; *
0054 ; * Notes : 1) The first line of code is used to prevent a compiler warning because 'p_arg' is not
0054 ; * used. The compiler should not generate any code for this statement.
0054 ; *********************************************************************************************************
0054 ; */
0054 ; static void AppTaskStart (void *p_arg)
0054 ; {
0054 .dbline 125
0054 ; p_arg = p_arg; // Prevent compiler warnings
0054 .dbline 126
0054 ; OSTickISR_Init(); // Initialize the ticker
0054 0CD0 xcall _OSTickISR_Init
0056 .dbline -2
0056 L4:
0056 0E940000 xcall pop_gset1
005A .dbline 0 ; func end
005A 0895 ret
005C .dbsym r p_arg 20 pV
005C .dbend
005C .dbfunc s AppTaskCreate _AppTaskCreate fV
.even
005C _AppTaskCreate:
005C .dbline -1
005C .dbline 141
005C ; }
005C ; /*
005C ; *********************************************************************************************************
005C ; * CREATE APPLICATION TASKS
005C ; *
005C ; * Description : This function creates the application tasks.
005C ; *
005C ; * Arguments : p_arg is the argument passed to 'AppStartTask()' by 'OSTaskCreate()'.
005C ; *
005C ; * Notes : 1) The first line of code is used to prevent a compiler warning because 'p_arg' is not
005C ; * used. The compiler should not generate any code for this statement.
005C ; *********************************************************************************************************
005C ; */
005C ; static void AppTaskCreate (void)
005C ; {
005C .dbline 142
005C ; Init_AppTask1(); //任务1初始化
005C 0E940000 xcall _Init_AppTask1
0060 .dbline 143
0060 ; Init_AppTask2(); //任务2初始化
0060 0E940000 xcall _Init_AppTask2
0064 .dbline 144
0064 ; Init_AppTask6(); //任务6初始化
0064 0E940000 xcall _Init_AppTask6
0068 .dbline 145
0068 ; Init_AppTask8(); //任务8初始化
0068 0E940000 xcall _Init_AppTask8
006C .dbline -2
006C L5:
006C .dbline 0 ; func end
006C 0895 ret
006E .dbend
006E .dbfunc e OSTickISR_Init _OSTickISR_Init fV
.even
006E _OSTickISR_Init::
006E .dbline -1
006E .dbline 152
006E ; }
006E ;
006E ; //----------------------------------------------------------------------------//
006E ; //SETUP THE TICK RATE //中断在os_cpu_a.s上做定义并与ucos系统相结合
006E ; //----------------------------------------------------------------------------//
006E ; void OSTickISR_Init (void)
006E ; {
006E .dbline 153
006E ; TCNT0 =0;
006E 2224 clr R2
0070 22BE out 0x32,R2
0072 .dbline 154
0072 ; TCCR0 = 0x07; // Set TIMER0 prescaler to CLK/1024
0072 87E0 ldi R24,7
0074 83BF out 0x33,R24
0076 .dbline 155
0076 ; TIMSK = 0x01; // Enable TIMER0 overflow interrupt
0076 81E0 ldi R24,1
0078 87BF out 0x37,R24
007A .dbline -2
007A L6:
007A .dbline 0 ; func end
007A 0895 ret
007C .dbend
007C .dbfunc e OSTickISR_Handler _OSTickISR_Handler fV
.even
007C _OSTickISR_Handler::
007C .dbline -1
007C .dbline 161
007C ; }
007C ; //----------------------------------------------------------------------------//
007C ; // SETUP THE TICK RATE
007C ; //----------------------------------------------------------------------------//
007C ; void OSTickISR_Handler (void)
007C ; {
007C .dbline 162
007C ; TCNT0 = 0x64; //100HZ
007C 84E6 ldi R24,100
007E 82BF out 0x32,R24
0080 .dbline 163
0080 ; OSTimeTick();
0080 0E940000 xcall _OSTimeTick
0084 .dbline -2
0084 L7:
0084 .dbline 0 ; func end
0084 0895 ret
0086 .dbend
0086 .dbfunc e watchdog_init _watchdog_init fV
.even
0086 _watchdog_init::
0086 .dbline -1
0086 .dbline 172
0086 ; }
0086 ; //----------------------------------------------------------------------------//
0086 ; //函数介绍: 看门狗初始化 (prescale: 2048K cycles = 2s)
0086 ; //输入参数:--
0086 ; // 输出参数:--
0086 ; //返 回 值:--
0086 ; //----------------------------------------------------------------------------//
0086 ; void watchdog_init(void)
0086 ; {
0086 .dbline 173
0086 ; WDR();
0086 A895 wdr
0088 .dbline 174
0088 ; WDTCR = (1<<WDCE)|(1<<WDE);
0088 88E1 ldi R24,24
008A 81BD out 0x21,R24
008C .dbline 175
008C ; WDTCR = (1<<WDE)|(1<<WDP2)|(1<<WDP1)|(1<<WDP0);
008C 8FE0 ldi R24,15
008E 81BD out 0x21,R24
0090 .dbline -2
0090 L8:
0090 .dbline 0 ; func end
0090 0895 ret
0092 .dbend
0092 .dbfunc s AppIOInit _AppIOInit fV
.even
0092 _AppIOInit:
0092 .dbline -1
0092 .dbline 182
0092 ; }
0092 ;
0092 ; //----------------------------------------------------------------------------//
0092 ; // SETUP I/Os
0092 ; //----------------------------------------------------------------------------//
0092 ; static void AppIOInit (void) /*IO全部初始化为高阻态*/
0092 ; {
0092 .dbline 183
0092 ; PORTA = 0x00;
0092 2224 clr R2
0094 2BBA out 0x1b,R2
0096 .dbline 184
0096 ; DDRA = 0x00;
0096 2ABA out 0x1a,R2
0098 .dbline 185
0098 ; PORTB = 0x00;
0098 28BA out 0x18,R2
009A .dbline 186
009A ; DDRB = 0x00;
009A 27BA out 0x17,R2
009C .dbline 187
009C ; PORTC = 0x00; //m103 output only
009C 25BA out 0x15,R2
009E .dbline 188
009E ; DDRC = 0x00;
009E 24BA out 0x14,R2
00A0 .dbline 189
00A0 ; PORTD = 0x00;
00A0 22BA out 0x12,R2
00A2 .dbline 190
00A2 ; DDRD = 0x00;
00A2 21BA out 0x11,R2
00A4 .dbline 191
00A4 ; PORTE = 0x00;
00A4 23B8 out 0x3,R2
00A6 .dbline 192
00A6 ; DDRE = 0x00;
00A6 22B8 out 0x2,R2
00A8 .dbline 193
00A8 ; PORTF = 0x00;
00A8 20926200 sts 98,R2
00AC .dbline 194
00AC ; DDRF = 0x00;
00AC 20926100 sts 97,R2
00B0 .dbline 195
00B0 ; PORTG = 0x00;
00B0 20926500 sts 101,R2
00B4 .dbline 196
00B4 ; DDRG = 0x00;
00B4 20926400 sts 100,R2
00B8 .dbline -2
00B8 L9:
00B8 .dbline 0 ; func end
00B8 0895 ret
00BA .dbend
.area bss(ram, con, rel)
0000 .dbfile D:\编写软件小系统\纯ucos\source\app.c
0000 _AppTaskStartStk::
0000 .blkb 256
0100 .dbsym e AppTaskStartStk _AppTaskStartStk A[256:256]c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -