Evolution of Microcontroller Firmware Development - PowerPoint PPT Presentation

About This Presentation
Title:

Evolution of Microcontroller Firmware Development

Description:

Mainly used in embedded applications. Facilitates the creation of a real-time system. ... Continues the evolution microcontroller system design. – PowerPoint PPT presentation

Number of Views:168
Avg rating:3.0/5.0
Slides: 25
Provided by: benjamid
Learn more at: https://www.eecs.ucf.edu
Category:

less

Transcript and Presenter's Notes

Title: Evolution of Microcontroller Firmware Development


1
Evolution of Microcontroller Firmware Development
  • David Benjamin

2
Overview
  • Traditional microcontroller firmware
  • Polling
  • Interrupts
  • Real-time Operating Systems
  • Demonstration

3
Polling
  • Polling is when a process continually evaluates
    the status of a register in an effort to
    synchronize program execution.
  • Polling is not widely used because it is an
    inefficient use of microcontroller resources.

4
Polling Example
  • void main ( void )
  • while(1)
  • while (!button1_pressed)
  • turn_on_led
  • while (!button1_pressed)
  • turn_off_led

5
Interrupts
  • Interrupt as defined by Merriam Webster
  • to break in upon an action
  • Interrupt
  • An event that causes the Program Counter (PC) to
    change. These events can be internal or
    external.
  • Interrupt Service Routine (ISR)
  • Set of instructions that is executed when an
    interrupt occurs
  • Interrupt Vector
  • Memory address of the first instruction in the
    ISR.

6
Interrupts
  • Why should one use interrupts?
  • Provides more efficient use of microcontroller
    resources.
  • Provides a means to create firmware that can
    multi-task.

7
Interrupts
  • Interrupts are often prioritized within the
    system and are associated with a variety of
    on-chip and off-chip peripherals
  • Timers, A/D D/A converters, UART, GP I/O
  • A majority of the mC interrupts can be enabled or
    disabled.
  • Globally
  • Individually
  • Those interrupts that cannot be disabled are
    called Non-Maskable Interrupts (NMI).
  • Interrupts can be nested.
  • Interrupts can occur at anyplace, at anytime.
  • ISRs should be kept short and fast.

8
(No Transcript)
9
What happens when an interrupt occurs?
10
Interrupts
XXX XXX
0x08A3 0xFE
PC 0x08A2 SR 0xFE
PC 0x0FE0 SR 0x7E
PC 0x8A3 SR 0xFE
STACK
  • The current program instruction completes
    execution.
  • Main()
  • some code
  • turn_on_led1 0x08A2
  • turn_off_led1 0x08A3
  • __interrupt void port1_ISR(void)
  • disable_interrupts 0x0FE0
  • ...
  • reti
  • The PC and status register values are placed on
    the stack.
  • The interrupt vector is loaded into the PC and SR
    is updated.
  • Program execution resumes with the first step of
    the ISR.
  • When the ISR has completed execution, the values
    of the PC and status registers are restored.
  • Program execution resumes with next instruction
    that would have occurred had the interrupt not
    taken place.

11
Interrupts vs. Polling
  • Allowed for more efficient use of the
    microcontroller.
  • Faster program execution
  • Multi-tasking
  • Facilitated the development of complex firmware.
  • Supports a modular approach to firmware design.

12
Real-time Operating Systems
13
Real-time Operating System
  • A real-time operating system (RTOS) is a
    multi-tasking operating system intended for
    real-time applications.
  • Mainly used in embedded applications.
  • Facilitates the creation of a real-time system.
  • Tool for the real-time software developer.
  • Provides a layer abstraction between the hardware
    and software.

14
Real-time Operating System
  • State
  • A unique operating condition of the system.
  • Task
  • A single thread of execution through a group of
    related states.
  • Task Manager
  • Responsible for maintaining the current state of
    each task.
  • Responsible for providing each task with
    execution time.

15
Real-time Operating System
Collection of Tasks
Single Task
16
Real-time Operating System
  • A more detailed explanation state
  • A function
  • void idleState ( void )
  • Should be kept short and fast
  • Should represent a logical step in the task
  • i.e. Evaluating different parts of an incoming
    message.

17
Real-time Operating System
  • void idleState( void )
  • if (rx_buffer_full)
  • read_rxBuffer
  • if (syncByte_received)
  • transition_to_workState1
  • else
  • stay_in_idleState
  • else
  • stay_in_idleState

18
Real-time Operating System
  • Event-driven
  • Tasks are granted execution time, based on an
    event (interrupt).
  • Tasks of higher priority are executed first
    (interrupt priorities).
  • Time sharing
  • Each task is granted a given amount of time to
    execute.
  • Tasks may also be granted execution time based on
    events.
  • Round-robin approach
  • Creates a more deterministic multi-tasking
    system.

19
Real-time Operating Systems
void main ( void ) initSystem() while
(1) work() sleep() void work
(void) doTask(RecieveMsg) doTask(Process) d
oTask(TransmittResponse) __interrupt void
Timer_A (void) wakeUp()
20
Real-time Operating System
  • Available commercially
  • TinyOS -an open source component-based operating
    system and platform targeting wireless sensor
    networks (WSNs).
  • Salvo - an RTOS developed by Pumpkin Inc.
  • FreeRTOS - free RTOS that runs on several
    architectures.
  • DrRTOS - works with ARM 7
  • Implement a custom RTOS
  • Can be highly optimized to suit your application

21
Real-time Operating Systems
  • A tool for real-time software developers.
  • Allows increasingly complex systems to be
    developed in less time.
  • Provides a level abstraction between software and
    hardware.
  • Continues the evolution microcontroller system
    design.

22
Example Implementation
  • Example of RTOS application that requires
    wireless communication.
  • Hardware abstraction layer for the radio.
    Performs low-level interaction between mC and
    radio.

Application
Application
  • Groups low-level interactions from the HAL into
    higher-level functions.
  • Sending a packet

Protocol
Radio Operation Layer
  • Middle-ware that provides a gateway between the
    application and RTOS.

CC1100 HAL
  • Application

23
Demonstration
24
Questions?
Write a Comment
User Comments (0)
About PowerShow.com