Sunday, November 22, 2009

.NET Micro Framework 4.0 for Blackfin BF518F FMC

Avnet just released a new development kit based on Analog Devices BF518F that incorporates a .NET MicroFramework 4.0 port developed by Adeneo Embedded.
Adeneo Embedded, which is engaged in .NET MicroFramework development since 2006 was selected by Analog Devices and Avnet for the development of the reference port, but also as a long term partner for supporting OEMs willing to use this development kit to jumpstart the design of their embedded device based on .NET Micro Framework.
With more than 10 years of experience in development with Microsoft Embedded technologies, Adeneo Embedded is one of the Worldwide leading System Integrator helping OEMs securing their design with Windows Embedded, Windows Mobile or .NET Micro Framework technologies. With this new strategic long term partnership with Analog Devices and Avnet, and as one of the first company worldwide providing to the market a .NET Micro Framework 4.0 port.

For more information about the Avnet BF518F FMC dev.kit, please check Avnet dedicated page, or look at the following video.

For support or help with the development of .NET MicroFramework based product, please contact our sales team: sales@adeneo-embedded.com

-Nicolas

Tuesday, November 17, 2009

Mobile Marketplace opens for 6.0 and 6.1

Microsoft finally opens its Market place for Windows Mobile applications to the 6.X mobile devices family.

http://marketplace.windowsphone.com/Default.aspx
- Nicolas

Thursday, November 5, 2009

Industrial Automation with Windows Embedded

With a single platform, one development environment, and real-time everywhere, Windows Embedded offers a reliable, flexible, connected, and cost-efficient foundation for industrial automation Learn during this presentation how the various Windows® Embedded operating systems can be used by OEMs to create industrial embedded devices. We will help you identify the key challenges for an Industrial Automation project and learn about available solutions, from the market trends, total cost of ownership and technical standpoints.

Online Webinars :
  • French : November 17th 2009 10:00AM - 11:00AM (register)
  • English : February 19th 2010 9:00AM - 11:00AM GMT (register)

Roadshow :
  • Columbus, OH : October 21, 2009 8:00AM – 1:00PM (register)
  • Boston, MA : October 27, 2009 8:00AM – 1:00PM (register)
  • Mountain View, CA : November 12, 2009 8:00AM – 1:00PM (register)
  • Houston, TX : November 18, 2009 8:00AM – 1:00PM (register)
  • Paris, France : December 16, 2009 9:00AM - 3:00PM (register)

- Nicolas

Tuesday, November 3, 2009

Microsoft AppFab 2009 contest

Microsoft Market Place is now open, and Microsoft wants to help developers to publish their applications in this store.
The French Microsoft entity organized a contest for developers, ending by November 31th 2009. Lots of prizes to win so check out the details at https://www.appfab09.fr/

- Nicolas

Monday, November 2, 2009

USB Function profile switcher

The USB Function driver under Windows CE and Windows Mobile, allows user to change on the fly the loaded profile. It can be used as a Serial or a Mass storage device. The Serial profile (or NDIS on some Windows Mobile devices) is used to do data synchronization through ActiveSync. The Mass storage on its side allows the user to see the device internal storage as a standard USB storage device, from the host device.
To switch between the two modes, some Windows Mobile device manufacturer provides application, usually located in the Settings/Connections panel. But for Windows CE user it have to be implemented.

By calling a specific IoControl of the USB Function driver, you can tell it to load a different profile. The available profiles are listed in the registry in [HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers] and the current active profile is specified in the DefaultClientDriver value in this registry node.


void SwitchUSBFunctionProfile(BOOL bEnableActiveSync)
{
HANDLE hUSBFn;
UFN_CLIENT_INFO info;
DWORD dwBytes;

// Open the USB function driver
hUSBFn = CreateFile(USB_FUN_DEV, DEVACCESS_BUSNAMESPACE,
0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,
NULL);

if(bEnableActiveSync)
{
// Enable USB Function profile for activesync
swprintf(info.szName, _T("Serial_Class"));
DeviceIoControl(hUSBFn, IOCTL_UFN_CHANGE_CURRENT_CLIENT,
info.szName, sizeof(info.szName), NULL, 0, &dwBytes, NULL))
}
else
{
// Enable USB Function for mass-storage
swprintf(info.szName, _T("Mass_Storage_Class"));
DeviceIoControl(hUSBFn, IOCTL_UFN_CHANGE_CURRENT_CLIENT,
info.szName, sizeof(info.szName), NULL, 0, &dwBytes, NULL);
}
}

The defines values are located in %_WINCEROOT%\PUBLIC\COMMON\OAK\INC\usbfnioctl.h
- Nicolas

Monday, October 26, 2009

Get an USB Flash key booting DOS

