Ixus 200IS/SD980 1.01c porting thread - page 8 - General Discussion and Assistance - CHDK Forum supplierdeeply

Ixus 200IS/SD980 1.01c porting thread

  • 108 Replies
  • 49063 Views
*

Offline openuas

  • **
  • 58
  • OpenUAS
    • OpenUAS
Re: Ixus 200IS/SD980 1.01c porting thread
« Reply #70 on: 04 / November / 2010, 15:44:28 »
Advertisements
@dhavalhirdhav, what does your

$ arm-elf-gcc -v

Give?

*

Offline openuas

  • **
  • 58
  • OpenUAS
    • OpenUAS
Re: Ixus 200IS/SD980 1.01c porting thread
« Reply #71 on: 08 / November / 2010, 10:27:55 »
Today's progress. Installed Toolchain from scratch under Linux64bit and now CHDK build gave:

<< Leaving loader/ixus200_sd980
<< Leaving loader
>> Entering to CHDK
...
**** Firmware creation completed successfully  :haha

JaY! On the the next steps...

*

Offline openuas

  • **
  • 58
  • OpenUAS
    • OpenUAS
Re: Ixus 200IS/SD980 1.01c porting thread
« Reply #72 on: 09 / November / 2010, 09:42:09 »
Note:
Under Linux capitalization is important thus
>>make PLATFORM=ixus200_sd980 PLATFORMSUB=101C
is incorrect and should be

make PLATFORM=ixus200_sd980 PLATFORMSUB=101c fir

Mind the small c and not C in the end

*

Offline openuas

  • **
  • 58
  • OpenUAS
    • OpenUAS
Re: Ixus 200IS/SD980 1.01c porting thread
« Reply #73 on: 09 / November / 2010, 09:43:20 »
Updated to SVN v966 and still :-) can compile via

$ make PLATFORM=ixus200_sd980 PLATFORMSUB=101c fir

Now onto the SD Boot issues...


*

Offline openuas

  • **
  • 58
  • OpenUAS
    • OpenUAS
Re: Ixus 200IS/SD980 1.01c porting thread
« Reply #74 on: 09 / November / 2010, 11:14:38 »
Using GCC3.4.6 Crosscompiler on Linux 64Bit

$ make PLATFORM=ixus200_sd980 PLATFORMSUB=101c fir NEED_ENCODED_DISKBOOT=3

Press the Play button on the cam..This boots the firmware! I see the CHDK logo, then screen blanksnothing anymore...

but that is fine ;) I will adjust main.c later, but now first of to getting the IRDA on Win7, Brrrr :( working inclusive helper scripts.

*

Offline openuas

  • **
  • 58
  • OpenUAS
    • OpenUAS
Re: Ixus 200IS/SD980 1.01c porting thread
« Reply #75 on: 09 / November / 2010, 14:35:00 »
Good, after changing my_restart() in "{yoursource}/loader/ixus200_sd980/main.c" the LED blink, code executes. Great!

Current code

Code: (c) [Select]
void __attribute__((noreturn)) my_restart()
{
    //void __attribute__((noreturn)) (*copy_and_restart)(char *dst, char *src, long length);
    //int i;

    /* New code for proving the code is executed and firmware works */
    #define LED_PR         0xC0220130 //LED light up green
    #define LED_ORANGE     0xC0220134 //Same LED light up orange now
    #define LED_AF         0xC0223030

    int j;
    int k=6;

    for(;k>0;k--)
    {
        /* Turn on the LEDS */
        *((volatile int *) LED_AF) = 0x46;
        /* ((volatile int *) LED_ORANGE) = 0x46; */
        *((volatile int *) LED_PR) = 0x46;

        /* Wait a while */
        for (j=0; j<5000000; j++)
        {
                asm volatile ( "nop\n" );
        }

        /* Turn them off again */
        *((volatile int *) LED_AF) = 0x44;
        /* ((volatile int *) LED_ORANGE) = 0x44; */
        *((volatile int *) LED_PR) = 0x44;

        /* Wait a while again */
        for (j=0; j<5000000; j++)
        {
                asm volatile ( "nop\n" );
        }
    }

    /* Original code again */
/*
    for (i=0; i<(blob_copy_and_reset_size/sizeof(long)); i++){
        ((long*)(RESTARTSTART))[i] = blob_copy_and_reset[i];
    }

    copy_and_restart = (void*)RESTARTSTART;
    copy_and_restart((void*)MEMISOSTART, (char*)blob_chdk_core, blob_chdk_core_size);
*/
}

What is the *best next step* which leads the fastest to a fully working Firmware? Since I'm dying to try some scripting on my cam... ;)

*

Offline openuas

  • **
  • 58
  • OpenUAS
    • OpenUAS
Re: Ixus 200IS/SD980 1.01c porting thread
« Reply #76 on: 09 / November / 2010, 15:50:39 »
  • Alrighty then, IRDA (5.5 64Bit) is running
  • PRIMARY.BIN opened with starting address 0xFF800000 (Guess since not blinked/dumped myself)
  • Installed DryOS Signature and applied this
  • Ran the CHDK.idc script

Waiting on ARM disassembly, why not post progress in the meantime...  8)

*

Offline openuas

  • **
  • 58
  • OpenUAS
    • OpenUAS
Re: Ixus 200IS/SD980 1.01c porting thread
« Reply #77 on: 09 / November / 2010, 15:51:59 »
Looking OK to me...or I bet e few byte offet wrong

FF800000 ; -- -------------------------------------------------------------------------
ROM:FF800004 aGaonisoy       DCB "gaonisoy"
ROM:FF80000C ; ---------------------------------------------------------------------------
ROM:FF80000C
ROM:FF80000C loc_FF80000C                            ; CODE XREF: ROM:loc_FF800000j


*

Offline openuas

  • **
  • 58
  • OpenUAS
    • OpenUAS
Re: Ixus 200IS/SD980 1.01c porting thread
« Reply #78 on: 09 / November / 2010, 16:11:54 »
Ran the scan-string.idc and ripped the strings, worked out well.

*

Offline reyalp

  • ******
  • 14080
Re: Ixus 200IS/SD980 1.01c porting thread
« Reply #79 on: 09 / November / 2010, 16:22:47 »
The starting address should be FF810000, there is no chance it uses a different ROM address than the already known 100c.
Don't forget what the H stands for.

 

Related Topics