For complex embedded jobs, especially when networking or graphical user interfaces have to be implemented, a complete operating system is required. If no hard real time requirements exist, this is often Linux. The development of the software, but also the hardware of such a system is significantly more elaborate than a microcontroller based system.
We have successfully conducted several projects in this embedded Linux realm, on platforms like PowerPC (PowerQUICC), MIPS and particularly ARM. In some projects the hardware was already there, in others we have developed the processor system and the peripherals. According to the production quantity as a complete system or based on a COM (Computer On Module)/ SOM (System On Module), for the later only the baseboard with supply, interfaces and sensors had to be designed by us.
The software delivery encompassed the boot loader and the BSP (Board Support Package), in many cases with additional drivers in the kernel or in user space. The BSP has been put into operation together with the hardware and so tested and debugged together with it. According to the customer wishes we developed the application: networking, business logic and user interfaces.
Of course, the most important technology used is Linux, together with Yocto to generate the distributions of the operating system. Never forget is the boot loader, we typically use U-Boot. The handling of interfaces on soft- and hardware side is part of any project, especially for IoT (Internet of Things) applications:
Ethernet/ TCP/IP...
WLAN/ WiFi
ZigBee
Bluetooth
EDGE
UMTS/ G3
LTE/ NB-IoT
ISM
LoRa
USB
On the hardware side there is always a the hardware bring-up for complex processor systems, mostly ARM (Texas Instruments Sitara, NXP i.MX...) together with fast DDR and Flash memory plus fast periphery. Often the project also contains the development of such systems from processor selection until the EMC tests. As soon as wireless interfaces are used, our high frequency expertise comes to play for the antennas.