Search

Technical Discussion Group Forum

This forum is provided for user discussion. While Beacon EmbeddedWorks support staff and engineers participate, Beacon EmbeddedWorks does not guarantee the accuracy of all information within in the Technical Discussion Group (TDG).

The "Articles" forums provide brief Articles written by Beacon EmbeddedWorks engineers that address the most frequently asked technical questions.

To receive email notifications when updates are posted for a Beacon EmbeddedWorks product download, please subscribe to the TDG Forum of interest.

TDG Forum

PrevPrev Go to previous topic
NextNext Go to next topic
Last Post 26 May 2004 11:31 AM by  mikee@logicpd.com
WinCE on the board hangs if Platform Builder is shutdow...
 7 Replies
Sort:
You are not authorized to post a reply.
Author Messages
shahjayesh
New Member
New Member
Posts:


--
19 May 2004 06:58 PM
    hi,

    I created a release build for the "LOCE_A400_REL_101_Win32(WCE ARM4I) Release" configuration. Downloaded the same to the board via KITL throught Target "Download/Initialize" menu in the Platform Builder. Once downloaded I give the source /dev/eeprom command on the losh prompt. This cause CE to boot and consequently Platform builder goes into a debug mode. If I now disconnect the ethernet cable from the board or stop the debugger in Platform Builder the WinCE on the board hangs. It just shows an hour glass for the mouse cursor and stays that way.

    Not sure if this is a WinCE problem, board issue or a combination of all and how to resolve it. To put it in brief the board is tied to my desktop cause I can't unplug the ethernet cable and take it anywhere.
    mikee@logicpd.com
    New Member
    New Member
    Posts:


    --
    20 May 2004 01:35 PM
    shahjayesh,

    This is probably perfectly normal. The when the Windows CE kernel is connected to a debugger, there isn't a clean way for the kernel to stop debugging. So, most likely the kernel is hung waiting for some response from Platform Builder that will never come.

    I've seen this happen all the times on all sorts of different Windows CE products. Not to worry at all.

    Regards,
    --mikee
    shahjayesh
    New Member
    New Member
    Posts:


    --
    20 May 2004 02:25 PM
    Mikee,

    I was inclined to believe that was the case. But then how do I get the device to disconnect cleanly from my PC(Platform Builder). Cause I was hoping to demo the board to a group in the company but with it tied to my PC for running it's quite limiting.

    And I'm trying to do the demo image as suggested by Aaron.

    Thanks,
    Jay
    mikee@logicpd.com
    New Member
    New Member
    Posts:


    --
    20 May 2004 02:40 PM
    shahjayesh,

    It depends on what you want to demonstrate. Personally, I would use Platform Builder until you've got an image that you want to use, then build it for flash and use LoLo to store it there. Then follow the instructions in the LogicLoader's user guide on how to use a "LOLO" boot script stored in the device's serial eeprom to automatically launch your CE image at boot time. Then you can take it wherever you want.

    If you need connectivity to the device, include the networking components and the 91C111 Ethernet driver. You can set the IP address via DHCP or you can assign it something static via that driver's registry file. Then, wherever you want your demonstration to happen, plug in the device and Telnet to it over a network or via a cross-over cable.

    As another option, you can include the USB function driver and ActiveSync. Then, if you need to get on the device, all you need is a laptop and a USB cable.

    Note the above two suggestions assume you need more access to the device than the touch screen and software input panel offer.

    The main point is that the device needn't be tied to your PC at all. That's what flash and relocation images are for.

    Write back if you have more questions.

    --mikee
    shahjayesh
    New Member
    New Member
    Posts:


    --
    25 May 2004 12:24 PM
    Michael --

    Thank you for the response. I tried to download the NK.BIN file to the board. Can you tell me if the Target / Download menu option under Platform Builder is more correct than using load /tftp/<host ip adress>/NK.BIN to download the file to the RAM before I burn it. I tried the Target / Download method and then executed the burn command. Burn on executing said its burning at address 0x00100000. Now I don't think that its the correct address. Cause from your LogicLoader Addendum(.pdf) file the address for BoLo is from 0x00000000 to 0x00400000. And then I updated the script on the eeprom to read "LOLOexec.......<parameters>. And on reseting the board it boot LoLo and displayed my script from the eeprom but didn't boot CE. So now I'm trying to download using the load /tftp/..... method. But not sure if that's correct cause it seems to be taking too long to download a 11MB bin file. Its been on for the past half hour and is only 20% done!!!
    mikee@logicpd.com
    New Member
    New Member
    Posts:


    --
    25 May 2004 02:52 PM
    shahjayesh,

    Either download method should work fine. The Platform Builder download will probably be a bit faster though

    The correct address is whatever gets printed out by LoLo as that is determined from the actual nk.bin file. Please note however, the burn address is _not_ necessarily the start address of the image. That is to say, the address of the image's first instruction is most likely _not_ at the very begining of the image. Most of the time, the address of the first instruction is found 0x1000 bytes above the first byte of the image. In your case, your boot script should be something like:

    exec 0x00101000 - .....

    Also note, after the download completes, LoLo will print out the start address of the image. Look for it and you should be fine.

    To summarize, you should be seeing something like:

    losh> burning xx bytes from xxx to 0x00100000
    losh> ......
    losh> burn good, start address 0x00101000

    Note, I'm not in my office right now, so the above order might not be exact. The start address might get printed out as soon as the download starts. Either way, that's the address that you want to pass to exec.

    Best regards,
    --mikee
    shahjayesh
    New Member
    New Member
    Posts:


    --
    25 May 2004 04:09 PM
    Michael --

    Yep the KITL download works much faster. And I couldn't get the load /tftp/..... to work at all. I did get the image downloaded and burned. And it boots fine just like you said once I give it the correct start address. And then I tried to download an application using Microsoft eMbedded VC++ 4.0. The KITL transport which was working earlier with the same WinCE image now doesn't respond. This is the boot string I had used....

    exec 0x00100000 - dbg_serial:A400_UART:dbg_enet:91C111:dbg_enet_base:0x70000000:rtc:rtc_a400_int:share_eth:1:dbg_enet_irq:0x00000007

    Since it didn't have the kitl:true parameter I added the same and tried this string but then WinCE doesn't boot at all!!!!

    exec 0x00100000 - dbg_serial:A400_UART:dbg_enet:91C111:dbg_enet_base:0x70000000:rtc:rtc_a400_int:share_eth:1:kitl:true:dbg_enet_irq:0x00000007

    The Tera Term window shows Enabling KITL Transport and doesn't go any further when my boot string had kitl:true. I verified that WinCE build configuration has the check box Enable KITL checked.

    Thanks,
    Jay.
    mikee@logicpd.com
    New Member
    New Member
    Posts:


    --
    26 May 2004 11:31 AM
    Jay,

    The KITL transport will _only_ work if you are connected to Platform Builder. That means that you need to explicitly initiate a connection to your device from Platform Builder. Either through the "download, jump to image" sequence, or just a "jump straight to image" request.

    You can _not_ use both KITL and the the stand-alone Ethernet driver. They are mutually exclusive because there is only one Ethernet chip. If you try starting KITL, and then load the lpd_91C111_SmSC_Async driver, your system will hang because the Miniport driver will start receiving all of the packets that the kernel is waiting for. Unfortunately, the kernel is really dumb when it comes to debugging. If it doesn't get what it wants, it will hang.

    If you want to use the stand-alone driver (which I recommend), you need to use a different connection to your eMbedded Visual tools. If you open up the "Configure Connection Manager" dialog within eVC++, you will see several different choices for communication protocols. Choose ActiveSync and TCP/IP if you don't want to have Platform Builder running.

    Then, include the ActiveSync component in your CE image along with the USB-Function device driver (lpd_LH7A400_USBF_rel_100). Read that device driver's registry file as it will tell you all of the components needed to ensure ActiveSync works.

    Make sure you have the latest version of ActiveSync installed. I'm using 3.7.1. You can freely download it from the Microsoft website.

    Then, download, burn, and boot your device. Once it boots, plug in the USB cable and your host should detect it. From there, you can surf the device, etc.

    Now, inside eVC++, open up the "Tools => Configure Platform Manager" dialog box. Select the default device, or whatever connection name you are using and hit the "Properties" button.

    For Startup Server, choose ActiveSync.
    For Transport, choose either ActiveSync or TCP/IP transport for Windows CE.

    Hit the Test button.

    eVC++ will use ActiveSync to detect your device. The two devices will trade some information back and forth, and then switch over to using TCP/IP for communication.
    You are not authorized to post a reply.