⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lis

📁 mega16 ucos操作系统
💻 LIS
字号:
                        .module main.c
                        .area text(rom, con, rel)
 0000                   .dbfile ..\source\bms\main.c
                        .area data(ram, con, rel)
 0000                   .dbfile ..\source\bms\main.c
 0000           _StartTaskStack::
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile ..\source\bms\main.c
 0001                   .blkb 169
                        .area idata
 0001 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000  .word 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 003D 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000  .word 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 0079 00000000000000000000      .word 0,0,0,0,0
 0083 00000000000000000000      .word 0,0,0,0,0
 008D 00000000000000000000      .word 0,0,0,0,0
 0097 00000000000000000000      .word 0,0,0,0,0
 00A1 000000000000000000        .byte 0,0,0,0,0,0,0,0,0
                        .area data(ram, con, rel)
 00AA                   .dbfile ..\source\bms\main.c
 00AA                   .dbfile C:\DOCUME~1\Administrator\桌面\MEGA16\source\bms\main.c
 00AA                   .dbsym e StartTaskStack _StartTaskStack A[170:170]c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\DOCUME~1\Administrator\桌面\MEGA16\source\bms\main.c
 0000                   .dbfunc e OSTick_Init _OSTick_Init fV
                        .even
 0000           _OSTick_Init::
 0000                   .dbline -1
 0000                   .dbline 10
 0000           ; #include "..\source\CPU_source\includes.h"
 0000           ; 
 0000           ; void StartTask(void *pdata);
 0000           ; OS_STK StartTaskStack[OS_TASK_START_STK_SIZE]={0};
 0000           ; /*
 0000           ; ******************************************************************************
 0000           ; *                     Timer0 overflow 用于系统时钟节拍
 0000           ; *****************************************************************************
 0000           ; */ 
 0000           ; void OSTick_Init (void){      
 0000                   .dbline 11
 0000           ;       OS_ENTER_CRITICAL();
 0000 0A93              st -y,r16
 0002 0FB7              in r16,0x3F
 0004 F894              cli
 0006 0F93              push r16
 0008 0991              ld r16,y+
 000A                   .dbline 11
 000A                   .dbline 15
 000A           ;       //WDTCR=(1<<WDTOE)|(1<<WDE);
 000A           ;       //WDTCR=(1<<WDE);       //17ms看门狗 
 000A           ;       
 000A           ;       TIMSK &= ~(BIT(TOIE0) /* | BIT(OCIE0) */);          /*disable TC0 interrupts                           */
 000A 89B7              in R24,0x39
 000C 8E7F              andi R24,254
 000E 89BF              out 0x39,R24
 0010                   .dbline 16
 0010           ;       TCCR0 = 0x02;                                       /* /8                                           */
 0010 82E0              ldi R24,2
 0012 83BF              out 0x33,R24
 0014                   .dbline 17
 0014           ;       TCNT0 = 0x05;                                   /* Counter overflow initial , 0.5ms @ 4MHz         */   
 0014 85E0              ldi R24,5
 0016 82BF              out 0x32,R24
 0018                   .dbline 18
 0018           ;       TIMSK |= BIT(TOIE0);                            /* enable OVF-interrupt                            */ 
 0018 89B7              in R24,0x39
 001A 8160              ori R24,1
 001C 89BF              out 0x39,R24
 001E                   .dbline 19
 001E           ;     OS_EXIT_CRITICAL();        // enable global interrupt     
 001E 0A93              st -y,r16
 0020 0F91              pop r16
 0022 0FBF              out 0x3F,r16
 0024 0991              ld r16,y+
 0026                   .dbline 19
 0026                   .dbline -2
 0026           L1:
 0026                   .dbline 0 ; func end
 0026 0895              ret
 0028                   .dbend
 0028                   .dbfunc e UartInit _UartInit fV
 0028           ;           temp -> R10,R11
 0028           ;        divisor -> R10,R11
 0028           ;      baud_rate -> y+6
                        .even
 0028           _UartInit::
 0028 0E940000          xcall push_arg4
 002C 0E940000          xcall push_xgsetF00C
 0030                   .dbline -1
 0030                   .dbline 23
 0030           ; }
 0030           ; //串口的初始化
 0030           ; void UartInit(INT32U baud_rate)
 0030           ; {
 0030                   .dbline 26
 0030           ;     INT16U  divisor;
 0030           ;     INT16U  temp;                 /* -------- INITIALIZE THE SERIAL PORT ---------- */
 0030           ;     temp    = (CPU_CLK_FREQ * 2) / (16 * baud_rate);
 0030 2E80              ldd R2,y+6
 0032 3F80              ldd R3,y+7
 0034 4884              ldd R4,y+8
 0036 5984              ldd R5,y+9
 0038 40E1              ldi R20,16
 003A 50E0              ldi R21,0
 003C 60E0              ldi R22,0
 003E 70E0              ldi R23,0
 0040 5A92              st -y,R5
 0042 4A92              st -y,R4
 0044 3A92              st -y,R3
 0046 2A92              st -y,R2
 0048 8A01              movw R16,R20
 004A 9B01              movw R18,R22
 004C 0E940000          xcall empy32u
 0050 40E0              ldi R20,0
 0052 52E1              ldi R21,18
 0054 6AE7              ldi R22,122
 0056 70E0              ldi R23,0
 0058 3A93              st -y,R19
 005A 2A93              st -y,R18
 005C 1A93              st -y,R17
 005E 0A93              st -y,R16
 0060 8A01              movw R16,R20
 0062 9B01              movw R18,R22
 0064 0E940000          xcall div32u
 0068 5801              movw R10,R16
 006A                   .dbline 27
 006A           ;     divisor = (temp + 1) / 2 - 1; /* Compute baud rate divisor and round off        */
 006A C501              movw R24,R10
 006C 0196              adiw R24,1
 006E 9695              lsr R25
 0070 8795              ror R24
 0072 0197              sbiw R24,1
 0074 5C01              movw R10,R24
 0076                   .dbline 29
 0076           ;       
 0076           ;     UCSRB = 0x00;                                             //disable while setting baud rate
 0076 2224              clr R2
 0078 2AB8              out 0xa,R2
 007A                   .dbline 30
 007A           ;     UCSRA = 0x00;
 007A 2BB8              out 0xb,R2
 007C                   .dbline 31
 007C           ;     UCSRC = 0x06;
 007C 86E0              ldi R24,6
 007E 80BD              out 0x20,R24
 0080                   .dbline 32
 0080           ;     UBRRL = divisor & 0x00FF;         //set baud rate lo 19.2k
 0080 C501              movw R24,R10
 0082 9070              andi R25,0
 0084 89B9              out 0x9,R24
 0086                   .dbline 33
 0086           ;     UBRRH = divisor >> 8;;                                            //set baud rate hi
 0086 1501              movw R2,R10
 0088 232C              mov R2,R3
 008A 3324              clr R3
 008C 20BC              out 0x20,R2
 008E                   .dbline 33
 008E                   .dbline 34
 008E           ;     UCSRB = (1<<RXCIE)|(1<<RXEN)|(1<<TXEN);  
 008E 88E9              ldi R24,152
 0090 8AB9              out 0xa,R24
 0092                   .dbline -2
 0092           L2:
 0092                   .dbline 0 ; func end
 0092 0E940000          xcall pop_xgsetF00C
 0096 2496              adiw R28,4
 0098 0895              ret
 009A                   .dbsym r temp 10 i
 009A                   .dbsym r divisor 10 i
 009A                   .dbsym l baud_rate 6 l
 009A                   .dbend
 009A                   .dbfunc e System_Init _System_Init fV
                        .even
 009A           _System_Init::
 009A                   .dbline -1
 009A                   .dbline 40
 009A           ; //    Uart0RingBuf.RxIndex=0;
 009A           ;       
 009A           ; }
 009A           ;  
 009A           ; void System_Init(void)
 009A           ; {
 009A                   .dbline 42
 009A           ;     //端口的初始化
 009A           ;       PORTA = 0x00; //output
 009A 2224              clr R2
 009C 2BBA              out 0x1b,R2
 009E                   .dbline 43
 009E           ;       DDRA  = 0xff;   
 009E 8FEF              ldi R24,255
 00A0 8ABB              out 0x1a,R24
 00A2                   .dbline 45
 00A2           ;    
 00A2           ;       PORTB = 0xFF; //output
 00A2 88BB              out 0x18,R24
 00A4                   .dbline 46
 00A4           ;       DDRB  = 0xFF;
 00A4 87BB              out 0x17,R24
 00A6                   .dbline 48
 00A6           ;    
 00A6           ;       PORTC = 0x00; // output only
 00A6 25BA              out 0x15,R2
 00A8                   .dbline 49
 00A8           ;       DDRC  = 0xFF;
 00A8 84BB              out 0x14,R24
 00AA                   .dbline 51
 00AA           ;       
 00AA           ;       PORTD = 0X00; //串口
 00AA 22BA              out 0x12,R2
 00AC                   .dbline 52
 00AC           ;       DDRD = 0X02; 
 00AC 82E0              ldi R24,2
 00AE 81BB              out 0x11,R24
 00B0                   .dbline 55
 00B0           ;                
 00B0           ;       //串口的初始化
 00B0           ;       UartInit(9600);
 00B0 00E8              ldi R16,128
 00B2 15E2              ldi R17,37
 00B4 20E0              ldi R18,0
 00B6 30E0              ldi R19,0
 00B8 B7DF              xcall _UartInit
 00BA                   .dbline 59
 00BA           ;       //ad采集的初始化
 00BA           ;                
 00BA           ;       /*蜂鸣器*/
 00BA           ;     PORTA&=~(1<<PA6);
 00BA DE98              cbi 0x1b,6
 00BC                   .dbline 60
 00BC           ;       delay_nms(100);
 00BC 04E6              ldi R16,100
 00BE 10E0              ldi R17,0
 00C0 0E940000          xcall _delay_nms
 00C4                   .dbline 61
 00C4           ;     PORTA|=(1<<PA6);      //PB2控制蜂鸣器 
 00C4 DE9A              sbi 0x1b,6
 00C6                   .dbline -2
 00C6           L3:
 00C6                   .dbline 0 ; func end
 00C6 0895              ret
 00C8                   .dbend
 00C8                   .dbfunc e main _main fV
                        .even
 00C8           _main::
 00C8 2397              sbiw R28,3
 00CA                   .dbline -1
 00CA                   .dbline 66
 00CA           ;       
 00CA           ; }
 00CA           ; // Start
 00CA           ; void main(void)
 00CA           ; {
 00CA                   .dbline 67
 00CA           ;     System_Init();
 00CA E7DF              xcall _System_Init
 00CC                   .dbline 69
 00CC           ;       
 00CC           ;     OSTaskStkSize     = OS_TASK_IDLE_STK_SIZE;       /* Setup the default stack size                        */
 00CC 84E6              ldi R24,100
 00CE 90E0              ldi R25,0
 00D0 90930100          sts _OSTaskStkSize+1,R25
 00D4 80930000          sts _OSTaskStkSize,R24
 00D8                   .dbline 70
 00D8           ;     OSTaskStkSizeHard = OS_TASK_IDLE_STK_SIZE_HARD;  /* Setup the default hardware stack size               */
 00D8 84E1              ldi R24,20
 00DA 90930100          sts _OSTaskStkSizeHard+1,R25
 00DE 80930000          sts _OSTaskStkSizeHard,R24
 00E2                   .dbline 71
 00E2           ;     OSInit();         // OS init 
 00E2 0E940000          xcall _OSInit
 00E6                   .dbline 73
 00E6           ;                
 00E6           ;     OSTaskStkSize     = OS_TASK_START_STK_SIZE;      /* Setup the total stack size                          */
 00E6 8AEA              ldi R24,170
 00E8 90E0              ldi R25,0
 00EA 90930100          sts _OSTaskStkSize+1,R25
 00EE 80930000          sts _OSTaskStkSize,R24
 00F2                   .dbline 74
 00F2           ;     OSTaskStkSizeHard = OS_TASK_START_STK_SIZE_HARD; /* Setup the hardware stack size                       */
 00F2 80E2              ldi R24,32
 00F4 90930100          sts _OSTaskStkSizeHard+1,R25
 00F8 80930000          sts _OSTaskStkSizeHard,R24
 00FC                   .dbline 75
 00FC           ;     OSTaskCreate( StartTask,
 00FC 81E0              ldi R24,1
 00FE 8A83              std y+2,R24
 0100 80E0              ldi R24,<_StartTaskStack
 0102 90E0              ldi R25,>_StartTaskStack
 0104 E0910000          lds R30,_OSTaskStkSize
 0108 F0910100          lds R31,_OSTaskStkSize+1
 010C 3197              sbiw R30,1
 010E E80F              add R30,R24
 0110 F91F              adc R31,R25
 0112 F983              std y+1,R31
 0114 E883              std y+0,R30
 0116 2227              clr R18
 0118 3327              clr R19
 011A 00E0              ldi R16,<PL_StartTask
 011C 10E0              ldi R17,>PL_StartTask
 011E 0E940000          xcall _OSTaskCreate
 0122                   .dbline 80
 0122           ;                              (void *)0,
 0122           ;                              (OS_STK *)&StartTaskStack[OSTaskStkSize - 1],
 0122           ;                              OS_TASK_START_PRIO);   
 0122           ;         
 0122           ;     OSStart();        
 0122 0E940000          xcall _OSStart
 0126                   .dbline -2
 0126           L4:
 0126                   .dbline 0 ; func end
 0126 2396              adiw R28,3
 0128 0895              ret
 012A                   .dbend
 012A           ; }
                        .area  func_lit
 0000 0000      PL_StartTask:   .word `_StartTask

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -