Wednesday, December 3, 2014

WEC7 vs WinCE6 [Windows]

Catagory
CE7
CE6
User Interface options Silverlight and the Windows Embedded Silverlight Tools (WEST
- an extensible UI framework and the advanced Interaction options along with richer graphics with Silverlight 3.0 for evolving customer expectations.
- support Silverlight 3 constructs and is accompanied by a powerful development tools that eases the integration work to hang in the C++ code behind.
- gives consumers the ability to share and manage content across networked devices with Digital Living Network Alliance, such as new HDTVs, and a new media librarY
- limitation while using Silverlight for Embedded, first released in WinCE 6.0 R3
- silverlight 2.0
Multi-Touch and Custom gesture support
-  rich user experience with Multi-touch and custom gestures integrated into the browser.
- single touch only
Internet Explorer 7
- Internet Explorer 7 including support for Adobe Flash 10.1
- support for tabs, panning and zooming giving rich desktop browsing experience and natural touch input
- browsing rich Web 2.0 content with streaming video on websites making the interface more interactive,
-  browser control with IE7 rendering control surrounded with Silverlight Windows embedded application that allows developers to build highly interactive devices.
- IE6
hardware manufacturers and developers
- kernel support for 3GB physical RAM and also supports ARMv7 assembly.
- market quicker with support for multi-core and

OS support for multi-core processors
- multiple CPU architectures and supports x86, SH (automotive only) and ARM.
- supports multi-core processors, ARM VFPU and NEON instructions and provides support and commitment from ARM to Microsoft's Windows CE
- supports ARMv7
- NO ARMv4 support
- Single CPU support
- ARMv4 support
Media player
- Improved compression formats like mp4 and 3gp
- improved video playback, video conferencing, video telephony, and digital TV

Exchange 2010 AirSync
- Improved Microsoft AirSync and Microsoft Exchange, as well as to Microsoft Office and Adobe PDF viewers to access important documents, and to Windows 7 Device Stage to transfer data and media between PCs and devices.
- Synchronizes data using a direct connection with an Exchange Server that uses an Ethernet connection, this includes wireless and Ethernet cable connections.

Advanced Networking Stack
- advanced networking stack inspired from Windows 7 along with seamless connectivity options to PC and the Internet improved sync up with office products is an USP of the latest offering.

process vs thread [OS]

Process vs Thread
A problem with processes
1. expensive to create a new process.
construct new data structure in the kernel
copy memory
2. expensive to switch between
processes (context switch)  
3. cache must be flushed
4. registers reloaded
5. kernel scheduler and dispatcher is always involved
Threads in the same process share
1. process instructions most data
2. open files (descriptors)
3. signals and signal handlers

Each thread has a unique
1. Thread ID
2. set of registers, stack pointer
3. stack for local variables, return addresses

Designated initializers [Embedded]

Initialize a structure (Designated Initializers)

int aa[4] = { [2] = 3, [1] = 6 };
In a structure initializer, specify the name of a field to initialize with ‘.fieldname =’ before the element value. For example, given the following structure,
   struct point { int x, y; };
the following initialization
   struct point p = { .y = yvalue, .x = xvalue };
is equivalent to

   struct point p = { xvalue, yvalue };

WEC2013 vs WEC7 [WinCE]


WEC2013
WEC7
Environment
Support for VS 2013 and VS 2012
- no WEC7 specific tool chain or compiler
- fewer catalog items
- Latest C runtime library
- vs2008
- separate pb for wec7
BSP or driver
- WLAN driver for TI WiLink 7.0 available
- two new BSPs: the x86 based AMD G-Series and the ARM v7T2 based Texas Instruments OMAP 4470

Networking stack
- Enhanced network performance.
- Dynamic Host Configuration Protocol version 6 (DHCPv6) client with stateful and stateless address configuration.
- (L2TP/IPsec) over IPv6 for VPN
- Utilities for configuration and display of IPv6

Snapboot
- snapshot boot significantly reduces the time that is required for device to boot by saving the state of device to persistent storage and then restoring that state when the device reboots.
- restores the system by using a previously saved memory image that contains the state of the system, including the program and driver states, that you want restored on boot.
- supports large snapshots up to 500 MB, and also supports paging on demand from the snapshot image to further reduce boot time.

ARMv7T2
- improved support for the latest ISO C++11 specification
- Visual Studio 2013 compiler targets a newer version of the ARM Embedded-Application Binary Interface (EABI)

Expression Blend
- incorporated Expression Blend to design applications for compact devices, removing the need to download a separate tool

OOM Model
-OOM model uses several thresholds, adjustable by registry, to provide different levels of available memory for different types of components.
- Fails memory allocation if there is no memory available.
- Provides notifications of low-memory or critical-memory issues, before memory allocation starts failing.
- Provides a notification for a healthy memory status.
- When applicable, enables any application or shell to monitor and take the correct action on an OOM event. For example, a device could reboot on an OOM event, use a shell that handles an OOM event, or not take any action so that the application handles the OOM event.
out-of-memory (OOM) model was designed specifically for devices that have limited RAM.
- This design required users to close applications to avoid memory allocation failures.
Native application and managed application
- newest Microsoft C++ compiler and supports the latest versions of the C++ runtime, the Active Template Library (ATL), the Standard Template Library (STL), and the Microsoft Foundation Classes (MFC).
-  uses .NET Compact Framework 3.9
-  include a smaller memory footprint and faster startup time
- backward compatibility with .NET Compact Framework 3.5.
.NET Compact Framework 3.5
Streamlined Catalog
removed from the product, including:
Internet Explorer 7.
Remote Desktop Protocol (RDP).
Some consumer supported features, such as Digital Living Network Alliance (DLNA) and device sync.
The Windows 95 shell.

Others
-  five new OS design templates to make creating OS designs simpler.
- Improved support for data binding and new triggers
-  use of a generic error handler plug-in at the FSDMGR level that can catch the failed disk I/O related operation and return an error value that can be acted upon
-  HTML to display simple help files on a device
- embedded offering which includes the iType® font engine and Monotype’s YingHei font

Event vs Critical Section vs Mutex vs Semaphore [WinCE]

Event
criticalsection
mutex
semaphore
- Notify a thread when to perform its task.
- Indicate that an event has occurred.
- Threads in other processes can open a handle to an existing event object by specifying its name in a call to CreateEvent.
- When multiple threads have shared access to the same data, the threads can - interfere with one another.
- critical section is limited to only one process or DLL and cannot be shared with other processes
- synchronization object whose state is set to signaled when it is not owned by a thread and nonsignaled when it is
- Only one thread at a time can own a mutex object.
- Threads in other processes can open a handle to an existing mutex object by specifying the object name in a call to CreateMutex.
object's state is set to signaled when its count is greater than zero, and nonsignaled when its count is zero
- application uses a semaphore to limit the number of threads using a resource
- can be used across processes or within a single process
- To signal an event, use the SetEvent or PulseEvent function. SetEvent does not automatically reset the event object to a nonsignaled state. PulseEvent signals the event, and then resets the event.
- If another thread calls EnterCriticalSection and references the same critical section object, it is blocked until the first thread calls the LeaveCriticalSection function.
- create a handle to the critical section object by calling the InitializeCriticalSection function.
- A thread calls the CreateMutex function to create a mutex object.
- owning thread releases the mutex object by calling the ReleaseMutex function
CreateSemaphore function to create a named or unnamed semaphore object.
- thread calls ReleaseSemaphore to increase the semaphore count by one