While using Windows Embedded CE or Windows Embedded Standard, you need to boot your device under DOS, in order to format, create partition on the storage, or to use loadcepc to launch your runtime image. Nowadays, floppy disk readers are vintage hardware that you probably don't have anymore, and more over Floppy disk are covered of dust and you are afraid to use them. In this case you have to boot your device using a USB Flash disk, thanks to the fact that most of the actual BIOS do support them.

Tools
- HP USB Disk Storage Format Tool (http://hp-usb-disk-storage-format-tool.software.informer.com/)
- Winimage (http://www.winimage.com/download.htm)
- DOS floppy disk image (get from Windows Embedded CE 6 CEPC BSP)
%_WINCEROOT%\PLATFORM\CEPC\SRC\BOOTLOADER\DOS\BOOTDISK\DISKIMAGE\cepcboot.144

Extract the DOS image
For the first step we have to extract from the cepcboot.144 floppy disk image, the files for DOS. Using Winimage, open the image file, select all the files and go the Image->Extract. Enter c:\Temp\FloppyContent as a folder for the extracted files, and select "Extract with pathname" option.


Format the USB Flash disk
Plug the USB disk and wait for USB device availability notification.
Using the HP USB Disk tool, select the USB device in the list box, use FAT as File System, Select Create a DOS startup disk, choose "using DOS system files located at", and choose the folder used in winimage for the extraction.

Hit Start and voila your device is ready to boot dos. Then you can add the tools you need to prepare the device to boot...

Note
I have identified some USB devices that, are not compatible, cannot be used for booting x86 devices, but did not find the link between them.
This tutorial should also work with Compact Flash devices and SDCard (miniSD, microSD) devices.

Thanks to Eric for his help.
-Nicolas

Network Projector demonstration

Joe Broxson, from Adeneo Embedded, is demonstrating the network projector feature of Windows Embedded CE on OMAP3530 based Gumstix Overo device.
Check out the video at http://www.youtube.com/watch?v=y3c5TZVSFzY
- Nicolas

Tuesday, October 13, 2009

Trick my Windows Mobile device [Part 1]

Change the startup splash screen :

Get bored by the Windows Mobile splash screen display at you Windows Mobile device startup ... here is the solution to customize it. Just pick up you favorite picture, adjuste it to your Windows Mobile device screen resolution, and save it to a png file (mywelcomehead.png).

Then copy it to the Windows folder on your device and then adjust the following keys in the registry :
[HKLM\Software\Microsoft\Splash Screen]
"CarrierBitmap"="\windows\mywelcomehead.png"
"MSBitmap"="\windows\mywelcomehead.png"
And that's it, restart your device and the nice picture shows up :-)

More for HTC users :
For HTC, you can also change the startup animation, by provisioning on your device and in the registry an animated gif file, just set the following registry key.
Sample below for an animated gif named myanimation.gif and located in \Windows\
[HKLM\Software\HTC\HTCAnimation]
"StartupGif"="\Windows\myanimation.gif"
WARNING : As usual, use this information at your own risk.

- Nicolas

Post Mortem Debug of Windows Mobile with Visual Studio 2005

We saw on the previous post on Post Mortem debugging, the way to open KDMP files with WinDbg. But those system dump files can also be loaded using Visual Studio 2005 (and higher).

First step : Configure your device
Just follow the instructions in the previous post for the configuration of you Windows Mobile device (registry configuration to specify the location of the kdmp files).

Second step : Locate and copy the kdmp files
Locate the kdmp files on your device and copy it to your Development machine.

Third step : Open the kdmp file and run debugger
From VS2005, go to File -> open project/solution, and select the kdmp file.

Then go to Debug -> Start menu or hit F5 key, this will launch the debugger locally. The exception is then catch, and the assembly source code is shown.

At this time, the debugger is not able to make the link between the binary and the source code, as the symbols are not set. For this show the modules by going in Debug -> Windows -> Modules menu (screen must looks like the screen shot above). Select the module on which the exception occurs in our case it MemException.exe, right click on it and select the "Load Symbols" popup menu.
Provide the path to the pdb files and TAADAAA the source code is displayed.



Have a good debugging then...

- Nicolas

Post Mortem Debug under Windows Mobile with WinDbg

Under Windows Mobile, DrWatson is watching you (... in fact your applications) and identify while they crashe. This is only visible when exceptions occurs, showing memory error reports. At this time a memory dump of the stack and process context is done and stored in a KDMP file located by default in \Windows\System\DumpFiles. This type of files can be then loaded inside the WinDbg application used for desktop application debugging.



Required Tools :
Before starting any debugging you need to get the following tools :
- WinDbg from Microsoft available here (Install Debugging Tools for Windows 32-bit Version).
- Remote Registry Editor provided with Visual Studio 2005.

Sample Application :
An easy way to get memory exceptions, is by accessing unreferenced pointer, we do illustrate the next step of this article with the very simple application code below.

// MemException application
//

#include "stdafx.h"
#include <windows.h>
#include <commctrl.h>

void PrintHello ()
{
OutputDebugString(L"Hello World");
}

void GenerateNullPointerException ()
{
BYTE *pByte = NULL;
*pByte = 0xFF;
}

int _tmain(int argc, _TCHAR* argv[])
{
PrintHello ();
GenerateNullPointerException();

return 0;
}


First Step : Locate the kdump files
By default the kdump files are located in \Windows\System\DumpFiles folders and are deleted after the error reporting dialog box is closed. So to get those files, you have to copy them while the dialog box is displayed, but unfortunately those files are in readonly mode.
Using the registry you can change the file location folder for the kdump files.
[HKEY_LOCAL_MACHINE\System\ErrorReporting\DumpSettings]
"DumpDirectory"="\Temp\DumFiles" (string entry)
"DumpEnabled"=dword:1 (dword entry)

Second step : Copy the kdump files
While dump files are move to \Temp\Dumpfiles, as shown in the example above, files are not accessed as read only and can then by copy to your desktop hard drive, through active sync.
Note : Don't close the warning message box, before doing the copy as DrWatson is removing the files right after.

Third Step : Open the kdump files
The kdump files are generated by Dr Watson, and can be interpreted by WinDbg, usually used for Windows Desktop debugging.
Launch the WinDbg application and get to File -> Open Crash Dump menu.
Select the kdmp file retrieve from your device.



Then in the command line area of Windbg, launch the command :
!analyze -v

If you look carefully to the output, you will see that the symbols are not loaded, as we did not configure the path to the pdb files (debug information files) of our binary ("Symbols can not be loaded because symbol path is not initialized."). So we have to provide the path to the PDB files, by going to File -> Symbol File Path menu and by adding the path to our pdb files. The PDB files are always located in the build folder, where the .exe or .dll file is generated. DO NOT FORGET to check the reload option located on the bottom left of the Symbol Search Path window. And then validate.

At this time, WinDbg is able to locate the line of code in the application where the exception occurs. When you just have the pdb file but not the source files, WinDbg will not shows up any source code, but will give you the exact location in the source code.

FOLLOWUP_IP:
MemException!GenerateNullPointerException+14 [d:\nbesson\projects\vs2005\memexception\memexception\memexception.cpp @ 16]
00011028 0030c2e5 strb r3, [r2]


Known Issues with symbols
Sometimes, WinDbg is unable to find the debug files to locate the source code during the analyze of the dump file. In this case you have to make sure that files hasn't been renamed during copy on the device.
Use the following command to get the link to the source code :
- .sympath : to check the symboles folder, if missing folder go to "File->Symbol File Path" or hit Ctrl+S, add the folder and do not forget to reload
- .reload : to reload symbols
- !sym noisy : to enable verbosity on symbol files access
and finaly if after all those steps the symbol files is not loaded, use the .reload /f <binary file name> to force the symbols loading for this specific binary.

Now enjoy debugging !

-Nicolas

Monday, October 12, 2009

Windows Mobile Network Analyzer PowerToy


Checking network capabilities and configuration of a Windows Mobile device is always tricky. You are used to do it under Windows, but same tools are not user friendly on a touch device.

This week end, I had to check the network capabilities of my Windows Mobile 6.1 device, to get the Bluetooth PANU working. I found the Windows Mobile Network Analyzer PowerToy from Microsoft website. This application check the Ip Configuration and the ping feature on the device like ipconfig and ping. A complete Log file is generated, providing the details on the network configuration.

This tool save my Sunday :-)

- Nicolas

Wednesday, September 23, 2009

Windows Embedded CE 6.0 R3


Microsoft announced at ESC East (Boston), that Windows Embedded CE 6.0 R3, an upgrade of the R2, will be publicly available on 10/2009.
One of the major improvement is the support of Silverlight to help developers to improve their user interfaces and then user experiences. Also in top of that, the gesture support has been added for the pleasure of the users.

All information and get ready for Windows Embedded CE 6.0 R3 on Microsoft website.
- Nicolas

Tuesday, September 8, 2009

Coming training sessions

Adeneo published the list of their next worldwide training sessions.

Windows CE:

  • Dallas,TX on Sept. 28th to Oct. 1st with a FREE Freescale i.MX25 view
  • Munich, Germany on Oct. 5th to Oct. 8th with a FREE TI OMAP35xx view
  • Boston, MA on Oct. 19th to Oct. 22nd with a FREE TI OMAP35xx view
  • Milano, Italy MA on Oct. 19th to Oct. 22nd with a FREE Atmel AT91SAM9263 view

Linux:
  • Paris, France on Sept. 28th to Oct. 1st with a FREE Freescale i.MX27 view

- Nicolas

Windows Embedded Standard 2011 (“Quebec”) CTP Available Now!

Article from Windows Embedded Standard blog by Shayna :

Have you been itching to get more information about what is coming next from the Windows Embedded Standard team? Well now is your chance! Earlier today we announced the release of a Community Technology Preview (CTP) for Windows Embedded Standard 2011 (this is the official product name of our next release that was code named “Quebec”).

To download the CTP simply go to http://connect.microsoft.com/windowsembedded and sign in with your Windows Live ID. If you haven’t previously participated in one of our CTPs, you will need to add the “Windows Embedded Standard” program to your Connection Directory. As you are playing around with the product please submit your bugs and suggestions using the Feedback forms on Connect, and you can chat with the rest of the community and members of our team on the MSDN forums specifically set up for Windows Embedded Standard 2011!

Unleash the power of Windows 7 technologies in Windows Embedded Standard 2011 using a solid platform that fits into existing customer infrastructure. To quote Kevin Dallas, general manager of Windows Embedded this “CTP empowers our worldwide ecosystem of OEMs, partners and developers to take advantage of the next generation platform’s enhanced Windows 7-based features and provide feedback, prior to its general release to manufacturing. We encourage the embedded community to take full advantage of the CTP’s availability and join in our excitement as we look ahead to the future availability of Windows Embedded platforms incorporating Windows 7 technologies.”

You’ll see lots more blog posts in the coming weeks covering various feature areas of Windows Embedded Standard 2011 – so stay tuned!


- Nicolas

Monday, August 17, 2009

Windows Embedded CE self pace training

Joe Broxon from Adeneo Corporation release few months from now a self pace training on Windows Embedded CE 6.0. This video has been realized during a training done at Microsoft.


- Nicolas

Windows Embedded web cast and videos

Joe Broxon from Adeneo Corporation just release new web casts on the Windows Embedded Standard technology.
The first three are webcasts, they are all 100 level, but are a good explanation of some of the other embedded technologies from Microsoft besides Windows Embedded CE. Here are the links:


- Nicolas

Friday, August 7, 2009

WES 2009 Installation Error

While installing Windows Embedded Standard 2009 you probably already experienced different errors.

  • Error 1:
    An error occurs, but no details are provided, and the system revert the complete installation of the tools. In this case it means probably that the WES Iso access run into time out, really plausible while installing the tools through a network share. In this case, burn the DVD and restart installation.
  • Error 2:
    After the tools installed, the installer is updating the content of the component repository. The repository is always located here \\device name\Repositories (where device name is the name of the host computer). This folder is a shared folder on the system and depending on the security settings on your computer this share can potentially write protected by default. For this reason installation tool is no capable to copy the files to the folder and you will have the following error message.









    To Fix this, simply change the share properties and it the retry button.
Hope this will helps you to install the tools :-)
- Nicolas

