嵌入式系统ucosII(stm32)

  • A5_171677
    了解作者
  • 201.2KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-20 11:15
    上传日期
这是一个在stm32上的嵌入式系统ucosII,不完善的地方请大家多多修改互相学习哈
ucosii(STM32).rar
  • ucosii(STM32)
  • ucosii(实验室)
  • STM32
  • stm32_nvic.h
    3.6KB
  • lnkarm_flash.xcl
    7.6KB
  • stm32_registers.c
    1.9KB
  • lnkarm_ram.xcl
    7.6KB
  • stm32f10x_vector.c
    3KB
  • app_cfg.h
    16.5KB
  • exp_unused.c
    21.5KB
  • iniTarget.c
    1.6KB
  • exp_conf.h
    1.4KB
  • ARM
  • cortexm3_macro.h
    2.3KB
  • os_cpu_c.c
    3.8KB
  • cortexm3_macro.s
    8.9KB
  • datatype.h
    1.7KB
  • os_cpu.h
    1.8KB
  • os_cpu_a.s
    4KB
  • includes.h
    659B
  • cortex_regesiters.h
    2.5KB
  • Source
  • os_time.c
    10.8KB
  • os_core.c
    66.7KB
  • os_dbg.c
    10.1KB
  • ucos_ii.h
    51KB
  • os_q.c
    36.5KB
  • os_cfg.h
    8.4KB
  • os_sem.c
    23.1KB
  • os_mbox.c
    24.8KB
  • os_task.c
    48.5KB
  • ucos_ii.c
    962B
  • ucos_ii在STM32上的移植.pdf
    140.9KB
内容介绍
/* ********************************************************************************************************* * uC/OS-II * The Real-Time Kernel * CORE FUNCTIONS * * (c) Copyright 1992-2003, Jean J. Labrosse, Weston, FL * All Rights Reserved * * File : OS_CORE.C * By : Jean J. Labrosse * Version : V2.76 ********************************************************************************************************* */ #ifndef OS_MASTER_FILE #define OS_GLOBALS #include "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[8] = {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[256] = { 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 */ }; /*$PAGE*/ /* ********************************************************************************************************* * FUNCTION PROTOTYPES ********************************************************************************************************* */ static void OS_InitEventList(void); static void OS_InitMisc(void); static void OS_InitRdyList(void); static void OS_InitTaskIdle(void); #if OS_TASK_STAT_EN > 0 static void OS_InitTaskStat(void); #endif static void OS_InitTCBList(void); /*$PAGE*/ /* ********************************************************************************************************* * GET THE NAME OF A SEMAPHORE, MUTEX, MAILBOX or QUEUE * * Description: This function is used to obtain the name assigned to a semaphore, mutex, mailbox or queue. * * Arguments : pevent is a pointer to the event group. 'pevent' can point either to a semaphore, * a mutex, a mailbox or a queue. Where this function is concerned, the actual * type is irrelevant. * * pname is a pointer to an ASCII string that will receive the name of the semaphore, * mutex, mailbox or queue. The string must be able to hold at least * OS_EVENT_NAME_SIZE characters. * * err is a pointer to an error code that can contain one of the following values: * * OS_NO_ERR if the name was copied to 'pname' * OS_ERR_EVENT_TYPE if 'pevent' is not pointing to the proper event * control block type. * OS_ERR_PNAME_NULL You passed a NULL pointer for 'pname' * OS_ERR_PEVENT_NULL if you passed a NULL pointer for 'pevent' * * Returns : The length of the string or 0 if the 'pevent' is a NULL pointer. ********************************************************************************************************* */ #if OS_EVENT_EN && (OS_EVENT_NAME_SIZE > 1) INT8U OSEventNameGet (OS_EVENT *pevent, char *pname, INT8U *err) { INT8U len; #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */ OS_CPU_SR cpu_sr; cpu_sr = 0; /* Prevent compiler warning */ #endif OS_ENTER_CRITICAL(); #if OS_ARG_CHK_EN > 0 if (pevent == (OS_EVENT *)0) { /* Is 'pevent' a NULL pointer? */ OS_EXIT_CRITICAL(); /* Yes */ *err = OS_ERR_PEVENT_NULL; return (0); } if (pname == (char *)0) { /* Is 'pname' a NULL pointer? */ OS_EXIT_CRITICAL(); /* Yes */ *err = OS_ERR_PNAME_NULL; return (0); } #endif switch (pevent->OSEventType) { case OS_EVENT_TYPE_SEM: case OS_EVENT_TYPE_MUTEX: case OS_EVENT_TYPE_MBOX: case OS_EVENT_TYPE_Q: break; default: OS_EXIT_CRITICAL(); *err = OS_ERR_EVENT_TYPE; return (0); } len = OS_StrCopy(pname, pevent->OSEventName); /* Copy name from OS_EVENT */ OS_EXIT_CRITICAL(); *err = OS_NO_ERR; return (len); } #endif /*$PAGE*/ /* ********************************************************************************************************* * ASSIGN A NAME TO A SEMAPHORE, MUTEX, MAILBOX or QUEUE * * Description: This function assigns a name to a semaphore, mutex, mailbox or queue. * * Arguments : pevent is a pointer to the event group. 'pevent' can point either to a semaphore, * a mutex, a mailbox or a queue. Where this function is concerned, it doesn't * matter the actual type. * * pname is a pointer to an ASCII string that will be used as the name of the semaphore, * mutex, mailbox or queue. The string must be able to hold at least * OS_EVENT_NAME_SIZE characters. * * err is a pointer to an error code that can contain one of the following values: * * OS_NO_ERR if th
评论
    相关推荐