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

📄 ucos-port2.lst

📁 把UCOSII移植到AVR MEGA8上的程序 应用程序为驱动1602显示器,虽说有些简单,但可测试UCOS的运行
💻 LST
📖 第 1 页 / 共 5 页
字号:
    0010 940C0C77  JMP	_OSTickISR
    0012 0000      NOP
    0013 041E      CPC	R1,R14
    0014 0A99      SBC	R9,R25
    0015 0A81      SBC	R8,R17
    0016 0A23      SBC	R2,R19
    0017 0201      MULS	R16,R17
    0018 0804      SBC	R0,R4
    0019 2010      AND	R1,R0
    001A 8040      LDD	R4,Z+0
    001B 0000      NOP
    001C 0001      NOP
    001D 0002      NOP
    001E 0001      NOP
    001F 0003      NOP
    0020 0001      NOP
    0021 0002      NOP
    0022 0001      NOP
    0023 0004      NOP
    0024 0001      NOP
    0025 0002      NOP
    0026 0001      NOP
    0027 0003      NOP
    0028 0001      NOP
    0029 0002      NOP
    002A 0001      NOP
    002B 0005      NOP
    002C 0001      NOP
    002D 0002      NOP
    002E 0001      NOP
    002F 0003      NOP
    0030 0001      NOP
    0031 0002      NOP
    0032 0001      NOP
    0033 0004      NOP
    0034 0001      NOP
    0035 0002      NOP
    0036 0001      NOP
    0037 0003      NOP
    0038 0001      NOP
    0039 0002      NOP
    003A 0001      NOP
    003B 0006      NOP
    003C 0001      NOP
    003D 0002      NOP
    003E 0001      NOP
    003F 0003      NOP
    0040 0001      NOP
    0041 0002      NOP
    0042 0001      NOP
    0043 0004      NOP
    0044 0001      NOP
    0045 0002      NOP
    0046 0001      NOP
    0047 0003      NOP
    0048 0001      NOP
    0049 0002      NOP
    004A 0001      NOP
    004B 0005      NOP
    004C 0001      NOP
    004D 0002      NOP
    004E 0001      NOP
    004F 0003      NOP
    0050 0001      NOP
    0051 0002      NOP
    0052 0001      NOP
    0053 0004      NOP
    0054 0001      NOP
    0055 0002      NOP
    0056 0001      NOP
    0057 0003      NOP
    0058 0001      NOP
    0059 0002      NOP
    005A 0001      NOP
    005B 0007      NOP
    005C 0001      NOP
    005D 0002      NOP
    005E 0001      NOP
    005F 0003      NOP
    0060 0001      NOP
    0061 0002      NOP
    0062 0001      NOP
    0063 0004      NOP
    0064 0001      NOP
    0065 0002      NOP
    0066 0001      NOP
    0067 0003      NOP
    0068 0001      NOP
    0069 0002      NOP
    006A 0001      NOP
    006B 0005      NOP
    006C 0001      NOP
    006D 0002      NOP
    006E 0001      NOP
    006F 0003      NOP
    0070 0001      NOP
    0071 0002      NOP
    0072 0001      NOP
    0073 0004      NOP
    0074 0001      NOP
    0075 0002      NOP
    0076 0001      NOP
    0077 0003      NOP
    0078 0001      NOP
    0079 0002      NOP
    007A 0001      NOP
    007B 0006      NOP
    007C 0001      NOP
    007D 0002      NOP
    007E 0001      NOP
    007F 0003      NOP
    0080 0001      NOP
    0081 0002      NOP
    0082 0001      NOP
    0083 0004      NOP
    0084 0001      NOP
    0085 0002      NOP
    0086 0001      NOP
    0087 0003      NOP
    0088 0001      NOP
    0089 0002      NOP
    008A 0001      NOP
    008B 0005      NOP
    008C 0001      NOP
    008D 0002      NOP
    008E 0001      NOP
    008F 0003      NOP
    0090 0001      NOP
    0091 0002      NOP
    0092 0001      NOP
    0093 0004      NOP
    0094 0001      NOP
    0095 0002      NOP
    0096 0001      NOP
    0097 0003      NOP
    0098 0001      NOP
    0099 0002      NOP
    009A 0001      NOP
    009B 7461      ANDI	R22,0x41
    009C 656D      ORI	R22,0x5D
    009D 6167      ORI	R22,0x17
    009E 0038      NOP
    009F 6620      ORI	R18,0x60
    00A0 6F72      ORI	R23,0xF2
    00A1 206D      AND	R6,R13
    00A2 494D      SBCI	R20,0x9D
    00A3 5243      SUBI	R20,0x23
    00A4 5549      SUBI	R20,0x59
    00A5 204D      AND	R4,R13
    00A6 4900      SBCI	R16,0x90
    00A7 6C20      ORI	R18,0xC0
    00A8 766F      ANDI	R22,0x6F
    00A9 2065      AND	R6,R5
    00AA 4355      SBCI	R21,0x35
    00AB 534F      SUBI	R20,0x3F
    00AC 492D      SBCI	R18,0x9D
    00AD 0049      NOP
    00AE 6557      ORI	R21,0x57
    00AF 636C      ORI	R22,0x3C
    00B0 6D6F      ORI	R22,0xDF
    00B1 0065      NOP