WES 2009 and WinPE scripting [updated]

Every time you use Windows Embedded Standard, you have to prepare the target hard drive to make it bootable and ready to receive the new generated WES image. In this case I'm using a customized WinPE 2.0 iso to boot the target device (tool retrieve from the Windows Automated Installation KIT or AIK).

Prepare Hard drive scripts :

  • diskpart.script : this script will remove the existing partitions of the drive 0, and create a new one of 800 MB (in my case to leave empty space for the EWF feature)
list disk
select disk 0
clean
create partition primary size=800
select part 1
assign letter=C
format fs=ntfs quick
active
list part
exit
  • prepdisk.bat : this script launch diskpart with the upper script in parameter, followed by bootsec to store the Windows XP boot sector.
@echo off
echo ---------------------------------------------------------
echo !!!!!!!!!!!!!!!!! READ THIS CAREFULLY !!!!!!!!!!!!!!!!!!!
echo.
echo You are ready to erase the content of your hardrive
echo.
echo Do you want to continue - Press Ctrl + C to quit
echo ---------------------------------------------------------
pause
echo ---------------------------------------------------------
echo Are you really sure ?
echo.
echo Continue or Quit now by pressing Ctrl + C
echo ---------------------------------------------------------
pause
diskpart /s .\diskpart.script
bootsect /nt52 c:
echo ---------------------------------------------------------
echo               ==== Disk Ready for WinPE ====
echo ---------------------------------------------------------
- Nicolas

