A SPI slave device (/dev/spidevX.Y) is opened, by default, with the following:
	- transfer mode = SPI_MODE_0
	- bits per word = 8
	- max speed Hz = 1MHz
	- UIO device (device node used to wake up on data from slave) = /dev/uio0
	  Can be changed from SPIDevice.h: #define SPI_DAP_DEV "/dev/uio0"

The maximum speed can be changed from C using function setSpeedHzSPI(). E.g.:
	SPIConfigurationData config = defaultSettingsSPI();
	setSpeedHzSPI(config, 2000000);  // 2MHz
	PhysicalDevice *device = InitPhysicalDevice(SPI, config, "/dev/spidev3.0", GLOBAL);

The maximum speed can be changed from Python using variable MAX_SPEED_HZ in
	com.nxp.wireless_connectivity.hsdk.config

After each command which triggers a CPU reset of the device, read operations
on /dev/spidev* must be paused for ~500ms, because immediately after the reset
the data-announcing pin is unstable (/dev/uio*).

Examples:

	# Run simple Thread test
	root@imx6ulevk-iotg:~/host_sdk/hsdk-python/src/com/nxp/wireless_connectivity/test# python getaddr.py /dev/spidev3.0

	# Flash image with OTW bootloader
	root@imx6ulevk-iotg:~/host_sdk/hsdk-python/src/com/nxp/wireless_connectivity/test/bootloader# python fsci_bootloader.py -h
	usage: fsci_bootloader.py [-h] [-s CHUNK_SIZE] [-d] [-e]
	                          serial_port binary_file

	Script to flash a binary file using the FSCI bootloader.

	positional arguments:
	  serial_port           Kinetis-W system device node.
	  binary_file           The binary file to be written.

	optional arguments:
	  -h, --help            show this help message and exit
	  -s CHUNK_SIZE, --chunk-size CHUNK_SIZE
	                        Push chunks this large (in bytes). Defaults to 2048.
	  -d, --disable-crc     Disable the CRC check on commit image.
	  -e, --erase-nvm       Erase the non-volatile memory (only useful if the
	                        binary file does not contain the NVM sectors required
	                        to overwrite the existing ones).

	# Script defaults to: chunk_size 2048, with CRC check, w/o erasing the NVM if possible
	root@imx6ulevk-iotg:~/host_sdk/hsdk-python/src/com/nxp/wireless_connectivity/test/bootloader# python fsci_bootloader.py /dev/spidev3.0 ~/images/host_controlled_device_frdmkw24_freertos.bin
	Namespace(bin='/home/root/images/host_controlled_device_frdmkw24_freertos.bin', chunk_size=2048, dev='/dev/spidev3.0', disable_crc=False, erase_nvm=False)
	[Command] /dev/spidev3.0: FSCIEnterBootloaderRequest -> {}
	[Command] /dev/spidev3.0: FSCIFirmware_CancelProcessRequest -> {}
	[Event] /dev/spidev3.0: FSCIFirmware_CancelProcessConfirm -> {'Status': 'Success'}
	[Command] /dev/spidev3.0: FSCIFirmware_StartImageRequest -> {'ImageSize': 264300L}
	[Event] /dev/spidev3.0: FSCIFirmware_StartImageConfirm -> {'Status': 'Success', 'ExternalMemorySupported': 1, 'ProtocolVersion': 1}
	Progress:  100.00%
	All chunks sent in 8.23110890388 seconds.
	[Command] /dev/spidev3.0: FSCIFirmware_CommitImageRequest -> {'CRCval': 61099, 'BitMask': bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'), 'CRCEnabled': True}
	[Event] /dev/spidev3.0: FSCIFirmware_CommitImageConfirm -> {'Status': 'Success'}
	Commit image completed in 1.75758194923 seconds.
	[Command] /dev/spidev3.0: FSCICPUResetRequest -> {}
	================================================================================
	TOTAL EXECUTION TIME: 12.0929350853 seconds.
	================================================================================

	# Run Serial TUN over SPI device, with factory reset, create network on channel 13
	root@imx6ulevk-iotg:~/fsciack/hsdk/demo/bin# ./Thread_KW_Tun /dev/spidev3.0 threadtun0 1 13
