lpc2368 ucos移植程序

  • V8_941703
    了解作者
  • 263.7KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-27 22:41
    上传日期
完整的arm板ucos移植程序,内含基本的lcd灯闪烁程序
LPC2368_uCos.rar
  • LPC2368_uCos
  • lpc2368_port_Uv2.Bak
    3.3KB
  • lst
  • IRQ.lst
    47.4KB
  • Os_cpu_a.lst
    22.5KB
  • lpc2368_port.map
    60.6KB
  • Startup.lst
    23.5KB
  • lpc2368_port_Target 1.dep
    79B
  • lpc2368_port.Opt
    6.1KB
  • lpc2368_port.Uv2
    3.3KB
  • blocks
  • arm.c
    7.1KB
  • arm.h
    0B
  • obj
  • os_cpu_c.o
    89.8KB
  • os_task.o
    25KB
  • os_q.o
    24.3KB
  • IRQ.o
    3.3KB
  • os_mutex.o
    23KB
  • os_mem.o
    20.1KB
  • os_time.o
    19.9KB
  • lpc2368_port_sct.Bak
    429B
  • lpc2368_port.sct
    463B
  • os_sem.o
    21.2KB
  • lpc2368_port.plg
    43.1KB
  • os_flag.o
    26.2KB
  • Startup.o
    3.1KB
  • main.o
    87.8KB
  • lpc2368_port.tra
    1.8KB
  • lpc2368_port.hex
    45KB
  • lpc2368_port.htm
    50.2KB
  • lpc2368_port.lnp
    475B
  • os_core.o
    29KB
  • os_mbox.o
    22KB
  • Os_cpu_a.o
    2.3KB
  • app
  • irq.h
    1.7KB
  • main.c
    2.7KB
  • config.h
    6.1KB
  • OS_CFG.H
    7.9KB
  • LPC23xx.h
    71.8KB
  • target.h
    5KB
  • LPC230x.h
    71.5KB
  • target.c
    40.6KB
  • IRQ.s
    4.6KB
  • INCLUDES.H
    1.8KB
  • Startup.s
    6.8KB
  • lpc2368_port.plg
    1.2KB
  • arm
  • Os_cpu_c.c
    16.1KB
  • Os_cpu_a.s
    9.7KB
  • OS_CPU.H
    5.5KB
  • ucosii
  • OS_TIME.C
    9.7KB
  • uCOS_II.H
    45.6KB
  • OS_FLAG.C
    43.5KB
  • OS_CORE.C
    48.6KB
  • OS_MEM.C
    13.8KB
  • OS_MUTEX.C
    27.3KB
  • OS_Q.C
    33.7KB
  • OS_TASK.C
    35.5KB
  • OS_SEM.C
    19.2KB
  • OS_MBOX.C
    23.3KB
  • lpc2368_port_LPC2368Kit.dep
    7.9KB
  • lpc2368_port_Opt.Bak
    5.8KB
