Category Archives: Tools

Lint and static analysis

One static source code analysis tool I have used in the embedded environment is PC-Lint from Gimpel Software. It is a great tool for embedded development supporting a wide range of compilers. Compared to its Flexelint offering for *nix platforms, PC-Lint is priced under $400 U.S.

Together with library and environment options files, it features author options files for linting code by MISRA C/C++ guidelines (safety critical systems) for example. Tune the options files according to code review and unit test requirements to produce useful report results.

In its 9.0.0L release it is gradually moving to full support of C++11/14.

I have used the tool with a Python filter fed into asciidoc to neatly sort through lint results and present them in HTML format.

There are many other enterprise class tools in the marketplace designed for team support ( Klocwork, PVS-Studio ) as well as dynamic analysis tools ( VectorCAST ).

Examine both multi-language and C/C++ free and open source tools .

Use of lint ought to be built in to the build and release process or at minimum in the code review process.

NVIDIA CUDA Development

If you have interest in parallel programming, games with high end graphics, embedded development or professional graphics, investigate NVIDIA CUDA Development. The first step is to become a registered developer so you can fully peruse the available resources.

My interest is specific to parallel programming with NVIDIA’s line of CUDA GPUs.

My current development platform is the GeForce GTX 970 and the Tesla K40. The K40s are used in a pair of airborne, high performance servers under development for surveillance applications.

NVIDIA provides a CUDA Toolkit supported on Windows, Linux x86, Linux POWER8 and MacOS platforms.

Of special interest to developers are the NVIDIA System Management Interface and CUDA Code Samples present in the toolkit.

If you are a Visual Studio 2010/2012/2013 developer, don’t miss the presence of the CUDA project template and template_runtime. This is extremely valuable for creating your own Visual Studio based CUDA projects because it will redeem you from the pit of Visual Studio properties should you decide to create a Visual Studio 201x plus NVIDIA Nsight project from “scratch”.


SmartSVN, Ubuntu & dream biceps

I’m a VMware Fusion Professional fan. I use it on a MacBook Pro to host various operating systems (Solaris, Ubuntu, Slackware, LFS, Win7) used in my projects.

A recent project requires rolling my own LFS distro on Ubuntu. Back to command line Subversion or find a suitable GUI client? Once you are spoiled on TortoiseSVN, TortoiseGit or SmartSVN for Windows hosted development, doing without on Linux is out of the question.

The short answer is: cancel that gym membership you’re not using and then buy some real tools – like SmartSVN. I know this goes against your inner cheapskate (but lavishly wasting money on good intentions for bigger biceps?!), but you will thank me in the long run.

Reduced stress. No version 0.1 GUI client experiments. No command line.

I once knew a seasoned assembly language developer in the late 80s that coded using DOS edlin. I’m not making this up. Well, about that time a cool full screen editor came on the scene named Brief by UnderWare, Inc. A few of us installed it on the developer’s machine while he was on smoking break and pulled up some of his code on screen. A short time later we heard shouts from his office, “I can see it all! I can see it all!”. Most of us did not recover from ROTFL until later that day. Don’t be that developer.