Welcome Guest ( Log In | Register )

Outline · [ Standard ] · Linear+

 Firmware programming, How to start ?

views
     
mokona_modoki
post Feb 12 2007, 06:00 PM

Getting Started
**
Junior Member
267 posts

Joined: Jul 2006


I guess the first step is to familiar with C, as most programmable hardware have C (or C like) compiler. Other language (C++, Java, PHP) are too large/slow/complex to implement in limited resource. Also, there might be a need to change programming style to compensate for limited resource. Eg: use tight loop instead of loop-unroll, use of "goto" instead of function call (function call will consume memory stack space, goto not).

Th next step is to know what is your goal ? Is it complex or simple task ? For simple task, it's better to use hardware without OS (eg: microcontroller). Else, better get hardware managed OS, so that you don't have to worry about memory management.

IMHO, the easiest programmable hardware is "OpenWRT supported router/modem". Just get their source code, then run this program in Linux. Try to take a peek for included source code. Not to mention that in OpenWRT you can do programming in C, shell, lua, ruby, java or PHP (and many more...). Also, you can use ZTE ZXDSL831 (a.k.a TM NET ADSL modem) as a platform, so go grab one then start programming.

http://wiki.openwrt.org/TableOfHardware
http://skaya.enix.org/wiki/BroadCom96345
mokona_modoki
post Feb 12 2007, 11:23 PM

Getting Started
**
Junior Member
267 posts

Joined: Jul 2006


QUOTE(narf03 @ Feb 12 2007, 08:59 PM)
Thanks for your reply.

TMNET Modem ? Oh, im using aztech modem. Gotta goto tm point to grab one. How much its cost ?

I just downloaded intel c++, is it compatible ? err, nvm, is C language free, where can I get a copy ?
*
Nope, you can't use intel compiler since the target platform is not x86 (PC) compatible. What you need is a cross-compiler. Eg: compile in x86 to produce other platform machine code. All of this thing is already supplied in OpenWRT SDK.

Also, since you don't have the modem then better go for "fully supported hardware" like linksys wrt54g (version pending, see the previous link). The only reason why i'm mentioning ZTE is because a few people got it for free but never use it.
mokona_modoki
post Feb 13 2007, 10:31 PM

Getting Started
**
Junior Member
267 posts

Joined: Jul 2006


Yeah, go for it. Any programmable hardware with USB host is a good thing for Linux and you smile.gif
You can:
- use USB drive to add more data/application.
- use USB drive to add more memory (using swap space), so that you can run resource hungry application (eg: PHP)
- use webcam
- use USB audio to play sound, talk (using text to speech with flite)...
- and the list going on...

 

Change to:
| Lo-Fi Version
0.0172sec    0.41    6 queries    GZIP Disabled
Time is now: 27th November 2025 - 09:10 PM