亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? noscfg.h

?? 來源于外國的開源rtos,用于小型mcu,支持優先級搶占調度
?? H
字號:
/*
 *  Copyright (c) 2004-2005, Dennis Kuschel.
 *  All rights reserved. 
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions
 *  are met:
 *
 *   1. Redistributions of source code must retain the above copyright
 *      notice, this list of conditions and the following disclaimer.
 *   2. Redistributions in binary form must reproduce the above copyright
 *      notice, this list of conditions and the following disclaimer in the
 *      documentation and/or other materials provided with the distribution.
 *   3. The name of the author may not be used to endorse or promote
 *      products derived from this software without specific prior written
 *      permission. 
 *
 *  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
 *  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 *  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 *  ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
 *  INDIRECT,  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 *  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 *  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 *  OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 */


/**
 * @file    noscfg.h
 * @brief   pico]OS nano layer configuration file
 * @author  Dennis Kuschel
 *
 * This file is originally from the pico]OS realtime operating system
 * (http://picoos.sourceforge.net).
 *
 * CVS-ID $Id: noscfg.h,v 1.1 2005/01/10 22:40:03 dkuschel Exp $
 */

#ifndef _NOSCFG_H
#define _NOSCFG_H



/*---------------------------------------------------------------------------
 *  MEMORY MANAGEMENT
 *-------------------------------------------------------------------------*/

/** @defgroup cfgnosmem Dynamic Memory Management
 * @ingroup confign
 * @{
 */

/** Include dynamic memory management functions.
 * The nano layer supports an own implementation of the malloc() and
 * free() memory functions, and it has a multitasking able framework
 * for external memory functions. If this define is set to 1, the memory
 * management functions will be compiled into the nano layer.
 * @sa  NOSCFG_MEM_MANAGER_TYPE, NOSCFG_MEM_MANAGE_MODE,
 *      nosMemAlloc, nosMemFree
 */
#define NOSCFG_FEATURE_MEMALLOC      1

/** Set type of memory manager. Three types are possible: @n
 *   0 = Use the malloc/free functions from the runtime library @n
 *   1 = Use internal nano layer memory allocator. The system variables
 *       ::__heap_start and ::__heap_end must be provided and initialized
 *       by the user. See also define ::NOSCFG_MEM_MANAGER_TYPE. @n
 *   2 = The user supplys its own memory allocation routines.
 *       See defines ::NOSCFG_MEM_USER_MALLOC and ::NOSCFG_MEM_USER_FREE.
 */
#define NOSCFG_MEM_MANAGER_TYPE      1

/** This is a pointer to the start of the memory heap.
 * It can either be a real variable pointing to heap memory,
 * or it can be a simple static constant define. It is recommended
 * to let the linker generate a label with this name that points
 * to the start of unused RAM memory.
 */
extern void *__heap_start;

/** This is a pointer to the end of the memory heap.
 * It can either be a real variable pointing to the end of heap memory,
 * or it can be a simple static constant define. It is recommended
 * to let the linker generate a label with this name that points
 * to the end of unused RAM memory.
 */
extern void *__heap_end;

/** User defined memory allocation function.
 * The user may supply its own memory allocator functions.
 * This define is set to the function name of the user's
 * memory allocation function.
 * @note ::NOSCFG_MEM_MANAGER_TYPE must be set to type 2
 *       to enable the use of a user supplied memory allocator.
 */
#define NOSCFG_MEM_USER_MALLOC       mymalloc

/** User defined memory free function.
 * The user may supply its own memory allocator functions.
 * This define is set to the function name of the user's
 * memory free function.
 * @note ::NOSCFG_MEM_MANAGER_TYPE must be set to type 2
 *       to enable the use of a user supplied memory allocator.
 */
#define NOSCFG_MEM_USER_FREE         myfree

