Embedded Software Blog

Posts tagged with 'EDGE Compiler'

Device registers in C

Posted Mar 28, 2011, by Colin Walls

Mentor Graphics has historically been dedicated to providing tools for electronic hardware designers and that still represents a very large proportion of the business. Ever since I was acquired into the company, I have found that the hardware focused guys have a healthy interest in software - embedded software in particular. Often, they are specifically concerned with the boundary between software and … Read More

Tags: EDGE Compiler, C

Why move to C++?

Posted Mar 14, 2011, by Colin Walls

As I am on vacation this week, I thought that I would leave behind a short note, which might provoke some discussion. The most widely used programming language for embedded systems continues to be C. I observe great interest in the use of C++ and have frequently written and talked about the subject. Its adoption is also progressing steadily, though much more slowly than anticipated a decade ago. With … Read More

Tags: Development Tools, EDGE Compiler, C, Programming Languages

C++ - for loops

Posted Jan 24, 2011, by Colin Walls

I am [mostly] a fan of using C++ for embedded applications. I believe its use needs care and I have written about this before. Broadly, I feel that it offers many simple improvements over C and appropriate use of object oriented techniques can be very beneficial. Today I want to talk about the place of C++ as a “better C language”. There are numerous syntactical improvements that can be … Read More

Tags: Development Tools, EDGE Compiler, C, Programming Languages

Function parameters

Posted Aug 9, 2010, by Colin Walls

When you use a function in C/C++ [or most other programming languages] you are likely to pass it some parameters - data which may be processed by the function or give it information on what action is required. For the majority of programmers, outside of the world of embedded software, parameters are just a fact - no real issues. They are likely to be quite uninterested in how parameters are passed and … Read More

Tags: C, Programming Languages, EDGE Compiler

When compilers do magic

Posted Jul 5, 2010, by Colin Walls

What is a compiler? Ask an average engineer and you will get an answer something like: “A software tool that translates high level language code into assembly language or machine code.” Although this definition is not incorrect, it is rather incomplete and out of date - so 1970s. A better way to think of a compiler is: “A software tool that translates an algorithm described in a high level language … Read More

Tags: compiler, EDGE Compiler, C

Staying in line

Posted Feb 22, 2010, by Colin Walls

The idea of inlining code - placing the actual code of a small function at each call site - is a well known compiler optimization, which I have discussed before. This technique can provide significant performance improvements, due to the elimination of the call/return sequence. Also, stack usage is reduced. There is a possible cost in terms of increased program memory requirement. It is reasonable … Read More

Tags: C, Optimization, EDGE Compiler, Programming Languages, Inline

Overloading or obfuscation?

Posted Feb 1, 2010, by Colin Walls

What is the key objective when you write some code? The obvious answer is that you want to impart some specific functionality to the device that you are programming. That would be fine, if just designing and writing code was all that a software engineer was required to do. There are several programming languages that would enable code to be written very rapidly. An example, that I have an affection … Read More

Tags: Programming Languages, C, Overloading, EDGE Compiler, Forth, Operators

Small or fast?

Posted Jan 11, 2010, by Colin Walls

Life is often about compromise, but embedded developers really are not good at that. Code generation is a context in which compromise is somewhat inevitable and we call it “optimization”. All modern compilers perform optimization, of course. Some do a better job than others. A lot of the time, the compiler simply guesses which optimization will produce the best result without knowing what the designer … Read More

Tags: C, Optimization, EDGE Compiler, Low Power, Power

C, C++ and the family tree

Posted Jan 4, 2010, by Colin Walls

I am interested in programming languages in general and particularly as they apply to embedded systems programming. I have written about this topic before, but I wanted to revisit it and consider the issues from another angle. The most popular programming language for embedded continues to be C. Clearly it offers the capabilities and facilities that most developers need today, but what comes next? I … Read More

Tags: Programming Languages, C, Java, EDGE Compiler

IP/ESC'09

Posted Dec 7, 2009, by Colin Walls

Last week I attended a conference in Grenoble, France. For some years there has been an annual event focussed on intellectual property [IP] and the broad area hardware design reusability. This year it was extended to encompass embedded systems as well - the last of the three days was largely dedicated to this topic. I submitted some proposals for papers and two were accepted. Hence my attendance. A … Read More

Tags: Android, C, EDGE Compiler, Dynamic Memory, Development Tools