0% found this document useful (0 votes)
82 views

Bootloader in Embedded Systems

This document outlines a graduation project to develop a bootloader for embedded systems. It discusses bootloaders, their importance, components, and code. The project team developed a bootloader that uses FMI to erase and flash software to sectors of memory. It receives a hex file over UART using a parser to convert it to binary. The bootloader was tested by burning a simple application to verify it, including displaying version information on an LCD and turning on an LED.

Uploaded by

Attota Appa Rao
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
82 views

Bootloader in Embedded Systems

This document outlines a graduation project to develop a bootloader for embedded systems. It discusses bootloaders, their importance, components, and code. The project team developed a bootloader that uses FMI to erase and flash software to sectors of memory. It receives a hex file over UART using a parser to convert it to binary. The bootloader was tested by burning a simple application to verify it, including displaying version information on an LCD and turning on an LED.

Uploaded by

Attota Appa Rao
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

Bootloaders in Embedded

Systems
- ITI Graduation Project-
Team Members:

• Adham Ehab Hussein.


• Ahmed Osama Khalil.
• Mazen Nasser Zaki.
• Mohamed Sayed Zakaria.
• Habiba Yahya Sadek.
• 1. Project Overview.
• 2. What is a Bootloader?
• 3. Why are Bootloaders Important?
• 4. Bootloader Components.
• 5. Bootloader Code.
Agenda • 6. Understanding FMI.
• 7. UART Protocol.
• 8. Hex Parser.
• 9. Our Application
What is a
Bootloader?
• A bootloader is a small
program that loads the
main program or
operating system into a
computer's memory
during startup. It is
essential in embedded
systems to initiate the
system and load the
firmware or software.
Why are Bootloaders Important?

- THEY INITIALIZE THE - THEY CAN SUPPORT - BOOTLOADERS CAN BE


HARDWARE AND SYSTEM - THEY ENSURE THE SAFE
LOADING OF SOFTWARE. FIRMWARE UPDATES AND DESIGNED TO WORK ACROSS
COMPONENTS. MAINTENANCE. VARIOUS HARDWARE
PLATFORMS.
Bootloader Components

RCC GPIO FMI UART STK


Bootloader Code
Understanding FMI.
According to CPU, The Flash memory is a read
only memory. So, we need FMI.

FMI is a peripheral used to write/erase the


Flash memory.

In our project we used the Flash module to :

1- Erase the whole Application area.

2- Flash the software application on a specific


sector.
UART Protocol

• To Receive Our .hex file to flash it on MCU


we choose UART as a communication protocol.
• The UART configuration as below:
1- Baud rate : 9600.
2- 8-bit data.
3- 1 stop bit.
4- No parity.
UART Receiving Sequence

Receiving
sequence

Polling Interrupt

Polling with Timeout


Hex Parser
• The hex file is an ASCII text file
with lines of text that follow the
intel hex file format. Each digit in
hex file represented in
hexadecimal format – which
means 4 bits in binary- and each
line in hex file is called record.
• We need hex parser code to
transform the hex file into its
binary form so that CPU can
handle.
Hex parser (cont.)
Application

• We implemented a simple
application to verify our
bootloader project.
• The application is consisting of
LCD screen that displays the
version of the burned App and
Turn on a led for indicating That
the application is correctly
burned.
Application(cont.)

• Another Application is to
interface the TFT (Thin film
Transistor) screen with STM32 to
display an image.
• Communication between screen
and MCU is done using SPI
protocol.
Thank you

You might also like