亚洲欧美第一页_禁久久精品乱码_粉嫩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 for the 6502 port
 * @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/11 16:10:57 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
 * @{
 */

/*---------------------------------------------------------------------------
 *  TASK CREATION
 *-------------------------------------------------------------------------*/

/** 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

/** @} */



/*---------------------------------------------------------------------------
 *  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

/** @} */



/*---------------------------------------------------------------------------
 *  KEY STRINGS
 *-------------------------------------------------------------------------*/

/** @defgroup cfgnoskey Key Strings
 * @ingroup confign
 * @{
 */

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

/** Enable the query for key strings.
 * If this definition is set to 1, the functions ::nos_keyQueryBegin,
 * ::nos_keyQueryElem and ::nos_keyQueryEnd will be added to the user API.
 */
#define NOSCFG_FEATURE_REGQUERY      1

/** Enable user keys. User keys behave something like a 'registry'
 * for binary values. A binary value can be assigned to a text-string, and
 * the string is stored into the system keylist. An application can now
 * ask the system for a keystring and will get the belonging binary value.
 * If this definition is set to 1, the functions ::nos_keyGet,
 * ::nos_keySet and ::nos_keyDel will be added to the user API.
 */
#define NOSCFG_FEATURE_USERREG      1

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

/** Key string 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一区二区三区免费野_久草精品视频
日韩成人av影视| 欧美va天堂va视频va在线| 久久av资源网| 婷婷成人综合网| 亚洲高清不卡在线| 亚洲五码中文字幕| 香蕉乱码成人久久天堂爱免费| 亚洲欧美国产77777| 国产精品对白交换视频 | 亚洲成人一区二区| 亚洲美女免费视频| 亚洲图片欧美一区| 丝袜美腿亚洲色图| 美国毛片一区二区| 国产精品99久久久久久久女警| 久久电影国产免费久久电影| 久久不见久久见中文字幕免费| 久久成人精品无人区| 韩国一区二区三区| av在线播放一区二区三区| www.亚洲激情.com| 欧美日韩一区二区欧美激情| 欧美日韩黄色影视| 久久综合99re88久久爱| 国产日韩欧美精品综合| 日韩理论片中文av| 亚洲国产毛片aaaaa无费看| 亚洲综合在线电影| 日韩av电影免费观看高清完整版在线观看| 日韩专区在线视频| 国产一区二区按摩在线观看| 成人黄色小视频| 欧美日韩二区三区| 精品国免费一区二区三区| 国产日韩精品视频一区| 亚洲欧美一区二区三区极速播放| 视频在线观看91| 国产成人一区二区精品非洲| 色av综合在线| 26uuu国产在线精品一区二区| 中文字幕一区二区在线播放 | 日韩精品影音先锋| 中文一区在线播放| 日韩电影一区二区三区四区| 韩国av一区二区三区在线观看| 91丝袜美腿高跟国产极品老师 | 91精品国产综合久久香蕉麻豆| 亚洲精品在线观看视频| 亚洲色图在线视频| 久久99热狠狠色一区二区| 色综合咪咪久久| 久久色.com| 日本视频一区二区三区| www.欧美色图| 久久女同精品一区二区| 午夜精品一区二区三区三上悠亚 | 中文字幕在线不卡一区| 日本不卡视频在线| 在线一区二区三区四区五区| 国产欧美日韩一区二区三区在线观看 | 免费成人美女在线观看.| 不卡的av电影在线观看| 日韩网站在线看片你懂的| 一区二区三区日韩欧美精品| 国产成人自拍在线| 欧美电视剧在线看免费| 性久久久久久久久久久久| 99久久亚洲一区二区三区青草| 久久先锋影音av| 另类调教123区| 在线成人高清不卡| 丝袜亚洲另类丝袜在线| 欧美性生活影院| 亚洲一区二区三区小说| 日本韩国欧美一区二区三区| 国产精品女上位| 99久久99久久精品免费观看| 日本一区二区不卡视频| 成人免费观看视频| 国产精品久久毛片av大全日韩| 国产成人精品亚洲777人妖| 久久亚洲综合色| 麻豆传媒一区二区三区| www国产成人免费观看视频 深夜成人网 | 亚洲色图在线看| 97精品久久久午夜一区二区三区 | 欧美性大战久久久久久久蜜臀| 自拍偷拍欧美精品| 在线视频观看一区| 亚洲chinese男男1069| 91麻豆精品国产91久久久久| 日本中文字幕一区二区视频| 91精品国产综合久久香蕉的特点| 免费看黄色91| 久久精品欧美日韩| 99久久精品国产一区二区三区 | 亚洲福利一二三区| 欧美日韩成人一区二区| 午夜视频一区在线观看| 欧美tickling网站挠脚心| 国产精品影视在线观看| 国产精品每日更新| 欧美日韩不卡一区| 激情另类小说区图片区视频区| 久久综合精品国产一区二区三区| www.欧美精品一二区| 亚洲一区二区三区在线播放| 欧美一区二区三区在| 成人亚洲一区二区一| 亚洲综合免费观看高清完整版在线 | 国产一区二区精品久久99| 日本一区二区综合亚洲| 91欧美激情一区二区三区成人| 午夜精品福利一区二区三区av| 欧美不卡一区二区三区| 91亚洲永久精品| 久久成人综合网| 亚洲最新视频在线播放| 久久综合久色欧美综合狠狠| 97国产一区二区| 精品中文字幕一区二区小辣椒| 国产精品久久毛片a| 4438x成人网最大色成网站| 成人福利在线看| 日本成人在线电影网| 亚洲视频中文字幕| 久久婷婷国产综合国色天香| 欧美在线啊v一区| 国产成人精品影院| 日韩vs国产vs欧美| 一区二区三区四区在线| 国产日韩成人精品| 精品粉嫩aⅴ一区二区三区四区| 在线一区二区视频| av电影天堂一区二区在线观看| 久久精品噜噜噜成人av农村| 亚洲免费观看高清完整版在线观看 | 日韩欧美一级片| 欧美主播一区二区三区| va亚洲va日韩不卡在线观看| 久久99精品视频| 日本在线观看不卡视频| 亚洲一区在线免费观看| 国产精品毛片高清在线完整版| 欧美精品1区2区| 91行情网站电视在线观看高清版| 成人免费毛片a| 粉嫩一区二区三区性色av| 久国产精品韩国三级视频| 日韩综合小视频| 婷婷开心激情综合| 亚洲影院在线观看| 亚洲卡通动漫在线| 亚洲欧美视频一区| 亚洲婷婷在线视频| 日韩理论在线观看| 亚洲视频一区二区在线| 国产精品你懂的在线欣赏| 日本一区二区三区四区在线视频 | 亚洲四区在线观看| 国产精品麻豆视频| 亚洲色图制服丝袜| 亚洲一区二区三区四区的| 亚洲国产日韩a在线播放性色| 日韩理论片一区二区| 亚洲欧洲国产专区| 国产精品乱码一区二三区小蝌蚪| 国产人成亚洲第一网站在线播放| 国产欧美日韩另类一区| 国产精品私房写真福利视频| 国产精品久久久久国产精品日日| 亚洲图片另类小说| 亚洲国产精品一区二区www在线| 亚洲v精品v日韩v欧美v专区| 日韩成人一级大片| 韩国一区二区视频| 成人动漫在线一区| 欧美日韩一区二区三区在线| 欧美体内she精高潮| 欧美丝袜丝nylons| 51精品久久久久久久蜜臀| 欧美成人女星排行榜| 国产日韩欧美电影| 国产精品天干天干在观线| 亚洲欧美偷拍三级| 视频精品一区二区| 国产综合久久久久久鬼色| caoporen国产精品视频| 日本高清无吗v一区| 制服丝袜国产精品| 久久九九影视网| 亚洲最新在线观看| 国产精品66部| 欧美少妇xxx| 国产欧美日韩精品在线| 日本不卡视频在线| 在线观看国产日韩| 日本一区二区三区四区在线视频| 视频一区视频二区中文| av一二三不卡影片|