embedded

When should I use type abstraction in embedded systems

I've worked on a number of different embedded systems. They have all used typedefs (or #defines) for types such as UINT32. This is a good technique as it drives home the size of the type to the programmer and makes you more conscious of chances for overflow etc. But on some systems you know that the compiler and processor won't change...

Best Ways to Debug a Release Mode Application

Im sure this has happened to folks before, something works in debug mode, you compile in release, and something breaks. This happened to me while working on a Embedded XP environment, the best way i found to do it really was to write a log file to determine where it would go wrong. What are your experiences/ discoveries trying to tackl...

How do I get started in embedded programming?

I would like to get started in embedded systems programming but don't know where to start...I have a very solid knowledge of C and C++ and would preferably like to use these languages with the GNU compilers. I have a degree in CS so I have a solid foundation... I have no clue about what hardware and other resources that I will need...I...

What are the best practices for embedded systems development?

Embedded software development has its own set of unique development challenges. What best practices have you found that work and what practices do not work so well? For example, I have found that: a well layered approach is essential for testing embedded systems. This allows some code to be unit tested on a more capable target such a...

How do you set, clear and toggle a single bit in C?

How to set, clear and toggle a bit in C? ...

What is a jump table?

Can someone explain the mechanics of a jump table and why is would be needed in embedded systems? ...

Is there an alternative to using % (modulus) in C/C++?

I read somewhere once that the modulus operator is inefficient on small embedded devices such as 8 bit micros without integer division operator. Perhaps someone can confirm this but I thought the difference is 5-10 time slower than with an integer division operation. Is there another way to do this other than keeping a counter variable ...

Windows XP support for Remote NDIS

I'm looking at developing a device which will need to support Ethernet over USB (hosted in Linux, XP, and Vista). As I understand it, Vista and Linux support the industry standard USB CDC. However, in classic Windows style, XP only supports it's own Remote NDIS. So, now I'm thinking of just bowing down and doing it over RNDIS, as opposed...

How to support multiple languages on a microcontroller?

I'm currently working on upgrading a product for the Chinese market. The target is a ARMTDMI7 with a QVGA display. Most resources I've located on the net are targeted at desktop or web programming rather than embedded devices. Can anyone suggest some tools and resources that might be useful? What are the best techniques for extracting ...

GPS and Embedded Development - Where to find resources?

I'm just starting to design some embedded devices, and am looking for resources. What I want to be able to do is to connect a GPS receiver to a lightweight SBC or mini-ITX, x86-based computer, and track a remote-controlled vehicle's location/progress. Ideally, this could morph into building some hobby, semi-autonomous vehicles. But wh...

C (or any) compilers deterministic performance

Whilst working on a recent project, I was visited by a customer QA representitive, who asked me a question that I hadn't really considered before: How do you know that the compiler you are using generates machine code that matches the c code's functionality exactly and that the compiler is fully deterministic? To this question I ha...

Learning kernel hacking and embedded development at home?

I was always attracted to the world of kernel hacking and embedded systems. Has anyone got good tutorials (+easily available hardware) on starting to mess with such stuff? Something like kits for writing drivers etc, which come with good documentation and are affordable? Thanks! ...

Power Efficient Software Coding

In a typical handheld/portable embedded system device Battery life is a major concern in design of H/W, S/W and the features the device can support. From the Software programming perspective, one is aware of MIPS, Memory(Data and Program) optimized code. I am aware of the H/W Deep sleep mode, Standby mode that are used to clock the hardw...

Misra standard for embedded software.

Hi I have a requirement to make a large amount of code MISRA compliant. First question: Can somebody to give an estimation for passing well written code for embedded system based on experience. I understand that "well written" is poorly defined and vague so i ask for raw estimation. Second question: Any recommendation for tool that can ...

Unit Testing C Code

I worked on an embedded system this summer written in straight C. It was an existing project that the company I work for had taken over. I have become quite accustomed to writing unit tests in Java using JUnit but was at a loss as to the best way to write unit tests for existing code (which needed refactoring) as well as new code added...

How do you measure the time a function takes to execute?

How can you measure the amount of time a function will take to execute? This is a relatively short function and the execution time would probably be in the millisecond range. This particular question relates to an embedded system, programmed in C or C++. ...

What simple method can I use to debug an embedded processor without serial port or video?

We have a small embedded system without any video or serial ports (i.e. we can't output text via printf). We would like to track the progress of our code through the initialization sequence. Is there some simple things we can do to help with this. It is not running any OS, and the hardware platform is somewhat customizable. ...

How you disable the processor cache on a PowerPC processor?

In our embedded system (using a PowerPC processor), we want to disable the processor cache. What steps do we need to take? To clarify a bit, the application in question must have as constant a speed of execution as we can make it. Variability in executing the same code path is not acceptable. This is the reason to turn off the cache. ...

How do you start running the program over again in gdb with 'target remote'?

When you're doing a usual gdb session on an executable file on the same computer, you can give the run command and it will start the program over again. When you're running gdb on an embedded system, as with the command target localhost:3210', how do you start the program over again without quitting and restarting your gdb session? ...

What are some Real-Time Operating Systems for 32-bit processors?

What RTOS have you used or recommend for 32-bit processors. I'm interested in mainstream processors here: PowerPC, Pentium, ARM, MIPS A link to a web site would be a nice bonus. Let's conduct this as a poll. Please only provide one selection per answer and mod up if you agree with a selection already present. ...