PDA

View Full Version : ARM7TDMI



WILL
09-06-2006, 06:48 PM
I was thinking of the GBA port issue when I was surfing and decided to find the real name of the CPU used in it. 'ARM7TDMI' is just that. (Which btw runs at 16.78MHz)

So I did a little search and came across this URL: http://www.arm.com/products/CPUs/ARM7TDMI.html

Wow, would have never thought of going there now would we? :P Ok easy enough, it has a ton of information about the processor.

I look down the list of wonderful features it has and come to the item mentioning the "16-bit Thumb instruction set for increased code density" which takes me to a page with 'The Thumb Architecture Extension' (http://www.arm.com/products/CPUs/archi-thumb.html). :) IT has some pretty cool information reguarding as to what THUMB is. Which is great, better understanding = better implimentation of it!

Now this page shows a link called 'The ARM Instruction Set Architecture' which I hit and it brings me to this one packed full of more information that I understand. :) http://www.arm.com/products/CPUs/architecture.html

At the bottom of the page though is a bunch of 'papers' that have a wealth of knowlage, provided someone knows how to sort information out of them.

I wonder what Daniel and Francesco have to say about these. :) Would this stuff help to increase support for the full ARM7TDMI hardware --Including the THUMB instructions?

Legolas
10-06-2006, 12:05 AM
I was thinking of the GBA port issue when I was surfing and decided to find the real name of the CPU used in it. 'ARM7TDMI' is just that. (Which btw runs at 16.78MHz)

So I did a little search and came across this URL: http://www.arm.com/products/CPUs/ARM7TDMI.html

Wow, would have never thought of going there now would we? :P Ok easy enough, it has a ton of information about the processor.

I look down the list of wonderful features it has and come to the item mentioning the "16-bit Thumb instruction set for increased code density" which takes me to a page with 'The Thumb Architecture Extension' (http://www.arm.com/products/CPUs/archi-thumb.html). :) IT has some pretty cool information reguarding as to what THUMB is. Which is great, better understanding = better implimentation of it!

Now this page shows a ]http://www.arm.com/products/CPUs/architecture.html[/url]

At the bottom of the page though is a bunch of 'papers' that have a wealth of knowlage, provided someone knows how to sort information out of them.

I wonder what Daniel and Francesco have to say about these. :) Would this stuff help to increase support for the full ARM7TDMI hardware --Including the THUMB instructions?
The problem is that we don't need a better implementation of THUMB. We need *an* implementation. Period. :mrgreen:
It should be matter of fpk, because is required a good arm asm knowledge and -of course- where you are putting your hands in fpc compiler code. At this time I don't have any arm knowledge (maybe a veeeeeeery little one) nor I know where I should make modifications in compiler code. Porting a new rtl is definitely an easier job :)
I'm wondering about differences between ARM7TDMI and ARM946E-S. This could be an easier task, because maybe we'll need to make only some modification to arm7 code :think:

Edit: Seems (http://www.arm.com/products/CPUs/ARM7TDMI.html) that (citing) "...Code written for ARM7TDMI-S is binary-compatible with other members of the ARM7 Family and forwards compatible with ARM9, ARM9E and ARM10 families". This could be a good news, because my failed attempt to make a NDS running executable with FPC depended on some error I made :oops:

WILL
10-06-2006, 05:21 AM
Well from what I can tell the THUMB or 'THUMB-2' is interchangable with both ARM7 and ARM9 and even ARM10 architectures. So later optimizing for ARM7, 9 and 10 specific hardware features might improve some speed and codesize further along in the near future instead of trying to add the features that will become already available due to this work here.

In short, if we work towards implimenting THUMB-2 together with FPK now, we can get it working and later on leave the worrying about ARM sub-architectures optimizations later. ;)

Thats how we did it with FPC4GBA, right?

The problem I have is, I've lost track of where we are with FPC's sources (haven't dabbled in the source since 1.9 of FPC and the first version of the FPC4GBA mod I made last year) and this part is out of my experience level. But I'm willing to learn if you are. :)

Worst case scenario, I we can all wait until I'm in my 3rd or 4th year of university and I'll start to learn how to make a completely new compiler from scratch let alone modify FPC. :lol:

Legolas
11-06-2006, 12:34 PM
I think that a good start point could be this topic (http://community.freepascal.org:10000/bboards/message?message_id=222857&forum_id=24105) on freepascal community. Here Dani?īl explains the changes needed for a new cpu porting... a lot of work indeed :shock: