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
Resources
Related projects
CSEF · 2015
A Multi-Architectural Approach to the Development of Embedded Hardware: A Second Year Study
ISEF · 2014
A Multi-Architectural Approach to the Development of Embedded Hardware
CSEF · 2013
Operating System Design and Development Continued
CSEF · 2012
Efficient Operating System Design and Development for the ARM Architecture
ISEF · 2020
Instrumental Platform for the Development of Specialized Computing Systems
CSEF · 2011
The Minicomputer/Projector: An All-In-One Mobile Solution for an Interactive "Touch Screen" Interface on Any Surface
ISEF · 2024
Extending PCPU: A New, Practical, and Production-Ready Processor Core Written From Scratch
CSEF · 2013
Homemade Computer: Creating an Affordable Computer Using Unconventional Computer Components
Closest projects by meaning, across every fair and year in the corpus.
Browse more like this
Source: California Science & Engineering Fair public projects