Blog

February 28, 2008

Documenting Registers

Much of firmware development focuses on interfacing with registers. Documentation plays a key role in this effort since engineers must refer to it constantly to look up register and bit details. In particular, engineers need to generate or decode hex numbers, where the value of each bit must be clearly […]
January 31, 2008

Intangible Benefits

A client recently asked me to write down some suggestions of best practices and process improvements for his company. I noted several suggestions, sorted them into four categories, and started writing them up. Partway through this process, I noticed that two of my recommendations seemed to contradict each other. On […]
December 31, 2007

More Troubleshooting Support in DMA Controllers

In last month’s issue I discussed how DMA controllers can be used to troubleshoot data flow problems in and out of a block. Since DMA controllers are instantiated in many blocks, the DMA controller is a good place to put additional debugging tools. One such debugging tool is a CRC […]
November 30, 2007

Using DMA Controllers to Troubleshoot Problems

Many blocks within chips process data read from or written to memory using direct memory access (DMA) controllers. Firmware initiates the data processing by setting up the blocks and DMA controllers. When problems occur, the first task is to figure out if the problem is in the block, in the […]
October 31, 2007

Managing Platform-Specific Code

Porting firmware code to a new hardware platform often requires making changes that break support for old platforms. Code maintenance, defect fixes, and new features become cumbersome and error prone when such changes must be made across multiple versions of the same code. In last month’s issue, I talked about […]
September 29, 2007

The Impacts of Debugging Facilities and Platform-Specific Code

I just returned from the Embedded Systems Conference (ESC) in Boston where I taught a course on lessons learned from hardware/firmware interface design. These conferences are always good for interacting with other engineers and learning from them. Two things I learned at ESC apply directly to this month’s topic on […]
August 31, 2007

Identifying Chips and Blocks

The constant drive to announce improved products with new features can force frequent changes in both hardware and firmware. New chips and firmware may be produced that are mostly the same as their predecessors but with a few new features or tweaks. Ideally, any version of firmware will work with […]
July 31, 2007

More on Buffer Zones

In last month’s newsletter I talked about analyzing the size of buffers. Now I will discuss the importance of proper management support for buffers – support in terms of status, interrupts, and errors. For example, when should an interrupt be generated on the receiving buffer? When one byte arrives? When […]
June 30, 2007

Analyzing Buffer Zones

One of the more challenging aspects of an embedded systems design is to maximize the time hardware and firmware can work independently while minimizing the time they have to wait for each other. The proper use and sizing of buffers can help balance the load between hardware and firmware. An […]
May 31, 2007

Abiding by Industry Standards

A printer ASIC was designed to be just a PCI Express endpoint so some of the configuration registers were hard-coded as such and it was used in a printer model. Sometime later, for a new printer model, the engineers wanted to use the ASIC as a root complex to bridge […]