Embedded computing

Embedded computers are “computers inseparably integrated into structure of products and machines and usually having no screen, keyboard or software tools”. The lack of screen, keyboard and  onboard software tools raises considerable challenges to to developing these systems.  Their importance is illustrated by considering the simple fact that almost 3 billion ARMs (the processor of choice in embedded systems) are produced per year (according to ARM in 2010, at least 90 per second); dwarfing the production of conventional computers! Challenges include designing new types of hardware architecture that run java or agent rules directly (without intermediary software), new types of reprogrammable embedded systems,  new types of compact  OS, middleware, virtual machines and finally how to debug hundreds of coordinating distributed embedded computing systems (maybe using AI based debugging agents!)?