Embedded Systems and Firmware Development
At A-WIT, we can develop an embedded system in its entirety or develop just the firmware for a hardware platform previously developed by our customer.
The design of embedded systems requires a good understanding of both high level and assembly language programming, the architectural tradeoffs between hardware and software, as well as the thoughtful employment of hardware/software co-design techniques. These techniques are, most importantly, necessary in performance critical applications, where we need to extract all the performance potential that a processing architecture has to offer. It is also necessary to have a good understanding of the hardware and the peripheral features that processors offer, such as interrupts, GPIO, timers, direct memory access, data conversion, and serial communication. Interfacing of external devices with microcontrollers is also important as well as knowing when to use on-chip resources versus external ones to minimize overall system cost.
Embedded systems have extensive interaction with their physical environments. Design issues, such as limited memory, cost, performance guarantees, real-time operations, power, and reliability, must be considered at the onset to be able to bring a product to market successfully. Equally important is to have a longitudinal vision of components modeling and analysis, control design, hardware implementation, and how to leverage high level design tools.