Debugging is a key part in driver development. It helps to step into the code at runtime and analyze the memory stacks.
How to enable debugging ?
Debugging is handled by KITL (Kernel Independent Transport Layer) in Windows Embedded Compact. KITL makes the connection between host and target device and transports debugging information.To enable it, here are the main steps:
- Select the DEBUG configuration in your BSP project
- Open project properties from Solution Explorer. From the left pane, expand Configuration Properties node and select Build Options.
- Enable KITL and Enable Profiling.
- Ensure that ship build is not checked.
- Disable "CPGMAC Ethernet" driver from catalog (incompatible with Kitl)
- Save and rebuild the image.
At startup, hit space to enter EBOOT menu when asked to (from the serial debug line UART0):
BOOTLOADER: b# total sectors:1DD77C1 BOOTLOADER: b# sec/fat: 3B9F BOOTLOADER: b# hidden sec: 1 BOOTLOADER: FileIoInit() initializing data structures. BOOTLOADER: FileIoReadNextSectors EOF BOOTLOADER: FileIoReadNextSectors EOF BLReadBootCfg returns error WARN: Boot config wasn't found, using defaults INFO:LCD display configured INFO:LCD resolution 800x480 INFO:Boot setting: 0x18 INFO:Boot setting: Using SDCard INFO:PRM_RSTST: 0x00000020 7255c288 d6a2 -> 88 c2 55 72 a2 d6 7255c288 d8a2 -> 88 c2 55 72 a2 d8 Hit space to enter configuration menu [468] 5... Hit space to enter configuration menu [1468] 4... Hit space to enter configuration menu [2468] 3... -------------------------------------------------------------------------------- Main Menu -------------------------------------------------------------------------------- [1] Show Current Settings [2] Select Boot Device [3] Select KITL (Debug) Device [4] Network Settings [5] SDCard Settings [6] Set Device ID [7] Save Settings [9] Enable/Disable OAL Retail Messages [a] Select Display Resolution [b] Select OPP Mode [c] Enable clean registry boot [0] Exit and Continue Selection:Select menu number 2 and then select "Internal EMAC". Finally select 0 to exit and continue:
-------------------------------------------------------------------------------- Main Menu -------------------------------------------------------------------------------- [1] Show Current Settings [2] Select Boot Device [3] Select KITL (Debug) Device [4] Network Settings [5] SDCard Settings [6] Set Device ID [7] Save Settings [9] Enable/Disable OAL Retail Messages [a] Select Display Resolution [b] Select OPP Mode [c] Enable clean registry boot [0] Exit and Continue Selection: 2 -------------------------------------------------------------------------------- Select Boot Device -------------------------------------------------------------------------------- [1] Internal EMAC [2] NK from SDCard FILE [3] NK from eMMC FILE [0] Exit and Continue Selection (actual NK from SDCard FILE ): 1 Boot device set to Internal EMAC -------------------------------------------------------------------------------- Main Menu -------------------------------------------------------------------------------- [1] Show Current Settings [2] Select Boot Device [3] Select KITL (Debug) Device [4] Network Settings [5] SDCard Settings [6] Set Device ID [7] Save Settings [9] Enable/Disable OAL Retail Messages [a] Select Display Resolution [b] Select OPP Mode [c] Enable clean registry boot [0] Exit and Continue Selection: 0
You should see the boot process going on and end with several BOOTME message broadcasts:
+Cpsw3gInit(0x4a100000, 0x00000001, 0x8feffedc) v0.3 g_cpsw3g_reg_base = 0xb0500000 Phy_init: Auto negotitation completed Cpsw3gInit, wait link up on mac port:1. link up on port 1, speed 100, full duplex -Cpsw3gInit INFO: Boot device uses MAC 88:c2:55:72:a2:d6 INFO: *** Device Name LNI33X-41686 *** InitDHCP():: Calling ProcessDHCP() ProcessDHCP()::DHCP_INIT Got Response from DHCP server, IP address: 192.168.200.138 ProcessDHCP()::DHCP IP Address Resolved as 192.168.200.138, netmask: 255.255.255.0 Lease time: 3600 seconds Got Response from DHCP server, IP address: 192.168.200.138 No ARP response in 2 seconds, assuming ownership of 192.168.200.138 +EbootSendBootmeAndWaitForTftp Sent BOOTME to 255.255.255.255 !CheckUDP: Not UDP (proto = 0x6) Sent BOOTME to 255.255.255.255 Sent BOOTME to 255.255.255.255The target is now looking for a host to start debugging. From Visual Studio, use the "Attach device" button to detect remote targets:
A open shall show up and detect the remote device automatically.
[First time only] Double click on the target device in the popup window.
Visual Studio should now start to download the compiled binary on the target device. Once done, the debugging will start.
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.