Wednesday, July 22, 2009

SDK, DTK, DRK: WTF?!

Don't know the meaning .. check this out here

- Nicolas

Thursday, July 2, 2009

Change the Screen Rotation in your application

Windows Mobile devices allows user to rotate the screen orientation, on some devices, this rotation is automatically done while sliding keyboard is opened to provide the good orientation to user to get a chance to type text using the hardware keyboard. More advanced devices get an accelerometer and can automatically rotate the screen while the user physically rotate the device from portrait to landscape and vice versa.
Windows Embedded CE devices on their side can also have screen rotation enabled, but as they are usually for industrial purposes, this feature is not necessarily enabled.

On both version, when user have to do screen rotation the ChangeDisplaySettingsEx function is used. The sample code below shows up the steps to perform screen rotation.

 
BOOL RotateScreen(int iRotationAngle)
{
int iAngle;

// Check if rotation angle is a multiple of 90 degres
if ((iRotationAngle % 90) != 0)
{
return FALSE;
}

// Screen rotation is a bit field value
// 0 = 0, 1 = 90, 2 = 180, 4 = 270
iAngle = iRotationAngle / 90;
if( iAngle == 3 )
iAngle = 0x4;

//
DEVMODE devMode;
memset (&devMode, 0, sizeof (devMode));
devMode.dmSize = sizeof (devMode);
devMode.dmFields = DM_DISPLAYQUERYORIENTATION;

// Retrieve the supported screen rotation angles
if (DISP_CHANGE_SUCCESSFUL != ChangeDisplaySettingsEx(NULL, &devMode, NULL, CDS_TEST, NULL))
{
return FALSE;
}

// Check if required screen rotation is supported
if (iAngle == 0 || iAngle & devMode.dmDisplayOrientation)
{
memset(&devMode, 0, sizeof (devMode));
devMode.dmSize = sizeof (devMode);
devMode.dmFields = DM_DISPLAYORIENTATION;
devMode.dmDisplayOrientation = iAngle;

if (DISP_CHANGE_SUCCESSFUL != ChangeDisplaySettingsEx(NULL, &devMode, NULL, CDS_RESET, NULL))
{
return FALSE;
}
else return TRUE;
}

return FALSE;
}


