May 10, 2008
DSP resources around the Web
By
Kenton
Williston

I am proud of this site, but I can't cover everything happening the DSP world. Here are some of the other great DSP sites on the web. Let me know if you have a favorite that didn't make it onto the list!
Blogs
Krishna Pillai has a terrific blog on DSP theory. You can find also find great blogs by a variety of authors at DSPRelated
Andres Kwasinski has an academically-focused blog, while dsignalp takes a look at events in India.
Discussion groups
The comp.dsp newsgroup newsgroup is a good place to go to get answers to technical questions. DSPRelated also hosts a number of discussion groups on DSP topics. It also offers information on DSP books and job openings, among other things.
General information
The dspGuru site offers open-source DSP software, FAQs on DSP topics, algorithmic and design tricks, and much more.
Complex2real has a collection of tutorials on various topics in analog and digital communications. You can find free DSP tutorials at
Bores Signal processing.
BDTI offers a variety of free information. The pages I find most useful are:
DSPStore offers a database of products targeting signal processing applications. It's a good way to find everything from algorithms to boards. The site also offers a library of papers as well as a monthly newsletter.
There is a ton of information on eg3's DSP page. You can find everything from free source code to newsgroups to book listings.
You can find Java-based DSP tutorials at dsptutor and at the Adaptive Digital Signal Processing JAVA Teaching Tool.
The Programmable Logic DesignLine and Mobile Handset DesignLine often touch on DSP topics. And of course there is always Wikipedia.
Audio and video
musicdsp.org is a great resource for audio software such as filters and wave shapers. You can download source code from the site.
Jonah Probell runs the impressive VideoBits site. This is a must-visit site if you are working on digital video.
Articles on audio and video applications are also available on the Audio DesignLine and Video/Imaging DesignLine.
Online books
Analog Devices offers a free online DSP book, Digital Signal Processing 101. You can also read The Scientist & Engineer's Guide to Digital Signal Processing for free online. Both books are a few years old, but they are great ways to learn the basics of DSP.
Introduction to Statistical Signal Processing is a nicely done, up-to-date textbook.
For even more free books, check out this page.
You can't get full books for free, but Newnes allows you to access selected book chapters for free.
Research and development
Both Arizona State's Signal Processing and Coding Lab and Cambridge's Signal Processing and Communications Laboratory offer downloadable papers.
The IEEE Signal Processing Society offers a range of resources. You can subscribe to various magazines and newsletters, learn about upcoming events, and more.
You can find additional information about signal processing research and development in the Signal Processing Information Base. The site has information on technology providers, conferences, journals and bibliographies, and more.
Market research
Forward Concepts is the leading source for analysis of trends in DSP hardware. If you want to know what the hardware trends are, this is the best place to start.
The Linley Group has a lot of great free info on processors. They recently expanded their coverage to include consumer electronics and handsets.
If you want to know about trends in the end applications, check out Gartner Dataquest. Gartner Dataquest researches many DSP end markets, producing forecasts and other studies.
Multimedia Intelligence covers video applications.
iSuppli researches the electronic supply chain. Go to them for component pricing, inventory forecasts, product teardowns, etc. iSuppli also researches many DSP end markets, producing forecasts and other studies.
Conferences
The Embedded Systems Conferences, which are held around the world, are good places to learn about technology and meet vendors.
The TI Developer Conference is held in locations around the world. It's a great place learn and network. The same goes for the Freescale Technology Forum, which is also held in locations worldwide.
NIWeek also covers many DSP-related topics, such as wireless communications and vision. The ARM Developers' Conference mostly covers general-purpose computing, but it also covers a few DSP topics.
Comment on this blog entry
May 05, 2008
What's the deal with Embedded Linux?
By
Kenton
Williston