/** Number of bytes reserved in the stack frame for the memory allocator.
 * If heap memory is used for stack memory at task creation, there can
 * be an ugly side effect: When the task terminates again, and the RTOS
 * frees the stack memory by calling a mem-free function, the memory
 * allocator will chain the memory block into a list of free blocks
 * (=> memory pointers will be written to the top or bottom of the
 * no more used stack frame). But the stack frame remains still active
 * for a couple of subroutine jump backs, so the memory block is still
 * modified even it is assumed to be unused. To avoid the corruption of
 * memory pointers in the stack frame block, this define can be used to
 * reserve some space for the memory allocator at the root of the stack
 * frame. If the processor stack grows from top to bottom (most usual),
 * the stack root is the highest memory location, and in most cases
 * this define can be set to zero (= don't reserve any space).
 */
#define NOSCFG_STKMEM_RESERVE        0

/** Set the working scheme of the internal nano layer memory allocator. @n
 *   0 = very simple manager, low code size, but heap can fragment. @n
 *   1 = low heap fragmentation, mem-free is slower than in mode 0,
 *       needs more code memory.
 * @note ::NOSCFG_MEM_MANAGER_TYPE must be set to type 1 to
 *       enable the internal memory allocator.
 */
#define NOSCFG_MEM_MANAGE_MODE       0

/** Include function ::nosMemSet.
 * If this definition is set to 1, the function ::nosMemSet will
 * be included into the nano layer.
 */
#define NOSCFG_FEATURE_MEMSET        1

/** Include function ::nosMemCopy.
 * If this definition is set to 1, the function ::nosMemCopy will
 * be included into the nano layer.
 */
#define NOSCFG_FEATURE_MEMCOPY       1

/** @} */



/** @defgroup cfgabstr Abstracted Functions
 * @ingroup confign
 * @{
 */

/*---------------------------------------------------------------------------
 *  ABSTRACTED PICO]OS FUNCTIONS
 *-------------------------------------------------------------------------*/

/** Enable nano task create function.
 * The nano layer supports a highly portable version of the pico]OS's
 * ::posTaskCreate function. Even if the parameter list of the function
 * ::posTaskCreate can be different dependent on the platform port, the
 * nano task create function has a fixed parameter list. The second
 * advantage of the nano task create function is the fact that it is
 * able to dynamically allocate the stack frame, making the stack frame
 * just as big the application requires.<br>
 *
 * Set this define to 1 to enable the nano task create function
 * ::nosTaskCreate.
 *
 * @note   If this define is set to 1, also the feature
 *         ::NOSCFG_FEATURE_MEMALLOC must be enabled on platforms that
 *         run with ::POSCFG_TASKSTACKTYPE = 0.
 */
#define NOSCFG_FEATURE_TASKCREATE    1

/** Include nano layer semaphore functions.
 * If this definition is set to 1, the nano layer semaphore functions
 * are added to the user API. The nano layer supports named semaphores
 * and other extended semaphore features.
 */
#define NOSCFG_FEATURE_SEMAPHORES    POSCFG_FEATURE_SEMAPHORES

/** Include nano layer mutex functions.
 * If this definition is set to 1, the nano layer mutex functions
 * are added to the user API. The nano layer supports named mutexes
 * and other extended mutex features.
 */
#define NOSCFG_FEATURE_MUTEXES       POSCFG_FEATURE_MUTEXES

/** Include nano layer message box functions.
 * If this definition is set to 1, the message box functions are
 * added to the user API.
 */
#define NOSCFG_FEATURE_MSGBOXES      POSCFG_FEATURE_MSGBOXES

/** Include flags functions.
 * If this definition is set to 1, the nano layer flag functions
 * are added to the user API. The nano layer supports named flags
 * and other extended flag features.
 */
#define NOSCFG_FEATURE_FLAGS         POSCFG_FEATURE_FLAGS

/** Include timer functions.
 * If this definition is set to 1, the nano layer timer functions
 * are added to the user API. The nano layer supports named timers
 * and other extended timer features.
 */
#define NOSCFG_FEATURE_TIMER         POSCFG_FEATURE_TIMER

/** @} */



/*---------------------------------------------------------------------------
 *  CONSOLE INPUT / OUTPUT
 *-------------------------------------------------------------------------*/

