In embedded system application, there are various variety of computing platforms available. Hence any kernel for the emebeded systems should should be easily portable to various architectures.
The vision systems have an inherent timing constraints associated with them. Thus any kernel catering to the needs of a vision systems must have support for specifying real time constraints.
The usage of a kernel depends on the availabilty of device drivers. An OS supporting large number of devices has the obvious advantage of allowing the users to experiment with a variety of environments and devices.
Since embedded systems may be based on heteregoneous multiprocessing (say a general purpose chip and an application specific FPGA processing unit), we need to take this into account while coding / designing the kernel.