Wednesday 24 December 2008

Merry Christmas

The whole Team would like to wish everybody

A Merry Christmas
&
A Happy New Year!

Look forward to reading lots of interesting news and infos coming up in 2009:
  • Embedded World 2009
  • Launch of Windows Embedded Compact
  • Imagine Cup
  • eMVP Nominations
  • TechEd in Berlin
  • Sparks will Fly Contest
  • Partner Awards
  • and lots, lots more ...
So long and thanks for all the fish!

Read more! Post this to a friend!

Friday 19 December 2008

Happy Holidays!

Hi all,

I wanted to wish you all a merry Christmas and a happy New Year! I am going to spend the holidays with my family; hopefully there will be lot of snow in southern Germany!

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

Thursday 18 December 2008

Come and find out more about MS Auto

Microsoft's Automotive Business Unit will be presenting the latest version of the Microsoft Auto platform together with a variety of partner solutions at two events next year.

  1. Embedded World from March 3rd to 5th 2009, in Nürnberg
  2. CeBIT from March 3rd to 8th 2009 in Hannover
@ Embedded World you will be able to find out everything you always wanted to know about MS Auto 3.1 and also get some insight into what is coming next with MS Auto 4.0.
Additionally they will be showing several different partner solutions based on the platform, like EB's street director and EB's Guide suite.

If you are more interested in seeing a prototype of a next-generation Infotainment system then, in this case, CeBit is the place to be.

So long and thanks for all the fish!


Read more! Post this to a friend!

Windows CE: SOURCES files best practices

Hi everyone,

today I want to talk about a common problem you might run into when cloning a module to your platform. As you might know, the RELEASETYPE macro in the SOURCES file indicates the location of the output file but sometimes you simply forget to change this macro accordingly or don’t know what the correct setting would be.

One way to ensure the correct location of your output file would be to specify the RELEASTYPE macro only in the SOURCES.CMN file and not in the SOURCES file of each individual module in your platform.

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

Wednesday 17 December 2008

Windows CE: Remote Tools issue

I am sure you’ve all experienced this problem once in a while: you are debugging your Windows CE system, you are starting a remote tool but the connection somehow doesn’t establish or fails!

So what do you do now? No matter how often you retry you will never get a connection to the remote tool. You might try to restart your Platform Builder and if that doesn’t help restart your machine but that’s just annoying and time consuming! A better solution would be to open the task manager on you development machine, go to the processes tab and kill the cemgr.exe (CE Manager).
If you now restart the remote tool, it should connect and work!

Have fun!

Read more! Post this to a friend!

Tuesday 16 December 2008

Do you know the Windows Mobile Development forum?

Hello Folks,


do you already know the Windows Mobile Development forum?
If not, then just take a look at the following link: http://social.msdn.microsoft.com/Forums/en-US/category/smartdevicedevelopment/


Not only the new UI makes it very valuable to all Windows Mobile developer. All you have to do is: check this out!!!



Read more! Post this to a friend!

Tomorrow: Free Windows Embedded OEM Technical Seminar and Workshop

Hi Folks,

If you are in Israel tomorrow, December 17th, don’t miss the free Windows Embedded OEM Technical Seminar and Workshop!

It is intended for technical decision makers and developers. MS will show you the latest innovations in embedded software development, present the Microsoft Embedded Products as well as their development tools and give you the opportunity to ask questions about everything.

Location:
Herzliya, Israel
Onsite Seminar
The Daniel Hotel and Spa
60 Ramat Yam
Herzliya Pituah
Herzliya, Israel 46851
+972 9 9528282

Further information:
http://www.microsoftembeddedseminars.com/about.aspx?seminarid=199

Overview of MS embedded seminar offerings:
http://www.microsoftembeddedseminars.com/Europe1.aspx

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

Monday 15 December 2008

Windows Embedded Standard Training and Consulting

Looking for a strong official Training Partner for Windows Embedded Standard?

The successor of the previous Windows XP Embedded is called Windows Embedded Standard.

Both solutions allow to go embedded on x86 architectures (only). While Windows CE is targeting ARM, MIPS, SH4 and x86, too, the x86 on Windows CE does not support Hyperthreading, e.g., like available on Intel's Atom processors which became a hype during the last months as you surely know following the news. So at least here going embedded using Microsoft solutions means going Windows Embedded Standard.

During the next few weeks the official training material from Microsoft will be finished and released. Early support for interested customers in upcoming Windows Embedded Standard projects is already available since Microsoft already delivered the training material to interested offically certified trainers for reviewing purpose.

Feel free to contact our BLOG team or me directly...

- Oliver
Read more! Post this to a friend!

Friday 12 December 2008

Windows CE: TARGETLIBS vs. SOURCELIBS

Hi everybody,

