This call is passing a pointer to a control block that holds the indi vidual param- eters for the task. When switching from one RTOS to another, the programmer must have knowledge not only of ho w many times this function is called, b ut they must also have a deep understand- ing of both task structures in each R
When you extend this knowledge out to all of the components of an RTOS – initialization, tasks, scheduling, mail - boxes, queues, and so on – the use of a language conversion tool to automate the transitions makes sense.
Maintaining minimal pre-optimization performance During the initial development of a soft- ware application, much work is put into the optimization and performance. Often times, many hours are spent tweaking the software application to be as sm all as possible or to run as f ast as possible. When updating or inte grating projects, the initial goal isn’t to make the applica- tion run as fast as possible, but to run at least as fast as the prior version of the application. How is this done? Using hooks inside the code for timing and execution speed, and then also using graphical profiling tools to help indicate the bottlenecks in the new code.
For profiling the application, a programmer can manually insert hooks into the code. This normally includes searching through the application code and inserting appro - priate profiling functions on the entry and exit of the function call. When the appli- cation consists of thousands of functions and millions of lines of code, this method is overwhelming. When using an advanced profiling tool with the application and an RTOS, there is the ability to automatically insert hooks into the RTOS and application code. The end result is a graphical view of many important timing and performance metrics, including the number of function calls made, time spent inside a function, memory usage, and so on. Figure 1 shows a sample report from a graphical prof iling tool used to automate the process.
[Figure 1 | A graphical view generated from a graphical profiling tool, showing the number of times functions have been called]
Elimination of unproductive work When one of the components in the application is changed – such as an RTOS or hardware component – some work can be automated and some can’ t. For instance, using Search and Replace to update function names is error prone and tedious. When changing the pro - gramming language, the error -prone work exists when programmers attempt to manually con vert one language to another. The controversy comes in because many software developers con- sider important all the w ork they do. However, in reality, there are tools that
exist that can help automate much of the software work when moving the soft - ware application to a new RTOS or new hardware.
For example, consider the C/C++ and Ada languages. Both are v ery power- ful and used in man y military software applications. Many existing applications today are integrating both Ada code and C/C++ code. The problems occur when programmers attempt to inte grate or translate code by hand. The differences between the two languages are huge, and a simple example can illustrate some of the many differences. Table 1 shows the various operators in C/C++ and Ada. Trying to convert code by hand is an example of unproductive work because
SubtractEquals MultiplyEquals DivisionEquals OrEquals
C/C++ Ada =
+= -= *= /= |=
mod Table 1 | Operators for C/C++ and Ada vary
immensely. Empty cells on the Ada side indicate no direct equivalent in C/C++.
Size, Weight, and
Signal Processing HW IP & FrameWorks Development Tools Systems & Services
You’ve come to the right place.
Flexible state-of-the-art processing performance in a low power, compact solution that meets the demands of the extreme conditions of the battlefield... BittWare’s high performance FPGA- based solutions satisfy your SWaP needs.
Conduction-cooled and rugged • • •
Flexible processing via the Altera Stratix IV GX High speed A/D and D/A via the VITA 57 FMC site
BittWare’s ATLANTiS FrameWork for FPGA development
BittWare. The Essential Building Blocks for your Innovative Solutions.
OpenVPX is a trademark of VITA
For more information, visit bittware.com
VME and Critical Systems / Spring 2011 13
| Page 2
| Page 3
| Page 4
| Page 5
| Page 6
| Page 7
| Page 8
| Page 9
| Page 10
| Page 11
| Page 12
| Page 13
| Page 14
| Page 15
| Page 16
| Page 17
| Page 18
| Page 19
| Page 20
| Page 21
| Page 22
| Page 23
| Page 24
| Page 25
| Page 26
| Page 27
| Page 28
| Page 29
| Page 30
| Page 31
| Page 32