Anyone can let me know where I can find assembly program for all the basic interface on MCB 2100 evaluation board.
I have done programming in C for all the interface, but not at all satisfied even though i got output. I just want to know if ARM is user friendly like our 8051, which has its own instruction set, Would like to write program using those instruction set and want to combine C and assembly to see what happens during compilation and generation of OPCODE. I am using keil. But can u tell me how to generate thumb opcodes instead of 32bit opcodes
Shivaram, be careful: there are very serious limitations on what inline assembly can do with the RealView compiler. refer to your assembler documentation for further information. what you can and should do is use the __asm declaration before a function itself. this makes the function an embedded assembly function, that is 100% assembly without any limitation almost and still called like a normal C function. you can also experiment with pure assembly modules. but why are you so obsessed with assembly rather than writing in C? you can force thumb opcodes using the right pragma:
#pragma thumb
(I think). if I were you - I'd write it all in C. if you need something "exotic" - like saving the context of the processor - assembly is indeed what you'd want. keep it simple, efficient and functional.
A friend of mine works in NXP. During a conversation I asked him "in user mode the default is thumb mode and in exception mode it converts itself ARM mode". then how is the opcode fetching done. He told me that there is 2 different opcodes generated for ARM and thumb when we compile 1 single program and are stored in different location. Processor takes the respective opcodes depending on the mode of working. So that means it generates thumb opcodes also. I want to see where they are stored because i have seen thumb opcode and ARM opcode are different in the dis-assambly window. both are entirely different. that is the reason i want to write program in assembly using the instruction set which uses branch and link instructions.
Shivaram, What is the functional advantage of doing that? Why do you even care? writing in assembly means your code is unlikely to be portable - did you think of this?
"I just want to know if ARM is user friendly like our 8051"
You only think the 8051 is "user friendly" because you are used to it!
The ARM just seems "less friendly" because you are not used to it.
Take a look at this thread, where someone new to the 8051 is complaining how unfriendly he finds it: http://www.keil.com/forum/docs/thread12364.asp
Having said that, the ARM is a more complex beast than an 8051 - so it's bound to take longer to really get to grips with it!
Trying to treat it as just a bigger 8051 is probably not helpful, though...!