Did you ever wonder why there is both TARGETLIBS and SOURCELIBS macros in the Windows CE SOURCES file? Well I did and here is the explanation why:

First of all the reason to have these macros is that we can componentizise our module but why not just have one of these macros? The difference is in which one will be listed first to the linker:

  • When building an .exe, TARGETLIBS will be listed first to the linker
  • When building a .dll, SOURCELIBS will be listed first to the linker
  • When building a .lib, only SOURCESLIBS will be listed to the linker
In any case the linker will always use the first version of particular function that it finds.

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

Thursday 11 December 2008

A flexible way to exclude files from CE image

Sometimes you want to remove files from a CE image for example to save ROM/RAM space or because you do not want to support a certain functionality.

Usually, the right way is to remove the related feature from the OS design. But there are circumstances where a catalogue feature adds several files and you do not want them to be included. Here comes a little batch file and additional bib file which will do all the work.

Here the batch file 'make_bibremove.bat' which will do the work for you

@echo off
rem -- remove items from a .bib file
rem -- declare items to remove with "; @BIBREMOVE "
rem -- keep semicolon and spaces ^^----------^
rem -- somewhere inside the .bib file you request filtered
rem -- filtering occurs by case-insensitive item identifier comparison
rem -- a list of removed items is appended to the resulting file
rem -- USAGE: make_bibremove

if not exist %1 goto :EOF

rem -- extract files marked by tag -------------------------------------
findstr "@BIBREMOVE" %1 > ~bibremove~.0
for /f "tokens=3 eol=§" %%I in (~bibremove~.0) do (
echo Removing %%I from %1
echo %%I> ~bibremove~.1
)
rem -- filter marked files ---------------------------------------------
if exist ~bibremove~.1 (
findstr /i /v /g:~bibremove~.1 %1 > ~bibremove~.2
echo ; ** Files removed by make_bibremove.bat ** >> ~bibremove~.2
type ~bibremove~.0 >> ~bibremove~.2
copy ~bibremove~.2 %1 > NUL:
)
rem -- cleanup temporary files -----------------------------------------
rem del ~bibremove~.*


Call this batch file in your FILES\postfmergebib.bat:

@rem --------------------------------------------------------------------------
@rem -- remove unnecessary items from the ROM filesystem ----------------------
@rem --------------------------------------------------------------------------
@call make_bibremove.bat %_FLATRELEASEDIR%\ce.bib

@rem --------------------------------------------------------------------------
@rem -- add additional generic postfmergebib directives here ------------------
@rem --------------------------------------------------------------------------


Now add the items to be removed somewhere in your platform.bib (or any other included file), like


;;------------------------------------------------------------------------------
;; Remove items which aren't required for our application to
;; => save some RAM (winsock API is required for compilation of our
;; application framework, but the target does not provide network interface)
;;------------------------------------------------------------------------------
; @BIBREMOVE ws2instl.dll
; @BIBREMOVE wspm.dll
; @BIBREMOVE nspm.dll
; @BIBREMOVE ws2k.dll
; @BIBREMOVE ws2serv.dll
; @BIBREMOVE afd.dll
; @BIBREMOVE usbhid.dll
; @BIBREMOVE usbmsfn.dll


Pleas let me know if you have any questions or suggestions.

Read more! Post this to a friend!

Windows CE: Config.bib best practice

Hi everybody,

In this post I want to talk a little about the AUTOSIZE macro which can be used in the CONFIG section in the config.bib file. But let’s start with the MEMORY section which can also be found in your platforms config.bib file.

Here are, amongst others, the defines for where your image will run (NK) and where your images RAM will be located (RAM), of course none of the regions defined here should overlap or else it is possible to overwrite your own memory and crash your system. Initially, the memory regions for NK and RAM are fixed up as you set them up here; hence you might waste some memory at the top of the NK region as your image might not be exactly as large as you defined the NK region to be. This is where the AUTOSIZE macro in the CONFIG section comes into play: it increases the RAM of your image by the unused size of your NK region. But why am I telling you this? You can easily find this in the MSDN!

Well this is where it gets interesting as there is ONE pitfall here:

The AUTOSIZE macro only works if:

  • The NK region is BELOW the RAM region AND
  • The NK region and the RAM region are adjacent

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

Wednesday 10 December 2008

Windows CE QFEs for month of November 2008 arrived

Hi Folks,

X-Mas is comming and the latest Windows CE updates have been recently released and are available for download. Especially the fixes for Windows CE 6.0 are very important.

Windows CE 5.0 Platform Builder Monthly Update (November 2008)
Download link: http://www.microsoft.com/downloads/details.aspx?FamilyID=91e8e5a0-96ba-4350-9149-15592e2461eb&displaylang=en

Download this set of updates for Windows CE 5.0 Platform Builder released during the period of November 1 - November 30, 2008. These updates are fixes for Windows CE operating system problems you run into during the development and maintenance of your custom platform.