Thanks to Alban for his help.

- Nicolas

State and Notifications Broker API

The State and Notification Broker API provide an easy way to get notified while system state changed or registry content changed. This API is available for both Windows Embedded and Windows Mobile operating systems, and works with a provider and client.

The Provider:
The provider create in registry one entry per state managed, and is in charge of the update of those entries when states changed. Usually system states are defined in HKEY_CURRENT_USER\System\State and HKEY_LOCAL_MACHINE\System\State, and user defined (or applicative) states are located in HKEY_CURRENT_USER\Software\State and HKEY_LOCAL_MACHINE\Software\State. The snapi.h header file defines most of the system states notifications for various system functionalities like Phone, Mails, SMS Appointment, Battery, Screen Rotation ... and custom entries should be managed by your own.

The Client:
The client register to a state defined in registry by the Provider, and get notified by the operating system while value changed. Different notifications mechanism can be used :
  • Application activation : can start a client application while registry content changed (or state changed)
  • Message Queue : signal a state notification through a Message Queue
  • Window message : signal a state notification via a Windows Message loop (WindowProc)
  • Callback : signal a state notification using a call back function

The client should register for state notification using one of the following function depending on the type of notification required (RegistryNotifyApp, RegistryNotifyWindow, RegistryNotifyCallback or RegistryNotifyMsgQueue). When state change notification is received the client should read the value using the regular regsitry functions access, or RegistryGetDWORD or RegistryGetString. While notification is no longer required, the client have to call RegistryCloseNotification to close the notification.

No specific action is required by the provider except to update the registry values while internal application transition should generate external state notifications.

You can find a usage sample in the Windows Mobile SDK sample source code of the Battery Statistic :
%ProgramFiles%\Windows Mobile 6 SDK\Samples\PocketPC\CPP\win32\battstat

- Nicolas

Tuesday, June 16, 2009

Windows Mobile Local Authentication PlugIn

The Local Authentication Plugin (LAP) is a way to identify the user of a mobile phone, while applications need special rights to access features or perform actions. Basically user is prompted for authentication through a password that he previously configure on his mobile. The default LAP provided by Microsoft (see below), is a single PIN password, but you can implement your own if you need.




LAP Implementation
A LAP is a signed DLL share the following entry points :
  • InitLAP : Call by the system to initialise the LAP while loaded.
  • DeinitLAP : Call while LAP is unloaded
  • VerifyUserStart : Call to start the GUI of the LAP
  • VerifyUser : Call to validate the user, with or without a GUI. This functions returns while the user has been authenticated successfully or fails. Multiple calls to this function can be done by the system. Options parameter specifies how the user have to be validated.
    • VU_NO_UI : while the system needs to validate the user, without displaying a window to the user.
  • VerifyUserStop : Call to destroy the GUI and clean up.
  • VerifyUserToTop : Call to bring to top the LAP Window.
  • LAPCreateEnrollmentConfigDialog : Used to display configuration window to configure the pass-phrase of the LAP

To implement your own LAP you can start from scratch or use the sample LAP provided with the Windows Mobile SDK :
  • for pocket PC : %ProgramFiles%\Windows Mobile 6 SDK\Samples\PocketPC\CPP\win32\LAP
  • for smart phone : %ProgramFiles%\Windows Mobile 6 SDK\Samples\Smartphone\CPP\win32\LAP
