小弟出学WinCe,在pb4.2中做了一个支持web services的wince,download没有任何问题,内存开始分配了64,提示不够..分配了96,又不够分配了128,还是不够!
提示错误如下,恳请高手指点迷津!!!!!!
The specified CE boot image could not be loaded.
Your virtual machine may not have enough RAM allocated.Try increasing the RAM allocation(if you are using platform Builder open the Configure Remote
Services dialog,choose the Emulator Download service,and click the configure button).
历经半个月时间,终于制作出一个可以调试ARM指令的wince5的模拟器,有两个贴子很有参考价值
http://blogs.msdn.com/barrybo/archive/2006/08/21/710908.aspx
http://forums.microsoft.com/msdn/showpost.aspx?postid=468594&siteid=1&sb=0&d=1&at=7&ft=11&tf=0&pageid=0
另外就是Emulator_500.exe是用来加载x86模拟器的,这是我前段时间一直没成功的原因,微软的工程师barrybo帮我指出此错误。
大家最好用vs2005自带的emulator1.0或到微软站点下载emulator preview 2.0
搭建开发平台,处理器采用ARM架构,先尝试使用WinCE,所以安装了platform builder,并且下载了微软提供的
ARMV4I BSP for Windows CE 5.0 的BSP
http://www.microsoft.com/downloads/details.aspx?FamilyID=474b03a6-e87d-455d-bc16-b8cf18ef39b4&DisplayLang=en
成功用pb编译出了一个win CE, 生成了nk.bin,接下来想在PC上仿真,可是遇到一个问题,在PB当中直接仿真,提示
"Your virtual machine may not have enough RAM allocated"
很是郁闷,在网上一番搜索,依稀有了一些答案
http://blogs.msdn.com/mikehall/archive/2006/03/01/541634.aspx
引用内容
I am attempting to work with this emulator on platform builder 5.0
I followed the procedure describded in your tutorial where you use x86 emulator. But when I attach device, a error windows says "Your virtual machine may not have enough RAM allocated". But in the "target device connectivity options" I am using max memory (256 MB)!!
What do you think about?
遇到和我一样的问题,作者回答说
引用内容
You won't be able to boot and run the ARMV4I emulator from Platform Builder, only from Visual Studio 2005 - if you want to use an emulator from Platform Builder then you should use the existing x86 based Emulator that ships with Windows CE 5.0.
The ARMV4I emulator is designed to allow application developers to target an emulator from Visual Studio 2005.
看来pb当中的模拟器是针对X86结构的,不能直接仿真ARM
最后一个留言给了一个链接,里面写了针对此问题的解决方法
http://blogs.msdn.com/barrybo/archive/2006/03/15/552045.aspx
引用内容
Using the DeviceEmulator ARMV4I BSP for Windows CE 5.0 from Platform Builder
If you have downloaded the BSP from http://www.microsoft.com/downloads/details.aspx?FamilyID=474b03a6-e87d-455d-bc16-b8cf18ef39b4&displaylang=en and want to use it from Platform Builder, read on...
1) Make one small bug fix, to platform\deviceemulator\src\bootloader\eboot\main.c - open the file, and replace the "#if 1" with "#if 0". The code under "#if 1" is a hack for getting the following steps to work if you're on a LAN that does not have a DHCP server... I forgot to disable the hack before releasing the soures. :-(
2) Install the Virtual Switch driver on the Windows machine. The download point is http://www.microsoft.com/downloads/details.aspx?FamilyID=dc8332d6-565f-4a57-be8c-1d4718d3af65&displaylang=en since it does not ship with VS. Note that this adds one more piece of unsupported software to the mix.
3) Use PB's "Build OS" menu and pick "Open Release Directory" to open a command window
4) In that command window, do the following:
cd /d "%programfiles%\microsoft device emulator\1.0
DeviceEmulator.exe %_FLATRELEASEDIR%\eboot.nb0 /n /c /video 640x480x16
5) Switch back to the PB window. Pick "CE Device" as the deployment target (from the dropdown combobox in the middle of the PB window)
6) Use PB's "Target" menu and pick "Connectivity Options". Wait for the "Target Device Connectivity Options" dialog to appear. Note that it may come up but not get input focus... look for it in the system tray.
7) In that dialog, pick:
Target Device - CE Device
Download - Ethernet
Transport - Ethernet
Debugger - KdStub
8) Now, click the "Settings" button beside either of the "Ethernet" entries (they bring you to the same dialog). You should see a name like "DEVICEEM11471" appear in the "Active Devices:" list. Pick it, and "OK" your way out of the whole "Connectivity Options" dialog.
9) Use PB's "Target" menu and pick "Attach to Device". PB should begin downloading nk.bin into the emulator over ethernet. You have full KITL-over-ethernet, just like you would have to an ethernet-based hardware device.
After you have done this once, the "DEVICEEM11471" name should stay the same from run to run. So on subsequent runs, you should only need to follow steps 3, 4, and 9. The emulator name is generated by the CE bootloader and is based on the IP address it aquires, so it remains stable over time.
That's it! The emulator command line you pass can be anything you want, as long as it includes "/n" to enable the CS8900 network emulation code, which is what KITL-over-ethernet will use.
Behind the scenes, eboot.nb0 is the name of the CE bootloader for the Samsung SMDK2410 board. Normally, you burn eboot.nb0 into flash on the board. Then whenever you power on the board, it broadcasts "BOOTME" packets on the network until a PB discovers it and downloads the .bin file and launches it.
In the DeviceEmulator case, we "burn" eboot.nb0 onto the emulated board by just passing it as the ROM image filename.
Barry
尚未尝试,回头继续 ;)
详情回复
发表于 2008-7-23 10:31
You have propably set the Download and Transport options to 'Emulator' in the 'Target Device Connectivity Opions' and ar trying to run a ARM image designed for the new Device Emulator.
Platform Builder 5.0 does only support its own x86 based emulator. The new ARM Device Emulator (shipped with VS2005) is not supported for OS level (kernel) debugging.
If you download an ARM image to the x86 emulator - it won't boot at all and does not start any of the kernel debugging services.
To get this working:
Add the BSP 'Emulator: x86' to your OS design and build the release configuration.
Now, the 'Attach Device' command sould download the newly created x86 OS file to the x86 emulator.
引用内容
I am attempting to work with this emulator on platform builder 5.0
I followed the procedure describded in your tutorial where you use x86 emulator. But when I attach device, a error windows says "Your virtual machine may not have enough RAM allocated". But in the "target device connectivity options" I am using max memory (256 MB)!!
What do you think about?
遇到和我一样的问题,作者回答说
引用内容
You won't be able to boot and run the ARMV4I emulator from Platform Builder, only from Visual Studio 2005 - if you want to use an emulator from Platform Builder then you should use the existing x86 based Emulator that ships with Windows CE 5.0.
The ARMV4I emulator is designed to allow application developers to target an emulator from Visual Studio 2005.
引用内容
Using the DeviceEmulator ARMV4I BSP for Windows CE 5.0 from Platform Builder
If you have downloaded the BSP from http://www.microsoft.com/downloads/details.aspx?FamilyID=474b03a6-e87d-455d-bc16-b8cf18ef39b4&displaylang=en and want to use it from Platform Builder, read on...
1) Make one small bug fix, to platform\deviceemulator\src\bootloader\eboot\main.c - open the file, and replace the "#if 1" with "#if 0". The code under "#if 1" is a hack for getting the following steps to work if you're on a LAN that does not have a DHCP server... I forgot to disable the hack before releasing the soures. :-(
2) Install the Virtual Switch driver on the Windows machine. The download point is http://www.microsoft.com/downloads/details.aspx?FamilyID=dc8332d6-565f-4a57-be8c-1d4718d3af65&displaylang=en since it does not ship with VS. Note that this adds one more piece of unsupported software to the mix.
3) Use PB's "Build OS" menu and pick "Open Release Directory" to open a command window
4) In that command window, do the following:
cd /d "%programfiles%\microsoft device emulator\1.0
5) Switch back to the PB window. Pick "CE Device" as the deployment target (from the dropdown combobox in the middle of the PB window)
6) Use PB's "Target" menu and pick "Connectivity Options". Wait for the "Target Device Connectivity Options" dialog to appear. Note that it may come up but not get input focus... look for it in the system tray.
7) In that dialog, pick:
Target Device - CE Device
Download - Ethernet
Transport - Ethernet
Debugger - KdStub
8) Now, click the "Settings" button beside either of the "Ethernet" entries (they bring you to the same dialog). You should see a name like "DEVICEEM11471" appear in the "Active Devices:" list. Pick it, and "OK" your way out of the whole "Connectivity Options" dialog.
9) Use PB's "Target" menu and pick "Attach to Device". PB should begin downloading nk.bin into the emulator over ethernet. You have full KITL-over-ethernet, just like you would have to an ethernet-based hardware device.
After you have done this once, the "DEVICEEM11471" name should stay the same from run to run. So on subsequent runs, you should only need to follow steps 3, 4, and 9. The emulator name is generated by the CE bootloader and is based on the IP address it aquires, so it remains stable over time.
That's it! The emulator command line you pass can be anything you want, as long as it includes "/n" to enable the CS8900 network emulation code, which is what KITL-over-ethernet will use.
Behind the scenes, eboot.nb0 is the name of the CE bootloader for the Samsung SMDK2410 board. Normally, you burn eboot.nb0 into flash on the board. Then whenever you power on the board, it broadcasts "BOOTME" packets on the network until a PB discovers it and downloads the .bin file and launches it.
In the DeviceEmulator case, we "burn" eboot.nb0 onto the emulated board by just passing it as the ROM image filename.