/** @defgroup cfgnoscio Console I/O
 * @ingroup confign
 * @{
 */

/** Enable generic console input support.
 * If this define is set to 1, the functions ::nosKeyGet and ::nosKeyPressed
 * are added to the user API of the nano layer.
 * @note  The platform port must support console input. The port can
 *        either call ::c_nos_keyinput or rise the software interrupt 0
 *        to feed keyboard data into the nano layer.
 */
#define NOSCFG_FEATURE_CONIN         1

/** Set keyboard buffer size (in bytes).
 * If the console input is enabled (when ::NOSCFG_FEATURE_CONIN is to 1),
 * this define sets the depth of the keyboard buffer that is implemented
 * in the nano layer.
 */
#define NOSCFG_CONIO_KEYBUFSIZE      10

/** Enable generic console output support.
 * If this define is set to 1, the functions ::nosPrintChar, ::nosPrint
 * and ::nosPrintf are added to the user API of the nano layer.
 * Note that if you wish to have the formatted print functions compiled
 * in, you must also set the define ::NOSCFG_FEATURE_PRINTF to 1.
 * @note  The platform port must support console output, it must
 *        export the function ::p_putchar.
 */
#define NOSCFG_FEATURE_CONOUT        1

/** Enable generic printf functions.
 * The nano layer supports a set of realy generic printf functions.
 * This functions are not variadic, that means they do not support
 * a variable parameter list, thus they can be compiled without having
 * a runtime library linked (the header file <stdarg.h> is not needed).
 * @sa    ::nosPrintf1, ::NOSCFG_FEATURE_SPRINTF
 */
#define NOSCFG_FEATURE_PRINTF        1

/** Enable generic string printf ('sprintf') functions.
 * The nano layer supports a set of realy generic sprintf functions.
 * This functions are not variadic, that means they do not support
 * a variable parameter list, thus they can be compiled without having
 * a runtime library linked (the header file <stdarg.h> is not needed).
 * @sa    ::nosSPrintf1, ::NOSCFG_FEATURE_PRINTF
 */
#define NOSCFG_FEATURE_SPRINTF       1

/** @} */



/*---------------------------------------------------------------------------
 *  BOTTOM HALFS
 *-------------------------------------------------------------------------*/

/** @defgroup cfgnosbh Bottom Halfs
 * @ingroup confign
 * @{
 */

/** Enable bottom half support.
 * If this definition is set to 1, the bottom half functions are
 * added to the user API.
 */
#define NOSCFG_FEATURE_BOTTOMHALF    1

/** Maximum count of bottom halfs.
 * This define sets the maximum count of bottom halfs the operating system
 * can handle. The count must be at least 1 and must not exceed ::MVAR_BITS.
 */
#define NOS_MAX_BOTTOMHALFS          8

/** @} */



/*---------------------------------------------------------------------------
 *  CPU USAGE
 *-------------------------------------------------------------------------*/

/** @defgroup cfgcpuu CPU Usage
 * @ingroup confign
 * @{
 */

/** Enable calculation of CPU usage.
 * If this definition is set to 1, the CPU usage is calculated from
 * within the idle task, and the function ::nosCpuUsage is added to
 * the user API.
 */
#define NOSCFG_FEATURE_CPUUSAGE      1

/** @} */



/*---------------------------------------------------------------------------
 *  REGISTRY
 *-------------------------------------------------------------------------*/

/** @defgroup cfgnosreg Registry
 * @ingroup confign
 * @{
 */

/** Enable registry support.
 * If this definition is set to 1, the registry functions are
 * added to the user API.
 */
#define NOSCFG_FEATURE_REGISTRY      1

/** Enable the query for registry keys.
 * If this definition is set to 1, the functions ::nosRegQueryBegin,
 * ::nosRegQueryElem and ::nosRegQueryEnd will be added to the user API.
 */
#define NOSCFG_FEATURE_REGQUERY      1

