Newbie

Yello,

Can someone suggest a place for me to start in making my own embedded system? Like hardware requirements and stuff? I'm used to Linux so I'd probably use that as an operating system.

I'm a total noob with embedded stuff but I have fairly good knowledge of operating systems from an implementation standpoint.

I know my request is vague so any comments would be appreciated :)

Thanks

Sohail

Reply to
Sohail
Loading thread data ...

In addition, I'd probably also like to hook up some sensors to the system.

Reply to
Sohail

Not all embedded systems require or even warrant operating systems.

I am reminded of a Dilbert in which Dilbert is in a conference room with the marketing guy. Dilbert asks the marketing guy to provide a rough idea of the product and its requirements. The marketing guy says no, that he'd rather Dilbert tell him everything of which Dilbert is capable and that he'll choose some of them.

OK. What would you like these sensors to sense? In what way would you like the system to use to the data it gathers from these sensors? Will this data or any other data need to be communicated to other systems? Are there any other outputs the system needs to provide?

--
========================================================================
          Michael Kesti            |  "And like, one and one don't make
                                   |   two, one and one make one."
          mkesti@gv.net            |          - The Who, Bargain
Reply to
Michael R. Kesti

My 2 bits:

Using Linux in an embedded system is pretty complex, and not a good first step.

If you're new to embedded systems, I'd start with something like an ARM, H8, 68K, AVR, or HC12 eval board and no OS at all. Start simiple. Stay away from virtual memory, PCI, USB, and Ethernet.

Make the LEDs flash and the serial ports talk to a PC running Kermit.

If you're a Linux user, stick to stuff for which gcc ports are available (every CPU I mention is supported by gcc). Ideally pick a board for which GDB stubs are available.

Most eval boards come with feature-limited or time-limited development SW that runs under Windows. You can use that to make sure the board works if you like.

There are lots of people in this newsgroup who probably have drawers full of old eval boards they're not using, and somebody might be willing to part with one for little or nothing.

Next I'd find a small RTOS that has already been ported to my board. Two choices come to mind:

1) uC/OS-II and the companion book by LaBrosse (it comes with a copy of uC/OS-II. uC/OS is simple and easy to port/use.
formatting link
2) eCos is a bit more complex and runs only on 32-bit CPUs (e.g. ARM, 486+, H8, PPC, SPARC, etc). There's a good book my Massa.

formatting link
formatting link

There are other free and/or open-source RTOSes, but I can't think of any names off the top of my head.

Stay completely away from PC-compatible SBC's boards. They're extremely complex and a nightmare to get initialized. The x86 CPU architecture sucks rocks, and x86 assembly languages is icky.

I'd also stay away from Linux as an embedded OS at first -- using it in an embedded system is pretty tricky and I don't recommend it unless you are already pretty comfortable with embedded systems.

If you really do want to mess with embedded linux, there are plenty of PC-compatible SBCs from places like Emac.

Another choice would be to buy a Linksys 802.11 WAP. They run Linux and you should be able to download an entire pre-configured, buildable system and start with that.

--
Grant Edwards                   grante             Yow!  I'm ZIPPY!! Are we
                                  at               having FUN yet??
                               visi.com
Reply to
Grant Edwards

Very welcome :)

Actually, the main reason I wanted to use Linux (or some other open OS), was so I could learn the difference between the implementation for a RTOS for an embedded system from a regular old OS. As I mentioned I do have some knowledge of implementation of an operating system. After surfing uC's site, I have concluded that the source is available for me to mess around with (is it?) Now I just want the hardware.

Where can I get stuff like this? I don't mind putting it together, I just don't have any idea where to get my hands on it. Preferably the cheaper hardware as I am still a student. Sort of. Well I'm registered, but I don't go :)

Actually now that you mention it, I remember doing a course with the 8051 microcontroller. Yes my memory is very bad. I pretty much learnt all about it and implemented stuff such as a game played using LEDs and switches as well as a system to control a pair of trains on a weird track. This did not have an OS on it and the only control programs were the ones we had to write. It was multithreaded but that was just me using interrupts in a non-general way.

We did use serial ports to talk to the led's and the track controller but iirc that was a hack so that we could use cheap hardware parts or something.

As an aside, is the 8051 microcontroller popular? I think it was 8-bit or something which isn't so hot. I think Palm uses the ARM architecture right? What architecture should I aim on fooling around with? I'd prefer to use something that is techically superior as well as something that is really used in "the field" (does that ever occur?)

Anyone? :) Btw, when you say "eval" board, I'm assuming that means evaluation board?

This one looks good. I think a guy from U of Waterloo wrote it right? The s/w seems to be open source from a first glance.

What is a SBC?

Any good free (as in speech) OS will do fine.

Anyway, I better get to sleep if I am ever going to be at work on time.

Thanks for your valuable input

Sohail

Reply to
Sohail

True. See my reply to Grant.

My experience is with the 8051, so if you know about that, I essentially would like an up-to-date version of that. If that makes sense.

PS: Dilbert is probably a bad requirements engineer. Part of being a req engineer is figuring out what people need :)

Reply to
Sohail

Yes, 8051 is 8-bit and is still used. See

formatting link
Intel stopped making it, but others didn't: Dallas-Maxim, Phillips, Atmel.

Palm currently uses ARM. They used to use the 68328 Dragonball (68000 CPU).

The thing about embedded systems is that it runs the gamut between 4-bit microcontrollers and 64-bit microprocessors. Embedded systems are tailored to the particular requirements. A 64-bit system makes no sense in a battery operated toy. A 4-bit controller makes no sense in a system to process radar returns and create a synthesized digital image. Size of final package, power consumption, operating environment, availability (will it be in production for years? Is having multiple sources important?), and price are all considerations in the choice of what a product uses.

Reply to
Gary Kato

This site sells inexpensive ARM and AVR boards:

formatting link

Haven't used them myself, maybe someone else can comment on quality, features, etc.

HTH,

-- Georgi

Reply to
Georgi Beloev

Linux isn't an RTOS. Even on an embedded system it's stull "a regular old OS". It's just been stripped of the stuff not needed by the handfull of applications the embedded board is going to run.

If you want to learn about RTOS internals and implimentation, Labrosse's book is quite good.

I usually got mine from the uController distributors, but that tends to be a bit on the expensive side ($300-$1000).

Yes, very, very popular. However, it's rather ill-suited for running any sort of OS, since it doesn't have a user-accessible stack.

Depends on the definition of "hot". It's probably the leading selling architecture right now.

Older ones used 68K, newer ones use ARM.

Depends on what you want to do. I think ARM would be a good choice. The low end ones (e.g. 20MHz ARM7) are simple enough that it's easy to get them going from "bare metal" on up, and the high end ones (400MHz StrongARM) have MMUs and can run a full-up Linux system with a PCI bus and whatnot.

The vast majority of parts used in "the field" are 4 bit CPUs you can't buy in quantities under 100K and 8-bit CPUs similar to the 8051. "Technically superior" depends on the requirements. For running a toy, a 10 cent 4-bitter is "technically superior" to an ARM. For running an RTOS with networking, the ARM would be superior.

IIRC, he lives in Florida now, but he may have been at Waterloo back in the day.

Sort of. If you buy a copy of the book you get a copy that you can use without charge for evaluation and educational purposes. There are older versions floating around that are also gratis for educational use.

If you want to ship it in a product, you have to pay for a license.

Single Board Computer.

--
Grant Edwards                   grante             Yow!  I'm gliding over a
                                  at               NUCLEAR WASTE DUMP near
                               visi.com            ATLANTA, Georgia!!
Reply to
Grant Edwards

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.