Recent blog entries

David Jones's Articles

Twitter: @CEDriverWiz

TI AM335X Windows Embedded Compact Bootloader Args: Passing between eBoot and the OS

In this blog, the eBoot menu is modified to to allow user selection of Clearing of the Hive or not. This is implemeneted by adding a further parameter to the BOOT_CG and BSP_ARGS structures to handle the boolean selection. The eBoot code is then extended to pass the selection up to the OS args driver. The OS args driver then is modified to get the value when requested by getting it from the structure passed to it through shared memory. This replaces the use of the dummy variable s_bClearHive  as used in args.c in the previous blog.

TI AM335X Windows Embedded Compact Bootloader Args and Clearing Hive Registry

The previous blog in this series demonstrated how to add a custom OAL IOCTL to the BSP. In particular it implemented the IOCTL_HAL_GET_HIVE_CLEAN_FLAG IOCTL so that it returns a fixed value to the OS when called. In this blog, that code is extended to call the BSP boot args using a custom boot arg. A fixed value is returned by boot args  in this case. A later blog will pass that arg from eboot.

TI AM335X Windows Embedded Compact Bootloader and Custom OAL IOTCLs

OAL IOCTLs are callable from OAL code to perform specific functions within the OS Kernel. The OS requires the OEM to specifically implement certain IOTLCs that it calls, and some other standard IOTCLs if implemented are automatically called by the OS. One such optional IOCTL, IOCTL_HAL_GET_HIVE_CLEAN_FLAG, will cause the OS to clear the hive registry if it passes back a TRUE when called at OS startup. These IOCTLs are normally called in kernel mode as they are called directly by the the kernel. Some IOCTLs can be called by a user mode thread as well.  In our book, Professional Windows Embedded Compact 7, I covered implementing a custom OAL IOCTL for the VCEPC BSP. This blog looks at adding an OAL IOCTL with the ARM TI AM335X  BSP

TI AM335X Windows Embedded Compact Bootloader and Imaging

Booting a Windows Embedded Compact image is a three step sequence.. A raw binary of binary file or a record based binary file is used for each phase of the OS boot. Includes use of CELoader to image a target.

Windows 10 IoT Systems

Various scenarios were presented for Windows 10 IoT at Build 2015. In all cases, the object is to have a Windows 10 device, whether desktop, mobile or embedded/IoT, talking to custom hardware and to the cloud. The “reference” design for hardware from a Makers’ perspective is Arduino. Let’s examine the scenarios.

About Windows 10 IoT

Windows 10 IoT is the third (lower) layer of Windows 10. All three are built from the same codebase, part of Microsoft’s one Windows mantra. Whilst the desktop will have significantly more features than the IOT layer, the IoT layer will embedded features such as General Purpose IO (GPIO) which the desktop doesn’t. The Phone layer will support cellular networks for phone calls whereas the other two only support this for internet access. Apart from the common code, a binding feature of all three is Universal Apps.

Windows 10 IoT Core Insider Preview

At Build 2015 in San Francisco this week, there has been a large range of announcements wrt Windows 10. The topic of interest here is "Windows 10 IoT Core Insider Preview" as a public release of this for this for the Raspberry Pi 2 was much anticipated. That is now available. The IoT sessions indicate that it is now available not only for that but for a number other contexts

CEJSON – 5.5 The Parser source code in detail

The following is most of the code for the JSON Parser state machine function.

CEJSON – 4.4: IncrementState

Increments (the enum) the state.

// For many states when its parse requierment is satified: state <-- state++
void IncrementState()
{
	parseState = (Expecting)((int)parseState + 1);
}

CEJSON – 5.3: Expect

If in a state of “readiness” checks if the current character is the expected one. If so increment or change the state.

// For states where state increments by one if the expected character is the
// current one in the stream.
BOOL Expect(char c)
{
	char  ExpectArray[11] = "[{\"X:XX,X]";  //X is don't care
	if (c == ExpectArray[parseState])
	{

		IncrementState();
		return true;
	}
    //A 'fix' to facilitate parsing of JSON strings that aren't arrays:
	else if (('{' == c) && (startOfArray == parseState))
	{
		//Permit parsing of records only
		parseState = startOfName;
	}
	else
	{
		//Expectation wasn't satified so error
		output.print(F("Expected: "));
		output.println(ExpectArray[parseState]);
		output.print(F("Got: "));
		output.println(c);
		parseState = error;
		output.print(F("Expect Next Err: "));
		output.println(parseState);

		ErrNo = 10;
		return false;
	}
	return true;
}

David Jone's blog



Search blog

Category

Archive

Turkish porno izle video site in rokettubeporno izle