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

📄 gdb_hook.c

📁 microwindows移植到S3C44B0的源码
💻 C
字号:
/* * Carsten Langgaard, carstenl@mips.com * Copyright (C) 2000 MIPS Technologies, Inc.  All rights reserved. * * ######################################################################## * *  This program is free software; you can distribute it and/or modify it *  under the terms of the GNU General Public License (Version 2) as *  published by the Free Software Foundation. * *  This program is distributed in the hope it will be useful, but WITHOUT *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License *  for more details. * *  You should have received a copy of the GNU General Public License along *  with this program; if not, write to the Free Software Foundation, Inc., *  59 Temple Place - Suite 330, Boston MA 02111-1307, USA. * * ######################################################################## * * This is the interface to the remote debugger stub. * */#include <linux/serialP.h>#include <linux/serial_reg.h>#include <asm/serial.h>#include <asm/io.h>#include <asm/hp-lj/asic.h>int putDebugChar(char c);char getDebugChar(void);///////////////////////  andros values ///////////////////////////////////////////////////////#define SERIAL_REG(offset) (*((volatile unsigned int*)(HPSR_BASE_ADDR|offset)))// Register set base address#define HPSR_BASE_ADDR   0xbfe00000UL// Transmit / Receive Data#define HPSR_DATA_OFFSET    0x00020010UL// Transmit control / status#define HPSR_TX_STAT_OFFSET 0x0002000CUL// Receive status#define HPSR_RX_STAT_OFFSET 0x00020008UL#define HPSR_TX_STAT_READY  0x8UL#define HPSR_RX_DATA_AVAIL  0x4UL///////////////////////  harmony values ///////////////////////////////////////////////////////// Transmit / Receive Data#define H_HPSR_DATA_TX       *((volatile unsigned int*)0xbff65014)// Transmit / Receive Data#define H_HPSR_DATA_RX       *((volatile unsigned int*)0xbff65018)// Status#define H_HPSR_STAT          *((volatile unsigned int*)0xbff65004)// harmony serial status bits#define H_SER_STAT_TX_EMPTY       0x04#define H_SER_STAT_RX_EMPTY       0x10int putDebugChar(char c){	if (GetAsicId() == HarmonyAsic) {		while (!( ( (H_HPSR_STAT) & H_SER_STAT_TX_EMPTY) != 0));		H_HPSR_DATA_TX = (unsigned int) c;	} else if (GetAsicId() == AndrosAsic) {        	while (((SERIAL_REG(HPSR_TX_STAT_OFFSET) & HPSR_TX_STAT_READY) == 0))             		;        	SERIAL_REG(HPSR_DATA_OFFSET) = (unsigned int) c;        } 	return 1;}char getDebugChar(void){	if (GetAsicId() == HarmonyAsic) {		while (!(((H_HPSR_STAT) & H_SER_STAT_RX_EMPTY) == 0));	        return H_HPSR_DATA_RX;        	} else if (GetAsicId() == AndrosAsic) {        	while ((SERIAL_REG(HPSR_RX_STAT_OFFSET) & HPSR_RX_DATA_AVAIL) == 0)              		;        	return (SERIAL_REG(HPSR_DATA_OFFSET));	}}

⌨️ 快捷键说明

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