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

📄 io_diag.c

📁 ecos为实时嵌入式操作系统
💻 C
字号:
//=============================================================================////	io_diag.c////	Redirect diag output to the configured console device////============================================================================//####COPYRIGHTBEGIN####//// -------------------------------------------// The contents of this file are subject to the Cygnus eCos Public License// Version 1.0 (the "License"); you may not use this file except in// compliance with the License.  You may obtain a copy of the License at// http://sourceware.cygnus.com/ecos// // Software distributed under the License is distributed on an "AS IS"// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the// License for the specific language governing rights and limitations under// the License.// // The Original Code is eCos - Embedded Cygnus Operating System, released// September 30, 1998.// // The Initial Developer of the Original Code is Cygnus.  Portions created// by Cygnus are Copyright (C) 1998, 1999 Cygnus Solutions.  // All Rights Reserved.// -------------------------------------------////####COPYRIGHTEND####//============================================================================//#####DESCRIPTIONBEGIN####//// Author(s): 	jskov// Contributors:jskov// Date:	1999-04-09// Purpose:     Kernel diagnostic output// Description:	Implementations of kernel diagnostic routines.////####DESCRIPTIONEND####////=============================================================================#include <pkgconf/infra.h>              // CYGDBG_INFRA_DIAG_USE_DEVICE#if defined(CYGDBG_INFRA_DIAG_USE_DEVICE)#include <pkgconf/io_serial.h>          // TTY definitions#include <cyg/infra/cyg_ass.h>#include <cyg/io/io.h>#include <cyg/io/io_diag.h>//#include <cyg/io/devtab.h>//#include <cyg/io/ttyio.h>//-----------------------------------------------------------------------------// Write single char to outputstatic cyg_ucount8 sync_mode = 0;static cyg_io_handle_t console_handle = 0;static cyg_io_handle_t hal_handle = 0;externC voiddiag_device_init(void){    Cyg_ErrNo res;#ifdef CYGPKG_IO_SERIAL_HALDIAG    res = cyg_io_lookup("/dev/haldiag", &hal_handle);    // FIXME: This ASSERT will try to call diag_device_write_char    // to print out the error string... Recursive crash...    CYG_ASSERT(ENOERR == res, "Can't lookup /dev/haldiag");#endif#ifdef CYGPKG_IO_SERIAL_TTY    res = cyg_io_lookup(CYGDAT_IO_SERIAL_TTY_CONSOLE, &console_handle);    // FIXME: This ASSERT will try to call diag_device_write_char    // to print out the error string... Recursive crash...    CYG_ASSERT(ENOERR == res, "Can't lookup " CYGDAT_IO_SERIAL_TTY_CONSOLE);#endif}externC void diag_device_write_char(char c){    int len = 1;    if (sync_mode)        cyg_io_write(hal_handle, &c, &len);    else        cyg_io_write(console_handle, &c, &len);}externC void diag_device_start_sync(){    sync_mode = 1;}externC void diag_device_end_sync(){    sync_mode = 0;}#endif // CYGDBG_INFRA_DIAG_USE_DEVICE//-----------------------------------------------------------------------------// End of io_diag.c

⌨️ 快捷键说明

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