I tested IAR System Embedded Workbench (they have a free Starter version). It couldn't even get simple things such as memory layout right. Not to mention that the simulator freaked out as soon as I decided a 8000 bytes heap was too much for a MCU with a total of 8 KB RAM (LPC2104).
I must also mention that their C compiler sucks big time. Without any prior knowledge of ARM7 assembler, I was able to make hand-code things to go 50% faster and become 100% smaller.
Then I looked into Keil uVision. I have seen Jell-O deserts that are more stable :(
I have to admit that uvision have a really good ARM simulator. I specially enjoyed the "Logic Analyzer" function :)
Next was Rowly's CrossWorks. It uses GCC, but has its own IDE above it that take care of the configuration-madness.
I could not get the simulator to work. For some reason it gives me data aborts during the startup sequence (i.e. in crosswords own Philips_LPC21xx_startup.s). Turns out the simulator have hard time understanding that 0x4000000 is actually a valid memory address and is in fact writable. And the simulator is completely undocumented, so I cant figure out how to fix this :(
Then we have the hurdle of homebrew GCC based toolchains. The more famous ones are WinARM, YAGARTO, GnuArm, and DevKitPro for the Game Boy Advance people. While the GCC itself is very solid, the project configuration and things like setting up GDB and simulator will drive you made. I am sure there are tons of documents and great tutorials on this subject out there, but the ones I tried did not help me much.
So how hard is it to create a toolchain that works correctly out of the box?? With the amount of money these guys charge, why cant they test the damn thing before shipping?
Note I haven't tried the ARM Develop Suite yet, so I am giving it the benefit of doubt. After all, there must be _one_ good toolchain out there given the popularity of ARM?
No comments:
Post a Comment