/** Enable the user registry. The user has access to its own branch in
 * the registry. He can store there pairs of strings and binary
 * values. (A text string is also called a "registry key" that is assigned
 * to a binary value, such as a memory pointer or integer number).
 * An application can now ask the system for a registry key and will get
 * the belonging binary value, or vice versa.
 * If this definition is set to 1, the functions ::nosRegGet,
 * ::nosRegSet and ::nosRegDel will be added to the user API.
 */
#define NOSCFG_FEATURE_USERREG       1

/** Maximum length a registry key can have.
 * This define sets the maximum length (characters) a registry key can have.
 * If the registry is enabled, this define must be set to at least 4.
 */
#define NOS_MAX_REGKEYLEN            20

/** Registry key housekeeping.
 * When ever a new key is created, the nano layer needs to call malloc().
 * If this define is set to a number greater than 1, one malloc-call is
 * used to allocate memory for a bunch of keys (the count of keys is
 * defined here). This reduces overhead in the memory manager, but
 * increases the code-memory usage a bit.
 */
#define NOS_REGKEY_PREALLOC          4

/** @} */



#endif /* _NOSCFG_H */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产高清在线观看视频| 日韩欧美自拍偷拍| 欧美不卡一区二区三区四区| a级精品国产片在线观看| 欧美成人艳星乳罩| 91片黄在线观看| 亚洲自拍偷拍网站| 国产精品久久二区二区| 色噜噜夜夜夜综合网| 成人97人人超碰人人99| 日本中文字幕一区二区有限公司| 久久久久九九视频| 91国模大尺度私拍在线视频| 秋霞成人午夜伦在线观看| 亚洲国产婷婷综合在线精品| 久久亚洲精品国产精品紫薇| 精品人伦一区二区色婷婷| 蜜桃视频在线观看一区| 中文字幕精品综合| 亚洲精品一区二区三区影院| 国产亚洲精品aa| 久久精品国产亚洲高清剧情介绍 | 国产精品国产三级国产普通话蜜臀 | 日韩欧美国产一区二区在线播放| 欧美人成免费网站| 一本色道久久综合亚洲aⅴ蜜桃 | 日日噜噜夜夜狠狠视频欧美人| 亚洲国产一区二区a毛片| 五月激情丁香一区二区三区| 亚洲国产成人tv| 亚洲a一区二区| 精品中文字幕一区二区| 国产一区二区久久| 成人av在线资源网站| 国产精品99久久久久久似苏梦涵| 99久精品国产| 91 com成人网| 久久亚洲欧美国产精品乐播 | 激情成人综合网| 国产丶欧美丶日本不卡视频| 99久久精品免费精品国产| 欧美日韩在线精品一区二区三区激情 | 久久精品视频免费观看| 国产精品国产三级国产| 亚洲黄色小说网站| 99国内精品久久| 欧美日本不卡视频| 久久精品无码一区二区三区| 亚洲精品网站在线观看| 国产精品情趣视频| 亚洲色图.com| 蜜臀av性久久久久蜜臀aⅴ四虎 | 亚洲欧美激情小说另类| 亚洲小说欧美激情另类| 精品一区二区av| 色诱亚洲精品久久久久久| 欧美主播一区二区三区| 美女任你摸久久 | 久久精工是国产品牌吗| 国产一区二区三区久久悠悠色av| 中文字幕乱码日本亚洲一区二区 | 久久精品亚洲精品国产欧美| 久久久久久日产精品| 91精品在线免费| 亚洲午夜激情av| 日韩一级片网站| 欧美在线你懂的| 国产99久久久精品| 欧美日韩一级片在线观看| 久久亚洲一级片| 亚洲高清一区二区三区| 国产精品亚洲第一区在线暖暖韩国| 麻豆国产精品官网| 国产黄人亚洲片| 精品欧美乱码久久久久久1区2区 | 日韩一卡二卡三卡国产欧美| 亚洲日本va午夜在线电影| 蜜臀av性久久久久蜜臀aⅴ| 亚洲高清不卡在线观看| 韩国一区二区三区| 色婷婷精品大在线视频| 91在线精品一区二区| 91精品婷婷国产综合久久性色 | 91官网在线观看| 欧美精品一区二区三区蜜臀| 一区二区三区精品视频| 国产乱国产乱300精品| 欧美一区二区三区视频| 亚洲一区二区三区视频在线播放| 成人黄动漫网站免费app| 欧美mv和日韩mv的网站| 免费在线观看成人| 欧美三日本三级三级在线播放| 国产精品久久久久久亚洲伦| 麻豆91精品视频| 成人一区二区三区视频在线观看| 成人白浆超碰人人人人| 欧美中文字幕一区| 欧美激情在线看| 久久99久久99精品免视看婷婷| 日本高清视频一区二区| 国产精品国产三级国产a| 国产精品一区二区视频| 精品88久久久久88久久久| 麻豆精品新av中文字幕| 91精品国产综合久久精品图片| 亚洲123区在线观看| 欧美色爱综合网| 亚洲妇女屁股眼交7| 欧美日韩视频专区在线播放| 亚洲午夜日本在线观看| 欧美午夜在线观看| 亚洲国产视频一区二区| 欧美午夜电影网| 亚洲影院在线观看| 欧美日韩一区 二区 三区 久久精品 | 粉嫩在线一区二区三区视频| 精品国产伦一区二区三区免费| 免费观看30秒视频久久| 欧美xxxxx牲另类人与| 麻豆久久久久久久| xfplay精品久久| 国产91丝袜在线18| 国产精品久久久久精k8| 成a人片亚洲日本久久| 中文字幕在线一区二区三区| 94色蜜桃网一区二区三区| 丝袜美腿亚洲综合| 99re热这里只有精品视频| 亚洲欧美一区二区三区极速播放| 99热99精品| 亚洲欧美一区二区三区极速播放| 欧美日韩一区二区欧美激情| 人人爽香蕉精品| 日韩欧美一二三| 国产乱码精品一区二区三区忘忧草 | 18欧美乱大交hd1984| 精品国产乱码久久久久久图片| 色呦呦日韩精品| 国产麻豆午夜三级精品| 午夜日韩在线观看| 亚洲色图19p| 国产视频一区在线播放| 8x8x8国产精品| 色乱码一区二区三区88| 风流少妇一区二区| 乱一区二区av| 五月婷婷久久丁香| 亚洲日本va午夜在线影院| 国产亚洲欧洲一区高清在线观看| 欧美女孩性生活视频| 色综合婷婷久久| 成人va在线观看| 国产成人一级电影| 麻豆精品新av中文字幕| 日韩精品免费视频人成| 一区二区成人在线| 国产精品国产a级| 国产欧美精品一区二区色综合| 日韩一区二区三区四区五区六区| 在线视频亚洲一区| 成人av免费在线观看| 国产精品一区二区男女羞羞无遮挡| 免费日本视频一区| 亚洲va韩国va欧美va| 亚洲一区二区欧美| 亚洲最大成人综合| 亚洲视频一区二区免费在线观看| 国产欧美日韩中文久久| 国产亚洲一二三区| 久久精品无码一区二区三区| 久久人人超碰精品| 精品国产91亚洲一区二区三区婷婷| 欧美一区在线视频| 5月丁香婷婷综合| 欧美丰满嫩嫩电影| 欧美二区在线观看| 7777精品伊人久久久大香线蕉| 欧美性欧美巨大黑白大战| 欧美综合亚洲图片综合区| 国产精品乱码一区二区三区软件| 久久久精品tv| 国产亚洲va综合人人澡精品| 日本一区二区免费在线| 欧美国产在线观看| 国产精品福利一区| 亚洲你懂的在线视频| 亚洲综合久久久久| 亚洲高清免费视频| 首页国产欧美久久| 亚洲一区视频在线| 三级亚洲高清视频| 久久99国产精品久久99| 精品一区二区三区久久久| 国产一区二区h| 成人伦理片在线| 色香蕉成人二区免费| 欧美一a一片一级一片| 51精品久久久久久久蜜臀| 欧美成人激情免费网|