LAP Installation
The Local Authentication Subsystem (LASS) is in charge of the management of the LAP display and user validation.
To define a new LAP, add a new key in the registry :
[HKEY_LOCAL_MACHINE\Comm\Security\LASSD\LAP\myLAP]
"Dll"="myLAPDll.dll"

To select the current active LAP set the
[HKEY_LOCAL_MACHINE\Comm\Security\LASSD\LAP]
"ActiveLap"="myLAP"

LAP Configuration
The LAP Configuration should be done by the user through the Enrollment window accessible form the Parameter Menu using the Lock icon. In this window the user should be able to change its pass-phrase (or other if the LAP is not based on pass-phrase authentication).
For security reason this pass-phrase should not be saved in the registry as a clear string, but should be encrypted using a custom algorithm or the Windows MobileCryptoAPI.

Validate a User in your application
To check if user has been authenticated on the device you have two possibilities :
  • ValidateUser is a blocking call to the LASS service, and give a way to provide parameters to the LAP, like an AE Key (specific security policy id), options (like VU_NO_UI to check the user without prompting any Window). Functions will return only after user authentication.
APP A;
HWND hMyWindow;

VerifyAndCallSecureFunction()
{
DWORD LastError;
GUID AEKeyForFoo = ...;
if (VerifyUser(&AEKeyForFoo,"App A",hMyWindow,
VU_UNTIL_SUCCESS,0)) // Call into LASS;
// This will
CallSecureFunction() // call into active LAP
// and show LAP-specific UI
else
TellUserVerificationFailed(GetLastError()));
// display your own UI
}

  • SHDeviceLockAndPrompt is a non blocking call, but will require user authentication for any activity on the device.

- Nicolas

Tuesday, June 9, 2009

CERegEditor : an alternative to Remote Registry Editor

Found a great atlternative to the Remote Registry Editor, without the requirement of the installation of a Visual Studio Smart Device component. Useful for non developper's guys...
One of my favorite feature is the registry comparison, between two snapshots.
Check out this cool application here.
- Nicolas

Easy way to componentize modules

Since Windows CE 4.2, Mike Hall is maintaining a power toy application helping to componentize your applications, drivers to integrate them inside your catalog views. This application is now available under the MSDN Code Gallery.

Big thanks to Mike for this CEFileWiz application helping beginners for an easy and quick understanding of the requirements for a componentized module.
- Nicolas

Wednesday, June 3, 2009

Get Ready for Windows Mobile 6.5


Microsoft announced last month the Windows Mobile 6.5 Release, and provide today an access to the Windows Mobile 6.5 Tool Kit to get your softwares ready for new coming mobile devices runnning this version of the operating system.



- Nicolas

Tuesday, June 2, 2009

WES 2009, Virtual PC and Windows PE [Updated]

When experiencing Windows Embedded Standard, you need an x86 device to boot the OS. The first solution is to use a spare computer and deploy the Runtime image to the hard drive at every OS re-generation. Except if you are a skew driver fan, but mounting and unmounting the hard-drive to push the new binaries on the target, is quite painful after two or three manipulations. So another solution could be to use the current hard drive of your development computer, and reserve a partition for WES. In this case no screw driver is required, as the partition is visible directly under the OS of you development computer. The only restriction, in this case, is too reboot the development machine to get the WES OS booted. But this solution is also painful, as booting the development OS can take a while, and all development tools have to be reloaded. The ultimate solution is to use an x86 virtualizer, like Virtual PC or other. When using the virtualizer, the way to reboot the WES OS is by launching the virtualizer software.

Use a Virtual PC :
First you need to create a new virtual machine and a hard drive, you can find all the details in the Virtual PC blog.
Then you have to prepare the hard drive to receive the WES files. And for this, you have to create a partition.... and at this point you are locked, except if you have in your drawer, an old booting floppy disk and a floppy disk reader...
Microsoft is providing for IT's a Windows Automated Installation Kit, available for free from their website. This kit provides cool applications, called WinPE, and ways to easily have a booting CD-ROM iso that can be customised to integrate all the applications that can be useful to deploy an OS, like Windows XP, Vista, and WES.

Prepare your booting CD-ROM :
After downloading and installing the AIK package, launch Startup Menu->Microsoft Windows AIK->Windows PE Tools Command Prompt.
1) Initial Folder Creation
copype x86 [Destination_Folder_Path]

2) Add custom Files
Copy required custom files to the ISO folder in \ISO. Like bootsect.exe available in "Windows AIK\Tools\PETools\x86".

3) Build the customized ISO
oscdimg -n -b[path to etfsboot.com file]\efsboot.com [path to the ISO folder] [path and name of the iso to generate]


Boot the ISO :
When the iso image is generated, then you have to boot it under Virutual PC, by launching the Configuration done previously and going to the CD menu. Then attach the iso file, and Virutal PC should boot on the virutal CD-ROM drive.

