Friday, 28 November 2008

SPARKs start to fly

So! The SPARKs Will Fly contest was officially launched at ESC (Embedded Systems Conference) in Boston - a month ago! But what hardware platform to go for? There are five complete kits (containing hardware, Visual Studio 2005 Pro and PlatformBuilder (Windows Embedded CE 6.0 R2 Full Versions) offered. Only restriction on software is: no commercial use! Advantech, VIA, ICop are more PC alike systems on x86 compatible CPUs. VIA Artigo even needs active cooling. The real ultra low powered embedded devices from Special Computing and Keith & Koep run on an ARM core. Keith & Koep's Trizeps4 platform (312MHz and 520MHz version) is hosted by a small and feature rich base board much smaller than Artigo. That's why it is my personal favorite even compared to the small GUMSTIX from Special Computing. Which one's your preferred platform here? This weekend I will obviously start playing around with my Trizeps4/520MHz. Bye... and have a nice weekend!
Read more! Post this to a friend!

Options to build a Windows CE hybrid image (Part II)

You might have read my previous post on how to build a CE hybrid image. Now I want to give you one more option how to achieve the goal of building a CE hybrid image:

  • You can create a Platform Builder subproject and move the module (e.g. device driver) that you are trying to debug to the just created subproject. Now all you need to do is to make sure that the “Always build and link as debug” and the “include in Run-Time Image” checkboxes are checked in the subproject settings. Et voilà, if you now build your BSP and subprojects, you will have a hybrid image.

Have fun!
Read more! Post this to a friend!

SPS/IPC/Drives recap

Hi Folks,

if you read Damian’s announcement, you know that I was holding a presentation on the Microsoft Embedded booth at the SPS/IPC/Drives on Windows Embedded CE 6.0 Driver Development: Best Practice. It was really exciting to meet the Microsoft folks, hear all the other interesting presentations and get the latest news on the Microsoft embedded products! Hope you could make it; if not the next chance to meet Microsoft and us in Nuremberg will be @ the Embedded World 2009 March 3rd to March 5th 2009. Thanks again guys!

Have fun!
Read more! Post this to a friend!

Tuesday, 25 November 2008

Windows Embedded Standard MSDN Chat

Hello out there,

you know that the Windows Embedded Standard 2009 is officially available. You can download a trial version of the product at:
The product team is excited to hear your feedback and thoughts on the new release. MS is hosting a live chat about Windows Embedded Standard. Only what you have to do, is come in and join the live chat with the Windows Embedded Standard team to talk about this latest release and get your questions answered directly by the experts!

Date: December 9, 200810:00 - 11:00 A.M. Pacific Time

Put the date into your schedule and join it!
Read more! Post this to a friend!

Thursday, 20 November 2008

Agile Developement with Visual Studio (Part II)


for all agile guys out there who did not manage to get time off and come to Barcelona - here the link to slides about Agile software developement with VS by Stephanie Saad from the Tech Ed.

If you're using Version ONE in your projects for planing purposes, maybe you should think about usage of the TFS (Team Foundation Server). In this case Version ONE offers an integration with Microsoft Team Foundation Server 2008, which gives you some very nice features, like updating your tasks directly from Visual Studio. :)

If you're interessted in it, just take a look here:

Read more! Post this to a friend!

Microsoft Technical Chat on November 25, 2008

Hi Folks,

MS is hosting a live chat on, November 25th, regarding Windows Embedded CE and Windows Mobile.

Title: Windows Embedded CE and Windows Mobile Live Chat!
Date: Tuesday, November 25, 2008 9:00 - 10:00 A.M. Pacific time (additional time zones)

Do you have tough technical questions regarding Windows Embedded CE or Windows Mobile for which you're seeking answers? Do you want to tap into the deep knowledge of the talented Microsoft Embedded Devices Group members? If so, please join us for a live chat and bring on the questions! Windows Embedded CE is the operating system that is powering the next generation of 32-bit, small-footprint and mobile devices. This chat will cover the tools and technologies used to develop devices using the CE operating system.

To join this chat, please log on via the main MSDN chat page at:

There is also an archive of previous chats available at:

Have fun!
Read more! Post this to a friend!

“Sparks Will Fly” Contest

Hi Folks,
The Microsoft Windows Embedded Team has launched a global embedded development contest called “Sparks Will Fly” which is open to all except full-time Microsoft employees. The first prize will be $15,000 plus a slot in the Embedded System Conference (ESC) Silicon Valley keynote 2009! If you want to enter the contest you can get a kit combining Windows Embedded CE 6.0 R2, Visual Studio 2005 Professional and an embedded device that you will develop your solution on. Ready to start? First round submissions are due January 7th 2009, check it out:

In Addition there are some interesting online tutorials, especially created for the “Sparks Will Fly” contest. So even if you don’t want to enter the contest but want to learn more about Windows Embedded CE 6.0 R2 you can check out these tutorials:

Have fun!
Read more! Post this to a friend!

Microsoft Auto 3.1 Feature Pack released

Just a short post to let you know Microsoft has just released its Microsoft Auto 3.1 Feature Pack. Together with the Live Services for Devices Toolkit, companies can create new in-car solutions based on Windows Embedded and offer dynamic, connected services.

In the near future we will post some more news around this feature pack - so stick around.

So long and thanks for all the fish!
Read more! Post this to a friend!

Wednesday, 19 November 2008

.NET Micro Framework Porting Kit 3.0 - Where to get it.

Ok, as I have been asked more than just once, here is a short update on where to get the Porting Kit from.

As you will have noticed, the link on the .NET Micro Framework site has not yet been activated.

So what to do? Well if you're a US resident, simply visit the Microsoft store here:

If you're living in europe the porting kit will be offered from December onwards at the UK store.

Ok, so what if you don't want to wait or live outside of the US or Europe. Well in this case I have got good news for you; simply contact

So long and thanks for all the fish!

Read more! Post this to a friend!

Let's talk about performance

Hello guys,

I attended a very very interesting session at TechEd held by the unforgetable, unbeliveable Douglas Boling - If you have not been to one of his talks then that is something you have to put on your ToDo list.

The session had the following title: "Windows Embedded CE Application Development", but was actaully about performance. So, what kind of performance did we talk about? I will try to give you a short summary.

Basicly in the embedded world we can differentiate between:
  • device performance &

  • developer performance

Embedded devices are not so powerful as PCs and there are many constraints: memory, processor speed, power issues etc. Because of this the developers/tools and applications have to meet some requirements specific to embedded devices.

If you have to develop an application for Windows Embedded, then you have basically 3 frameworks to achieve this with:

  • usage of Win32 API

  • uasge of MFC

  • usage of .NET compact framework
With Win32 API you will write the "fastest" and most "compact" code, but it requires some advanced programming skills from the developers. The code may be fast, but development and time to market will not! And notice: the realtime(able) code can be only written with Win32 API.

Now let's talk about the usage of MFC for Windows Embedded application development: Sorry, but there is nothing to say. In Doug Boling's opinion, it's a "dead technology" which shouldn't be used anymore - and I agree with him.

Last but not least, we have the .NET compact framework. It allows a very good developer performance. The developers are able to create new applications very fast, because
  • the tool support is much better than with Win32.

  • C# is better than C++

  • Processor and O/S abstraction is done by the .NET compact framework
  • .NET Compact Framework apps run on desktops!
  • Build for one device target and run it on all processors
But .NET applications are not realtime applications! Just think of the carbage collection - always think of dispose.

So, what to do, when you have to develop a Windows Embedded application and don't know what to choose? Put your high-level requirements (time to market, which device you will use etc.) together and make a kind of trade-off decision: device performance vs. developer performance. You can't have both!

By the way -
Q: What is the difference between a Desktop Software Engineer and an Embedded Software Engineer?
A: The Desktop Software Engineer gets paid to write code fast; The Embedded Software Engineer gets paid to write fast code.
Read more! Post this to a friend!

Tuesday, 18 November 2008

Come and meet Jochen @ SPS/IPC/Drives

You may be aware that next week the Exhibition Center Nürnberg will be home to SPS/IPC/Drives - the exhibition for electric automation technology.

During this event Jochen will be holding a 20min presentation @ the Microsoft booth about "Device Driver Development - Best Practices". So if you are visiting this event and would like to learn best practices around driver development as well as talk to Jochen about Windows CE, come to the Microsoft Booth at 10:30 on any of the three days - Hall 7A Booth 645.
Of course you can come and talk to the Microsoft folks as well!
So long and thanks for all the fish!
Read more! Post this to a friend!

Friday, 14 November 2008

Load order of built-in drivers in Windows CE

This is simple you might think as it is specified in the Order value of the drivers registry setting ([HKLM\Drivers\BuiltIn\<DriverName>]). But what happens if either the Order value is not specified or if there are multiple drivers with the same Order value?

If the Order value is not specified the driver will load last, meaning it would be as if you would have specified the Order value to be 255 (FF).

If, however there are multiple drivers with the same Order value, then they will load bottom-up as specified in the reginit.ini file in the _FLATRELEASEDIR which is the registry of your device.

Have fun!
Read more! Post this to a friend!

Thursday, 13 November 2008

Tech Ed Impressions

For all of you who weren't able to come to Barcelona - you're missing out on a good event - and for those of you who are here I've quickly collected some impressions of the last couple of days.

For the embedded developers visiting TechEd, the Embedded Zone is the place to be. Not only to talk with the partners from Germany and the UK, but also to have the chance to grab someone from Microsoft or to listen to one of the presentations in the Embedded theatre - remember mine? What started out to be a 20min presentation turned into a 2hr interactive session with some great disscussions - Thank-you!

Then there was the Windows Embedded Community Party which turned out to be a great success - If you look closely or click on the picture you will see Harald mingling with the crowd.

And as you can see there was plenty to celebrate and yes everbody did miss Mike - especially Olivier. And as far as I am concerned I can only approve with the results of the baked beans contest.

Anyway, we are having a great time and big thank-you to the WEPP team.

So long and thanks for all the fish!
Read more! Post this to a friend!

Windows CE QFEs for month of October 2008 arrived

Hi Folks,

the TechEd in Barcelona is still going on, but I have the newest updates for you.
The latest Windows CE updates have been recently released and are available for download.

Windows CE .NET 5.0 Platform Builder Monthly Update (October 2008) Download link:

Download this set of updates for Windows CE 5.0 Platform Builder released during the period of October 1 - October 31, 2008.

Fixes made in this update:
Component: COMM
081010_KB957881 - EAP-PEAP may fail if AP resends EAP-PEAP user credential request with incremented ID.
081013_KB958185 - Insufficient size of DNS Transaction ID may allow Delegation Spoofing.
081014_KB957620 - This update enables SIO_LIMIT_BROADCASTS socket ioctl.

Component: DirectX
081010_KB957922 - This update addresses small memory leak that may occur when playing MMS stream from Windows Media Server 2003.

Component: FATFS
081007_KB957946 - If the number of free clusters runs out during the file data cloning, then the file data can potentially get corrupted.

Component: FSD
081022_KB958806 - The ReadFile path assumes there is at least one byte to read and does not check for zero bytes.

Component: Storage
081028_KB958403 - SD cards without a partition table may not be mounted.

Windows CE .NET 6.0 Platform Builder Monthly Update (October 2008)

Download link:

Download this set of updates for Windows CE 6.0 Platform Builder released during the period of October 1 - October 31, 2008.

Fixes made in this update:
Component: COMM
081013_KB958183 - Insufficient size of DNS Transaction ID may allow Delegation Spoofing.
081028_KB958342 - This update disables the generation of Magic Number configuration requests, so no magic number will be configured and the Echo Requests sent with Magic Number 0 will be acceptable.

Component: DirectX
081029_KB958452 - This update addresses small memory leak that may occur when playing MMS or MBS stream from Windows Media Server 2003.

Component: Drivers
081020_KB958780 - USB driver may issue RESET when port is not connected.

Component: Unimodem
081020_KB955238 - This update makes registry configuration for unimodem DCCRequest and DCCResponse command strings configurable.

Component: USB
081013_KB958341 - USB Host Controller Driver for the EHCI host controller assumed that any device connected to its root port was high speed. This caused some low speed devices to not work.
Read more! Post this to a friend!

Calling Kernel IO Controls (OEMIoControl) from user space in Windows Embedded CE 6.0

Due to the architecture change of Windows Embedded CE 6.0, Kernel IO Control call go through a kernel mode component called oalioctl.dll. The source code for this component can be found at %_WINCEROOT%\PUBLIC\COMMON\OAK\OALIOCTL. By default, it has a list of 5 user-accessible Kernel IOCTL codes in a switch case statement: IOCTL_HAL_GET_CACHE_INFO, IOCTL_HAL_GET_DEVICE_INFO, IOCTL_HAL_GET_DEVICEID, IOCTL_HAL_GET_UUID and IOCTL_PROCESSOR_INFORMATION, even though IOCTL_HAL_GET_DEVICEID and IOCTL_HAL_GET_UUID are deprecated and there functionality can now be accessed via new SPI_* codes in IOCTL_HAL_GET_DEVICE_INFO. If your user mode application or driver now calls one of the IOCTLs listed in OALIOCTL, the call will be forwarded to the OAL code, for all other IOCTLs the call will be rejected. But remember this is only true for user mode processes and not for kernel mode driver.

Now why am I telling you this you might ask? Well you can clone the OALIOCT component to your Platform and add any Kernel IOCTL to the switch case statement that you would like to allow from user space. Therefore you just need to make sure that the component compiles as oalioctl.dll in your Platform. No .bib or .reg entries are necessary.

Have fun!
Read more! Post this to a friend!

Wednesday, 12 November 2008

Dare to dream with .NET Micro Framework

Hello guys,

I want to give you my impressions from the "Running on the metal with .NET Micro Framework" Session with John Leier today.

John gave the broad overview about the .NET Micro Framework 3.0, which allows developers to quickly create smart connected embedded devices using Visual Studio 2008 and C#, without the added complexity of an underlying operating system. John talked about the market possibilities, architecture, hardware requirements and last but not least the new features in the version 3.0.

The most impressing feature to me, was the possibility of "linking" native code into the managed code with .NET Microframework:
- define "Native Methods" region in your managed code
- generate the native stubs
- fill your native code into the generated stubs

That's it!

In my opinion, .NET Microframework gives us many new chances, where very small solutions are required.
You have ideas for new cool devices with .NET Micro Framework? Then participate in the
"Dare to Dream Different Contest"

Read more! Post this to a friend!

Agile presentation about "Agile Software developement with SCRUM"

is running now, here at TechEd in Barcelona (in theatre 2). Look at the picture below:

Damian is presenting the experience about usage of SCRUM and agile best practises in embedded software projects.
There are many developers here with questions, it seems that SCRUM is required in the developer comunity. :)
Thanks Damian!!!!

