Si4010-DK
10 Rev. 0.1
2.3. IDE Features
The IDE allows the following:
1. Download the OMF-51 linker output format (Keil BL51 linker output, for example) and match the source
code lines with the compiled file. This allows source code debugging, including variable va lue viewing, set-
ting breakpoints, single-stepping, etc. Note that the output of the Keil LX51 linker is not understood by the
IDE.
2. Download the IntelHEX file for the application. When using th e IntelHEX file the source code debug gin g is
not available. Th e user can set a br ea kp oin t fo r a specific code address by going through th e
Debug Breakpoints (Alt+B) menu item. The user can also single-step through the disassembly of the
loaded code.
3. Setting at least 4 breakpo ints with a possible maximum of 8. The actual n umber of breakpoint s available is
determined by the IDE from the factory setting of the chip.
4. Single-stepping through the disassembly of the code. If the OMF file is loaded, the single-stepping is
matched with the source code.
5. Viewing and changing variables, SFR registers, XREG registers, and the contents of both DATA/IDATA
RAM and CODE/XDATA RAM on the fly du ring deb ugging. When the changes are made by th e user in the
corresponding windows, the user must press the Refresh Values (Alt+R) button on the toolbar to update
the values in the device. Just changing values in the IDE will not automatically update them in the device.
2.4. IDE Debugging Session
The typical IDE debugging session consists of the following sequence:
1. Connect the IDE to the chip by hitting the Connect or invoking menu Debug Connect menu item.
2. Download the OMF file either by hitting the Download code (Alt+D) toolbar button or from the
Debug Download object code menu item. The latter also allows IntelHEX download, but without the
source code debugging capability.
3. After the code download, the device is automatically halted at address 0x0000 in CODE/XDATA RAM.
Then the user can se t bre a kp oin ts, single-step , an im ate, etc.
4. The user can hit the Reset (Ctrl+R) too lbar bu tton an y tim e the de vice is halted (n ot runn ing) . The inter na l
digital system level reset is invoked and the device goes through the boot sequence. The previously
loaded code by the user into the CODE/XDATA RAM is preserved and the device is halted at the address
0x0000 of CODE/XD ATA RAM.
5. When a bug is found, the user can download a new OMF file whenever the device is halted. There is no
need to disconnect the device from the debug chain or to hit reset. The download, item 2 above, will auto-
matically reset the device after the OMF/IntelHEX new code download is finished. It is very important to
note that whenever the Disconnect toolbar button is hit or the Debug Disconnect menu item is
invoked, the debugging chain does the following:
• Enables the LED driver. During the debugging sessions the LED current driver is forcibly disabled.
• Clears all the breakpoints.
• Releases the device from halt and lets it run from the point when it was halted.
2.5. Important Note about Single-Stepping Over ROM Code
Single-stepping through the ROM code is disabled. Whenever the user encounters the call to the ROM API
functions he or she should use the Step Over (F10) toolbar button rather than the Step (F11) or Multiple Step
button.
Even though single-stepping through the ROM API function using the Step (F11) button works from the user’s
point of view, the CPU timing is modified and real-time performance is not guaranteed when using the Step (F11)
or Multiple Step buttons over the ROM API functions. Therefore, it is highly recommended to use the Step Over
(F10) toolbar button when stepping over the ROM API functions in IDE.
Single-stepping over the bMtp_Write() function using Step (F11) or Multiple Step buttons may yield
unpredictable results in the MTP (EEPROM) and is highly discouraged. One should use the Step Over (F10) tool,
run to cursor, or setting a breakpoint when debugging around the MTP write function.