Thumb and ARM compilation: Why interwork? - General Discussion and Assistance - CHDK Forum

Thumb and ARM compilation: Why interwork?

  • 3 Replies
  • 1507 Views
*

Offline Lebeau

  • ***
  • 187
Thumb and ARM compilation: Why interwork?
« on: 28 / July / 2011, 22:52:19 »
Advertisements
I remove CTHUMB flag and compile all the way to ARM and optimize -Os.

The ARM code is 299KB instead of 238KB in interwork therefore about 17% bigger but it works very well. I like the ARM generated assembler.

I didn't enable all optional compiling flags like PTP, Sokoban, ... but could I anticipate limiting effects compiling in ARM ?

*

Offline philmoz

  • *****
  • 3116
    • Photos
Re: Thumb and ARM compilation: Why interwork?
« Reply #1 on: 28 / July / 2011, 23:15:15 »
I remove CTHUMB flag and compile all the way to ARM and optimize -Os.

The ARM code is 299KB instead of 238KB in interwork therefore about 17% bigger but it works very well. I like the ARM generated assembler.

I didn't enable all optional compiling flags like PTP, Sokoban, ... but could I anticipate limiting effects compiling in ARM ?

Actually that's 25% larger, and memory is the main reason for using Thumb code.
On the cameras released so far this year the available Canon heap memory is even more limited - the SX220 and IXUS 310 will only work reliably in EXMEM, and even that is quite limited (only around 768K available for the IXUS 310).

Phil.
CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)

*

Offline Lebeau

  • ***
  • 187
Re: Thumb and ARM compilation: Why interwork?
« Reply #2 on: 29 / July / 2011, 07:42:28 »
You're right, it is 25% :( I will stop posting at late hour.

So no limiting effect ! ?

I would understand your statement that "... will only work reliably in EXMEM...". EXMEM is not only some memory out of the continuum memory space ?

*

Offline philmoz

  • *****
  • 3116
    • Photos
Re: Thumb and ARM compilation: Why interwork?
« Reply #3 on: 29 / July / 2011, 07:45:42 »
I would understand your statement that "... will only work reliably in EXMEM...". EXMEM is not only some memory out of the continuum memory space ?

http://chdk.wikia.com/wiki/ExMem_-_enabling_and_loading_CHDK_into_extended_memory.

It allows us to move CHDK out of the Canon firmware heap memory where it is normally located. If the heap free space gets too small the firmware crashes.

Phil.
CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)


 

Related Topics