<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>How does Windows Embedded CE 6.0 Start?</title><link>http://blogs.msdn.com/ce_base/archive/2007/11/26/How-does-Windows-Embedded-CE-6.0-start_3F00_.aspx</link><description>Posted by Kurt Kennett, Senior Development Lead, Windows CE OS Core Operating system code, as one of my colleague developers recently realized, is “just code”. It’s not voodoo and it does not exist on a higher plane of knowledge. In fact, an operating</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: How does Windows Embedded CE 6.0 Start?</title><link>http://blogs.msdn.com/ce_base/archive/2007/11/26/How-does-Windows-Embedded-CE-6.0-start_3F00_.aspx#6550879</link><pubDate>Tue, 27 Nov 2007 16:57:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6550879</guid><dc:creator>John Karlsson</dc:creator><description>&lt;p&gt;The pictures in this blog doesn't load for me.&lt;/p&gt;
&lt;p&gt;-John&lt;/p&gt;
</description></item><item><title>re: How does Windows Embedded CE 6.0 Start?</title><link>http://blogs.msdn.com/ce_base/archive/2007/11/26/How-does-Windows-Embedded-CE-6.0-start_3F00_.aspx#6552778</link><pubDate>Tue, 27 Nov 2007 18:15:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6552778</guid><dc:creator>John Karlsson</dc:creator><description>&lt;p&gt;Sorry... &amp;quot;[...] in this blog POST [...]&amp;quot;. Other posts' pictures load just fine.&lt;/p&gt;
</description></item><item><title>re: How does Windows Embedded CE 6.0 Start?</title><link>http://blogs.msdn.com/ce_base/archive/2007/11/26/How-does-Windows-Embedded-CE-6.0-start_3F00_.aspx#6561311</link><pubDate>Wed, 28 Nov 2007 01:28:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6561311</guid><dc:creator>ce_base</dc:creator><description>&lt;p&gt;Thanks for the heads-up John, I believe I've fixed the problem. Could you refresh the page and let me know if the pictures are now visible? I've walked around to a few co-workers offices, and each one usually ends up with a different picture missing :).&lt;/p&gt;
</description></item><item><title>re: How does Windows Embedded CE 6.0 Start?</title><link>http://blogs.msdn.com/ce_base/archive/2007/11/26/How-does-Windows-Embedded-CE-6.0-start_3F00_.aspx#6574356</link><pubDate>Wed, 28 Nov 2007 12:49:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6574356</guid><dc:creator>John Karlsson</dc:creator><description>&lt;p&gt;All the pictures load now. Nice :) Thank you.&lt;/p&gt;
</description></item><item><title>re: How does Windows Embedded CE 6.0 Start?</title><link>http://blogs.msdn.com/ce_base/archive/2007/11/26/How-does-Windows-Embedded-CE-6.0-start_3F00_.aspx#6597049</link><pubDate>Thu, 29 Nov 2007 14:05:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6597049</guid><dc:creator>seuzhujian</dc:creator><description>&lt;p&gt;Hi,I'm puzzled with a question,that is,when I transmite a file below 50M to a PDA with WINCE5.0, it's OK.But when I transmite a file larger than 50M,probably the activesync with be disconnected. I belive there's something wrong with the PDA's usb device driver,&lt;/p&gt;
&lt;p&gt;would you give me some help or some advise? Thank you.&lt;/p&gt;
</description></item><item><title>re: How does Windows Embedded CE 6.0 Start?</title><link>http://blogs.msdn.com/ce_base/archive/2007/11/26/How-does-Windows-Embedded-CE-6.0-start_3F00_.aspx#6597251</link><pubDate>Thu, 29 Nov 2007 14:34:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6597251</guid><dc:creator>Andreas Magnusson</dc:creator><description>&lt;p&gt;Thanks for a very interesting read, a question though:&lt;/p&gt;
&lt;p&gt;Are the handling of the Interlocked*-functions implemented that way ONLY on architectures that do not support the concept or on all architectures?&lt;/p&gt;
</description></item><item><title>re: How does Windows Embedded CE 6.0 Start?</title><link>http://blogs.msdn.com/ce_base/archive/2007/11/26/How-does-Windows-Embedded-CE-6.0-start_3F00_.aspx#6600399</link><pubDate>Thu, 29 Nov 2007 19:50:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6600399</guid><dc:creator>Kurt Kennett</dc:creator><description>&lt;p&gt;&amp;quot;..The only way to guarantee this on some of today’s processors where the operation is not available directly in hardware..&amp;quot;&lt;/p&gt;
&lt;p&gt;I believe the X86 has the cmpxchg hardware instruction. &amp;nbsp;ARM and other platforms may not have equivalents.&lt;/p&gt;
&lt;p&gt;Thanks for the question!&lt;/p&gt;
</description></item><item><title>re: How does Windows Embedded CE 6.0 Start?</title><link>http://blogs.msdn.com/ce_base/archive/2007/11/26/How-does-Windows-Embedded-CE-6.0-start_3F00_.aspx#6600537</link><pubDate>Thu, 29 Nov 2007 20:15:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6600537</guid><dc:creator>Andreas Magnusson</dc:creator><description>&lt;p&gt;Thanks, while reading it, it seemed a bit ambiguous &amp;nbsp;whether you had implemented the &amp;quot;trick&amp;quot; generally so it would work on ALL processors or if it was just for those poor ones missing cmpxchg (or a similar instruction).&lt;/p&gt;
</description></item><item><title>re: How does Windows Embedded CE 6.0 Start?</title><link>http://blogs.msdn.com/ce_base/archive/2007/11/26/How-does-Windows-Embedded-CE-6.0-start_3F00_.aspx#6649801</link><pubDate>Tue, 04 Dec 2007 10:40:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6649801</guid><dc:creator>etherial</dc:creator><description>&lt;p&gt;Nice article, but it will be better if there is a flow chart to show the total function calls sequence after OS image loading on memory. ;-)&lt;/p&gt;
</description></item><item><title>re: How does Windows Embedded CE 6.0 Start?</title><link>http://blogs.msdn.com/ce_base/archive/2007/11/26/How-does-Windows-Embedded-CE-6.0-start_3F00_.aspx#6655488</link><pubDate>Tue, 04 Dec 2007 20:18:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6655488</guid><dc:creator>Kurt Kennett</dc:creator><description>&lt;p&gt;That would be nice :). &amp;nbsp;Unfortunately, while the process that is followed is generally the same, since the NK.EXE is OEM-defined code and there are multiple platforms the function names used won't be consistent. &amp;nbsp;Even inside the architecture-specific kernel most of the function names aren't identical and there are tweaks and changes to the flow. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;The only real way to describe things would be in pseudocode, which isn't much more detailed that was has already been given.&lt;/p&gt;
&lt;p&gt;Thanks for the suggestion.&lt;/p&gt;
</description></item><item><title>re: How does Windows Embedded CE 6.0 Start?</title><link>http://blogs.msdn.com/ce_base/archive/2007/11/26/How-does-Windows-Embedded-CE-6.0-start_3F00_.aspx#6683122</link><pubDate>Thu, 06 Dec 2007 21:34:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6683122</guid><dc:creator>Stas Pavlov</dc:creator><description>&lt;p&gt;Thanks for a very interesting read. &lt;/p&gt;
&lt;p&gt;There is some minor correction for the perfect article: CECE is 0x43454345. &lt;/p&gt;
&lt;p&gt;And a little questions below:&lt;/p&gt;
&lt;p&gt;After the articel reading I've try to drill down into the start process using CE 6.0 source code and decided to start from bootloaders implementations shipped with. I found that according the BLCOMMON implementaiotn it's the pointer to ROMHDR directly after &amp;quot;CECE&amp;quot; and the TOC pointer comes right after the ROMHDR pointer ( for example see \PLATFORM\COMMON\SRC\COMMON\BOOT\BLCOMMON\blcommon.c, lines 1443-1457). Also I can't find code that really &amp;quot;scan&amp;quot; NK.EXE for entry point. Have I missed something?&lt;/p&gt;
</description></item><item><title>re: How does Windows Embedded CE 6.0 Start?</title><link>http://blogs.msdn.com/ce_base/archive/2007/11/26/How-does-Windows-Embedded-CE-6.0-start_3F00_.aspx#6683375</link><pubDate>Thu, 06 Dec 2007 21:59:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6683375</guid><dc:creator>Kurt Kennett</dc:creator><description>&lt;p&gt;Actually, in Intel little endian format if the memory goes in bytes 'C','E','C','E', then the hex value you see will be 0x45434543 since a DWORD is represented &amp;nbsp;in bit order.&lt;/p&gt;
&lt;p&gt;I don't think you've missed anything. &amp;nbsp;bootloader code is somewhat different from the OS code and does not follow the same startup sequence.&lt;/p&gt;
</description></item><item><title>re: How does Windows Embedded CE 6.0 Start?</title><link>http://blogs.msdn.com/ce_base/archive/2007/11/26/How-does-Windows-Embedded-CE-6.0-start_3F00_.aspx#6689604</link><pubDate>Fri, 07 Dec 2007 09:27:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6689604</guid><dc:creator>Mithi</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Nice article, I wish this could be available before I started on this project. Most of these things I had to find hardway. Could this article be included in WinCE help, so that anyone starting new on WinCE gets a head start.&lt;/p&gt;
&lt;p&gt;cheers&lt;/p&gt;
</description></item><item><title>re: How does Windows Embedded CE 6.0 Start?</title><link>http://blogs.msdn.com/ce_base/archive/2007/11/26/How-does-Windows-Embedded-CE-6.0-start_3F00_.aspx#6690225</link><pubDate>Fri, 07 Dec 2007 10:42:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6690225</guid><dc:creator>Stas Pavlov</dc:creator><description>&lt;p&gt;I mean this one but not bit order. See below:&lt;/p&gt;
&lt;p&gt;&amp;quot;Somewhere near the beginning of the image file a marker is placed – the bytes “CECE” (0x44424442).&amp;quot; &lt;/p&gt;
&lt;p&gt;Speaking about bootloader.&lt;/p&gt;
&lt;p&gt;The question was not about functionality but about structure of image (BIN) file. According the code it is:&lt;/p&gt;
&lt;p&gt;&amp;lt;FILE_HEADER&amp;gt;&amp;lt;CECE&amp;gt;&amp;lt;pROMHDR&amp;gt;&amp;lt;pTOC&amp;gt;&lt;/p&gt;
&lt;p&gt;accoding the article is&lt;/p&gt;
&lt;p&gt;&amp;lt;SOMETHING&amp;gt;&amp;lt;CECE&amp;gt;&amp;lt;pTOC&amp;gt;.&lt;/p&gt;
</description></item><item><title>Comment démarre Windows Embedded CE 6.0 ? - How does Windows CE 6.0 start?</title><link>http://blogs.msdn.com/ce_base/archive/2007/11/26/How-does-Windows-Embedded-CE-6.0-start_3F00_.aspx#6795833</link><pubDate>Tue, 18 Dec 2007 14:31:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6795833</guid><dc:creator>Olivier's Embedded Blog - en Français &amp; in English</dc:creator><description>&lt;p&gt;Si vous vous demandez ce qu'il se passe au d&amp;#233;marrage de Windows CE, voici un article tr&amp;#232;s complet de&lt;/p&gt;
</description></item><item><title>re: How does Windows Embedded CE 6.0 Start?</title><link>http://blogs.msdn.com/ce_base/archive/2007/11/26/How-does-Windows-Embedded-CE-6.0-start_3F00_.aspx#6882811</link><pubDate>Fri, 28 Dec 2007 10:27:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6882811</guid><dc:creator>Ramesh</dc:creator><description>&lt;p&gt;Wow!!! &amp;nbsp;What a material is this... &amp;nbsp;I am new to windows CE and all that i need is clearly explained over here... &amp;nbsp;Thanks for sharing...Expecting more materials from you like this...&lt;/p&gt;
</description></item><item><title>re: How does Windows Embedded CE 6.0 Start?</title><link>http://blogs.msdn.com/ce_base/archive/2007/11/26/How-does-Windows-Embedded-CE-6.0-start_3F00_.aspx#6919406</link><pubDate>Mon, 31 Dec 2007 16:53:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6919406</guid><dc:creator>Paul</dc:creator><description>&lt;p&gt;First great article :)&lt;/p&gt;
&lt;p&gt;My question relates to your statements on MS toolchains and loader/kernel file format. &amp;nbsp;I have not seen alot of articles out which talk about detailed settings needed to get MS compiler/linkers setup to create a basic kernel (as we have tons on NASM/FASM). &amp;nbsp;Assume i am not a guy who uses the CE / PB toolset but probably the Windows DDK and SDK natively. (I know there is some semblence of relation here)....&lt;/p&gt;
&lt;p&gt;thanks!&lt;/p&gt;
</description></item><item><title>re: How does Windows Embedded CE 6.0 Start?</title><link>http://blogs.msdn.com/ce_base/archive/2007/11/26/How-does-Windows-Embedded-CE-6.0-start_3F00_.aspx#6970621</link><pubDate>Thu, 03 Jan 2008 21:43:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6970621</guid><dc:creator>Kurt Kennett</dc:creator><description>&lt;p&gt;Thanks for the feedback, Paul.&lt;/p&gt;
&lt;p&gt;There are not a lot of articles about using MS tools to create a non-MS OS - this is not really that surprising. &amp;nbsp;I assume you wish to do this sort of thing for educational reasons.&lt;/p&gt;
&lt;p&gt;The best reference to creating an OS kernel is to look at the way that the CE kernel is built and linked and then duplicate that behaivor. &amp;nbsp;The Microsoft C/C++ compiler(s) and assembler(s) that are used to build CE output Microsoft COFF format object files, which are linked to Microsoft Portable Executable (PE) format binaries.&lt;/p&gt;
&lt;p&gt;You could conceivably create your own linker to take the Microsoft Object files (.obj) and other things and put them together into your own kernel binary or .exe/.dll files. &amp;nbsp;You could alternately create your own romimage-like application which piles together .exe and .dll and other files into your own format of kernel image.&lt;/p&gt;
&lt;p&gt;An article I am working on details how to make an absolute minimal CE 6 kernel image that boots. &amp;nbsp;Hopefully that will explain some of the things you are after.&lt;/p&gt;
</description></item><item><title>re: How does Windows Embedded CE 6.0 Start?</title><link>http://blogs.msdn.com/ce_base/archive/2007/11/26/How-does-Windows-Embedded-CE-6.0-start_3F00_.aspx#7189569</link><pubDate>Tue, 22 Jan 2008 01:42:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7189569</guid><dc:creator>gS_cmans</dc:creator><description>&lt;p&gt;Good one&lt;/p&gt;
&lt;p&gt;i saw other articles in msdn re Nk bootprocess, etc but this one gives a clear abstract view with which the developers can probe docs/code&lt;/p&gt;
&lt;p&gt;thanks&lt;/p&gt;
</description></item></channel></rss>