Partitions creations :
When WinPE 2.0 boot up, it initialize a shell from where you can launch batch scripts or single comands. >e gonna use diskpart to create, format partition.
Launch dispart from the shell window (PERFORM ALL THOSE COMMANDS FROM THE VIRTUAL PC COMMAND WINDOW ONLY).


1) List the available disks :
list disk

2) Select the disk
select disk 0

3) Clean Up the disk
clean

4) Create a partition
create partition primary size=XXXXX

5) Assigne a letter to the partition
assign letter=C

6) Format the partition
format fs=ntfs quick

7) Activate the partition to be bootable by the Virutal PC BIOS
active

8) Exit diskpart
exit

Then you have to store the boot sector on the partition, diskpart provided with WinPE 2.0 store by default the Vista boot sector, that is not compatible with WES 2009.
9) Prepare boot sector
bootsect /NT52 C:
Note : bootsect.exe can be found in the AIK installation folder and pushed into the CD-ROM Iso

Push files to the target :
The hard drive is now ready to receive the WES runtime files, and the easy way to push those files from the development machine to the virtual hard drive is using the network and the sharing capabilities of Windows.
Share the folder used for the generation of the WES image on the development computer, and use netuse from the Virtual PC to access it.
Then use xcopy to get the files onto the virtual hard drive.

Conclusion :
Using the Virtual PC is fairly easy to get and experiment WES.

- Nicolas

Sunday, April 26, 2009

Is Windows CE 6.0 R2 real time ?

Who says that Windows CE 6.0 R2 is not realtime operating system!! For those who are suspicious about this fact, please have a look to this article. And check this video.

<br/><a href="http://video.msn.com/video.aspx?vid=b50f33e5-c08a-42a1-b2ad-e634de801c7c" target="_new" title="Windows Embedded CE 6.0 Real-Time Beckhoff Demo">Video: Windows Embedded CE 6.0 Real-Time Beckhoff Demo</a>


- Nicolas

Wednesday, April 22, 2009

Windows Embedded CE Trainings

Adeneo Embedded, Windows Embedded Gold Partner, propose Windows CE 6.0 training sessions in Europe and North America with a FREE ARM based development kit offered to each attendee (value $1500). More details click here.
Next sessions are:

  • June 8th to 11th 2009: Paris, FR - EMEA
  • June 8th to 11th 2009: Denver, CO - US
For these sessions, Adeneo Embedded offers a 10% early bird discount for registration done at least 4 weeks before the event!
Here is the agenda:
  • Module 1: CE 6.0 OS features
  • Module 2: Platform development tools
  • Module 3: Inside the OS
  • Module 4: CE 6.0 OS Components
  • Module 5: CE 6.0 Build process
  • Module 6: Board Support Package (BSP)
  • Module 7: Device Driver concepts
  • Module 8: Customize an OS Design
  • Module 9: Application development
  • Module 10: Testing the OS
For more information and registration, contact sales@adeneo-embedded.com
For complete Windows Embedded CE 6.0 training program click here.

- Nicolas

Tuesday, April 14, 2009

IE8and Smart Device project issues

The Visual Studio team have blogged about an issue with Visual Studio 2005/2008 after installing IE8 (Here’s a link to the blog article). You can have this issue when creating a Smart Device project in Visual Studio 2008, the fix is very simple, a change to your desktop registry.

- Nicolas

Tuesday, March 24, 2009

Windows Embedded Standard 2009 Exam Prep Kit Now Available

The first 3 chapters of the exam preparation kit for the Windows Embedded certification are now available here. These chapters are only in English at this time, but additional languages are being developed and will be available in the next few months.

- Nicolas

Wednesday, March 18, 2009

Windows Embedded CE 6.0 training by Adeneo Embedded

Adeneo Embedded, Windows Embedded Gold Partner, propose Windows CE 6.0 training sessions in Europe and North America with a FREE ARM based development kit offered to each attendee (value $1000).

Next sessions are
April 13th to 16th 2009: Boston, MA
April 20th to 23rd 2009: Munich, Germany
May 4th to 7th 2009: Los Angeles, CA


For these sessions, Adeneo Embedded offers a 10% early bird discount for registration done at least 4 weeks before the event !
Here is the agenda:


Module 1: CE 6.0 OS features
Module 2: Platform development tools
Module 3: Inside the OS
Module 4: CE 6.0 OS Components
Module 5: CE 6.0 Build process
Module 6: Board Support Package (BSP)
Module 7: Device Driver concepts
Module 8: Customize an OS Design
Module 9: Application development
Module 10: Testing the OS


For more information and registration, contact sales@adeneo-embedded.com
Click here for complete Windows Embedded CE 6.0 training program by Adeneo Embedded
- Nicolas

Tuesday, March 3, 2009

ATMEL BSPs for free

