A Multi-Architectural Approach to the Development of Embedded Hardware

CSEF · 2014 Electronics & Electromagnetics Second Award

Overview

Objectives/Goals The objective of my project is to develop an electronics prototyping platform designed specifically to run a paradigmatic operating system that I have written in an attempt to make hardware and software development more easily accessible to anyone by enabling a host PC to interact with any hardware peripheral without requiring the user to write any code. Methods/Materials An AVR microcontroller was fused with an ARM microprocessor by connecting the two devices together over their SPI and USART busses. The system architecture was devised so that the communications layer of the paradigmatic operating system could be actively executing on the microcontroller to handle communications with a host PC all without disrupting the parallel execution of the scheduler and active processes on the microprocessor. Aside from the performance improvements, such an interface enables a host PC to directly manipulate the hardware resources of the microprocessor by communicating with the microcontroller and requesting that it handle the execution of a particular operation. Aside from real-time manipulation of hardware, programs can also be run in parallel on the microprocessor. During normal execution, the microcontroller handles copying programs from the host PC into external flash memory. The PDMA controller of the microprocessor then takes over by moving them from external flash to internal flash where they can then be executed. Results By running my operating system simultaneously across two processor architectures and using specific features of each architecture to improve performance, I was successfully able to create an electronics prototyping platform that can be used by anyone with minimal knowledge of either hardware or software by extending the functionality of any microcontroller or existing development platform to a host PC without requiring the user to write any code. Conclusions/Discussion Not only can a multi-architectural approach to running an operating system be used to simplify the software-hardware interface, but can also be used to facilitate debugging, rapid prototyping, and much more. Using this interface, a development PC can be used to manipulate any aspect of the platform's hardware; from raw variable values in RAM, segments of code in flash, or even IO pins themselves, any aspect of development can be achieved without the need to recompile and flash data to the microprocessor.

Summary statement

After countless hours of research, development, and assembly, I was successfully able to pair my newly developed hardware platform with my paradigmatic operating system.

Help received

None. All of the work done on this project was my own.

Awards (1)

Competition history

  • CSEF 2014 Electronics & Electromagnetics · Entry S0922

Resources

Related projects

Closest projects by meaning, across every fair and year in the corpus.

Browse more like this

Source: California Science & Engineering Fair public projects

Save projects to your library

Sign in with Google to keep track of projects you find interesting, organized into folders. An account also raises your daily allowance for “Has this been done?”, and lets you create a key for the MCP server with a much higher limit than anonymous use. Browsing stays public.

Continue with Google