|
|
Wiki > Main > FirmwareDisassemblyH300 (compare)
| |||||||||||||||||||||||
Difference: FirmwareDisassemblyH300 (r7 vs. r6)Disassembly of the iriver H300 original firmwareGeneralI took the time to start a serious disassembly of the H300 1.30eu iriver firmware to see if I could find out some things about the power management, and the handling of the remote controls. ProgressI have so far disassemled disassembled the boot process up to when the actual firmware code is copied to RAM and started. Findings so farNothing spectacular, but here are a few things that they do and we should: PCF50606Some general purpose outputs are set like this when enabling the backlight:
Also, when they turn off the device, they set GPOOD2 and GPOOD3 like this:
For some reason, the application retains the OPMOD settings for the regulators: IOREGC = (IOREGC & 0xe0) | 0x14; D1REGC = (D1REGC & 0xe0) | 0x1f; D2REGC = ((D2REGC & 0xe0) | 0x18) & 0x1f; /* What a silly thing to do... */ D3REGC = (D3REGC & 0xe0) | 0x10; LPREGC = (LPREGC & 0xe0) | 0x0f; This is the sequence they seem to use for turning on and off the LCD:
void lcd_enable(bool on_off)
{
if(on_off)
{
lcd_write_reg(R_DISP_CONTROL1, 0x0061);
sleep(1);
lcd_write_reg(R_DISP_CONTROL1, 0x0067);
sleep(1);
lcd_write_reg(R_DISP_CONTROL1, 0x0637);
backlight_on();
}
else
{
backlight_off();
lcd_write_reg(R_DISP_CONTROL1, 0x0636);
sleep(1);
lcd_write_reg(R_DISP_CONTROL1, 0x0626);
}
}
r9 - 30 Sep 2007 - 17:56:38 - NicolasPennequin
Revision r7 - 16 Feb 2006 - 14:59 - LinusNielsenFeltzingRevision r6 - 13 Feb 2006 - 23:08 - LinusNielsenFeltzing Copyright © by the contributing authors.
|