This is areally exiting news, Atmel just published the source version of the Atmel AT91SAM9 ARM926EJ-S™-based embedded MPUs Board Support Package for Microsoft Windows Embedded CE 6.0 and 5.0, originaly developped by Adeneo Embedded.
This to provide an easy access to the Atmel's processors evaluation kits, and Atmel's processors.

See the Atmel Press Release about this topic.

- Nicolas

Monday, March 2, 2009

KITL ? What's that ?

Always wanted to know what KITL stands for ! In this case you should have a look at this really interesting video from Kurt Kennett from Microsoft.



Windows Embedded CE: understanding KITL


- Nicolas

Sunday, March 1, 2009

MCP Certification for Windows Embedded Standard

Microsoft launch last week the MCP Certification for Windows Embedded Standard 2009 (next version of Windows XP Embedded).

The main topic areas are:

  • Windows security
  • Componentization
  • The role of packages, groups, and repository sets
  • Application-level development on Windows XP and Windows XP Embedded
  • Deployment options and methodologies
  • Embedded enabling features (EEFs)
  • Working at the hardware level
  • Database Manager

As usual for the Embedded MCP Exam, a preparation kit is available :
  • Free Preparation Kit (200 page study guide) – available starting mid-March in English, other languages through June
  • Languages: English, French, German, Japanese, Simplified Chinese

- Nicolas

Wednesday, January 14, 2009

Windows Embedded CE 6.0 R2 Training in Paris 23 to 26 Feb, 2009

Paris and Rousset, France, January 14, 2009 . . .Adeneo Embedded and Atmel® Corporation (Nasdaq: ATML) announced today a Microsoft® Windows® Embedded CE 6.0 R2 training course in Paris, France from February 23 to 26, 2009. This event is a unique opportunity for software system designers to develop an application based on Windows Embedded CE, and on the industry leading AT91SAM9. The AT91SAM9 is an Embedded MPU based on the ARM926EJ-SÔ core which is rapidly becoming a platform of choice for embedded designers.

For more information about Adeneo Embedded competences, products and services, visit Adeneo Embedded Web site at http://www.adeneo-embedded.com or contact: sales@adeneo-embedded.com

For a local contact in Europe, please contact asenhaji@adeneo-embedded.com
For a local contact in America, please contact wlubow@adeneo-embedded.com

- Nicolas

Tuesday, January 13, 2009

Embedded Experts dedicated to the success of your design

Ecully, France and Bellevue, WA, USA, January 13th, 2009. . . Adeneo and Adeneo Corporation, subsidiaries of Adetel Group successfully completed today the merging of their 32 bits embedded activity and the creation of Adeneo Embedded, a new subsidiary of AdetelGroup, entirely focused on providing support and Systems integration services to OEMs around Windows Embedded and Linux Embedded technologies

For more information about Adeneo Embedded competences, products and services, visit Adeneo Embedded Web site at http://www.adeneo-embedded.com or contact: sales@adeneo-embedded.com

For a local contact in Europe, please contact asenhaji@adeneo-embedded.com
For a local contact in America, please contact wlubow@adeneo-embedded.com

- Nicolas

TOP 25 Most Dangerous Programming Errors

The NSA post this week the list of the Top most dangerous programming errors, from the SQL request to the encrypted data.....
Don't forget ... There are only 10 types of people in the world: Those who understand binary, and those who don't.

Check this out here.

- Nicolas

Req : Using Windows CE Test Kit for Unit Testing

I would like to write a post about unit testing and the Windows CETK. To go deeply in this suject I would like to know your background experience with this tool or if you are using other tools for unit testing of your applications under Windows Embedded CE or Windows Mobile.

You can submit all your testimonials to nbesson.blog@gmail.com

Thanks for your help.

- Nicolas

Wednesday, January 7, 2009

Windows Mobile Developer Power Toys

The Windows Mobile Developer Power Toys help you develop and test your Windows Mobile applications.

The Power Toys include:

  • Emulator ActiveSync Connection Tool - Allows Activesync to connect to your Emulator session from Visual Studio .NET 2003.
  • ActiveSync Remote Display - Display Pocket PC applications on your desktop or laptop without needing any device side configuration.
  • CECopy - Command line tool for copying files to the device currently connected to desktop ActiveSync.
  • Convert PPC DAT to SP XML - Command line tool for generating Smartphone CABWizSP XML docs from existing Pocket PC CAB files.
  • Hopper - User input stress simulator.
  • JShell - UI version of the Platform Builder Target Control Window.
  • PPC Command Shell - Command shell for the Pocket PC 2003 device.
  • RAPI Debug - Displays detailed information about currently running processes.
  • RAPI Start - Command line tool to remotely start an application on your Pocket PC from your desktop.
  • TypeIt - Send characters/strings to the Smartphone 2003 Emulator via ActiveSync.
- Nicolas