|
|
Tools for Embedded DevelopersWe're tool makers and tool users. Embedded developers use a wide range of tools, but it can be awfully hard to distinguish the good from the ugly. Here's thoughts from a number of engineers. Feel free to submit your own to info@ganssle.com.
Diff/Merge ToolsFred Hugand sent this link (http://www.scootersoftware.com/ ) to a better diff tool, this one named Beyond Compare. I've only played with it a bit so far, but it looks like a great product and is only $30. Vlad Pambucol wrote: We use Beyond Compare here in our development and we absolutely love it! It has great diff capabilities (for instance I like that they show you where your diff is on the line not just the line that is different), you can re-sync manually your compare (we had to do this for #ifdef branches of the code that we compared with original no ifdef-ed code), you can compare folders and many, many more useful features. Andrew Lin said: I like Araxis Merge http://www.araxis.com/. Admittedly, it costs a lot more, but it can do a three-way merge, which is very useful in a multi-developer environment when the VCS diff tool can't figure things out. Don Peterson wrote: My favorite file diff tool is vimdiff, which is an invocation of the vim editor using the -d option. I'm a command line weenie, so I still use GNU diff a lot too. For comparing directories and files, doing merges, and editing, the free WinMerge program is nice (http://winmerge.sourceforge.net/ ); its only disadvantage is that it only runs on Windows. I haven't looked at their source, but I believe it's in C++. Perhaps we could encourage some volunteers to help them rewrite the thing using wxWidgets, which means it would be portable to platforms besides Windows. I wrote a binary file comparison tool bd.c years ago because I frequently had to compare firmware builds and figure out if they differed, in spite of embedded date/time stamps and CRCs. It's not a GUI tool, but it gets the job done. You can get it at http://www.gdssw.com/tools/ . Rodrigo Flores wrote: KDiff3 is a 3-way diff tool. Originally for KDE, but there's a port for Windows. See http://kdiff3.sourceforge.net/ - Homepage and http://sourceforge.net/projects/kdiff3/ - Project page . Rod Bartlett likes WinMerge: a great little tool for doing diffs and/or code merges. Handles folders as well as individual files and has a very intuitive interface. It's somewhat similar to Microsoft's WinDiff tool though WinMerge appears to be more feature rich. http://winmerge.sourceforge.net/ . Sambandam Senapathy likes: http://www.grigsoft.com/wincmp3.htm. This is one of the tool that I'm using for c-source file comparision. Though most of my problems are solved using WINMERGE tool, there are some occasions where other diff tools may not help. During those situations, I could see this WINCMP to be of most useful. Especially if the files to be compared are changed a lot, I found this to be of more useful. Michael Bulgrien likes Beyond Compare: “http://www.scootersoftware.com/ubbthreads/postlist.php?Cat=0&Board=BC3News
- Beyond Compare 3 Professional will be released later this year.
Although BC2 has always been a favorite of mine, BC3 will add great new
features including a full-screen edit mode, syntax coloring, 3-way
merges, dynamic recompare, superb source control integration, and much
more.” David J. Scott likes WinMerge: “WinMerge is simply
awesome. It lets you compare two files side-by-side and do simple
editing. I don't know what I'd do without it. It’s free at
http://winmerge.org/
Text Editor ToolsJohn Johnson contributed: One tool I have been using of late is a text editor: http://www.vim.org/ developed under the GPL (hence free and user supported with one champion, a chap named Bram Moolenaar). vim (or gvim) has color coded code sense for C, C++, HTML, etc. and a difference utility. vim (gvim) is said to support regular expressions, through a user supplied plug-in though I have not yet enabled this capability. vim (gim) users have developed a host of other plug-ins for other purposes. Jan Pleskac says: Our team uses JEDIT, a Java based open-source editor which is very extendable and very supportive for development. We used it for C, VHDL, latex.... More at www.jedit.org. Phil Schmidt wrote: Leo (http://webpages.charter.net/edreamleo/front.html ) is a literate programming editor. It is difficult to describe what Leo can do without actually trying it out. I have used it for several different tasks, including code development, code reverse-engineering, a general notebook, and structured document creation. Its single most useful feature is the ability to clone nodes, and again, without trying it out, this concept is hard to describe. I recommend that folks take a look at it. Rocco Iacchetti contributed: We would like to indicate a tool for C development that we have found very helpful. It is Ristancase Development Assistant for C and eventually for VHDL. The tool contains an intelligent editor, with the possibility to jump to function definitions and implementations, to find every use of a variable or function and so on. It gives you a lot of syntax checks (similar to lint), also with the integration of MISRA checks. Finally it gives you the ability to generate the code documentation; in particular, it is able to write flow diagrams of every routine. It integrates a lot of compilers for different CPUs: we have used the integration to Texas DSP Code Composer Studio and to IAR Systems Compiler for Atmel ATmega family. The tool is very cheap, even if it is not free. You could have more information on http://www.ristancase.com . Mark Swayne wrote: I'm an enthusiastic Vim user, and I find this quick reference card very handy: http://tnerual.eriogerg.free.fr/vim.html . Rodrigo Flores suggests ConText (http://www.context.cx/ ) and (for X Windows) NEdit (http://www.nedit.org ). Scott Winder wrote: UltraEdit and UEStudio ($39.95 & $99.95; http://www.idmcomp.com/ ). I have been using them (first UE, then UES when it came out) for several years and have found them to be comprehensive, powerful tools for local and remote file editing and software development. They include a basic hex editor and a limited version of IDM's UltraCompare diff tool. They are quite customizable and handle incredibly large files with ease. Things like regular expression search and replace, edit over FTP/SFTP, multi-platform line ending and character encoding support, a built-in macro language, completely configurable menus and keystrokes, and many other perks set them apart from the vast majority of the competition. I've also found their tech support very responsive and eager to please, and they'll entertain any reasonable request for new features in upcoming versions. Doug Stevens wrote: My single most useful tool: an edit called (variously) slick-edit or vslick. I started using this back in about 1997-8 at Tektronix, and now use it at Omneon. It has all the hallmarks of a tool engineered by a group that was required to use the editor in order to develop the editor. There's a huge list of features, but my personal favorites ...
There are a collection of enthusiasts at http://www.lazyhacker.com/slickedit/forum who post their favorite features, hints, and newly-developed macros. Justin Phillips seconds many who have lauded Ultraedit:
www.ultraedit.com
- “A fully featured editor with built diff tool and loads of other neat
features. And crisp (www.crisp.demon.co.uk)
- A sophisticated editor for both Linux and Win32. Too complex for my
taste but take a look.” Roland Bennett likes PSPad: “I really appreciate the feedback from users regarding their favorite editors. Having used Visual SlickEdit for many years, I was looking for a free editor when I left the company where I had used it.” Vlad Zeylikman is using Epsilon from Lugaru, Inc (http://www.lugaru.com
). “It’s not free but whenever someone names a new cool feature, Epsilon
had it for years. I find that it's well worth the price: loaded with
features, Windows/Linux/DOS in one package.” Jon 'Far' McKamey writes: “Another good choice is MadEdit.
(http://madedit.sourceforge.net
). I'm a bit of a nut about finding the right editor, and I'm toggleing
between this and Notepad++ at the moment. “ IDEs, Debugging and Related ToolsLeland Hamilton wrote: I have used Dev-C++ (http://www.bloodshed.net ), an IDE for C and C++ on Windows. It allows one to build a project with associated files, automates the compile & link functions along with program execution with parameters, and profile analysis. Apparently uses the Mingw compiler suite. Has a search function that can work on the current module, all open files, or all files associated with the project. Includes interactive debugger that uses gdb under the hood. The editor does syntax highlighting (bold keywords, italic blue comments, green preprocessor # statements, purple numbers, and red quoted text. Parses the project file and provides a class view on the side that allows one to jump to the code associated with a function or structure. (Have not used it for C++). Includes CVS integration (but it does not work for :local:", so I use WinCVS instead). Project setup tool includes Windows application, Console application, Static library, DLL, and empty project that select the build and libraries required for the project. I have only used the console application mode as I generally use Dev-C++ to develop embedded applications and frequently do unit and multi-unit testing on the PC platform before moving to the embedded platform, and for quick homebrew utilities. Dev-C++ allows other tools to be added to a tool dropdown. I use the following:
The bloodshed homepage includes links to other resources including listings of free compilers, learning information, a list of downloadable C/C++ source file and useful links. My two gripes with Dev-C++ are:
Mark Bereit says: I use Microsoft Visual Studio 6 as my all-purpose IDE, for both desktop and embedded development. The abilities of this tool are greatly enhanced using Visual Assist from Whole Tomato Software (http://www.wholetomato.com ). This does better source code coloring, great autocompletion and suggestion, and great source code browsing (that doesn't depend upon Microsoft's browse database, so it works just fine on your cross-platform C/C++). Works for both Visual Studio 6 and Visual Studio .Net. I've used several versions over the years and find it to be a great help. Kevin Light wrote: There is a relatively new open source, cross platform, IDE tool which is moving forward really fast. http://www.codeblocks.org. While the RC2 release shows off some of the features, the Subversion HEAD really is unbelievable and is usually pretty stable. The wxSmith plug-in for developing wxWidgets applications is very good for being bleeding-edge. Marc Verwerft sent this link to ctrace:
http://ctrace.sourceforge.net/
Source Navigator ToolsDon Peterson wrote: If you use vi and its clones (especially vim), you should be aware of exuberant ctags (http://ctags.sourceforge.net/ ), as it makes navigation in source files much easier. Use it e.g. to tag all the symbols in all the include files in /usr/include (when I'm on Linux, I have a cron job recreate this file every night). Wil Blake contributed: If you must use Forth, a source code browser will help. http://www.mtechelectronics.com/pages/downloads/ . Vinay Patil likes Splint: Here is another very good, and free tool called splint for checking C Syntax, Memory leak, Buffer overflow, Naming conventions checking (even customizable), etc... http://www.splint.org/ . Mark Swayne wrote: Doxygen ( http://www.doxygen.org/ ) is a great to for automatically extracting comments from your code and creating consistent documentation. If you combine it with Graphviz ( http://www.research.att.com/sw/tools/graphviz/ ), it will generate immensely useful call diagrams. Rod Bartlett also likes SourceNavigator - a good
tool for familiarizing yourself with large coding projects when
documentation is outdated or non-existant. Allows easy searching within
the entire source tree. Has built-in support for tags and cross
reference database. Sadly the database engine used throws errors when
building the project files for very large code projects but this is a
handy tool for small to medium projects.
http://sourcenav.sourceforge.net/ Gergely Budai wrote: “There is yet another tool that
needs to be mentioned in my opinion. (Source navigator / Source
Documenting).
Hex Viewer/Dump/Calculator ToolsVlad Pambucol wrote: And speaking of tools (since I like this one a lot too for playing with hex or mot files) there is a software tool called Hexplorer that can open all sort of bin/hex formats and you can look in your files, you can do CRCs and checksums on blocks of bytes, you have ASCII and hex view a of the file ... very useful tool. See http://sourceforge.net/projects/hexplorer/ . Don Peterson wrote: A good hex dump tool is xxd; you can download it as part of the vim distribution (http://www.vim.org/download.php ). Wil Blake contributed: Embedded Systems Programming used to have link to a hex editor. This one works well. http://www.hexworkshop.com/ Henk Dijkstra contributed: My tip would be srecord http://srecord.sourceforge.net by Peter Miller, to manipulate target files for embedded systems. It has default support for numerous file formats, and you can easily add new formats to it. By applying filters to the input files, you can also manipulate it if needed (like adding CRC/Checksum or crop/fill/exclude parts and much more). Cliff Brake has a hex calculator written in Ruby: http://bec-systems.com/web/content/view/42/9/ . Tim Dahlin likes xvi32 --> Free Hex Editor for Windows, http://www.chmaas.handshake.de/ , and Tiny Hexer --> Free Hex Editor for Windows, www.mirkes.de. Also PCalc --> Programmer's Calculator from www.analogx.com . Rodrigo Flores suggests Calculator.Net, a nice .NET RPN calculator. See http://www.speech.kth.se/calculator/ . Scott Winder wrote: 010 Editor ($49.95;
http://www.sweetscape.com ). This is a very good hex editor. Its
most important feature to me (i.e. the one that caused me to shell out
the registration fee) is its template-based binary file parsing--you can
program templates that let you read and write from and to complex file
formats, even when the format is somewhat dynamic (optional or
variable-sized headers, etc.). It deals elegantly with mixed endianness
(even in the same file), and its scripting language is close enough to C
that it is very easy to pick up. Add in other goodies such as process
memory and disk editing, and you've got a very underpriced product.
That's a good thing. Journaling/Documenting ToolsJohn Johnson sent: "I think this tip - very, very simple tip - is useful in tracking development and debugging efforts. In the MPLAB IDE one can add a text file to the project file list under "Other" files. The file is a mouse click away and can be used to collect or capture notes, ideas, and in tracking development and debugging efforts which is a tedious activity that often falls in the cracks. I would like to see this feature in all IDEs. Steve Litt contributed: Another hierarchy organizer is VimOutliner. VimOutliner's claim to fame is it's set up so that the touch typist can input and organize in real time without losing his train of thought. It has most of the standard outliner features -- expand/collapse, promote/demote, executable lines (execute random commands right from the outline), inter-outline linking (Linux version only), checkboxes, body text. See http://www.vimoutliner.org . I use it several times a day and even use outlines to create other formats such as web pages. If you look at http://www.troubleshooters.com/linux, that web page is stored as an outline and I run a script to update the HTML. Mark Swayne wrote: I'd like to mention Tiddlywiki ( http://www.tiddlywiki.com/ ). Tiddlywiki is a complete wiki-web in one HTML file. It works with most browsers, including Firefox and IE. I find it to be a very useful journaling tool. I keep my development diaries in a Tiddlywiki, the search, tagging and linking functions are very useful. David Bley wrote: I have a piece of software that I would like to recommend. It is not free, but I use it everyday. It is a free-form database (records are note cards and you can define fields or not) and its most powerful feature is the neural search. It will return every card that contains the list of words that you type in the search field. I put everything in it that I have trouble remembering and can always quickly access it. The program is called Info-Select and I have been using it for many years. Their url is: http://www.miclog.com/ . From Don Peterson: Years ago I had an idea for a hierarchically organized information manager. I then found a number of them on the web (Leo, TreePad, KeyNote). I tried them and settled on KeyNote (http://www.tranglos.com/free/keynote.html ). It's a Windows only program. It's simple and easy to use. Now you've got a place to stick all those tidbits of knowledge. It may not be maintained anymore, but the current version is working fine for me. John Kaasgaard likes Wikis: The hottest word now a days . If you need a wiki and don't know exactly 'what' you need . Well start looking here (http://www.wikimatrix.org/). I think there are about 50-60 various wikis, with a very very nice comprison between them. A better way of organizing our ideas or the projects you work on - or just 'giving away information' ... is hard to find.
Pretty PrintersLeland Hamilton contributed: Pretty print (code highlighting) n-up file printing utility (prfile http://www.lerup.com/printfile/): very useful for printing 1 and 2 up source listings with line numbers, code highlighting (bold keywords, italic comments), and long line wrapping. Can select various output formats, such as 131 columns wide landscape text printing, and save the setups with names for recall. You can chose either column width or lines per page, optional pretty printing code highlighting, optional line numbering, specify tab width, heading and footer formats, number of pages per sheet (n-up) horizontal and/or vertical with either landscape or portrait orientation. Also there is support for Postscript file printing using the ghostscript and gsview programs, and a print spooler capability. Also offers a command line mode. I set up prfile as a Windows Explorer right click SendTo with the default to do 2 up line numbered source listings, and a tool in my IDE, Dev-C++, to print the current file. Scott Winder wrote: While not really a "pretty printer" per se, I've used FinePrint ($49.95; http://www.fineprint.com/products/fineprint/benefits.html) for several years now and have saved (literally) thousands of sheets of paper in the process. It allows you to print multiple sheets on one page, and makes double-sided printing on manual duplex printers fairly painless. I'm especially fond of its booklet feature, but I'd say that its biggest benefit lies in its ability to show you the print job before it goes off to the printer. I use this all the time to combine multiple print jobs (of web pages, for instance), re-order them, and delete unnecessary pages (e.g. the ubiquitous "Page 2 of 2" with nothing but a header and footer on it). John Kaasgaard wrote: Another important tool is Indent (http://www.gnu.org/software/indent/). Formatting the source code makes the bugs easier to find, it also pleases your mind, since what you see is exact formatted the way you like it. The days where you discuss with your colleges, "..should the parenthesis be on the same line, or on the next line.." ... well its over now. Pre-process your source file with Indent, and you got it exactly as you want it to. It also improves code-walkthrough, and bug-tracking others code ... And the smartest thing is, if your using CVS you can pre/post run it too automatically!
Project Management ToolsJohn Johnson contributed: Another tool I have used, but not recently, is ProjeX, an inexpensive ($US20) project management tool from http://www.waa-inc.com/projex/index.htm. ProjeX is an Excel plug-in, and in my opinion, does most of the work of the other project management tool that people actually need for a fraction of the cost. A Google search for PERT brought up the following tutorial (among other references) http://www.mindtools.com/pages/article/newPPM_04.htm Koushik wrote: I found a tool called OpenWorkbench that claims to do that and more at http://www.openworkbench.org/. This tool is open-source and is hence free. Specifically, the feature listing at http://www.openworkbench.org/index.php?option=com_content&task=view&id=3&Itemid=6 mentions PERT charts etc. I have scarcely begun evaluating it and so far it seems pretty good. Dennis J. Murray contributed: In your latest email, you mentioned a reader needing a cheap/free project planner tool. He specifically mentioned PERT charts, although I personally prefer Gantt charts (minor issue). If he CAN find it in his heart to use Gantt charts and can run Linux, there's a FREE project management tool which I use and like called Imendio PLANNER. The homepage is available at http://developer.imendio.com/wiki/Planner . Frequent contributor Paul Bennett said: I thought I would look around for a Linux one as well. I found this: http://www.sharedplan.com/linuxproject.html .Seems quite reasonable from reading the manual. Allen Paul sent this link: http://www.guysoftware.com/planbee.htm . Mark Swayne wrote: For PERT and Gantt charting, the open-source Gantt-Project is worth checking out. It does both Gantt and PERT charts and uses an XML file format, so you can easily parse your data files and integrate it with other tools. See http://ganttproject.sourceforge.net/ . Scott Winder likes this tool for software design: Sparx Systems Enterprise Architect ($135-335; http://www.sparxsystems.com/). I've just recently started using this one, but it competes favorably with several $1000+ UML design tools. The floating license system is easy to use, it will integrate with most common version control systems, and for very large projects, the Corporate Edition can be used against a client-server database back-end (Oracle, MySQL, etc.). There *is* a learning curve associated with this package, but anyone with a solid UML background should find it pretty easy to pick up, and those without a UML background can purchase the $49.95 Zicom Mentor add-on that provides copious amounts of context-sensitive help (among other things). EA is updated quite frequently, and a free 30-day trial is available. Their customer and sales support staff are also quite helpful.
Communications ToolsDo check out Ed Sutter's free HyperTerminal replacement at www.microcross.com/html/micromonitor.html (about halfway down the page). To quote Ed: "it provides basic services typically used during embedded system development... TFTP client/server, DHCP server, serial command scripting, and even a terminal server that allows you to access the PC's serial port remotely via telnet." The page also lists information about Ed's book Firmware Demystified, a worthwhile addition to any developer's library. Several people suggested Ethereal. David Hinerman wrote: On the topic of tools: I highly recommend Ethereal (http://www.ethereal.com) for Ethernet packet sniffing. We just got done adding an Ethernet interface to several of our products and this was indispensable. It's also free. It's available for Windows, Linux, and Unix. Alejandro Weinstein suggests Bray's Terminal (http://bray.velenje.cx/avr/terminal/). From the webpage: "Terminal is a simple serial port (COM) terminal emulation program. It can be used for communication with different devices such as modems, routers, embedded uC systems, GSM phones. It is very useful debugging tool for serial communication applications" It is not an "Hyperterminal" kind of terminal. It is really oriented toward embedded developing. And it is free. Tim Dahlin wrote: Tera Term Pro --> Terminal Program Old Version => http://hp.vector.co.jp/authors/VA002416/teraterm.html . New Version => http://www.ayera.com/teraterm/ . Version Control SystemsLeland Hamilton contributed: I prefer to place software in some sort of VCS system as it is being developed, mostly to keep a backup in case I clobber a file, but it also helps to see the development progression. I once consulted for a small company for a few days to solve a problem they were having with some embedded firmware. Once we got the software working I suggested they update their VCS repository before making any more changes so we could recover the working copy if necessary, but they insisted on making a few small changes first. They ended up with a non-working version and could not reconstruct the working version. To start off, I suggest CVS with WinCVS GUI front end. WinCVS provides a graphical tree structure on the left similar to Windows Explorer, and a display on the right of files that are and are not in CVS, whether the CVS tracked files are modified Includes capability for almost every CVS command you can think of, along with the ability to type any command in a command line window. CVS files are stored in a central repository that can be on your computer or another computer running a CVS server. Also uses a local subdirectory file structure that identifies the repository and current workspace file information. Tagging specific revision of files, comments for each update, branching (for those cases where you need to continue new product development and perform maintenance updates on a prior release. Commands include creating a repository, importing and exporting a directory tree, tagging and branching, checkout, update working file with repository changes, committing a file to the repository, adding text, binary and Unicode files, difference of working file versus repository and other combinations, annotated listing showing the version number associated with each line, module status listing, graphical branch structure diagram with ability to select specific tree locations, option for file locking editing, watch notification. Subversion and TortoiseSVN (http://tortoisesvn.tigris.org/svn/tortoisesvn): a modern day VCS system that includes integration in Windows Explorer. Prefers to work with directory trees, but using its repo[sitory]-browser, it is possible to create a subfolder and put a single file into Subversion. I found it a little difficult to get right the first time, but once set up it is easy to work with. TortoiseSVN is a free open-source client for the Subversion version control system. That is, TortoiseSVN manages files and directories over time. Files are stored in a central repository. The repository is much like an ordinary file server, except that it remembers every change ever made to your files and directories. This allows you to recover older versions of your files and examine the history of how and when your data changed. TortoiseSVN adds Shell integration, Icon overlays for file status, explorer context submenu. Some of the many Subversion features that may be of particular interest: Atomic commits: A commit either goes into the repository completely, or not at all. This allows developers to construct and commit changes as logical chunks. Directory versioning: CVS only tracks the history of individual files, but Subversion implements a virtual versioned file system that tracks changes to whole directory trees over time. Files and directories are versioned. As a result, there are real client-side move and copy commands that operate on files and directories. Usable locally and over networks, versioned metadata (properties associated with a file), binary differencing algorithm for both text and binary files. Also RCS probably deserves mention, although I think CVS and Subversion trump RCS. Rodrigo Flores adds that there's a version for CVS: TortoiseCVS. See http://www.tortoisecvs.org/index.shtml and http://sourceforge.net/projects/tortoisecvs . Gordon Brandly does find a role for RCS: there's one audience for which RCS is much more appropriate: the busy one- or two-programmer shop. He wrote: I've been using ComponentSoftware's RCS (http://www.componentsoftware.com/csrcs/) for years -- it's available free for individual use. It doesn't do project branching or many of the other advanced things the other two do, but it's far easier to learn. If I remember right, I was up and running with CS RCS within about half an hour of downloading it. I've heard comments on the Internet that the other two take days to learn, and I certainly got that impression when I looked at the documentation for both of them. If we ever hire more programmers or starting doing more complicated software projects then we'll probably put in the effort to learn how to operate Subversion or something like it, but until then CS RCS fits our needs almost perfectly. Dave Kellogg like TrackBack: “A fairly new tool that I
find very useful is TrackBack, from Scientific Toolworks (www.SciTools.com).
TrackBack runs in the background and saves a copy of a file every time
it is written to disk. Thus it provides a sort of poor mans VCS by
keeping every version of each file Im working on, prior to committing it
to the official Version Control. TrackBack is very configurable
regarding which directories and files to back up, and works with any
type of file. Internet ToolsPhil Schmidt wrote: As we all know, web research constitutes a significant part of any development. And information capturing and gathering is a big part of this process. I don't remember how many bookmark managers I tried - with no big success - until I've found the ContentSaver (www.macropool.com). It saves complete web pages or clippings on a fly, edits and annotates, organizes and categorizes, has great search options and many, many more. After I've tried it, I will never go to any bookmark managers. Not free, but it saves so much time that it easily pays for itself. Highly recommend it to anyone who spends any significant time for internet research (and I am not affiliated in any way with Macropool !). It does have a free trial (I used it for one day and decided to buy). Shaun Kaplan wrote: I too was looking for a similar tool and last week went flipping through the Firefox extensions and found one called Scrapbook (http://amb.vis.ne.jp/mozilla/scrapbook/). I've only had it a few days and I've never tried ContentSaver so I can't give a comparison but so far I'm very happy with it. Don Peterson said: Here's an open source web authoring tool that's simple to set up and use: http://www.nvu.com/ . He continued: The people at Adobe have forgotten the simple roots that their Acrobat reader used to have. Now if you want to read PDF files, you have to download 17 MB of junk. Forget that -- get Foxit reader, a fast PDF viewer. They didn't screw up the scroll wheel support like Adobe did. http://www.foxitsoftware.com/pdf/rd_intro.php . Scott Winder's thoughts: Someone already mentioned
Copernic Desktop Search (which I use for my files as well as my
email--it's incredibly potent and somewhat addictive;
http://unforgotten.lethean.us/2004/10/15/copernic-desktop-search/).
But I'd like to add that Copernic has had other search-related products
on the market for quite some time. I own the professional version of
Copernic Agent (http://www.copernic.com/en/products/agent/index.html)
and have used its predecessors as well over the years, and I can only
describe it as the search tool to use when Google just doesn't cut it.
They have a multitude of search categories and features galore--there
are even "Programming" searches (which have expanded to cover several
different languages since they first added a programming search at my
request several years ago). Oh, and the last time I used their customer
support (said request), they were quite responsive. Communications ToolsJohn Kaasgaard wrote: I'm using Docklight (http://www.docklight.de/)
for most of my serial Royce Muchmore weighed in with this on Docklight: I see that Docklight is listed as a useful communication tool in your 'Tools for Embedded Developers' page. However, I don't think the description gives the tool nearly enough credit. Docklight does provide the standard terminal interface with the ability to transmit and receive characters and log serial communication to a file. In addition, there are several key features that Docklight provides:
I have not found a better program for serial protocol debugging.
Applications ToolsFrom Don Peterson: If you need a database, the open source MySQL (http://www.mysql.com/ ) could be a good choice for you. On Windows, it hooks up easily with an ODBC driver and lets you connect to its databases with the Open Office programs. He added: We all have to keep track of lots of logins and passwords these days. I like to use KeePass (http://keepass.sourceforge.net/ ) for this. Another good tool is Password Safe (http://passwordsafe.sourceforge.net/ ), but I like KeePass just a little better. If you're interested in getting off the Microsoft upgrade-every-few-years treadmill, take a look at Open Office (http://www.openoffice.org/ ). I used MS Word for 20 years, so it took a bit of effort on my part to switch over, since I had numerous macros that helped me in my work. However, I've become _very_ attached to Open Office and how it works -- so much so that I rarely use MS Office anymore. The main program I use is Writer, which looks a bit like MS Word. To be objective, be warned that OO Writer crashes more frequently than Word does. However, to its credit, there was only one time where I lost any work (its recovery process works very well). On the other hand, I've had MS Word absolutely trash some documents to where they were unrecoverable -- and this resulted in a lot of lost work. Even with the crashes, OO is (in my opinion) a better tool than Word. Tim Dahlin likes VolumeID --> http://www.sysinternals.com/Utilities/VolumeId.html . Let's you modify your hard drive id. Rodrigo Flores wrote: for those of you using PasswordSafe, Password Gorilla is a format-compatible (you can use either client with the same DAT file) multi-platform (I've used it in Windows, Linux, and Solaris but it supports others including Mac OS X) and stand-alone (Exe for Windows, TclTk kits required for Posix) replacement: http://www.fpx.de/fp/Software/Gorilla/ . Oliver Bachmann writes: “If you are looking for a good search tool, try InfoRapid Search And Replace. It has one of the fastest search engines I have seen so far, and I use it regularly for searching strings in files even in subdirectories where other search tools do not generate a hit.” CAD ToolsSteve Karg wrote about Kicad: “There is a project called
Kicad which is "open source (GPL) software for the creation of
electronic schematic diagrams and printed circuit board artwork." It is
cross platform (i.e. Windows/Linux) and free. The example layouts they
include are pretty slick, especially the 3D view. Of course, you have to
be able to create the 3D decals/parts to be able to do that, but the
concept is sound and the program works. The home page is at: Static Analysis ToolsJuergen Kemmler wrote: "“Polyspace is used to clean up our safety critical code, it works well. We perform "Module Tests" and project analysis.”
Jeff Brentlinger is using the static analyzer from
Klocwork: “We are early in the use of Klocwork (www.klocwork.com),
so I did not reply to your 1st request for people using Static Code
Analysis Tools (I was hoping some of the other users would chime in). Vlad Zeylikman wrote: “I had experience with PolySpace
about 4 years ago. The system promised a lot but delivery was another
story. The code it was given was pretty bad: convoluted functions, some
5-6 screenloads long, half a dozen tasks interacting with each other via
messages (mostly). In some cases, they communicated via globals
protected by disable/enable interrupt pairs. The code needed analysis
and refactoring as it suffered from unexplained random hangs. The hope
was that PolySpace would pinpoint the problems, we'd fix them, and this
would buy us time to do a real refactoring and optimization. “My reservations about it were that it had setup costs (time), also code instrumentation degraded runtime performance (expected) and was resource hungry, which affects usability. What would have been useful was a runtime tool usage detection function in the tool’s API, which is a feature Rational's Purify plus. Which is useful for determining which memory allocator to use.
“1) gcc -Wall -O3 (sometimes with a -pedantic)
Miscellaneous ToolsDon Peterson wrote: For Windows, check out http://www.sysinternals.com/SystemInformationUtilities.html -- especially Process Explorer. It's a nice replacement for Windows' Task Manager. Freemind ( http://freemind.sourceforge.net/ ) is a really great tool for brainstorming and quickly building up outlines of hierarchical information. It's a "mind mapping" tool, a concept I wasn't aware of until I found Freemind. The best way to understand what it does is to look at the website. Henk Dijkstra contributed: Another useful item for adding lightweight threads to an (existing) application is: Protothreads by Adam Dunkels: http://www.sics.se/~adam/pt/ . It consists of a few include files defining MACRO's that are used to implement threads as switch/case constructs. I have used it to easily add functionality in existing complex systems with high timing constraints. From Don Peterson: If you're a UNIX person who has to use a Windows computer, all your favorite and familiar tools can be gotten by installing cygwin (http://www.cygwin.com/ ). If you want to distribute apps under cygwin, the licensing fees are substantial. Instead, get the MinGW compiler (http://www.mingw.org/ ) and you can build native Windows apps and distribute them without any fees. Use wxWidgets (http://www.wxwidgets.org/ ) and you can build C++ cross-platform GUI apps. Mike Teachman contributed: The mention of InfoSelect made me think of a free tool that I use a few times a day. It's Copernic desktop search. www.copernic.com I use it solely to search MS Outlook for emails and contacts. It indexes all your emails. It's blazingly fast and has an intuitive interface. I tried Google desktop search, but, for me Copernic was superior. Dave Mazzoni likes Boost, (boost.org) a C++ extension that is being incorporated into the official extension to the language. Within boost are several very useful tools for writing test driven code. The most impressive thing (in my mind) is that one doesn't have to change the code in order to test it. Otherwise, you might experience the horror of removing the well placed debug print statements from 'tested code' to find the code then fails!
Scott Winder has written about regular expressions: See my blog entry (http://unforgotten.lethean.us/2004/12/09/regular-expressions-are-your-friend/). In particular, RegexBuddy ($29.95; http://www.regexbuddy.com/) is an incredible tool for learning, building, archiving, and debugging complex regular expressions. This is not always directly useful in a deployed system, but it's great for changing large quantities of code in a dynamic manner or finding similar but not identical constructs buried deep in your source files (note that this is not a search tool, but UltraEdit and a few other editors have regex search and JGsoft [RegexBuddy maker] sells one called PowerGREP). He added: xplorer^2 (19.95 euros) is basically Windows Explorer on steroids. I'm not going to attempt to describe all of its features; it suffices to say that if you spend a lot of time wandering around in the folders on your Windows machine, this tool may do just as well for your heartburn as Rolaids. See http://www.zabkat . And: CLCL (http://www.nakka.com/soft/clcl/index_eng.html). A free clipboard manager that stores past clipboard entries but also has template capabilities and a versatile plug-in architecture for custom manipulation of copied clips. Once you get used to using this one, it can be very frustrating to work on a computer that doesn't have it installed. John Kaasgaard wrote: A great tool I use every day for organizing and structuring ideas, requirements database design and lots of other things is a free MindMapping tool called FreeMind http://freemind.sourceforge.net/wiki/index.php/Main_Page examples http://freemind.sourceforge.net/wiki/index.php/Main_Page#Screenshots and here too http://embedded.dk/Projects/requirement_handling.htm He added: Another tool I often use for making release preparations, sending out .hex and binary files to the production or customers is fsum.exe (http://www.slavasoft.com/fsum/)- calculates the CSUM for the 'deliverables' Finally, John mentioned: This tool is much more rich and usefull - if you work with audio aspects. In or output!Audio Spectrum Analyzer (http://www.qsl.net/dl4yhf/spectra1.html) . Roland Bennett wrote: “This might come across as blatant
self-advertisement, but I’m very proud of my first open source
contribution: The Ganssle Group
|