forked from len0rd/rockbox
move dbg_ports() from apps/menu_debug.c to target tree. FS#11712 by me.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28522 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
97a783a79a
commit
b8a7f5137b
24 changed files with 519 additions and 380 deletions
|
|
@ -99,12 +99,7 @@
|
|||
#include "pcf50605.h"
|
||||
#endif
|
||||
#include "appevents.h"
|
||||
|
||||
#if CONFIG_CPU == DM320 || CONFIG_CPU == S3C2440 || CONFIG_CPU == TCC7801 \
|
||||
|| CONFIG_CPU == IMX31L || CONFIG_CPU == AS3525 || CONFIG_CPU == JZ4732 \
|
||||
|| defined(CPU_S5L870X) || CONFIG_CPU == AS3525v2
|
||||
#include "debug-target.h"
|
||||
#endif
|
||||
|
||||
#if defined(SANSA_E200) || defined(SANSA_C200) || defined(PHILIPS_SA9200) \
|
||||
|| (CONFIG_CPU == AS3525 && defined(CONFIG_CHARGING)) \
|
||||
|
|
@ -953,367 +948,6 @@ static bool dbg_spdif(void)
|
|||
}
|
||||
#endif /* CPU_COLDFIRE */
|
||||
|
||||
#if (CONFIG_PLATFORM & PLATFORM_NATIVE)
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
/* button definitions */
|
||||
#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
|
||||
(CONFIG_KEYPAD == IRIVER_H300_PAD)
|
||||
# define DEBUG_CANCEL BUTTON_OFF
|
||||
|
||||
#elif CONFIG_KEYPAD == RECORDER_PAD
|
||||
# define DEBUG_CANCEL BUTTON_OFF
|
||||
|
||||
#elif CONFIG_KEYPAD == ONDIO_PAD
|
||||
# define DEBUG_CANCEL BUTTON_MENU
|
||||
|
||||
#elif (CONFIG_KEYPAD == IPOD_1G2G_PAD) || \
|
||||
(CONFIG_KEYPAD == IPOD_3G_PAD) || \
|
||||
(CONFIG_KEYPAD == IPOD_4G_PAD)
|
||||
# define DEBUG_CANCEL BUTTON_MENU
|
||||
|
||||
#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
|
||||
# define DEBUG_CANCEL BUTTON_PLAY
|
||||
|
||||
#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
|
||||
# define DEBUG_CANCEL BUTTON_REC
|
||||
|
||||
#elif (CONFIG_KEYPAD == IAUDIO_M3_PAD)
|
||||
# define DEBUG_CANCEL BUTTON_RC_REC
|
||||
|
||||
#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
|
||||
# define DEBUG_CANCEL BUTTON_REW
|
||||
|
||||
#elif (CONFIG_KEYPAD == MROBE100_PAD)
|
||||
# define DEBUG_CANCEL BUTTON_MENU
|
||||
|
||||
#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
|
||||
(CONFIG_KEYPAD == SANSA_C200_PAD) || \
|
||||
(CONFIG_KEYPAD == SANSA_FUZE_PAD)
|
||||
# define DEBUG_CANCEL BUTTON_LEFT
|
||||
|
||||
/* This is temporary until the SA9200 touchpad works */
|
||||
#elif (CONFIG_KEYPAD == PHILIPS_SA9200_PAD) || \
|
||||
(CONFIG_KEYPAD == PHILIPS_HDD1630_PAD)
|
||||
# define DEBUG_CANCEL BUTTON_POWER
|
||||
|
||||
#elif (CONFIG_KEYPAD == PHILIPS_HDD6330_PAD)
|
||||
# define DEBUG_CANCEL BUTTON_PREV
|
||||
|
||||
#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
|
||||
# define DEBUG_CANCEL BUTTON_PLAY
|
||||
|
||||
#elif (CONFIG_KEYPAD == PBELL_VIBE500_PAD)
|
||||
# define DEBUG_CANCEL BUTTON_CANCEL
|
||||
|
||||
#elif (CONFIG_KEYPAD == MPIO_HD200_PAD)
|
||||
# define DEBUG_CANCEL BUTTON_REC
|
||||
|
||||
#endif /* key definitions */
|
||||
|
||||
/* Test code!!! */
|
||||
bool dbg_ports(void)
|
||||
{
|
||||
#if CONFIG_CPU == SH7034
|
||||
int adc_battery_voltage, adc_battery_level;
|
||||
|
||||
lcd_setfont(FONT_SYSFIXED);
|
||||
lcd_clear_display();
|
||||
|
||||
while(1)
|
||||
{
|
||||
lcd_putsf(0, 0, "PADR: %04x", (unsigned short)PADR);
|
||||
lcd_putsf(0, 1, "PBDR: %04x", (unsigned short)PBDR);
|
||||
|
||||
lcd_putsf(0, 2, "AN0: %03x AN4: %03x", adc_read(0), adc_read(4));
|
||||
lcd_putsf(0, 3, "AN1: %03x AN5: %03x", adc_read(1), adc_read(5));
|
||||
lcd_putsf(0, 4, "AN2: %03x AN6: %03x", adc_read(2), adc_read(6));
|
||||
lcd_putsf(0, 5, "AN3: %03x AN7: %03x", adc_read(3), adc_read(7));
|
||||
|
||||
battery_read_info(&adc_battery_voltage, &adc_battery_level);
|
||||
lcd_putsf(0, 6, "Batt: %d.%03dV %d%% ", adc_battery_voltage / 1000,
|
||||
adc_battery_voltage % 1000, adc_battery_level);
|
||||
|
||||
lcd_update();
|
||||
if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
|
||||
{
|
||||
lcd_setfont(FONT_UI);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
#elif defined(CPU_COLDFIRE)
|
||||
unsigned int gpio_out;
|
||||
unsigned int gpio1_out;
|
||||
unsigned int gpio_read;
|
||||
unsigned int gpio1_read;
|
||||
unsigned int gpio_function;
|
||||
unsigned int gpio1_function;
|
||||
unsigned int gpio_enable;
|
||||
unsigned int gpio1_enable;
|
||||
int adc_buttons, adc_remote;
|
||||
int adc_battery_voltage, adc_battery_level;
|
||||
int line;
|
||||
|
||||
lcd_clear_display();
|
||||
lcd_setfont(FONT_SYSFIXED);
|
||||
|
||||
while(1)
|
||||
{
|
||||
line = 0;
|
||||
gpio_read = GPIO_READ;
|
||||
gpio1_read = GPIO1_READ;
|
||||
gpio_out = GPIO_OUT;
|
||||
gpio1_out = GPIO1_OUT;
|
||||
gpio_function = GPIO_FUNCTION;
|
||||
gpio1_function = GPIO1_FUNCTION;
|
||||
gpio_enable = GPIO_ENABLE;
|
||||
gpio1_enable = GPIO1_ENABLE;
|
||||
|
||||
lcd_putsf(0, line++, "GPIO_READ: %08x", gpio_read);
|
||||
lcd_putsf(0, line++, "GPIO_OUT: %08x", gpio_out);
|
||||
lcd_putsf(0, line++, "GPIO_FUNC: %08x", gpio_function);
|
||||
lcd_putsf(0, line++, "GPIO_ENA: %08x", gpio_enable);
|
||||
|
||||
lcd_putsf(0, line++, "GPIO1_READ: %08x", gpio1_read);
|
||||
lcd_putsf(0, line++, "GPIO1_OUT: %08x", gpio1_out);
|
||||
lcd_putsf(0, line++, "GPIO1_FUNC: %08x", gpio1_function);
|
||||
lcd_putsf(0, line++, "GPIO1_ENA: %08x", gpio1_enable);
|
||||
|
||||
adc_buttons = adc_read(ADC_BUTTONS);
|
||||
adc_remote = adc_read(ADC_REMOTE);
|
||||
battery_read_info(&adc_battery_voltage, &adc_battery_level);
|
||||
#if defined(IAUDIO_X5) || defined(IAUDIO_M5) || defined(IRIVER_H300_SERIES)
|
||||
lcd_putsf(0, line++, "ADC_BUTTONS (%c): %02x",
|
||||
button_scan_enabled() ? '+' : '-', adc_buttons);
|
||||
#else
|
||||
lcd_putsf(0, line++, "ADC_BUTTONS: %02x", adc_buttons);
|
||||
#endif
|
||||
#if defined(IAUDIO_X5) || defined(IAUDIO_M5)
|
||||
lcd_putsf(0, line++, "ADC_REMOTE (%c): %02x",
|
||||
remote_detect() ? '+' : '-', adc_remote);
|
||||
#else
|
||||
lcd_putsf(0, line++, "ADC_REMOTE: %02x", adc_remote);
|
||||
#endif
|
||||
#if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES)
|
||||
lcd_putsf(0, line++, "ADC_REMOTEDETECT: %02x",
|
||||
adc_read(ADC_REMOTEDETECT));
|
||||
#endif
|
||||
|
||||
lcd_putsf(0, line++, "Batt: %d.%03dV %d%% ", adc_battery_voltage / 1000,
|
||||
adc_battery_voltage % 1000, adc_battery_level);
|
||||
|
||||
#if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES)
|
||||
lcd_putsf(0, line++, "remotetype: %d", remote_type());
|
||||
#endif
|
||||
|
||||
lcd_update();
|
||||
if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
|
||||
{
|
||||
lcd_setfont(FONT_UI);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
#elif defined(CPU_PP502x)
|
||||
int line;
|
||||
|
||||
lcd_clear_display();
|
||||
lcd_setfont(FONT_SYSFIXED);
|
||||
|
||||
while(1)
|
||||
{
|
||||
line = 0;
|
||||
#if (LCD_HEIGHT >= 176) /* Only for displays with appropriate height. */
|
||||
lcd_puts(0, line++, "GPIO ENABLE: GPIO OUTPUT ENABLE:");
|
||||
lcd_putsf(0, line++, "A: %02x E: %02x I: %02x A: %02x E: %02x I: %02x",
|
||||
(unsigned int)GPIOA_ENABLE,
|
||||
(unsigned int)GPIOE_ENABLE,
|
||||
(unsigned int)GPIOI_ENABLE,
|
||||
(unsigned int)GPIOA_OUTPUT_EN,
|
||||
(unsigned int)GPIOE_OUTPUT_EN,
|
||||
(unsigned int)GPIOI_OUTPUT_EN);
|
||||
lcd_putsf(0, line++, "B: %02x F: %02x J: %02x B: %02x F: %02x J: %02x",
|
||||
(unsigned int)GPIOB_ENABLE,
|
||||
(unsigned int)GPIOF_ENABLE,
|
||||
(unsigned int)GPIOJ_ENABLE,
|
||||
(unsigned int)GPIOB_OUTPUT_EN,
|
||||
(unsigned int)GPIOF_OUTPUT_EN,
|
||||
(unsigned int)GPIOJ_OUTPUT_EN);
|
||||
lcd_putsf(0, line++, "C: %02x G: %02x K: %02x C: %02x G: %02x K: %02x",
|
||||
(unsigned int)GPIOC_ENABLE,
|
||||
(unsigned int)GPIOG_ENABLE,
|
||||
(unsigned int)GPIOK_ENABLE,
|
||||
(unsigned int)GPIOC_OUTPUT_EN,
|
||||
(unsigned int)GPIOG_OUTPUT_EN,
|
||||
(unsigned int)GPIOK_OUTPUT_EN);
|
||||
lcd_putsf(0, line++, "D: %02x H: %02x L: %02x D: %02x H: %02x L: %02x",
|
||||
(unsigned int)GPIOD_ENABLE,
|
||||
(unsigned int)GPIOH_ENABLE,
|
||||
(unsigned int)GPIOL_ENABLE,
|
||||
(unsigned int)GPIOD_OUTPUT_EN,
|
||||
(unsigned int)GPIOH_OUTPUT_EN,
|
||||
(unsigned int)GPIOL_OUTPUT_EN);
|
||||
line++;
|
||||
#endif
|
||||
lcd_puts(0, line++, "GPIO INPUT VAL:");
|
||||
lcd_putsf(0, line++, "A: %02x E: %02x I: %02x",
|
||||
(unsigned int)GPIOA_INPUT_VAL,
|
||||
(unsigned int)GPIOE_INPUT_VAL,
|
||||
(unsigned int)GPIOI_INPUT_VAL);
|
||||
lcd_putsf(0, line++, "B: %02x F: %02x J: %02x",
|
||||
(unsigned int)GPIOB_INPUT_VAL,
|
||||
(unsigned int)GPIOF_INPUT_VAL,
|
||||
(unsigned int)GPIOJ_INPUT_VAL);
|
||||
lcd_putsf(0, line++, "C: %02x G: %02x K: %02x",
|
||||
(unsigned int)GPIOC_INPUT_VAL,
|
||||
(unsigned int)GPIOG_INPUT_VAL,
|
||||
(unsigned int)GPIOK_INPUT_VAL);
|
||||
lcd_putsf(0, line++, "D: %02x H: %02x L: %02x",
|
||||
(unsigned int)GPIOD_INPUT_VAL,
|
||||
(unsigned int)GPIOH_INPUT_VAL,
|
||||
(unsigned int)GPIOL_INPUT_VAL);
|
||||
line++;
|
||||
lcd_putsf(0, line++, "GPO32_VAL: %08lx", GPO32_VAL);
|
||||
lcd_putsf(0, line++, "GPO32_EN: %08lx", GPO32_ENABLE);
|
||||
lcd_putsf(0, line++, "DEV_EN: %08lx", DEV_EN);
|
||||
lcd_putsf(0, line++, "DEV_EN2: %08lx", DEV_EN2);
|
||||
lcd_putsf(0, line++, "DEV_EN3: %08lx", inl(0x60006044)); /* to be verified */
|
||||
lcd_putsf(0, line++, "DEV_INIT1: %08lx", DEV_INIT1);
|
||||
lcd_putsf(0, line++, "DEV_INIT2: %08lx", DEV_INIT2);
|
||||
#ifdef ADC_ACCESSORY
|
||||
lcd_putsf(0, line++, "ACCESSORY: %d", adc_read(ADC_ACCESSORY));
|
||||
#endif
|
||||
#ifdef IPOD_VIDEO
|
||||
lcd_putsf(0, line++, "4066_ISTAT: %d", adc_read(ADC_4066_ISTAT));
|
||||
#endif
|
||||
|
||||
#if defined(IPOD_ACCESSORY_PROTOCOL)
|
||||
const unsigned char *serbuf = iap_get_serbuf();
|
||||
lcd_putsf(0, line++, "IAP PACKET: %02x %02x %02x %02x %02x %02x %02x %02x",
|
||||
serbuf[0], serbuf[1], serbuf[2], serbuf[3], serbuf[4], serbuf[5],
|
||||
serbuf[6], serbuf[7]);
|
||||
#endif
|
||||
|
||||
#if defined(IRIVER_H10) || defined(IRIVER_H10_5GB)
|
||||
line++;
|
||||
lcd_putsf(0, line++, "BATT: %03x UNK1: %03x",
|
||||
adc_read(ADC_BATTERY), adc_read(ADC_UNKNOWN_1));
|
||||
lcd_putsf(0, line++, "REM: %03x PAD: %03x",
|
||||
adc_read(ADC_REMOTE), adc_read(ADC_SCROLLPAD));
|
||||
#elif defined(PHILIPS_HDD1630) || defined(PHILIPS_HDD6330)
|
||||
line++;
|
||||
lcd_putsf(0, line++, "BATT: %03x UNK1: %03x",
|
||||
adc_read(ADC_BATTERY), adc_read(ADC_UNKNOWN_1));
|
||||
#elif defined(SANSA_E200) || defined(PHILIPS_SA9200)
|
||||
lcd_putsf(0, line++, "ADC_BVDD: %4d", adc_read(ADC_BVDD));
|
||||
lcd_putsf(0, line++, "ADC_RTCSUP: %4d", adc_read(ADC_RTCSUP));
|
||||
lcd_putsf(0, line++, "ADC_UVDD: %4d", adc_read(ADC_UVDD));
|
||||
lcd_putsf(0, line++, "ADC_CHG_IN: %4d", adc_read(ADC_CHG_IN));
|
||||
lcd_putsf(0, line++, "ADC_CVDD: %4d", adc_read(ADC_CVDD));
|
||||
lcd_putsf(0, line++, "ADC_BATTEMP: %4d", adc_read(ADC_BATTEMP));
|
||||
lcd_putsf(0, line++, "ADC_MICSUP1: %4d", adc_read(ADC_MICSUP1));
|
||||
lcd_putsf(0, line++, "ADC_MICSUP2: %4d", adc_read(ADC_MICSUP2));
|
||||
lcd_putsf(0, line++, "ADC_VBE1: %4d", adc_read(ADC_VBE1));
|
||||
lcd_putsf(0, line++, "ADC_VBE2: %4d", adc_read(ADC_VBE2));
|
||||
lcd_putsf(0, line++, "ADC_I_MICSUP1:%4d", adc_read(ADC_I_MICSUP1));
|
||||
#if !defined(PHILIPS_SA9200)
|
||||
lcd_putsf(0, line++, "ADC_I_MICSUP2:%4d", adc_read(ADC_I_MICSUP2));
|
||||
lcd_putsf(0, line++, "ADC_VBAT: %4d", adc_read(ADC_VBAT));
|
||||
#endif
|
||||
#endif
|
||||
lcd_update();
|
||||
if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
|
||||
{
|
||||
lcd_setfont(FONT_UI);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
#elif CONFIG_CPU == PP5002
|
||||
int line;
|
||||
|
||||
lcd_clear_display();
|
||||
lcd_setfont(FONT_SYSFIXED);
|
||||
|
||||
while(1)
|
||||
{
|
||||
line = 0;
|
||||
lcd_putsf(0, line++, "GPIO_A: %02x GPIO_B: %02x",
|
||||
(unsigned int)GPIOA_INPUT_VAL, (unsigned int)GPIOB_INPUT_VAL);
|
||||
lcd_putsf(0, line++, "GPIO_C: %02x GPIO_D: %02x",
|
||||
(unsigned int)GPIOC_INPUT_VAL, (unsigned int)GPIOD_INPUT_VAL);
|
||||
|
||||
lcd_putsf(0, line++, "DEV_EN: %08lx", DEV_EN);
|
||||
lcd_putsf(0, line++, "CLOCK_ENABLE: %08lx", CLOCK_ENABLE);
|
||||
lcd_putsf(0, line++, "CLOCK_SOURCE: %08lx", CLOCK_SOURCE);
|
||||
lcd_putsf(0, line++, "PLL_CONTROL: %08lx", PLL_CONTROL);
|
||||
lcd_putsf(0, line++, "PLL_DIV: %08lx", PLL_DIV);
|
||||
lcd_putsf(0, line++, "PLL_MULT: %08lx", PLL_MULT);
|
||||
lcd_putsf(0, line++, "TIMING1_CTL: %08lx", TIMING1_CTL);
|
||||
lcd_putsf(0, line++, "TIMING2_CTL: %08lx", TIMING2_CTL);
|
||||
|
||||
lcd_update();
|
||||
if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
|
||||
{
|
||||
lcd_setfont(FONT_UI);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
lcd_setfont(FONT_UI);
|
||||
#else
|
||||
return __dbg_ports();
|
||||
#endif /* CPU */
|
||||
return false;
|
||||
}
|
||||
#else /* !HAVE_LCD_BITMAP */
|
||||
bool dbg_ports(void)
|
||||
{
|
||||
int button;
|
||||
int adc_battery_voltage;
|
||||
int currval = 0;
|
||||
|
||||
lcd_clear_display();
|
||||
|
||||
while(1)
|
||||
{
|
||||
if (currval == 0) {
|
||||
lcd_putsf(0, 0, "PADR: %04x", (unsigned short)PADR);
|
||||
} else if (currval == 1) {
|
||||
lcd_putsf(0, 0, "PBDR: %04x", (unsigned short)PBDR);
|
||||
} else {
|
||||
int idx = currval - 2; /* idx < 7 */
|
||||
lcd_putsf(0, 0, "AN%d: %03x", idx, adc_read(idx));
|
||||
}
|
||||
|
||||
battery_read_info(&adc_battery_voltage, NULL);
|
||||
lcd_putsf(0, 1, "Batt: %d.%03dV", adc_battery_voltage / 1000,
|
||||
adc_battery_voltage % 1000);
|
||||
lcd_update();
|
||||
|
||||
button = get_action(CONTEXT_SETTINGS,HZ/5);
|
||||
|
||||
switch(button)
|
||||
{
|
||||
case ACTION_STD_CANCEL:
|
||||
return false;
|
||||
|
||||
case ACTION_SETTINGS_DEC:
|
||||
currval--;
|
||||
if(currval < 0)
|
||||
currval = 9;
|
||||
break;
|
||||
|
||||
case ACTION_SETTINGS_INC:
|
||||
currval++;
|
||||
if(currval > 9)
|
||||
currval = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#endif /* !HAVE_LCD_BITMAP */
|
||||
#endif /* PLATFORM_NATIVE */
|
||||
|
||||
#if (CONFIG_RTC == RTC_PCF50605) && (CONFIG_PLATFORM & PLATFORM_NATIVE)
|
||||
static bool dbg_pcf(void)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -398,6 +398,7 @@ target/sh/memset-sh.S
|
|||
target/sh/strlen-sh.S
|
||||
target/sh/system-sh.c
|
||||
target/sh/archos/descramble.S
|
||||
target/sh/debug-sh.c
|
||||
#endif /* SIMULATOR */
|
||||
|
||||
#elif defined(CPU_COLDFIRE)
|
||||
|
|
@ -421,6 +422,7 @@ target/coldfire/system-coldfire.c
|
|||
target/coldfire/timer-coldfire.c
|
||||
#ifndef BOOTLOADER
|
||||
target/coldfire/pcm-coldfire.c
|
||||
target/coldfire/debug-coldfire.c
|
||||
#endif /* BOOTLOADER */
|
||||
#if CONFIG_I2C == I2C_COLDFIRE
|
||||
target/coldfire/i2c-coldfire.c
|
||||
|
|
@ -503,6 +505,7 @@ target/arm/system-pp502x.c
|
|||
target/arm/crt0-pp-bl.S
|
||||
#else
|
||||
target/arm/pcm-pp.c
|
||||
target/arm/debug-pp.c
|
||||
#if !defined(SANSA_E200) && !defined(SANSA_C200)
|
||||
target/arm/audio-pp.c
|
||||
#endif /* SANSA_E200 */
|
||||
|
|
|
|||
154
firmware/target/arm/debug-pp.c
Normal file
154
firmware/target/arm/debug-pp.c
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
* $Id$
|
||||
*
|
||||
* Copyright (C) 2006 Dave Chapman
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#include "config.h"
|
||||
#include "system.h"
|
||||
#include <stdbool.h>
|
||||
#include "font.h"
|
||||
#include "lcd.h"
|
||||
#include "button.h"
|
||||
#include "powermgmt.h"
|
||||
#include "adc.h"
|
||||
#include "iap.h"
|
||||
#include "debug-target.h"
|
||||
|
||||
bool dbg_ports(void)
|
||||
{
|
||||
int line;
|
||||
|
||||
lcd_clear_display();
|
||||
lcd_setfont(FONT_SYSFIXED);
|
||||
|
||||
while(1)
|
||||
{
|
||||
line = 0;
|
||||
#if defined(CPU_PP502x)
|
||||
#if (LCD_HEIGHT >= 176) /* Only for displays with appropriate height. */
|
||||
lcd_puts(0, line++, "GPIO ENABLE:");
|
||||
lcd_putsf(0, line++, "A: %02x E: %02x I: %02x",
|
||||
(unsigned int)GPIOA_ENABLE,
|
||||
(unsigned int)GPIOE_ENABLE,
|
||||
(unsigned int)GPIOI_ENABLE);
|
||||
lcd_putsf(0, line++, "B: %02x F: %02x J: %02x",
|
||||
(unsigned int)GPIOB_ENABLE,
|
||||
(unsigned int)GPIOF_ENABLE,
|
||||
(unsigned int)GPIOJ_ENABLE);
|
||||
lcd_putsf(0, line++, "C: %02x G: %02x K: %02x",
|
||||
(unsigned int)GPIOC_ENABLE,
|
||||
(unsigned int)GPIOG_ENABLE,
|
||||
(unsigned int)GPIOK_ENABLE);
|
||||
lcd_putsf(0, line++, "D: %02x H: %02x L: %02x",
|
||||
(unsigned int)GPIOD_ENABLE,
|
||||
(unsigned int)GPIOH_ENABLE,
|
||||
(unsigned int)GPIOL_ENABLE);
|
||||
line++;
|
||||
#endif
|
||||
lcd_puts(0, line++, "GPIO INPUT VAL:");
|
||||
lcd_putsf(0, line++, "A: %02x E: %02x I: %02x",
|
||||
(unsigned int)GPIOA_INPUT_VAL,
|
||||
(unsigned int)GPIOE_INPUT_VAL,
|
||||
(unsigned int)GPIOI_INPUT_VAL);
|
||||
lcd_putsf(0, line++, "B: %02x F: %02x J: %02x",
|
||||
(unsigned int)GPIOB_INPUT_VAL,
|
||||
(unsigned int)GPIOF_INPUT_VAL,
|
||||
(unsigned int)GPIOJ_INPUT_VAL);
|
||||
lcd_putsf(0, line++, "C: %02x G: %02x K: %02x",
|
||||
(unsigned int)GPIOC_INPUT_VAL,
|
||||
(unsigned int)GPIOG_INPUT_VAL,
|
||||
(unsigned int)GPIOK_INPUT_VAL);
|
||||
lcd_putsf(0, line++, "D: %02x H: %02x L: %02x",
|
||||
(unsigned int)GPIOD_INPUT_VAL,
|
||||
(unsigned int)GPIOH_INPUT_VAL,
|
||||
(unsigned int)GPIOL_INPUT_VAL);
|
||||
line++;
|
||||
lcd_putsf(0, line++, "GPO32_VAL: %08lx", GPO32_VAL);
|
||||
lcd_putsf(0, line++, "GPO32_EN: %08lx", GPO32_ENABLE);
|
||||
lcd_putsf(0, line++, "DEV_EN: %08lx", DEV_EN);
|
||||
lcd_putsf(0, line++, "DEV_EN2: %08lx", DEV_EN2);
|
||||
lcd_putsf(0, line++, "DEV_EN3: %08lx", inl(0x60006044)); /* to be verified */
|
||||
lcd_putsf(0, line++, "DEV_INIT1: %08lx", DEV_INIT1);
|
||||
lcd_putsf(0, line++, "DEV_INIT2: %08lx", DEV_INIT2);
|
||||
#ifdef ADC_ACCESSORY
|
||||
lcd_putsf(0, line++, "ACCESSORY: %d", adc_read(ADC_ACCESSORY));
|
||||
#endif
|
||||
#ifdef IPOD_VIDEO
|
||||
lcd_putsf(0, line++, "4066_ISTAT: %d", adc_read(ADC_4066_ISTAT));
|
||||
#endif
|
||||
|
||||
#if defined(IPOD_ACCESSORY_PROTOCOL)
|
||||
const unsigned char *serbuf = iap_get_serbuf();
|
||||
lcd_putsf(0, line++, "IAP PACKET: %02x %02x %02x %02x %02x %02x %02x %02x",
|
||||
serbuf[0], serbuf[1], serbuf[2], serbuf[3], serbuf[4], serbuf[5],
|
||||
serbuf[6], serbuf[7]);
|
||||
#endif
|
||||
|
||||
#if defined(IRIVER_H10) || defined(IRIVER_H10_5GB)
|
||||
line++;
|
||||
lcd_putsf(0, line++, "BATT: %03x UNK1: %03x",
|
||||
adc_read(ADC_BATTERY), adc_read(ADC_UNKNOWN_1));
|
||||
lcd_putsf(0, line++, "REM: %03x PAD: %03x",
|
||||
adc_read(ADC_REMOTE), adc_read(ADC_SCROLLPAD));
|
||||
#elif defined(PHILIPS_HDD1630) || defined(PHILIPS_HDD6330)
|
||||
line++;
|
||||
lcd_putsf(0, line++, "BATT: %03x UNK1: %03x",
|
||||
adc_read(ADC_BATTERY), adc_read(ADC_UNKNOWN_1));
|
||||
#elif defined(SANSA_E200) || defined(PHILIPS_SA9200)
|
||||
lcd_putsf(0, line++, "ADC_BVDD: %4d", adc_read(ADC_BVDD));
|
||||
lcd_putsf(0, line++, "ADC_RTCSUP: %4d", adc_read(ADC_RTCSUP));
|
||||
lcd_putsf(0, line++, "ADC_UVDD: %4d", adc_read(ADC_UVDD));
|
||||
lcd_putsf(0, line++, "ADC_CHG_IN: %4d", adc_read(ADC_CHG_IN));
|
||||
lcd_putsf(0, line++, "ADC_CVDD: %4d", adc_read(ADC_CVDD));
|
||||
lcd_putsf(0, line++, "ADC_BATTEMP: %4d", adc_read(ADC_BATTEMP));
|
||||
lcd_putsf(0, line++, "ADC_MICSUP1: %4d", adc_read(ADC_MICSUP1));
|
||||
lcd_putsf(0, line++, "ADC_MICSUP2: %4d", adc_read(ADC_MICSUP2));
|
||||
lcd_putsf(0, line++, "ADC_VBE1: %4d", adc_read(ADC_VBE1));
|
||||
lcd_putsf(0, line++, "ADC_VBE2: %4d", adc_read(ADC_VBE2));
|
||||
lcd_putsf(0, line++, "ADC_I_MICSUP1:%4d", adc_read(ADC_I_MICSUP1));
|
||||
#if !defined(PHILIPS_SA9200)
|
||||
lcd_putsf(0, line++, "ADC_I_MICSUP2:%4d", adc_read(ADC_I_MICSUP2));
|
||||
lcd_putsf(0, line++, "ADC_VBAT: %4d", adc_read(ADC_VBAT));
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#elif CONFIG_CPU == PP5002
|
||||
lcd_putsf(0, line++, "GPIO_A: %02x GPIO_B: %02x",
|
||||
(unsigned int)GPIOA_INPUT_VAL, (unsigned int)GPIOB_INPUT_VAL);
|
||||
lcd_putsf(0, line++, "GPIO_C: %02x GPIO_D: %02x",
|
||||
(unsigned int)GPIOC_INPUT_VAL, (unsigned int)GPIOD_INPUT_VAL);
|
||||
|
||||
lcd_putsf(0, line++, "DEV_EN: %08lx", DEV_EN);
|
||||
lcd_putsf(0, line++, "CLOCK_ENABLE: %08lx", CLOCK_ENABLE);
|
||||
lcd_putsf(0, line++, "CLOCK_SOURCE: %08lx", CLOCK_SOURCE);
|
||||
lcd_putsf(0, line++, "PLL_CONTROL: %08lx", PLL_CONTROL);
|
||||
lcd_putsf(0, line++, "PLL_DIV: %08lx", PLL_DIV);
|
||||
lcd_putsf(0, line++, "PLL_MULT: %08lx", PLL_MULT);
|
||||
lcd_putsf(0, line++, "TIMING1_CTL: %08lx", TIMING1_CTL);
|
||||
lcd_putsf(0, line++, "TIMING2_CTL: %08lx", TIMING2_CTL);
|
||||
#endif
|
||||
lcd_update();
|
||||
if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
|
||||
{
|
||||
lcd_setfont(FONT_UI);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
49
firmware/target/arm/debug-target.h
Normal file
49
firmware/target/arm/debug-target.h
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
* $Id$
|
||||
*
|
||||
* Copyright (C) 2010 by Marcin Bukat
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
****************************************************************************/
|
||||
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) || \
|
||||
(CONFIG_KEYPAD == IPOD_3G_PAD) || \
|
||||
(CONFIG_KEYPAD == IPOD_4G_PAD)
|
||||
# define DEBUG_CANCEL BUTTON_MENU
|
||||
|
||||
#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
|
||||
# define DEBUG_CANCEL BUTTON_REW
|
||||
|
||||
#elif (CONFIG_KEYPAD == MROBE100_PAD)
|
||||
# define DEBUG_CANCEL BUTTON_MENU
|
||||
|
||||
#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
|
||||
(CONFIG_KEYPAD == SANSA_C200_PAD)
|
||||
# define DEBUG_CANCEL BUTTON_LEFT
|
||||
|
||||
#elif (CONFIG_KEYPAD == PHILIPS_SA9200_PAD) || \
|
||||
(CONFIG_KEYPAD == PHILIPS_HDD1630_PAD)
|
||||
# define DEBUG_CANCEL BUTTON_POWER
|
||||
|
||||
#elif (CONFIG_KEYPAD == PHILIPS_HDD6330_PAD)
|
||||
# define DEBUG_CANCEL BUTTON_PREV
|
||||
|
||||
#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
|
||||
# define DEBUG_CANCEL BUTTON_PLAY
|
||||
|
||||
#elif (CONFIG_KEYPAD == PBELL_VIBE500_PAD)
|
||||
# define DEBUG_CANCEL BUTTON_CANCEL
|
||||
#endif
|
||||
bool dbg_ports(void);
|
||||
|
|
@ -141,7 +141,7 @@ bool __dbg_hw_info(void)
|
|||
}
|
||||
}
|
||||
|
||||
bool __dbg_ports(void)
|
||||
bool dbg_ports(void)
|
||||
{
|
||||
int line;
|
||||
int i;
|
||||
|
|
|
|||
|
|
@ -23,6 +23,6 @@
|
|||
|
||||
#define DEBUG_CANCEL BUTTON_BACK
|
||||
bool __dbg_hw_info(void);
|
||||
bool __dbg_ports(void);
|
||||
bool dbg_ports(void);
|
||||
|
||||
#endif /* DEBUG_TARGET_H */
|
||||
|
|
|
|||
5
firmware/target/arm/pnx0101/debug-pnx0101.c
Normal file
5
firmware/target/arm/pnx0101/debug-pnx0101.c
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
/* just empty stub */
|
||||
bool dbg_ports()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
24
firmware/target/arm/pnx0101/debug-target.h
Normal file
24
firmware/target/arm/pnx0101/debug-target.h
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
* $Id$
|
||||
*
|
||||
* Copyright (C) 2010 by Marcin Bukat
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
****************************************************************************/
|
||||
#if CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
|
||||
# define DEBUG_CANCEL BUTTON_PLAY
|
||||
#endif /* key definitions */
|
||||
bool dbg_ports(void);
|
||||
|
|
@ -34,7 +34,7 @@ bool __dbg_hw_info(void)
|
|||
return false;
|
||||
}
|
||||
|
||||
bool __dbg_ports(void)
|
||||
bool dbg_ports(void)
|
||||
{
|
||||
int line;
|
||||
|
||||
|
|
|
|||
|
|
@ -26,5 +26,5 @@
|
|||
#endif
|
||||
|
||||
bool __dbg_hw_info(void);
|
||||
bool __dbg_ports(void);
|
||||
bool dbg_ports(void);
|
||||
|
||||
|
|
|
|||
|
|
@ -155,7 +155,7 @@ bool __dbg_hw_info(void)
|
|||
return false;
|
||||
}
|
||||
|
||||
bool __dbg_ports(void)
|
||||
bool dbg_ports(void)
|
||||
{
|
||||
int line;
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
#define DEBUG_CANCEL BUTTON_MENU
|
||||
|
||||
bool __dbg_hw_info(void);
|
||||
bool __dbg_ports(void);
|
||||
bool dbg_ports(void);
|
||||
|
||||
#endif /* _DEBUG_TARGET_H_ */
|
||||
|
||||
|
|
|
|||
|
|
@ -20,5 +20,5 @@
|
|||
****************************************************************************/
|
||||
|
||||
bool __dbg_hw_info(void);
|
||||
bool __dbg_ports(void);
|
||||
bool dbg_ports(void);
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
#include "debug-target.h"
|
||||
#include "adc.h"
|
||||
|
||||
bool __dbg_ports(void)
|
||||
bool dbg_ports(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,5 +20,5 @@
|
|||
****************************************************************************/
|
||||
|
||||
bool __dbg_hw_info(void);
|
||||
bool __dbg_ports(void);
|
||||
bool dbg_ports(void);
|
||||
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@
|
|||
#define STS (*(volatile unsigned long *)0xF3001008)
|
||||
#define SRC (*(volatile unsigned long *)0xF3001010)
|
||||
|
||||
bool __dbg_ports(void)
|
||||
bool dbg_ports(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
#include "m66591.h"
|
||||
#endif
|
||||
|
||||
bool __dbg_ports(void)
|
||||
bool dbg_ports(void)
|
||||
{
|
||||
#if defined(MROBE_500)
|
||||
int line = 0;
|
||||
|
|
|
|||
|
|
@ -20,4 +20,4 @@
|
|||
****************************************************************************/
|
||||
|
||||
bool __dbg_hw_info(void);
|
||||
bool __dbg_ports(void);
|
||||
bool dbg_ports(void);
|
||||
|
|
|
|||
106
firmware/target/coldfire/debug-coldfire.c
Normal file
106
firmware/target/coldfire/debug-coldfire.c
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
* $Id$
|
||||
*
|
||||
* Copyright (C) 2005 by Linus Nielsen Feltzing
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#include "config.h"
|
||||
#include "system.h"
|
||||
#include <stdbool.h>
|
||||
#include "font.h"
|
||||
#include "lcd.h"
|
||||
#include "button.h"
|
||||
#include "powermgmt.h"
|
||||
#include "adc.h"
|
||||
#include "debug-target.h"
|
||||
|
||||
bool dbg_ports(void)
|
||||
{
|
||||
unsigned int gpio_out;
|
||||
unsigned int gpio1_out;
|
||||
unsigned int gpio_read;
|
||||
unsigned int gpio1_read;
|
||||
unsigned int gpio_function;
|
||||
unsigned int gpio1_function;
|
||||
unsigned int gpio_enable;
|
||||
unsigned int gpio1_enable;
|
||||
int adc_battery_voltage, adc_battery_level;
|
||||
int adc_buttons, adc_remote;
|
||||
int line;
|
||||
|
||||
lcd_clear_display();
|
||||
lcd_setfont(FONT_SYSFIXED);
|
||||
|
||||
while(1)
|
||||
{
|
||||
line = 0;
|
||||
gpio_read = GPIO_READ;
|
||||
gpio1_read = GPIO1_READ;
|
||||
gpio_out = GPIO_OUT;
|
||||
gpio1_out = GPIO1_OUT;
|
||||
gpio_function = GPIO_FUNCTION;
|
||||
gpio1_function = GPIO1_FUNCTION;
|
||||
gpio_enable = GPIO_ENABLE;
|
||||
gpio1_enable = GPIO1_ENABLE;
|
||||
|
||||
lcd_putsf(0, line++, "GPIO_READ: %08x", gpio_read);
|
||||
lcd_putsf(0, line++, "GPIO_OUT: %08x", gpio_out);
|
||||
lcd_putsf(0, line++, "GPIO_FUNC: %08x", gpio_function);
|
||||
lcd_putsf(0, line++, "GPIO_ENA: %08x", gpio_enable);
|
||||
lcd_putsf(0, line++, "GPIO1_READ: %08x", gpio1_read);
|
||||
lcd_putsf(0, line++, "GPIO1_OUT: %08x", gpio1_out);
|
||||
lcd_putsf(0, line++, "GPIO1_FUNC: %08x", gpio1_function);
|
||||
lcd_putsf(0, line++, "GPIO1_ENA: %08x", gpio1_enable);
|
||||
|
||||
adc_buttons = adc_read(ADC_BUTTONS);
|
||||
adc_remote = adc_read(ADC_REMOTE);
|
||||
battery_read_info(&adc_battery_voltage, &adc_battery_level);
|
||||
#if defined(IAUDIO_X5) || defined(IAUDIO_M5) || defined(IRIVER_H300_SERIES)
|
||||
lcd_putsf(0, line++, "ADC_BUTTONS (%c): %02x",
|
||||
button_scan_enabled() ? '+' : '-', adc_buttons);
|
||||
#else
|
||||
lcd_putsf(0, line++, "ADC_BUTTONS: %02x", adc_buttons);
|
||||
#endif
|
||||
#if defined(IAUDIO_X5) || defined(IAUDIO_M5)
|
||||
lcd_putsf(0, line++, "ADC_REMOTE (%c): %02x",
|
||||
remote_detect() ? '+' : '-', adc_remote);
|
||||
#else
|
||||
lcd_putsf(0, line++, "ADC_REMOTE: %02x", adc_remote);
|
||||
#endif
|
||||
#if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES)
|
||||
lcd_putsf(0, line++, "ADC_REMOTEDETECT: %02x",
|
||||
adc_read(ADC_REMOTEDETECT));
|
||||
#endif
|
||||
|
||||
battery_read_info(&adc_battery_voltage, &adc_battery_level);
|
||||
lcd_putsf(0, line++, "Batt: %d.%03dV %d%% ", adc_battery_voltage / 1000,
|
||||
adc_battery_voltage % 1000, adc_battery_level);
|
||||
|
||||
#if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES)
|
||||
lcd_putsf(0, line++, "remotetype: %d", remote_type());
|
||||
#endif
|
||||
|
||||
lcd_update();
|
||||
if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
|
||||
{
|
||||
lcd_setfont(FONT_UI);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
34
firmware/target/coldfire/debug-target.h
Normal file
34
firmware/target/coldfire/debug-target.h
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
* $Id$
|
||||
*
|
||||
* Copyright (C) 2010 by Marcin Bukat
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
****************************************************************************/
|
||||
#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
|
||||
(CONFIG_KEYPAD == IRIVER_H300_PAD)
|
||||
# define DEBUG_CANCEL BUTTON_OFF
|
||||
|
||||
#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
|
||||
# define DEBUG_CANCEL BUTTON_REC
|
||||
|
||||
#elif (CONFIG_KEYPAD == IAUDIO_M3_PAD)
|
||||
# define DEBUG_CANCEL BUTTON_RC_REC
|
||||
|
||||
#elif (CONFIG_KEYPAD == MPIO_HD200_PAD)
|
||||
# define DEBUG_CANCEL BUTTON_REC
|
||||
#endif
|
||||
bool dbg_ports(void);
|
||||
|
|
@ -129,7 +129,7 @@ static void display_enabled_clocks(void)
|
|||
(clkgr & CPM_CLKGR_UART0) ? "stopped" : "running");
|
||||
}
|
||||
|
||||
bool __dbg_ports(void)
|
||||
bool dbg_ports(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,6 @@
|
|||
#define __DEBUG_TARGET_H_
|
||||
|
||||
bool __dbg_hw_info(void);
|
||||
bool __dbg_ports(void);
|
||||
bool dbg_ports(void);
|
||||
|
||||
#endif /* __DEBUG_TARGET_H_ */
|
||||
|
|
|
|||
103
firmware/target/sh/debug-sh.c
Normal file
103
firmware/target/sh/debug-sh.c
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
* $Id$
|
||||
*
|
||||
* Copyright (C) 2002 Heikki Hannikainen
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#include "config.h"
|
||||
#include "system.h"
|
||||
#include <stdbool.h>
|
||||
#include "font.h"
|
||||
#include "lcd.h"
|
||||
#include "button.h"
|
||||
#include "powermgmt.h"
|
||||
#include "adc.h"
|
||||
#include "debug-target.h"
|
||||
|
||||
bool dbg_ports(void)
|
||||
{
|
||||
int adc_battery_voltage;
|
||||
#ifndef HAVE_LCD_BITMAP
|
||||
int currval = 0;
|
||||
int button;
|
||||
#else
|
||||
int adc_battery_level;
|
||||
|
||||
lcd_setfont(FONT_SYSFIXED);
|
||||
#endif
|
||||
lcd_clear_display();
|
||||
|
||||
while(1)
|
||||
{
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
lcd_putsf(0, 0, "PADR: %04x", (unsigned short)PADR);
|
||||
lcd_putsf(0, 1, "PBDR: %04x", (unsigned short)PBDR);
|
||||
|
||||
lcd_putsf(0, 2, "AN0: %03x AN4: %03x", adc_read(0), adc_read(4));
|
||||
lcd_putsf(0, 3, "AN1: %03x AN5: %03x", adc_read(1), adc_read(5));
|
||||
lcd_putsf(0, 4, "AN2: %03x AN6: %03x", adc_read(2), adc_read(6));
|
||||
lcd_putsf(0, 5, "AN3: %03x AN7: %03x", adc_read(3), adc_read(7));
|
||||
|
||||
battery_read_info(&adc_battery_voltage, &adc_battery_level);
|
||||
lcd_putsf(0, 6, "Batt: %d.%03dV %d%% ", adc_battery_voltage / 1000,
|
||||
adc_battery_voltage % 1000, adc_battery_level);
|
||||
|
||||
lcd_update();
|
||||
if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
|
||||
{
|
||||
lcd_setfont(FONT_UI);
|
||||
return false;
|
||||
}
|
||||
#else /* !HAVE_LCD_BITMAP */
|
||||
|
||||
if (currval == 0) {
|
||||
lcd_putsf(0, 0, "PADR: %04x", (unsigned short)PADR);
|
||||
} else if (currval == 1) {
|
||||
lcd_putsf(0, 0, "PBDR: %04x", (unsigned short)PBDR);
|
||||
} else {
|
||||
int idx = currval - 2; /* idx < 7 */
|
||||
lcd_putsf(0, 0, "AN%d: %03x", idx, adc_read(idx));
|
||||
}
|
||||
|
||||
battery_read_info(&adc_battery_voltage, NULL);
|
||||
lcd_putsf(0, 1, "Batt: %d.%03dV", adc_battery_voltage / 1000,
|
||||
adc_battery_voltage % 1000);
|
||||
lcd_update();
|
||||
|
||||
button = button_get_w_tmo(HZ/5);
|
||||
switch(button)
|
||||
{
|
||||
case BUTTON_STOP:
|
||||
return false;
|
||||
|
||||
case BUTTON_LEFT:
|
||||
currval--;
|
||||
if(currval < 0)
|
||||
currval = 9;
|
||||
break;
|
||||
|
||||
case BUTTON_RIGHT:
|
||||
currval++;
|
||||
if(currval > 9)
|
||||
currval = 0;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
}
|
||||
27
firmware/target/sh/debug-target.h
Normal file
27
firmware/target/sh/debug-target.h
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
* $Id$
|
||||
*
|
||||
* Copyright (C) 2010 by Marcin Bukat
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
****************************************************************************/
|
||||
#if CONFIG_KEYPAD == RECORDER_PAD
|
||||
# define DEBUG_CANCEL BUTTON_OFF
|
||||
|
||||
#elif CONFIG_KEYPAD == ONDIO_PAD
|
||||
# define DEBUG_CANCEL BUTTON_MENU
|
||||
#endif
|
||||
bool dbg_ports(void);
|
||||
Loading…
Add table
Add a link
Reference in a new issue