__start:
__text_start:
    00B2 E5CF      LDI	R28,0x5F
    00B3 E0D4      LDI	R29,4
    00B4 BFCD      OUT	0x3D,R28
    00B5 BFDE      OUT	0x3E,R29
    00B6 51C0      SUBI	R28,0x10
    00B7 40D0      SBCI	R29,0
    00B8 EA0A      LDI	R16,0xAA
    00B9 8308      STD	Y+0,R16
    00BA 2400      CLR	R0
    00BB E8EE      LDI	R30,0x8E
    00BC E0F0      LDI	R31,0
    00BD E013      LDI	R17,3
    00BE 36E3      CPI	R30,0x63
    00BF 07F1      CPC	R31,R17
    00C0 F011      BEQ	0x00C3
    00C1 9201      ST	R0,Z+
    00C2 CFFB      RJMP	0x00BE
    00C3 8300      STD	Z+0,R16
    00C4 E3E6      LDI	R30,0x36
    00C5 E0F1      LDI	R31,1
    00C6 E6A0      LDI	R26,0x60
    00C7 E0B0      LDI	R27,0
    00C8 E011      LDI	R17,1
    00C9 36E4      CPI	R30,0x64
    00CA 07F1      CPC	R31,R17
    00CB F021      BEQ	0x00D0
    00CC 95C8      LPM
    00CD 9631      ADIW	R30,1
    00CE 920D      ST	R0,X+
    00CF CFF9      RJMP	0x00C9
    00D0 D925      RCALL	_main
_exit:
    00D1 CFFF      RJMP	_exit
_OSInit:
  prdytbl              --> Y+5
  pevent2              --> R12
  ptcb2                --> Y+3
  ptcb1                --> R14
  pevent1              --> R10
  i                    --> R4
    00D2 DCBD      RCALL	push_gset5
    00D3 9727      SBIW	R28,7
