Typical energy-saving measures include:
1. Select components with energy-saving properties
2. Improve system integration
3. Adjust CPU frequency
4. Adjust power supply
5. Select microcontrollers with energy-saving properties, cache memory and on-chip memory
However, the best energy-saving effect can only be achieved by fully controlling the components that consume battery energy through software and giving full play to the energy-saving properties of the hardware. Energy consumption is the product of current, voltage and time, and the control software has a great influence on these parameters. Therefore, software engineers need to constantly try to determine the best configuration of these three parameters in different operating modes to achieve the best energy-saving purpose. For example, engineers may ask themselves the following questions:
1. Is the microprocessor operating in the correct power-saving mode
? 2. How will program changes affect the system's energy consumption
? 3. Are there any unexpected energy consumption peaks?
To answer questions like these, a test device is needed. This device needs to be able to measure, record and analyze the program and data flow of the control software, as well as the current and voltage gradients. At the same time, all the recorded information can be correlated in a simple way. At the 2007 Embedded World Annual Conference, as the world's first embedded software energy consumption analysis tool manufacturer, Lauterbach demonstrated a powerful and easy-to-use solution that successfully solved all of the above problems.
Technical requirements:
In order to locate the energy consumption of each line of code, the following data information needs to be collected:
1. The program flow of the control software. A debugger with real-time tracing capability (PowerDebug) can be used to collect this information.
2. The current and voltage gradients when the program is running. A logic analyzer with analog/digital probes is a more suitable measurement device for this purpose.
With this data, the main task is to correlate the information of program flow, current and voltage gradient. However, if equipment from different equipment manufacturers is used, even if the relevant information can be correlated, the actual operation will be very complicated, and the analysis and statistics of the comprehensive data will also be quite difficult.
The innovative core of Lauterbach's embedded software energy consumption analysis technology is to provide solutions to the above problems and develop appropriate and easy-to-use information display and analysis methods.
Solution:
The Lauterbach embedded software energy consumption measurement solution includes a debugger module (PowerDebug), a real-time tracing module (PowerTrace), and a logic analysis module (PowerIntergrator). Each module integrates an accurate time counter, and the counters of all modules are synchronized at the beginning of the program. Each module's record has a corresponding timestamp, so the records of each module can be associated through the timestamp. In this way, the energy consumption of each line of code can be determined.
To acquire current and voltage gradient data, TRACE32 PowerTrace II (trace module) or PowerIntegrator (logic analysis module) can be extended with the new Trace32 AnalogProbe module to:
1 Real-time recording of 4 voltage channels and 3 current channels
2 Real-time generation of trigger events for limit values and measurement ranges of current, voltage or energy consumption
In order to measure the current, a shunt resistor is required in the circuit under test. The voltage drop across the resistor depends on the size of the resistor and the current through it. Trace32 AnalogProbe can measure/record the voltage value across the shunt resistor. This is a measurement method commonly used and supported by many evaluation platforms. [page]
Current, voltage and shunt resistor values can all be controlled from the user interface below. Energy consumption calculated from current and voltage can also be controlled from this user window, in addition, the user can set the voltage to a fixed value for calculation.
Current, voltage and energy consumption can be displayed in tables and time-based graphs. All time-based information (program flow, graphs, current, voltage, energy consumption) can be synchronized with the trace information. If a position is selected/marked in one of the windows, all other windows automatically refresh the window content and the corresponding time position information is also selected/marked.
In the following example, 8 LEDs are turned on in sequence, and a sinusoidal voltage is generated. The current-time curve (1) below plots the waveform of the current value changing with time, and the sinusoidal voltage curve is shown in (2). If the function "LED3_on" is selected/marked with a black vertical trace line in the current graph (1), voltage graph (2) or program flow graph (3), the system will automatically update the information in the "Trace.List" window (4), display the corresponding record, and mark it with a blue horizontal bar.
Each time a program is terminated, Trace32 software will automatically perform statistical analysis on the recorded information, counting the minimum, maximum and average energy consumption of each executed function, as well as the absolute energy consumption of each function and its percentage of total energy consumption. Through these statistical data, the program code/function with the highest energy consumption can be easily located.
Data statistics analysis can show the energy consumption of each function when it is running. As shown in Figure (5), the system consumes the most energy when the function "LED8_on" is running (all LEDs are lit).
As an additional function, Lauterbach also provides a trigger unit, which can define trigger events by defining the limit value or range of current, voltage or energy. These trigger events can be used by the trigger unit to start and stop the control of the trace recording (Selective trace), or use these trigger signals to terminate the program. In this way, engineers can easily and quickly locate the cause of the peak of the relevant parameters.
Summarize:
Lauterbach's complete embedded software energy consumption analysis measurement solution provides a powerful and easy-to-use tool for R&D engineers to detect/locate the relationship between program code and system current/energy consumption. The above new features have been integrated into the current software environment. The relevant analysis hardware can also be easily implemented through expansion on the original tool. Long-term and close cooperation with major global mobile phone manufacturers ensures the practical application effect of Lauterbach's tools. By integrating new innovative solutions, Lauterbach once again confirmed its innovative ability in the field of embedded processor development tools. As a new solution expansion module, Trace32 AnalogProbe can be integrated into the existing Lauterbach modular development tool system, adding new value to customers' existing TRACE32 tools.
Previous article:Design of test system for real-time embedded products
Next article:Remote Automatic Rainfall Monitoring Network Based on GPRS
- Popular Resources
- Popular amplifiers
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- LED chemical incompatibility test to see which chemicals LEDs can be used with
- Application of ARM9 hardware coprocessor on WinCE embedded motherboard
- What are the key points for selecting rotor flowmeter?
- LM317 high power charger circuit
- A brief analysis of Embest's application and development of embedded medical devices
- Single-phase RC protection circuit
- stm32 PVD programmable voltage monitor
- Introduction and measurement of edge trigger and level trigger of 51 single chip microcomputer
- Improved design of Linux system software shell protection technology
- What to do if the ABB robot protection device stops
- Huawei's Strategic Department Director Gai Gang: The cumulative installed base of open source Euler operating system exceeds 10 million sets
- Download from the Internet--ARM Getting Started Notes
- Learn ARM development(22)
- Learn ARM development(21)
- Learn ARM development(20)
- Learn ARM development(19)
- Learn ARM development(14)
- Learn ARM development(15)
- Analysis of the application of several common contact parts in high-voltage connectors of new energy vehicles
- Wiring harness durability test and contact voltage drop test method
- IAR opens CC1310 SDK and reports an error
- 【CH549 Review】Part 2 Programming Tool Review
- The water pump stops accidentally
- [Project source code] FPGA-based cmos_init OV5640 camera I2C interface controller
- Can the outputs of several LDO chips be connected in parallel?
- 《Arduino+Android Interactive Smart Work: Getting Started with the Internet of Things》
- [ESK32-360 Review] Hetai and Blood Pressure Algorithm Transplantation (2)
- Smart manufacturing hopes to connect the future | Listen to TE talk about the technological innovation behind smart manufacturing and future transportation
- Showing Goods (3) - Antique Development Board
- [Environmental Expert's Smart Watch] Part 4: OLED drive and automatic interface switching