内容介绍
/* ********************************************************************************************************* * uC/OS-II * The Real-Time Kernel * CORE FUNCTIONS * * (c) Copyright 1992-2002, Jean J. Labrosse, Weston, FL * All Rights Reserved * * File : OS_CORE.C * By : Jean J. Labrosse ********************************************************************************************************* */ #ifndef OS_MASTER_FILE #define OS_GLOBALS #include "..\APP\includes.h" #endif /* ********************************************************************************************************* * MAPPING TABLE TO MAP BIT POSITION TO BIT MASK * * Note: Index into table is desired bit position, 0..7 * Indexed value corresponds to bit mask ********************************************************************************************************* */ INT8U const OSMapTbl[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; /* ********************************************************************************************************* * PRIORITY RESOLUTION TABLE * * Note: Index into table is bit pattern to resolve highest priority * Indexed value corresponds to highest priority bit position (i.e. 0..7) ********************************************************************************************************* */ INT8U const OSUnMapTbl[] = { 0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x00 to 0x0F */ 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x10 to 0x1F */ 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x20 to 0x2F */ 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x30 to 0x3F */ 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x40 to 0x4F */ 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x50 to 0x5F */ 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x60 to 0x6F */ 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x70 to 0x7F */ 7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x80 to 0x8F */ 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x90 to 0x9F */ 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xA0 to 0xAF */ 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xB0 to 0xBF */ 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xC0 to 0xCF */ 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xD0 to 0xDF */ 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xE0 to 0xEF */ 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0 /* 0xF0 to 0xFF */ }; /* ********************************************************************************************************* * FUNCTION PROTOTYPES ********************************************************************************************************* */ static void OS_InitEventList(void); static void OS_InitMisc(void); static void OS_InitRdyList(void); static void OS_InitTaskIdle(void); static void OS_InitTaskStat(void); static void OS_InitTCBList(void); /*$PAGE*/ /* ********************************************************************************************************* * INITIALIZATION * * Description: This function is used to initialize the internals of uC/OS-II and MUST be called prior to * creating any uC/OS-II object and, prior to calling OSStart(). * * Arguments : none * * Returns : none ********************************************************************************************************* */ void OSInit (void) { #if OS_VERSION >= 204 OSInitHookBegin(); /* Call port specific initialization code */ #endif OS_InitMisc(); /* Initialize miscellaneous variables */ OS_InitRdyList(); /* Initialize the Ready List */ OS_InitTCBList(); /* Initialize the free list of OS_TCBs */ OS_InitEventList(); /* Initialize the free list of OS_EVENTs */ #if (OS_VERSION >= 251) && (OS_FLAG_EN > 0) && (OS_MAX_FLAGS > 0) OS_FlagInit(); /* Initialize the event flag structures */ #endif #if (OS_MEM_EN > 0) && (OS_MAX_MEM_PART > 0) OS_MemInit(); /* Initialize the memory manager */ #endif #if (OS_Q_EN > 0) && (OS_MAX_QS > 0) OS_QInit(); /* Initialize the message queue structures */ #endif OS_InitTaskIdle(); /* Create the Idle Task */ #if OS_TASK_STAT_EN > 0 OS_InitTaskStat(); /* Create the Statistic Task */ #endif #if OS_VERSION >= 204 OSInitHookEnd(); /* Call port specific init. code */ #endif } /*$PAGE*/ /* ********************************************************************************************************* * ENTER ISR * * Description: This function is used to notify uC/OS-II that you are about to service an interrupt * service routine (ISR). This allows uC/OS-II to keep track of interrupt nesting and thus * only perform rescheduling at the last nested ISR. * * Arguments : none * * Returns : none * * Notes : 1) This function should be called ith interrupts already disabled * 2) Your ISR can directly increment OSIntNesting without calling this function because * OSIntNesting has been declared 'global'. * 3) You MUST still call OSIntExit() even though you increment OSIntNesting directly. * 4) You MUST invoke OSIntEnter() and OSIntExit() in pair. In other words, for every call * to OSIntEnter() at the beginning of the ISR you MUST have a call to OSIntExit() at the * end of the ISR. * 5) You are allowed to nest interrupts up to 255 levels deep. * 6) I removed the OS_ENTER_CRITICAL() and OS_EXIT_CRITICAL() around the increment because * OSIntEnter() is always called with interrupts disabled. ********************************************************************************************************* */ void OSIntEnter (void) { if (OSRunning == TRUE) { if (OSIntNesting < 255) { OSIntNesting++; /* Increment ISR nesting level */ } } } /*$PAGE*/ /* ********************************************************************************************************* * EXIT ISR * * Description: This function is used to notify uC/OS-II that you have completed serviving an ISR. When * the last nested ISR has completed, uC/OS-II will c
评论
    相关推荐
    • ARM TRAINING
      arm m3 training , 3-days
    • ARM课件
      ARM7课件,无密码
    • arm资料
      arm汇编资料,以及一些其他个人东西
    • arm arm ledtest
      arm arm led arm arm ledtest
    • arm学习
      ARM学习的资料,也是我下载的,希望大家分享
    • ARM教程word
      本文主要介绍了ARM的工作原理,如何设计,指令系统,以及列举了实例来说明ARM的工作原理,是学校ARM从无到有的好教材,文档总共分为8章,详细的介绍了ARM的原理,慢慢的学习,收获将会很大、
    • arm学习
      arm初学者学习资料
    • carm
      carm
    • arm学习
      学习ARM,适用于初学者
    • ARM 指令
      ARM指令