Super Fast CRC Algorithm

Friday, September 4, 2015

Take a look at the details here: Specifically these two lines of code: Fast CRC 16 C myCrc ^= *buffer++; myCrc = (myCrc) ^ (myCrc << 5) ^ (myCrc << 8); Fast CRC 16 C# myCrc ^= (ushort)(buffer); myCrc = (ushort)((myCrc) ^ (myCrc << 5) ^ (myCrc << 8)); It looks like a very efficient CRC method, for both CPU and Memory utilization. I can't find anything wrong with it, so why isn't this kind of implementation the first hit on google? What am I missing there? Any idea is welcome.

Eastronics Compact 7 Session

Thursday, June 28, 2012

Hopefully everyone attending enjoyed the session. You can find my presentation here: Windows Compact 7 - Asaf Shelly (Technical website:; My Intel Blog:  
tags: ,

המרחק בין מתכנת למתכנת אמבדד

Wednesday, February 29, 2012

קודם כל חשוב לומר שאין קשר לסביבת הפיתוח, לתשתיות, לאוסף הכלים וה- API. שום קשר. בעולם מיקרוסופט יש לנו מספר מערכות הפעלה שונות שעליהן מפתחים, לרוב בעזרת Visual Studio: 1. Win32 API, User-Mode, C\++, C#, MFC, Java, וכד' 2. שרתים, Asp.Net, HPC, וכד' 3. Windows CE 4. Windows NT Kernel 5. WebBrowser, JavaScript, AJAX, וכד' למי ששואל את עצמו, הגרסאות השונות של Windows Embedded הן בעצם דרך לבנות Desktop או Server. יש בישראל הרבה מתכנתים מכל הסוגים שהזכרתי. בדרך כלל יהיה קל יותר למתכנת מקבוצה מסויימת לפתח שיחה עם מתכנת מאותה הקבוצה. מדובר בקהילה ובתרבות וכנראה שדווקא זה כן קשור לסביבת העבודה ואופי המוצרים. מי שמכיר אותי יודע...

Windows Embedded Compact 7 Book

Saturday, October 15, 2011

If you are interested in Windows Embedded Compact 7 you should take a look at Avi Kcholi's new book "Pro Windows Embedded Compact 7: Producing Device Drivers". Avi is the number one expert in Israel and is one of the leading figures world wide. Soon to be published, you can already find it on Amazon: Enjoy! Asaf
tags: , ,
no comments

Interview @ Intel IDF

Hi All, This is the interview I gave Intel last month at the Intel Developers Forum in San Francisco. It has a few hints to future innovations. Asaf
one comment

WES 2009 HORM Problem

Friday, February 25, 2011

Windows Embedded Standard 2009, activating HORM (Hibernate Once Resume Many), xpepm.exe reported power manager cofiguration issue, fba.exe shut down the computer instead of hiberating it. Start by verifying that you can hibernate using Windows shut-down menu. Either you cannot hibernate because a driver does not support it (or is preventing it) or you need to verify the 'Enable Hibernation' checkbox on the Power Management control panel applet (powercfg.cpl)
no comments

Windows Virtual PC Disk Compacting

Saturday, February 12, 2011

Now that I have a new laptop (Windows 7) I am using my old laptop (Windows XP) as a Windows Virtual PC machine. It works faster than the old real machine but I had a problem with the disk space. The virtual machine is reporting that it is using 85GB of disk but the file size was actually 85GB on the host OS. When you turn off the virtual machine you can modify the virtual disk and reduce its size. The process is documented to include: A. Disk difragmenter B. Use an ISO image that comes with Windows Virtual PC and run...
no comments

WDK setup on Windows Embedded "unknown trust provider"

Thursday, February 10, 2011

Hi All, I tried istalling my WDF based driver on Windows Embedded Standard 2009 and it failed. Dependency walker showed that my driver is missing the reference wdfldr.sys which is installed automatically with WDF's co-installer. Device Manager shows an unknown device under my device class and setup API identifies that a device with the class is installed in the system. When I tried to manually update the driver in Device Manager I got the error saying that the installation failed with the error "unknown trust provider". The solution was to add cryptographic services. I didn't verify what was missing, just added all...
no comments

Verify Installation of a custom device using C#

Tuesday, March 9, 2010

Hi all, Using my WinUSB C# component, I also needed to automatically install the driver if it is not already installed. The INF file defines a new device class by its GUID. This means that the class does not exist on the machine if the device is not installed. Here is the code: internal static extern bool SetupDiGetClassDescription(ref Guid ClassGuid,StringBuilder classDescription, Int32 ClassDescriptionSize, ref UInt32 RequiredSize);public static bool IsDeviceClassInstalled(string deviceClassGuid){   return (IsDeviceClassInstalled(new Guid(deviceClassGuid)));} public static bool IsDeviceClassInstalled(Guid deviceClassGuid){   StringBuilder deviceClassDescription = new StringBuilder(256);   UInt32 retLength = 0;   SetupDiGetClassDescription(ref deviceClassGuid, deviceClassDescription, deviceClassDescription.Capacity, ref retLength);   return (deviceClassDescription.Length >...
no comments

Visual C++ Compiler ERROR C2016

Tuesday, December 29, 2009

Compiling a C file with Visual Studio 2008 compiler I got this error: "error C2016: C requires that a struct or union has at least one member" I am writing this post because it is not documented, and C2016 on MSDN is defined as "A newline character was found before the closing single quotation mark of a character constant". Either it is not well documented or I don't know where to look for it. Whatever the reason I can only guess that someone else will find the same problem. This is the cause: struct{   int    u8Type;   int    u8LenExtended;   int   u16Length;} Base_Request; struct Request_Ex{   Base_Request Request;  ...
tags: ,