Read more! Post this to a friend!

Options to build a Windows CE hybrid image

First of all what is a hybrid image anyway? A hybrid image is a release image where certain components are compiled as debug. It can be very helpful while debugging. For instance you are developing a device driver right now so you only need the debug version of the device driver you are working on right now; the rest of the image can be release for better performance and a better simulation of how your device will behave in the real world.

But how do I get a hybrid image, you might ask?
  • Do I simply copy the debug version from the debug directory to the release directory and make a run-time image afterwards? Well that would be one method but not a very sophisticated one!

  • What about set WINCEDEBUG=debug in the command line window? Well that would build your component in the debug directory and hence you still would copy it over manually to your release directory.

  • What about setting DISABLE_OPTIMIZER=1 in the SOURCES file or from the command line window? This would only disable the optimizer but still not compile debug macros.

  • set COMPILE_DEBUG=1 from within the command line would do the trick. But unfortunately this command does not work from within the SOURCES file.

  • Now for the ultimate solution that you can specify in the SOURCES file: CDEFINES=$(CDEFINES) –DDEBUG /Od this disables the optimizer and compiles the debug macros.

To include the just build component in your image, a make run-time image is necessary after each of the just mentioned solution and if you build form within the command line, make sure you have set WINCEREL=1 to automatically execute the buildrel step after build.

