Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yezzfusl/triple-bootloader
Arduino Uno bootloader in C, C++, and assembly
https://github.com/yezzfusl/triple-bootloader
assembly atmega328p avr bootloader diy-electronics embedded embedded-systems firmware hackaday hardware hardware-programming isp microcontroller stk500 uart
Last synced: 17 days ago
JSON representation
Arduino Uno bootloader in C, C++, and assembly
- Host: GitHub
- URL: https://github.com/yezzfusl/triple-bootloader
- Owner: yezzfusl
- Created: 2024-07-30T14:43:07.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-09-01T03:01:40.000Z (5 months ago)
- Last Synced: 2024-11-21T01:00:00.612Z (3 months ago)
- Topics: assembly, atmega328p, avr, bootloader, diy-electronics, embedded, embedded-systems, firmware, hackaday, hardware, hardware-programming, isp, microcontroller, stk500, uart
- Language: C
- Homepage:
- Size: 36.1 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Triple Bootloader
-- Arduino Uno bootloader in C, C++, and assembly
This project implements a complete Arduino Uno bootloader in C, C++, and assembly. The bootloader is responsible for loading the main program into the microcontroller's flash memory and starting its execution.## Project Structure
- /triple-bootloader
- ├── src
- │ ├── main.c
- │ ├── main.cpp
- │ ├── bootloader.asm
- ├── Makefile
- ├── README.md
## Building the ProjectTo build the project, make sure you have the AVR-GCC toolchain installed. Then, run the following command:
```make```
This will generate three hex files:
- `bootloader_c.hex`: C implementation
- `bootloader_cpp.hex`: C++ implementation
- `bootloader_asm.hex`: Assembly implementation## Cleaning the Project
To clean the build artifacts, run:
```make clean```
## Implementation DetailsThe bootloader is implemented in three different languages:
1. C (`src/main.c`)
2. C++ (`src/main.cpp`)
3. Assembly (`src/bootloader.asm`)Each implementation provides the same functionality, demonstrating different approaches to creating an Arduino Uno bootloader.