Fixes made in this update:
Component: Component: Bluetooth
081125_KB959619 - This update addresses an issue that may occur if a request comes from a device with 255 characters long name.

Component: IE
081117_KB958010 - This update addresses a number of Internet Explorer issues.

Windows Embedded CE 6.0 Monthly Update (November 2008)
Download link: http://www.microsoft.com/downloads/details.aspx?FamilyID=4fcc2e54-55fe-4ba7-9676-e925582316b8&displaylang=en
Download this set of updates for Windows Embedded CE 6.0 released during the period of November 1 - November 30, 2008. These updates are fixes for Windows Embedded CE operating system problems you run into during the development and maintenance of your custom platform.

Fixes made in this update:
Component: Bluetooth
081125_KB959618 - This update addresses an issue that may occur if a request comes from a device with 255 characters long name.

Component: COMM
081113_KB957901 - Windows Server 2008 may not respond to Dhcpv6 packets sent by Windows Embedded CE 6.0 device.

Component: DirectX
081114_KB959374 - This fix addresses the issue with incorrect validation of overlay's constant alpha value.
081124_KB959480 - This update addresses an issue with choppy audio and video when streaming 4 mbps or higher content over MMS or HTTP.

Component: IE
081117_KB958070 - This update addresses a number of Internet Explorer issues.

Component: MSFlash
081105_KB959247 - Warning messages cannot be turned off in ship builds.

Component: MSXML
081113_KB959877 - Deadlock may occur when two threads with different priority share the lock.

Component: Network Projector
081124_KB959416 - This update adds ioctl function to set/get a new status "suspended".

Component: Tools
081110_KB958805 - This update addresses the issue with Heaplist CEDebugX extension returning an error.
081124_KB959879 - Platform Builder 6.0 may be reading uncommited memory pages. With this update, Platform Builder 6.0 will check to make sure the valid bit is set on the page table entry.
Read more! Post this to a friend!

Windows CE: Catalog file issue

Hi everybody,

You might come across the problem that even though you created your catalog item correctly, when selecting it, it will appear as excluded from build:

When you look at the reason why your catalog item is excluded from build it will tell you:
The <myAudioDll.dll> file is not referenced in the BSP’s bib file. The BSP may not support this driver.
How can this be, you might ask yourself, I did include it in platform.bib! Well you run into this particular problem if both of the following conditions are met:

  • The driver is referenced in the platform.bib file via an #include statement and not directly
  • you specified the module name in the catalog item file
In this case your driver will still be built and included in your image. In oder to fix the catalog item view all you need to do is get rid off the module definition in your catalog item file. Et voilá, now the catalog item will no longer be displayed as excluded from build.

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

Tuesday 9 December 2008

Windows Embedded CE 6.0 R2: VoIP dial plan problems

Hi,

in my earlier post, I gave you a few hints on how to get the new Windows Embedded CE 6.0 R2 VoIP application suite working. But you might find that by default only the US phone number dial plan is supported. So what do you need to do in order to place a call if you do not live in the US or don’t want to call a US number? Well the dial plan is defined in an .xml file which you can find under _WINCEROOT\PUBLIC\FP_VOIP\OAK\FILES\ipdialplan_fpvoip.xml. All you need to do is alter that file accordingly.

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

Monday 8 December 2008

Windows Embedded Standard MSDN Chat - TOMORROW

Hi Folks,

just a quick reminder: the next MS technical chat on Windows Embedded Standard takes place tomorrow, check out Haralds’ post for more details.

Have fun!


Read more! Post this to a friend!

Application Development under Windows Embedded CE 6.0

Hi out there,

in case you are looking for a good and extensive description of the changes in application development under Windows CE 5.0 to application development under Windows Embedded CE 6.0 have a look at this article on the Windows CE Base Team Blog written by Upender R. Sandadi.

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

Saturday 6 December 2008

What is new in MS Auto 3.1?

Hello guys,

here some news about MS Auto 3.1:
Microsoft Auto 3.1 is the latest release in Microsoft’s leading automotive focused software platform. It is built on top of Windows Embedded CE 6.0 R2.
The improvements made for MS Auto 3.1 include:
  • Availability of a new Board Support Package (BSP) for the Renesas SDK-7785 system development kit enabling a new class of processor support for Microsoft Auto
  • Significantly improved BSP for Texas Instruments’ TMS320DRA446 (Jacinto) EVM board
  • Improved media device support
  • Improved Bluetooth support

If you need more information, then just take a look here.

Thanks


Read more! Post this to a friend!

Friday 5 December 2008

C# Yellow Book

Hello guys,

Rob Miles has released his C# "Yellow book".