Have fun
Read more! Post this to a friend!

Waking up

on Wednesday.
The exhibition hall is quite empty. Where are all the developers??? :)

The reason is: the exhibition opens at 10:00am. Then we expect as many developers as on the previous days.
Read more! Post this to a friend!

Tuesday, 11 November 2008

Daily SCRUM at TechEd08

Hello guys,

today at 9:00 am I attended the "daily SCRUM" here at TechEd in Barcelona. Early in the morning, but .... we started with the well-known daily SCRUM questions:

what I did yesterday?

what will I do today?

do I have any impediments?

The answers are secret :)
It was quite interesting and very agile. Great!!!!

After a short introduction to the basics of Scrum like: the Scrum Master, team, product owner, burn down and of course the daily Scrum, Stephen Forte discussed with us about our experiences with SCRUM.

It was amazing to see, how many pepole are using or want to use SCRUM in their software project. For me as a certified Scrum Master was this very satisfying, that SCRUM is becoming more and more popular.

If you want to hear more about SCRUM and you're in Barcelona on Wednesday ? Then, visit Damian's presentatoin in theatre 2.
Read more! Post this to a friend!

10 Reasons to build your own Windows Embedded Standard Device

For those of you out there who did not manage to get time off and come to Barcelona - here are 10 Reasons to build your own Windows Embedded Standard device - a Breakout Session held by eMVP and Excellence Award winner Alexander Wechsler, today.
The 10 topics Alexander talked about can be devided into 5 groups:
  • Time to Market
  • Flexibility
  • Robustness
  • Security and
  • Change Management