FILE: F:\AVRPRA~1\ucosii-port2-mega8\OS_CORE.c
(0001) /*
(0002) *********************************************************************************************************
(0003) *                                                uC/OS-II
(0004) *                                          The Real-Time Kernel
(0005) *                                             CORE FUNCTIONS
(0006) *
(0007) *                          (c) Copyright 1992-2001, Jean J. Labrosse, Weston, FL
(0008) *                                           All Rights Reserved
(0009) *
(0010) * File : OS_CORE.C
(0011) * By   : Jean J. Labrosse
(0012) *********************************************************************************************************
(0013) */
(0014) 
(0015) #ifndef  OS_MASTER_FILE
(0016) #define  OS_GLOBALS
(0017) #include "includes.h"
(0018) #endif
(0019) 
(0020) /*
(0021) *********************************************************************************************************
(0022) *                              MAPPING TABLE TO MAP BIT POSITION TO BIT MASK
(0023) *
(0024) * Note: Index into table is desired bit position, 0..7
(0025) *       Indexed value corresponds to bit mask
(0026) *********************************************************************************************************
(0027) */
(0028) 
(0029) INT8U  const  OSMapTbl[]   = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
(0030) 
(0031) /*
(0032) *********************************************************************************************************
(0033) *                                       PRIORITY RESOLUTION TABLE
(0034) *
(0035) * Note: Index into table is bit pattern to resolve highest priority
(0036) *       Indexed value corresponds to highest priority bit position (i.e. 0..7)
(0037) *********************************************************************************************************
(0038) */
(0039) 
(0040) INT8U  const  OSUnMapTbl[] = {
(0041)     0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
(0042)     4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
(0043)     5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
(0044)     4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
(0045)     6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
(0046)     4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
(0047)     5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
(0048)     4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
(0049)     7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
(0050)     4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
(0051)     5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
(0052)     4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
(0053)     6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
(0054)     4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
(0055)     5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
(0056)     4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0
(0057) };
(0058) /*$PAGE*/
(0059) /*
(0060) *********************************************************************************************************
(0061) *                                             INITIALIZATION
(0062) *
(0063) * Description: This function is used to initialize the internals of uC/OS-II and MUST be called prior to
(0064) *              creating any uC/OS-II object and, prior to calling OSStart().
(0065) *
(0066) * Arguments  : none
(0067) *
(0068) * Returns    : none
(0069) *********************************************************************************************************
(0070) */
(0071) 
(0072) void  OSInit (void)
(0073) {
(0074)     INT16U     i;
(0075)     INT8U     *prdytbl;
(0076)     OS_TCB    *ptcb1;
(0077)     OS_TCB    *ptcb2;
(0078) #if (OS_EVENT_EN > 0) && (OS_MAX_EVENTS > 1)
(0079)     OS_EVENT  *pevent1;
(0080)     OS_EVENT  *pevent2;
(0081) #endif
(0082) 
(0083) 
(0084) #if OS_VERSION >= 204
(0085)     OSInitHookBegin();                                           /* Call port specific initialization code   */
    00D4 D404      RCALL	_OSInitHookBegin
(0086) #endif
(0087) 
(0088) #if OS_TIME_GET_SET_EN > 0   
(0089)     OSTime        = 0L;                                          /* Clear the 32-bit system clock            */
    00D5 E040      LDI	R20,0
    00D6 E050      LDI	R21,0
    00D7 E060      LDI	R22,0
    00D8 E070      LDI	R23,0
    00D9 9350008F  STS	OSTime+1,R21
    00DB 9340008E  STS	OSTime,R20
    00DD 93700091  STS	OSTime+3,R23
    00DF 93600090  STS	OSTime+2,R22
(0090) #endif
(0091)     OSIntNesting  = 0;                                           /* Clear the interrupt nesting counter      */
    00E1 2422      CLR	R2
    00E2 922001B2  STS	OSIntNesting,R2
(0092)     OSLockNesting = 0;                                           /* Clear the scheduling lock counter        */
    00E4 922001B0  STS	OSLockNesting,R2
(0093)     OSTaskCtr     = 0;                                           /* Clear the number of tasks                */
    00E6 922001A8  STS	OSTaskCtr,R2
(0094)     OSRunning     = FALSE;                                       /* Indicate that multitasking not started   */
    00E8 922001A9  STS	OSRunning,R2
(0095)     OSIdleCtr     = 0L;                                          /* Clear the 32-bit idle counter            */
    00EA E040      LDI	R20,0
    00EB E050      LDI	R21,0
    00EC E060      LDI	R22,0
    00ED E070      LDI	R23,0
    00EE 935001A5  STS	OSIdleCtr+1,R21
    00F0 934001A4  STS	OSIdleCtr,R20
    00F2 937001A7  STS	OSIdleCtr+3,R23
    00F4 936001A6  STS	OSIdleCtr+2,R22
(0096) #if (OS_TASK_STAT_EN > 0) && (OS_TASK_CREATE_EXT_EN > 0)
(0097)     OSIdleCtrRun  = 0L;
(0098)     OSIdleCtrMax  = 0L;
(0099)     OSStatRdy     = FALSE;                                       /* Statistic task is not ready              */

⌨️ 快捷键说明

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