It is free availabele to download. It is a very nice book about C# developement and programming technics.
You can download it here. If you can't get enough about C# and if you interessed in .Net Microframework, then I have another hint for you!
Rob has also has published a great post describing how to build your own festive lights controller using .Net Microframework. Just look at:
http://blogs.msdn.com/coding4fun/archive/2008/11/27/9149635.aspx


Read more! Post this to a friend!

Tuesday 2 December 2008

Windows CE and Mobile: Microsoft Technical Chat on December 16, 2008

Hi Folks,

If you have missed the last chat on Windows Embedded CE and Windows Mobile, don’t worry the next one is coming up:

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

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

Description: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:
http://www.microsoft.com/communities/chats/default.mspx

There is also an archive of previous chats available at:
http://msdn.microsoft.com/en-us/chats/aa497439.aspx

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

Windows CE: SOURCES macro restrictions

Today I want to focus on the SOURCES macro which contains a list of files that are processed during the build process of Windows CE to become the contents of a .lib, .dll or .exe file. This macro is used from within the SOURCES file. The list of files to compile includes assembly and source files with the following file extensions:
.cxx, .cpp, .c, .asm, .s, .src, .rc, .obj, .ire, .res, .h, .edl, .tlb, .i, .cs, .resx

As with all other macros in SOURCES or DIR files, a “\” character denotes that the list for the particular macro continues in the next line. Be careful not to use any other character after the “\” character otherwise the list will NOT continue in the following line. A whitespace character after the “\” character is a common and hard to trace bug in this context.

There is one more restriction you need to be aware of when using the SOURCES macro. You can only specify files in the same directory as the SOURCES file (e.g. SOURCES=myFile.c) or files that are one directory up from the SOURCES file (e.g. SOURCES=..\myOtherFile.c). Every other file will not be taken into account and produce an error when building your module.
NOTE: This restriction does not apply to the assembly file macros such as ARM_SOURCES, SH_SOURCES, x86_SOURCES or MIPS_SOURCES.

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

Monday 1 December 2008

Substitute the Desktop Background Graphics

Well, how to customize the background image on Windows CE Desktop?

I've seen quite a few times now and it seemed the most intuitive way for me, too, to first search for the background image file coming from Microsoft. But what to do then?

1.) First alternative coming to everybody's mind is to substitute the background image file. The file is named windowsce_vgal.jpg and is placed in _PLATFORMROOT\<BSPNAME>\Files After testing you hopefully have IMAGING_IMG_JPEGDECODER enabled, too. Otherwise you will find out that there is a windowsce_vgal.bmp that has to be sustituted then. This was quite easy but since you used the same file naming in your project compared to Microsoft's original file naming it's hard to see or recognize that the substitution took place. Especially if you'll just look at the sources a few month after the changes. Then you'll really need an image viewer to recognize the replaced images.

So is there a better way to do this?

2.) Watch out for the shell.bib file. There you will find the lines controling the inclusion of the background image like:

; @CESYSGEN IF SHELL_MODULES_VGAL
; @CESYSGEN IF IMAGING_IMG_JPEGDECODER
WindowsCE.jpg $(_FLATRELEASEDIR)\windowsce_vgal.jpg NK S
; @CESYSGEN ELSE
; @CESYSGEN ENDIF IMAGING_IMG_JPEGDECODER
; @CESYSGEN ENDIF SHELL_MODULES_VGAL

And now look at that: In the final nk.bin image the background image file gets renamed to WindowsCE.jpg

So what you can do here is obviously to add a line like

WindowsCE.jpg $(_FLATRELEASEDIR)\my_projects_background_image.jpg NK S

and probably introduce an own environment variable or feature variable as a catalogue item to wrap this line(s) with some controling IF ELSE ENDIF statements. Now you did not touch the original background image from Microsoft and inside your repository your background image file has a meaningful file name. A few month later looking into your repository you will have a good chance to recognize the customization now.

3.) Now is there a third alternative even better? Why not use your own file name even inside your nk.bin image? So some of your bib files contains, e.g.

my_project_bg_image.jpg $(_FLATRELEASEDIR)\my_projects_background_image.jpg NK S

If you have a look into wceshellfe.reg you will find

; initial value for background bitmap, if any
[HKEY_CURRENT_USER\ControlPanel\Desktop]
; @CESYSGEN IF IMAGING_IMG_JPEGDECODER "wallpaper"="\Windows\WindowsCE.jpg"
; @CESYSGEN ELSE
; @CESYSGEN ENDIF IMAGING_IMG_JPEGDECODER

Adopting the "wallpaper" line to something like

"wallpaper"="\Windows\my_project_bg_image.jpg"

might do the trick then. And again customization control can be added by feature variables and catalogue items. Transparency for others or while time goes by is surely higher compared to the two alternatives before.

Other customization work can often be controled in similar ways...
Read more! Post this to a friend!