Last week Green Hills Software wrote a scathing opinion piece on embedded Linux. Here's the opening:
"Embedded Linux is the most hyped embedded operating system ever. It is promoted as inexpensive, high quality, high productivity, reliable, widely available, and well supported. It is none of these things…"
Ouch! Green Hills goes on to congratulate Linux vendors for admitting that the OS is "CHAOS" (thanks, Wind River!) and "a money pit" (you too, MontaVista!). But the praise is short-lived: According to GHS, this is a cynical ploy to scare you away from do-it-yourself Linux and turn you into a Wind River or MontaVista licensee.
That's some tough talk, but Green Hills Software is hardly a neutral observer. The company sells its own operating systems, so it stands to benefit by sowing fear, uncertainty and doubt (FUD) about Linux. Indeed, every vendor I have spoken to has taken a distinctly self-interested position on Linux. Here's a sampling of the claims I've heard:
MIPS: Do-it-yourself Linux works great! Just go to LinuxMIPS and download! Our Linux support makes us a winner!
Wind River, MontaVista: Free Linux is a disaster. Buy "real" Linux from us or you will end up crying over your keyboard!
QNX: Linux is a disaster. But our Linux-like RTOS is great!
Microsoft: Geez, why are you even looking at Linux? Life is much easier with WinCE.
Mentor Graphics: Linux? WinCE? You have to be kidding. You can get everything you want from a light-weight RTOS like Nucleus.
One thing is for sure: There is no shortage of opinions on Linux. But which vendor is telling the truth? Or are they are lying in hopes of building sales?
The reality is that each viewpoint contains elements of truth. Every project has unique requirements, so different projects call for different operating systems. Here is my (non-partisan) list of questions you should ask yourself when evaluating embedded Linux:
Do you need a full-featured OS? Embedded Linux is big; typical builds exceed 2 MB. Sure, you can shrink the OS by stripping out things like networking stacks and file systems, but these features are the main reason to use Linux. If you don't need these features, you are better off with a lightweight RTOS.
Can you get an OS with application-specific features? WinCE comes in numerous flavors, including versions designed specifically for automotive applications. (The same is true of QNX.) Nucleus has. community special features for portable media players. And so on.
What is the licensing model? The Linux General Public License has its drawbacks. What if you want to modify the kernel, but don't want share your hacks with the rest of the world? What if unauthorized code sneaks into the kernel, and the owner decides to sue? Questions like these are mainly issues for products with long life spans, like cars and network infrastructure. The rest of us can often ignore the legal issues and simply update the kernel in the next product rev.
Is Linux responsive and reliable enough? I know what you're thinking: Isn't embedded Linux specifically designed to address these points? Yes, but embedded Linux can't match OSs like INTEGRITY.
Do you want to pay now or later? Do-it-yourself Linux is royalty-free, but you have to make a major engineering investment to get it up and running. In contrast, a commercial Linux package (or a competing OS) can get you to market with minimal up-front cost.
How many units will you ship? If your volumes are low, it doesn't make sense to have your own OS team—so skip the do-it-yourself approach.
What is your time to market? The do-it-yourself approach doesn't make sense if you're in a hurry.
Is there support for your specific processor, board, or reference design? The OS with the best support will give you the lowest NRE and shortest time to market.
Will you have to port your existing code? Most projects are built on existing code. Waste too much time porting the code, and you lose the benefits of switching OSs. (You can sidestep this issue with virtualization, but that adds another layer of complexity to the system.)
Does your tool chain support the OS? If not, you will have to switch. This adds to the learning curve and makes the design team cranky. If you are willing to switch tool chains, look for OS-aware features like MIPS' Linux hot-spot analyzer.
Whatever you decide about embedded Linux, it's a good idea to take vendor claims with a grain of salt. For example, Green Hills talks tough about Linux, but the company's MUTLI IDE has supported embedded Linux since 2001. Ask yourself: if GHS really thinks embedded Linux is a disaster, why does the company support it?
Comment on this blog entry
April 23, 2008
I'm an idiot
By
Kenton
Williston

I just got off the phone with Bob Garrett at Altera. He walked me through the Nios II Embedded Evaluation Kit, which is intended to make FPGA technology accessible to software developers. From what I've seen, it succeeds in a big way. The kit boots Linux (yes, you can run Linux on an FPGA—the secret is to use the Nios II soft processor); it comes packed with tons of evaluation software; and it is amazingly easy to use. My colleague Clive Maxfield describes the setup process as:
(a) Plug one side of the power supply unit into a power outlet on the wall, (b) plug the other end into the evaluation kit's power input, and (c) follow the on-screen instructions.
OK, so why do I feel like an idiot? I told Bob that many vendors claim that their FPGA tools are so easy to use that you can eliminate the hardware team. I like the sound of that, but I'm skeptical: FPGAs are very complicated devices; how can any tool make them that easy to use?
Bob gently pointed out that he made no such claim. In his view, a software team can't handle FPGA development on its own, but that's OK because you need hardware guys anyway. For example, developers often use FPGAs to create custom peripheral interfaces. For work like this, you need a hardware team—it doesn't make sense to hand this work to a software team.
In Bob's view, the real goal is to minimize the size of the hardware team, and to enable them to hand off the design to the software team as quickly as possible. The ideal mix might be 2-3 hardware developers and 20-30 software developers.
This view makes a lot of sense to me. In fact, I feel silly for not coming to this idea on my own. At least I get the idea now—and so do you.
Comment on this blog entry
April 17, 2008
Linux: "It's free like a puppy"
By
Kenton
Williston

Is Linux really free? "Sure, it's free like a puppy." So says Darrin Shewchuck at QNX. He makes a good point. You can download Linux for free, but getting "generic" Linux to run on your embedded platform takes a lot of work. Device drivers are a big sticking point: Getting these running can be just as hard as developing your application software.
The puppy analogy really hits home for me. My family "inherited" a cat from Grandma when she went into a retirement home. This supposedly "free" cat has cost us upwards of $1500 in the six months we've had her. And that's only part of the joy of ownership—we also get to clean her litter, mop up after her "stomach upsets," and pick cat hair out of everything we own. Still, it's hard not to love the little furball…
Comment on this blog entry