I now have my Olimex LPC2148 board and a USB-tiny jtag. I know this may sound like an odd question, but I come from the AVR world, and did things a certain way that worked for me, and I want to become just as comfortable with my switch to ARM.
I have installed the USB drivers, as well as Eclipse to get the demo LED flash program running. No problems there at all. What I really want is a LOT less software, and no C compiler. I like using a very basic IDE (often notepad) to write assembly, and all I want to do is program the part. No debugger, no compiled langauges, no gadgets. Maybe I purchased the wrong product? I have been digging around for something else with no luck, and Eclipse really seems geared towards C programming.
Honestly, the only help I want from the IDE is colored remark statements at most! I want to write raw assembly and program the part, no questions asked. If something fails, I will work it out by looking at the code. For years I have been doing this with great success on AVR, PIC, and SX parts. I never plan on using a debugger or any compiled language.
If you take a look at my tutorial “Using Open Source Tools for AT91SAM7 Cross Development” on the www.at91.com web site, you will see that Eclipse can indeed edit and assemble an ARM assembler program (see the source file crt.s).
My tutorial purposely separated the C compiler, assembler and linker so the student can watch the operation of each one.
Just don’t use the C compiler - call make to run the assembler and the linker and you’ll be good to go.
Thanks for the quick response. I actually started with your docs, and think they are very well thought out and easy to understand.
I honestly think i made a mistake, and will probably go back to AVR. I just don’t get a good feeling with all this “bloat” just to do what I want. It really is a personal thing, but I just want to write raw, unformatted ASM code in a notepad like environment, then press the compile button. I do not want anything else. I can do this with AVR, PIC, and SX, so I will probably sell my three LPC boards and the programmer.
I moved to ARM just to get a few more clock cycles, but now find out that I need all this heavy software geared mainly towards C programming, and in the end, you can’t really count ARM cycles due to the pipeline. I think ARM is a great uC, but I guess it’s not “my bag baby!”.
I think I have all the answers I need, so there is no need to respond as I am “over and out”!
Thanks,
Brad
lynchzilla:
Hi Brad.
If you take a look at my tutorial “Using Open Source Tools for AT91SAM7 Cross Development” on the www.at91.com web site, you will see that Eclipse can indeed edit and assemble an ARM assembler program (see the source file crt.s).
My tutorial purposely separated the C compiler, assembler and linker so the student can watch the operation of each one.
Just don’t use the C compiler - call make to run the assembler and the linker and you’ll be good to go.
Maybe you will take a little peek, even if you are Over And Out.
Of course you can do Arm development in pure assembler, using a simple text editor to write the code, and the simply issuing a “make myprog” to build it.
There is no need for big IDE’s !
But there must be standard exption vector handlers, makefiles, linker definition files and some tool to download the code to the target. But this is also true for AVR and other targets.
So under linux, for me:
gedit: Basic text editor, with some syntax coloring.
gnu-arm-gcc and gnu make : Can assemble and link arm asm files, or for us weaklings, c code.
openocd using telnet interface: Manual downloads, needs three lines of command text, but very easy to debug, no script problems
Then the jtag debug possibilities for Arm is very superior to what you can find for AVR.
Not using the easy way to find where a problem has occured, and the corresponding context and register values, but just knowing there is a problem and looking at the code is silly for anything but very simple projects.
Anyhow, writing optimized asm code for everything you do will take a long time unless you are a coding wizard ( wouldnt be here asking questionns then ?) or you just work with small control projects. If you need productivity I think C is the way to go for at least 95% of the code in any project.
I do not understand why anybody wants to write any significant amount of any program in Assembler.
Why would you want to cycle count either ?
There are corner cases where it is needed such as generating tv signals in software, doing things without interrupts to squeeze every last bit of performance out of a chip and emulating older systems.
Other than that I do not see the need.
By the way you “Assemble” and Assembler file not compile it !
I agree with Fordp. Except for the crt.s file where stack pointers registers must be set, assembler is a pain to write simple software.
With packages like Winarm or Yagarto, and all the exemples available from various sites, there is no special knowledge needed to start projects using C.
And porting software across different microcontroller are easier when it is written in C.
If you want to use assembler you can. Look at the crt.s startup file. It is assembled using the arm-elf-as command ( or arm-elf-as.exe under windows). You can just write your code in notepad, save it as myprog.s and pass it to arm-elf-as.