So, let's have a look at Alexander's reasons for building devices with WES.

1. Fast OS Image Generation
Fast Image generation is not only essential to ensure fast time to market but also helps you to cut down on your coffee intake.
The toolchain offered by Microsoft, with Target Analyzer, Component Designer and Target Designer helps you to easily find the right components required for your Image and ensures that all dependencies are built into the image.

2. Reuse of XP Professional Dirvers and Applications
If it runs on on XP Pro SP3 it will run on Windows Embedded Standard ... that is if the right components are in the image.

3. Choose from over 11000 Components to Build an Image
OK, let's be precise: The current version of WES contains 11892 components! But, don't worry lots of these are drivers which means you only have to know around 3000 components when adding functionality.

4. Boot from any Storage Device - even into a custom shell
This is of course a prerequisite for embedded devices. Do we want moving parts in an embedded system? Of course not!
WES supports booting from flash disk, USB stick, compact flash, CD & DVD etc.

5. Disk Protection
Again, something most important for embedded devices. WES supports this by using Embedded Enabling Features (EEFs):
  • Enhanced Write Filter
  • File based Write Filter
  • Registry Filter
6. The fastest Way to Boot XP
is using HORM - Hibernate Once Resume Many. This way you can achieve boot times under 10 seconds. However this does depend on your hardware and specific image.

