Agile development of real-time systems

Henk Muller, XMOS Ltd.

January 23, 2012

Henk Muller, XMOS Ltd.

Case Study: developing an IEEE AVB stack
As a case study we present how we use an agile development process for the AVB protocol stack. AVB is the Audio Video Bridge over Ethernet that is in the process of being standardised (IEEE 802.1 and IEEE 1722/1733). Figure 3 below shows the hardware platform that is used for the development, comprising an Ethernet PHY, an audio CODEC, and a dual XCore processor.

Figure 3: Hardware that runs the AVB software.

The current software architecture is shown in Figure 4 below. Note that each thread is scheduled independently, and has its timing verified independently. During an iteration, one or more threads may be revisited, but in the knowledge that no other threads were affected.

The software design has progressed over a three year period, and gone through a total of eight major iterations; that is an average of one iteration every 4-5 months. Major iterations deliver a working AVB stack, that is tested and then progressed.

The 4-5 months per iteration is an average figure - some iterations take place over a very short period of time. For example, during “plugfests” (global events where AVB developers meet up and test interoperability of their software) a complete iteration is made in the scope of a week.


Click on image to enlarge.

Figure 4: Thread diagram after eight iterations.

During the week, new requirements are drawn up based on observed interoperability problems, a modified specification is drawn up, one or more threads are modified or implemented from scratch, regressions are ran, and finally testing is performed.

This is only feasible because many tests take place during the compilation process, and because of the predictable nature of the underlying architecture. Developers that are using a traditional development method cannot adapt their software to take into account hitherto unknown subtleties of an emerging standard.

Conclusions
We have argued that Agile development has a role to play in the design and implementation of embedded systems. For Agile development to work in an embedded environment, a predictable architecture is a requirement.

Both because a predictable architecture makes composition of tasks simpler, and because tool support on a predictable architecture can inform the programmer about timing constraints that are or aren’t made.

We developed an AVB audio networking stack using Agile design methods, and hence we can follow the emerging standard quickly. Without an agile method, we would not have been able to complete our AVB design in the same time and budget.

Henk Muller is currently the Principal Technologist at XMOS Ltd. In that role he has been involved in the design and implementation of hardware and software for real-time systems. Prior to that, Henk worked in Academia for 20 years in computer architecture, compilers, and ubiquitous computing. He holds a doctorate from the University of Amsterdam.

< Previous
Page 4 of 4
Next >

Loading comments...

Most Commented

  • Currently no items

Parts Search Datasheets.com

KNOWLEDGE CENTER