Is it possible to run EZSP-UART on an embedded host with no operating system (OS)?
Categories:
While it’s possible to use EZSP-UART with an embedded MCU host, the drawbacks to this approach are as follows:
- The supplied EZSP-UART host driver code (for the EZSP protocol itself and the ASH framework used to interface to the UART) assume an OS framework like UNIX/Linux or Windows/WinCE, where a termios library exists to abstract the physical access to the serial port. If these libraries aren’t present on your target host MCU, you’ll have to build them yourself to allow the ash-host-io.c module to compile and link successfully.
- The required ASH framework (used for flow control and data data integrity over the UART comms) used with EZSP-UART makes the overall memory footprint larger (and somewhat more complicated) for an EZSP-UART host versus an EZSP-SPI host implementation.
- EZSP-UART NCP firmware does not support deep sleep operation of the NCP, so it’s not really appropriate for battery-powered devices.
- Since the EZSP-UART protocol is asynchronous, callback data will arrive immediately upon reception at the NCP, so your host code will need be able to deal with this asynchronous data flow. By contrast, EZSP-SPI is synchronous, so it’s often easier to manage in an embedded state machine (where other, high priority tasks may pre-empt being able to service the EZSP driver when callback data is pending); the host gets an interrupt from the NCP when callback data is pending, and then it polls the callbacks out of the callback queue via a special Callbacks command frame (which doesn’t apply in EZSP-UART).
However, if you are in a position to tackle these challenges, it is certainly possible to create an embedded EZSP-UART implementation without an OS framework (as a few customers have managed to do with some of the more sophisticated MCU architectures, such as the STM32 or ColdFire).
- Login to post comments