7. Built-in Security Infrastructure
WES supports all the infrastructure you would expect from an embedded OS based on XP Pro SP3:
Active Directory Security with all those industry standard secure protocols we love
Policy based Management
Device Security, i.e. Firewall, Anti-virus protection, File System Encryption etc.

8. Support for innovative Authentication Methods
Alexander showed us a demo here on how to use an RFID chip to automatically Log-in and out of the system. When you walk away from the system it automatically logs you out and when you come back it logs you back in again - great! This is something I guess alot of people could do with especially if their group policy automatically logs them out.

9. Manage Small to Large Deployments
Another main issue with embedded devices, especially when it comes to adding patches or even a complete image update. WES offers 3 possibilities to meet this issue:
  • Device Update Agent
  • Windows Server Update Services (WSUS)
  • System Center Configuration Manager (SCCM)

10. SCCM OSD - Operating System Deployment
OSD is a new feature in WES which includes the sysprep utility and makes deployment of images a piece of cake.

So, enjoy building your Windows Embedded Standard images!

So long and thanks for all the fish!

Read more! Post this to a friend!

Agile Developement with Visual Studio

Hi guys,

yesterday I attended a very interesting session by Stephanie Saad about the agile software development with Visual Studio. It was a great session about agile planning, continuous integration and improvement, connecting with customers and a bunge of other agile practices enabled through the VS tools.
One of (especially for me) the very cool features was the the integration of the SCRUM process methods and practises into the microsoft tools.
The Visual Studio Team System includes Microsoft Solutions Framework (MSF) which allows usage of some (e.g. agile) process templates or creation of your own templates. For more info about it, look here:

My highlight is "Task board for VS Team System" by Conchango.

It allows managing of the SCRUM backlog items / tasks by Drag'n'Drop!

Have a look and try this out ....
Read more! Post this to a friend!

Monday, 10 November 2008

Ready to start!

Hi folks,
here we are in Barcelona all set up and ready to go!
Here's a picture of the Windows Embedded Zone where you can find us ... that is if we're not currently visiting one of the many sessions.

So long and thanks for all the fish!
Read more! Post this to a friend!

Sunday, 9 November 2008

How to use Eclipse and GDB to debug the .NET Micro Framework

In my last post we were using GCC to build the .NET Micro Framework firmware for the i.MXS reference board. Now we go one step further and will debug the firmware using GDB.

What do we need?
First an overview of our setup:

