Everybody uses C because it is portable.
yeah, right .... As portable as any other language...
That is a myth. You will always have to tinker with the hal. There is no escaping that. And that is where all the hard stuff is ( for beginners)
Why write, debug and maintain 3 different pieces of software which do the same
because of the fact that something designed for one architecture will run differently on another.
This is the problem with modern programmers. Every thing is treated as a pile of sourcecode without binding to hardware. The perfect recepy for bloatware...
You better read some information on how many hoops a 8051 must jump through to get a byte of data from a certain address. Its a real ugly kludge!
Not more than any other cpu out there. Like i said a MODERN 8051 has all memory inside. No more need for xram operations. Besides if you are going to use c : you dont care either way ! The compiler creates the code for you. And on a modern implementation of the 51 core the instructions are still only one clocktick. So it doesnt matter at all for the programmer. The compiler figures out if it needs an xram or iram access.
Actually this partitioned memory is better than a flat system. Code cannot be overwritten by runaway stack or heap. No problems with code injection. Data memory can never be executed. This alone helps you in making more solid applications that are less susceptible to common programming mistakes.
Nonsense. GCC (which is available for free without support) will do just fine for any ARM
right. Its that little 'without support' clause.. If you are the kind of person that likes spending 90% of his time trying to pound the square peg that the great-crap-compiler is into the round hole of eclipse...or go look for info on forums where everybody starts yelling at you ' you are stupid if you don't know xyz' and where every discussion eventually ends up being about what is the best code editor ( emacs vs vi/vim ) and whether to use gnome or kde for your desktop.... Be my guest.
Meanwhile : i have work to do.. Call support. I understand that this is not always possible if you are a hobbyist , but, why not make your life simple and start with a nice prepaged one click system that will get you up and running effortless. It is pointless first spending a week trying to get the environment running and making youself comfortable with it..
Buy one of the iar or keil devkits for 99$. Comes with a ton of fully documented examples.
I like polished ide's with breakpoint, watches, tracing and all the bells and wistles. Its 2012... The time of debugging by using printf and scanf is so last millenium... I like guis. Command lines are for dinosaurs, but that is my opinion. If you want to do it differently , be my guest. No problem. But do not force everybody to do it that way. The keil environment is really nice.
The reason arduino is so popular is exactly that. Install and have fun. The same goes for tools like iar and keil. Install and go.
This is something the gcc/ eclipse crowd have not caught on to yet.. There everything is hard.
I want to blink an led with a microcontroller but i first have to become a specialist writing linker scripts , make files , struggle through all the command line options and compile my toolchain ? Ehhh.... Not fun !
More nonsense. Every 8051 clone has manufacturor specific extensions, programming methods and peripherals. A lot of time getting used to a controller goes into learning the peripherals
You are mixing peripherals with core.
The base 51 has a uart , two timers 4 io ports , an emif and an interrupt system. The uart and timers are identical, no matter what chip you take. so are the io ports that are base to the 51 core.
The other peripheras are vendor dependent and those you have to learn, yes, but that is valid for all other cpu's as well. But, if you take a pic 16 and another pic 16 the io port does not behave necessarily the same. In an 8051 the io ports all behave the same irregardless of vendor. Portb will always be portb. In a pic ? Some have pins modified to be open collector only , while in others they all of a sudden are push pull by default.