
10 Software Tools You Should Know
Unless you're designing small analog electronic circuits, it's pretty hard these days to get things done in embedded systems design without the help of computers. I thought I'd share a list of software tools that help me get my job done. Most of these are free or inexpensive. Most of them are also for working with software. If you never have to design, read, or edit any software, then you're one of a few people that won't benefit from reading this.
Disclaimer: the "best" software...
Kind of Buggy! The state machine fantastic//
Over the years, I have had the opportunity to experience a lot of different kinds of coding mistakes. There were many that most programmers are familiar with, counting errors, indexing errors (the infamous 'off by one' bug), memory space sharing errors (A threading issue) as well as numerous others. I ran into one recently that I wound up using an old trick to help find.
My current project is a Pan/Tilt camera that was, upon occasion, not homing properly in one axis. The camera is a...
Building Linux Kernel for Desktops
Linux Development has made an amazing process in last decade. Different Linux Distributions come with specific tools which greatly ease down the build process for Linux Kernel.
Here is a good introduction to these build tools and build procedure for different Linux Distributions:
Hello Android
Finally I could get Android Early SDK up and running on my Fedora Core-7 Machine.
The process was quite simple. However I had to struggle for a few days, because Fedora install the gnu version of Java and Android requires Java from Sun.
Here are the steps I had to follow:
(1) Install the eclipse IDE (if you do not have it already) with following command:
$> yum install eclipse-jdt eclipse-jdt-sdk (to be done as super user).
(2) now install the Android SDK and ADT plug-in for Eclipse...
Configuration Management: Why Developers are Avert to
A few reasons why developers have aversion towards "Software Configuration Management Systems"
(1) They do not understand the importance of configuration management. - It is a common and logical reason. But, it is also a very dangerous sign for any organization. If their developers do not understand the importance of configuration management; then it is highly likely that developers even do not understand the other fundamentals of software development. The situation becomes worst...
Another "Project Management" Tool
Here is another free and impressive application "OpenProj"; all set to make hole in to MS's revenues. The "OpenProj" appears to be a great alternative to "MS Project" and other commercially available project management software. Ready to give it a shot?...OpenProj crosses 200K downloadsWill work for tools!
I have always believed that tools are necessary to the creative process. This is something I learned early in life and it's a lesson that has stuck with me to this day.
When I was 7 years old, I made my first trip to see my Grandparents on my father's side of the family. What I remember most about the trip, besides the great food and the company of my Grandparents, was my Grandfather's shop. My Grandfather had built one of the most amazing shops that I have seen to this day in the...
Short Circuit Execution vs. Unit Testing
The key to effective communication is to say what you mean and avoid ambiguity. Words and phrases with multiple meanings can confuse your audience and hinder communication. That’s why so many programmers prefer writing code to writing specifications: written human language introduces ambiguity and subsequently, confusion. Code only has one interpretation, period. This doesn’t, however, ensure that the right message is getting through. Code can, indeed, only do one thing,...
Continuous Integration for Embedded Systems
It is no secret that anyone who wants to streamline project management, reduce risk and improve the quality needs some form of "automation" in SW development processes. What is commonly used in most companies as a tool for such automation is called Continuous Integration (CI). It is a good practice for embedded systems as well even though it is much harder to use CI for embedded systems compared to pure software development because embedded systems mostly depend on...
How to make a heap profiler
We'll see how to make a heap profiler. Example code for this post makes up heapprof, a working 250-line heap profiler for programs using malloc/free.
It works out of the box on Linux (tested on "real" programs like gdb and python). The main point though is being easy to port and modify to suit your needs. The code, build and test scripts are at github.
Why roll your own heap profiler?
- It's easy! And fun, if you're that sort of person. What, not reasons enough? OK, how...
Coding Step 2 - Source Control
Articles in this series:
- Coding Step 0 - Development Environments
- Coding Step 1 - Hello World and Makefiles
- Coding Step 2 - Source Control
- Coding Step 3 - High-Level Requirements
- Coding Step 4 - Design
When I first started out in programming, version control was not an introductory topic. Not in the least because it required a 'server' (ie, a computer which a teenaged me couldn't afford) but because it seemed difficult and only useful to teams rather than...
Will work for tools!
I have always believed that tools are necessary to the creative process. This is something I learned early in life and it's a lesson that has stuck with me to this day.
When I was 7 years old, I made my first trip to see my Grandparents on my father's side of the family. What I remember most about the trip, besides the great food and the company of my Grandparents, was my Grandfather's shop. My Grandfather had built one of the most amazing shops that I have seen to this day in the...
Kind of Buggy! The state machine fantastic//
Over the years, I have had the opportunity to experience a lot of different kinds of coding mistakes. There were many that most programmers are familiar with, counting errors, indexing errors (the infamous 'off by one' bug), memory space sharing errors (A threading issue) as well as numerous others. I ran into one recently that I wound up using an old trick to help find.
My current project is a Pan/Tilt camera that was, upon occasion, not homing properly in one axis. The camera is a...
Configuration Management: Why Developers are Avert to
A few reasons why developers have aversion towards "Software Configuration Management Systems"
(1) They do not understand the importance of configuration management. - It is a common and logical reason. But, it is also a very dangerous sign for any organization. If their developers do not understand the importance of configuration management; then it is highly likely that developers even do not understand the other fundamentals of software development. The situation becomes worst...
Another "Project Management" Tool
Here is another free and impressive application "OpenProj"; all set to make hole in to MS's revenues. The "OpenProj" appears to be a great alternative to "MS Project" and other commercially available project management software. Ready to give it a shot?...OpenProj crosses 200K downloadsEmbedded Toolbox: Source Code Whitespace Cleanup
In this installment of my "Embedded Toolbox" series, I would like to share with you the free source code cleanup utility called QClean for cleaning whitespace in your source files, header files, makefiles, linker scripts, etc.
You probably wonder why you might need such a utility? In fact, the common thinking is that compilers (C, C++, etc.) ignore whitespace anyway, so why bother? But, as a professional software developer you should not ignore whitespace, because it can cause all sorts...
Kind of Buggy! The state machine fantastic//
Over the years, I have had the opportunity to experience a lot of different kinds of coding mistakes. There were many that most programmers are familiar with, counting errors, indexing errors (the infamous 'off by one' bug), memory space sharing errors (A threading issue) as well as numerous others. I ran into one recently that I wound up using an old trick to help find.
My current project is a Pan/Tilt camera that was, upon occasion, not homing properly in one axis. The camera is a...
3D printing for embedded development
Used mostly for creating little plastic objects, the desktop 3D printer is not an obvious addition to the embedded developer's toolbox. However, if you're looking for more reasons to get one, or already have one that's mostly gathering dust, here are a couple of embedded-related ways to get more value out of it.
Building Linux Kernel for Desktops
Linux Development has made an amazing process in last decade. Different Linux Distributions come with specific tools which greatly ease down the build process for Linux Kernel.
Here is a good introduction to these build tools and build procedure for different Linux Distributions:
Hello Android
Finally I could get Android Early SDK up and running on my Fedora Core-7 Machine.
The process was quite simple. However I had to struggle for a few days, because Fedora install the gnu version of Java and Android requires Java from Sun.
Here are the steps I had to follow:
(1) Install the eclipse IDE (if you do not have it already) with following command:
$> yum install eclipse-jdt eclipse-jdt-sdk (to be done as super user).
(2) now install the Android SDK and ADT plug-in for Eclipse...
Configuration Management: Why Developers are Avert to
A few reasons why developers have aversion towards "Software Configuration Management Systems"
(1) They do not understand the importance of configuration management. - It is a common and logical reason. But, it is also a very dangerous sign for any organization. If their developers do not understand the importance of configuration management; then it is highly likely that developers even do not understand the other fundamentals of software development. The situation becomes worst...
Another "Project Management" Tool
Here is another free and impressive application "OpenProj"; all set to make hole in to MS's revenues. The "OpenProj" appears to be a great alternative to "MS Project" and other commercially available project management software. Ready to give it a shot?...OpenProj crosses 200K downloads