The installation should be straight forward. Here are the configuration steps...
  • Open a command window, invoke setenv_gcc.cmd and run Eclipse from this initialized build environment.

  • Create a new C++ Project in Eclipse:

    File->New->C++ Project

    (I set the workspace to "C:\" and named the project like the installation directory of the porting kit "MicroFrameworkPK_v3_0".)

  • Configure Build:

    Project->Properties->C/C++ Build
    Add a new configuration e.g. "iMXS Debug RAM"
    Build command: msbuild.exe
    Build directory: ${workspace_loc:/MicroFrameworkPK_v3_0/Solutions/iMXS}

    Build (Incremental build): dotNetMF.proj /t:build /p:flavor=debug;memory=ram;platform=iMXS
    (This builds a debug version of the iMXS firmware that executes from RAM. To build a release version that executes from FLASH, don't add any additional arguments after dotNetMF.proj)

  • We add OpenOCD as an external tool:

    Run->External Tools->External Tools Configuration...
    Name: OpenOCD
    Location: C:\Program Files\openocd-r247\bin\openocd-ftd2xx.exe
    Working Directory: C:\Program Files\openocd-r247\bin\
    Arguments: -f imxs.cfg
    (For a sample imxs.cfg file look here.)

  • Finally we configure gdb:

    Run->Debug Configurations...
    Add "Zylin Embedded debug (native)" configuration
    Name: iMXS tinyclr
    C/C++ Application: C:\MicroFrameworkPK_v3_0\BuildOutput\ARM\GCC4.2\RAM\debug\iMXS\bin\tinyclr.axf

    GDB Debugger: C:\Programs\Raisonance\Ride\arm-gcc\bin\arm-none-eabi-gdb.exe

    Initialize commands:

    target remote
    monitor reset
    monitor sleep 500
    monitor poll
    monitor soft_reset_halt
    monitor arm7_9 sw_bkpts enable

    break PreStackEntry

    (This connects to the gdb server, enables software breakpoints, sets a breakpoint at the function PreStackEntry, loads the firmware into RAM and starts... )

  • Now we can settle back and only press some buttons...

    First we build a debug version that executes from RAM

 our JTAG server OpenOCD

    ...and hit the debug button!
    Now it takes some seconds to transfer our debug firmware into the RAM of the i.MXS board.

    The firmware starts and immediately stops at PreStackEntry. Now we can discover the code line by line... :)

Read more! Post this to a friend!

Thursday, 6 November 2008

Which sources.cmn file will be taken into account?

So you created a sources.cmn file but somehow it is not used when compiling your component and you can’t figure out why?
This is because the compiler only considers ONE sources.cmn file, but which one will it be? Well, it will be the one closest up the tree from where your component is.

Have fun!
Read more! Post this to a friend!

Come and hear me talk!

Just over 3 more days before TechEd 2008 opens its doors for developers in Barcelona and I would like to invite attendees to come and hear me talk in the Embedded Theatre on Wednesday @ 10:20.

I will be giving a 20min presentation on Agile Development and I'm looking forward to seeing you there.

So long and thanks for all the fish!
Read more! Post this to a friend!

Don't miss todays Webinar!

Just wanted to remind you about todays Webinar - Windows Embedded CE
and Handheld Solutions - @ 1:00-2:00 PM PST.

Dion Hutchings, Microsoft - Technical Product Manager, will tell all you will need to know in order to build your next Handheld device.

Register here for the webinar and win a ZUNE Digital Media Player!

So long and thanks for all the fish!

Read more! Post this to a friend!

Wednesday, 5 November 2008

Save the dates!

Hi folks,

if you're interested in Kiosk Solutions or Windows XP Pro for Embedded Systems (XP Pro FES) then you will want to mark the following dates in your calendar:

Windows Embedded Vertical Focus: Kiosk Solutions
Sylvain Ekel, Microsoft Systems Engineer, will take you through the key features of the Windows Embedded Technologies which are suitable for kiosk solutions.
To register for this 60 min webinar click here - and win a Digital Picture Frame.

Attend this 60 min webinar and learn about the key differences between Windows XP Professional and Windows XP Professional for Embedded Systems including an overview on the product's technical features, and it's availability through the OEM Embedded Devices (OED) channel until 2016.
To register click here - and win a Digital Picture Frame.

So long and thanks for all the fish!
Read more! Post this to a friend!

Silverlight for Mobile

Wouldn't it be super cool if the Silverlight apps you built for the desktop could run on Millions of Mobile Devices?

If you have been building Silverlight applications and are wondering how to extend them to mobile devices, then I have a hint for you.

Silverlight 2 for mobile has been announced at PDC and the webcast video is already available. Cool!
This webacast video is filled with some very cool demo, e.g. the "painter".

You will not only learn how to extend your existing Silverlight 2 applications to work on Windows Mobile but also learn how to build rich mobile Silverlight apps that play media, handle simple gestures, have cool animations, and web services.
Further information about Silverlight 2 for Mobile ia available at:

Read more! Post this to a friend!

Tuesday, 4 November 2008

Instable JTAG connection

Currently I'm working on a platform without Ethernet or USB client and therefore I depend on JTAG debugging support for this SH4 based board (Renesas SH7760).

Debugging was quite annoying during the first debug sessions: The debugger always lost the connection after a while.

The reason for that is quite evident: The CPU enters the sleep mode in OEMIdle() as long as there are no busy tasks. But if the CPU "sleeps" the JTAG communication gets broken. So, the only thing that I have to assure is that the CPU does not enter sleep mode.

OEMIdle() in OAL\OALLIB\timer.c is the right location for such an adaption:

Search for "sleep" and enclose it with a define like


If you like, you can control this define via the sources.cmn file and a CE catalog feature. Just add these lines


and create a catalog feature which sets the environment variable DISABLE_OEMIDLE_SLEEP. Do not forget to rebuild oallib if you set or clear your new feature.

Read more! Post this to a friend!

Monday, 3 November 2008

.NET Micro Framework Porting Kit V3.0 with GCC Support?

Just a joke or what? The release notes of the recently released .NET Micro Framework Porting Kit V3.0 highlight the support for building the .NET MF firmware with GCC tools. It's hard to believe - so let's try it!
After installation of the porting kit I was looking for some information about the toolchain to use. The only hint I could find in the documentation is that GCC4.2 or later is supported for the ARM architecture. Frivolous as I am, I installed the first GNU ARM toolchain for Windows I found on the web. A few seconds later the build script ran and a lot of red output was flashing in the build window. Usually I like the red color but not in this case! ERRORS - wherever you look! Sure.. GCC support. Fortunately the cause was obvious. The toolchain I'd installed doesn't include a none EABI compiler, that was called by the build script. Due to the lack of information, I had to try several toolchains until I found the free ARM Tools from Raisonance, which finally worked :)

