This is Christiane Vogt's Typepad Profile.
Join Typepad and start following Christiane Vogt's activity
Join Now!
Already a member? Sign In
Christiane Vogt
Recent Activity
iSYSTEM has published a new technical article describing the features and benefits of Slow Run mode. Slow Run allows the capture of the complete program execution and data trace – although the MCU does not provide a debug trace port. Slow Run mode is not a substitute for powerful MCUs with trace ports and according debuggers, but it shows every developer the insights of the complete application’s execution, where without Slow Run mode only teeny-weeny details are visible. Why is Slow Run Mode an important feature? Read more... Continue reading
Image
Do you have an application that needs to detect and react on ECC corruption? If yes, how do you test and verify your application's behaviour? Basics: ECC stands for Error Correcting Code and is used for error corrections e.g. on memory that must be free of single bit errors. ECC can correct one-bit errors and detect 2-bit errors. ECC needs on 32 bit 7 check bits and on 64 bits 8 check bits. Now let's assume your embedded application stores e.g. electrocardiogramm data in memory (with ECC) and writes it later to disk. If there is an error, your application... Continue reading
Image
In winIDEA 9.12.7 iSYSTEM introduced the Slow Run mode that allows the acquisition of a complete program trace - also on CPUs without trace port. Since winIDEA 9.12.14 in addition to program execution, data flow and code coverage analysis Slow Run mode supports also profiling. Profiling analyses when and how long a function is running and provides statistics on many different parameters e.g. count (how often was the function called) period (what is the time difference between calls to a function) net time (time spent in function without subroutines and interrupts) gross time (time spent in function including subroutines, but... Continue reading
Image
Hot Attach is a feature available for a long time. "Hot attach" allows the attachment of a debugger to a running target system without affecting its operation. To "hot attach" an iSYSTEM debugger (iC3000, iC5000) following steps are executed in winIDEA: Check in "Hardware/ Emulation Options/ Hardware" tab the "Hot attach to target" option Execute "Download" command from "Debug" menu. Connect the debug cable to the target system. Select the "Attach" debug command from "Debug" menu to attach to the target system. Now the debugger should display "Run" status and the application can be stopped and debugged if necessary. To... Continue reading
Image
In a multitaksing operating system (OS) the scheduler is the responsible for switching between tasks. Typically a task will only run for a few milliseconds, then the scheduler deactivates the task and activates another to allow the illusion of parallelism. On deactivation, the task's current context (registers content, program pointer, stack pointer, etc.) is stored in a control structure - the "Task Control Block " (TCB) - and the next task's TCB is loaded. The currently active task is stored in a global OS variable which usually points to the task's TCB. For execution profiling (analysis when and how long... Continue reading
Image
winIDEA build 9.12.7 introduced a new feature - the "Slow Run" mode. Slow Run allows the acquisition of a full program trace - also on CPUs without a trace port! How is that realized? In Slow Run mode winIDEA executes the target application at one instruction at a time, which is similar to single step mode. After every step address and data information is retrieved. From that the trace information is collected that is used by the analyzer to display trace and code coverage information. The high load necessary to collect and calculate all that info, takes up time why... Continue reading
Image
Since build 9.12.4 winIDEA supports incremental flash programming to speed up download times when only small changes are performed! When a download is performed into an already programmed device, (optionally) only the FLASH sectors which have been modified, are programmed. To set this option, select Hardware/eEmulations Options.../CPU/CPU Setup.../Debugging and check the option "Program only modified FLASH sectors". Continue reading
Image
Do you know how to use any digital or analog signal to trigger your trace?All you need is an iC5000 on-chip debugger with an I/O module! Connect the signal you like to trigger on to one of the input lines (digital in, analog in) of the I/O module. Configure those lines in winIDEA Hardware/Options/I/O tab. Next step is to configure an appropriate trace trigger. Open the "Analyzer Configuration List". Press the "New" "Trace" button. Give it desciptive name e.g. "StartTraceOnButtonPress". Select the I/O module tab. Check the "Trigger". Specify the signal to start the trace with. If you use a... Continue reading
Image
With iC5000's IO module you can measure digital and analog signals as well as drive them. winIDEA can display these signals in the analyzer so that you can see the signals tracked by the IO module in correlation to your application's program/data trace and also profiler measurements . The IO module provides: one system port 8 channels digital in 8 channels digital out 2 channels analog in 2 channels analog out power measurement How do you configure winIDEA for the IO module (IOM) ? First step is to physically connect the signal to one of the input ports, e.g. digital... Continue reading
Image
Are you recording lots of data to get an insight in the real-time workings of your application? Does it slow down the overall performance of your PC? Then you may consider following: Analyzer recordings can be very large. The raw compressed recording itself can be several GB large, after decompression and analysis, the temporary data footprint can increase by a factor of 30-100. Most of this data is kept on disk in the designated temporay folder. If this folder is located on a slow disk, the overall performance suffers. If you have another disk with better performance available, set the... Continue reading
Image
Since winIDEA 9.11.77 the Special Function Register (SFR) Window has been enhanced to show: the address for the SFR the bit position and size for sub-SFRs (in beside picture you see O for offset and S for size) a radix prefix for the SFR value (0x for hexadecimal, 0b for binary values). What are Special Function Registers (SFRs)? SFRs are special on-chip CPUs registers that control various functions of a microcontroller, e.g. stack pointer, program counter. To open the SFR window in winIDEA, you select "Special Function Registers..." command from winIDEA's View menu or click on the SFR window icon... Continue reading
Image
Since winIDEA build 9.11.76 the configuration window of the profiler has completely changed. One major change is that there are no longer tabs for Code and Data Areas. Code and Data areas are now visible in the bottom half of the configuration window. If function profiling is enabled then all functions will be profiled if no functions are listed in the code areas list. There is now a leading check box for every function listed in the profiler data area. By clearing this check box profiler areas can be temporarily disabled. The new configuration will take effect in the next... Continue reading
Image
Since winIDEA build 9.11.69 the precision of floating point comparisons is adjustable. When would that affect you? Well, every time you calculate with floating point numbers... A floating point number is represented in a computer by several significant digits used for the number and an exponent, both in binary format. A definite dezimal number e.g. 0,1 can have an indefinite periodic binary representation e.g. 0,0001100110011. In a computer only the first digits of that periodic number are stored which may lead to inaccurateness in calculations, e.g. will 10*0,1 in a computer result in 1,0? Well, it depends on the implementation...... Continue reading
Image
winIDEA's profiler allows you to export your recorded data filtered by sophisticated patterns. Beside you see the dialog for Profiler's Export. After having specified a File name to export the data to, you set the export Format. Formats available are plain Text, XML, CSV and the so called Text1. When you select Text1 format you can adjust the output format of many settings in the Options dialog (see screenshot below). Scope defines the scope of data to export. All Areas exports all areas. Selection exports only areas currently selected in the profiler window. Filter exports areas which match the specified... Continue reading
winIDEA supports since build 9.11.63 MPC5xxx TLB (Translation Lookaside Buffer) write access. TLB entries can now be written via MemoryWrite functions (included in isystem.connect API set). To access a specific TLB entry, the access address encodes the TLB index in bits 16-31 and the MAS register (MMU Assist Registers) in bits 0-15. The TLB manipulation functions are provided via isystem.connect's CMPC5xxxController class. Example: import isystem.connect as ic cmgr = ic.ConnectionMgr() cmgr.connectMRU('') # get MPC5xxx controller MPCCtrl = ic.CMPC5xxxController(cmgr) # get TLB 3 TLB = MPCCtrl.getTLB(3) # change RPN to 0x40800000 physical TLB.m_dwMAS3 = 0x40800000 | (TLB.m_dwMAS3 & 0xFFF) # set... Continue reading
Image
To help customers with power measurement iSYSTEM provides now a so called Power Probe! As mentioned in last week's blog post the iC5000 I/O module allows now power measurement. But what do you do if your target's voltage and current exceed the input range of the I/O module? Take iSYSTEM's Power Probe! The Power Probe is a small board that is connected between the power supply and the target hardware. On the Power Probe you find two resistor blocks - one divider block for voltage and one shunt resistor block for current. If you need to scale down the voltage... Continue reading
Image
The iC5000 I/O module can now measure the power consumption of your target board! And in winIDEA's profiler you can view the uptake rate (current, power, voltage) ! Basically you will use on the I/O module port AIN0 for voltage measurement and port AIN1 for current measurement. Please select in winIDEA "Hardware/ Options/ IO" dialog the appropiate check box (in picture on the right). But before doing so please consider the input and output range of the I/O module. If your signal is higher than e.g. 5V, use a suitable resistor divider. In winIDEA "Hardware/ Options/ IO" dialog you specify... Continue reading
Image
Most operating systems have means to kill/terminate a task. Killing a task can become necessary when a task is stalled and occupies resources like memory and CPU. The way how task termination is implemented differs between operating systems, but it is an ungrateful way of ending and should only be used when there is no alternative because cleanup of resources is not done, e.g. stack, mutexes, synchronization objects are not released. Considering this behaviour from a profiler's perspective it's a disaster. A profiler watches function entry and exit points by tracking the stack. As long as the stack is valid,... Continue reading
Image
Since winIDEA 2011 build 55 (9.11.55) keyboard shortcuts can be configured for external scripts. To configure shortcuts for scripts open the Tools/Options/Script dialog. In the section "Shortcut scripts" enter the name of the external script. To define the keyboard shortcut, open Tools/Customize/Keyboard dialog. Select in category Tools and on the right side the command the Run Shortcut script 1 to create the keyboard shortcut for the first script - in our example ProfilerConfig.py . Set the cursor in the dialog box Press new shortcut, press the key combination to use and select Assign. When you now use in winIDEA above... Continue reading
Image
Since winIDEA 2011 build 53 (9.11.53) multiple special function registers (SFRs) can be defined for a CPU. In the CPU specification, names of multiple CPUs or modules can be combined with the + sign. This allows adding a few SFRs for a CPU. In the beside example the default registers for MPC5567 are used with addition of SFRs specified in external definition MySFRs. Additional custom SFRs files (*.SFR, *.SFG) can be placed in the newly imple-mented SFR subfolder of winIDEA. After the next restart of winIDEA the custom SFRs will be available. Continue reading
Image
Since winIDEA 2011 build 49 (9.11.49) the analyzer supports now line execution profiling. This feature is available in Entry/Exit and also in Range mode. Line execution profiling can help to detect performance bottlenecks in a function's code. To setup this feature select in the "Profiler Configuration" dialog the function name you like to profile and check the box "Include function lines" below the function list. With that setting the profiler shows timeline measurements for every line of that function in the views "Timeline" and also in "Statistics". The statistics criteria available are: Count Net Time time spent in the function... Continue reading
Image
Since winIDEA 2011 build 50 (9.11.50) the debug plug-in has been verified for Eclipse 3.7.0 (Indigo). The existing debug plug-in works fine without changes. winIDEA is fully integrated into the Eclipse debug environment. Using an iSYSTEM debug plug-in for Eclipse you can use the full debugging capabilities of winIDEA and iSYSTEM´s debuggers from within Eclipse. Eclipse is used as an editor, a project & build manager as well as a debugger. It provides all standard CDT debugger functionality, plus SFR (Special Functions Register) view and Real-time Expressions view. iSYSTEM also provides a Regular Expression Error Parser Plug-in for CDT. The... Continue reading
Image
Since winIDEA 9.11. build 47 iSYSTEM's new analyzer supports now negative wildcards in profiler's Statistics and Timeline view. Negative wildcards are supported using the - prefix. Press the filter button in the profiler menu to show the profiler filter dialog and specify a negative filter, e.g. " -OS* -Adc". This will tell the profiler not to show functions that names start with "OS" and "Adc". Continue reading
Image
Since winIDEA 2011 build 47 iSYSTEM's profiler supports compiler tail merge optimizations. What is tail call merging (tail-call optimization or tail-call elimination)? Tail call merging is a compiler optimization used by almost all modern compilers. But many compilers provide options to suppress tail call merging. Without tail-call merge: When calling a subroutine the caller pushes its return address on the stack and hands control to the subroutine. The very last thing the subroutine does is a pop from stack to read the caller's address and return control to this address. With tail-call merge: When a subroutine call is the very... Continue reading
Image
All I want for Christmas… is to thank you all for your confidence in iSYSTEM and iSYSTEM products! The past year was demanding – you all know – but we used the chance and put all our might in developing a new generation of products! Highlights of the year 2009: iC5000 On-Chip analyzer: one hardware platform for many different processors NEW! iC5000 now supports Power Architecture, TriCore and XC2000 GOEPEL joint venture: Boundary Scan meets JTAG emulation Enhancements in winIDEA: new Plug-ins and API interfaces, Python 2.6. support included Preview 2010: Free 1-day workshop on isystem.connect, Tracing, Profiling and Code... Continue reading