These are the three easy steps to build your home-made firmware:
  1. Start a command window
  2. Call setenv_gcc.cmd in the installation directory of the porting kit with the path of your toolchain to set up your build environment
    setenv_gcc.cmd C:\PROGRA~1\RAISON~1\Ride\arm-gcc
  3. Invoke MSBuild.exe with the command below in the directory of your platform solution
    msbuild dotNetMF.proj

E Voilá. We have built a release version of the .NET Micro Framework V3.0 firmware ready for flashing. How to do this? Take a look at this previous post :)

The following is just a reminder of the used OpenOCD commands for me, if I want to flash my i.MXS board again ;)

flash probe 0
flash erase 0 0 63
flash write_binary 0 C:\MicroFrameworkPK_v3_0\BuildOutput\ARM\GCC4.2\FLASH\release\iMXS\bin\TinyBooterDecompressor.bin 0x0
flash write_binary 0 C:\MicroFrameworkPK_v3_0\BuildOutput\ARM\GCC4.2\FLASH\release\iMXS\bin\tinyclr.bin\ER_CONFIG 0x40000
flash write_binary 0 C:\MicroFrameworkPK_v3_0\BuildOutput\ARM\GCC4.2\FLASH\release\iMXS\bin\tinyclr.bin\ER_FLASH 0x60000
flash write_binary 0 C:\MicroFrameworkPK_v3_0\BuildOutput\ARM\GCC4.2\FLASH\release\iMXS\bin\tinyclr.bin\ER_DAT 0x120000

The result looks like this:

Even the output of the deployment tool tells us V3.0. Now we could use Visual Studio to develop and deploy our real application with all the features of the new SDK.

Next time we'll visit the wonderful world of the gdb console and try to debug the whole thing. No, just kidding - we'll use a debugger with a graphical interface of course :)
Stay tuned!

Read more! Post this to a friend!