ARM Bare Metal Programming, Workshop
Zilogic is organizing a workshop on the ARM Bare Metal Programming. Writing startup code and linker scripts has been a dark art, mastered only by a few people. Lack of documentation has only aggravated the problem. Through this training programme we hope to unravel the mysteries behind these concepts, and help people join the elite few.
For firmware and RTOS developers, this knowledge will be useful for porting their software to different microcontroller. It will be also be useful for people who would like to delve into bootloader development and development of early boot code of the kernel.
Sold Out! But …
If you could not make it to this event, you can register here to get notifications about workshops that we conduct in the future. You can also subscribe to our Twitter page for updates.
Venue
The workshop venue address is provided below
FutureTech Corporate Services
MF-14, CIPET Hostel Road,
SIDCO Industrial Estate,
Ekkaduthangal, Guindy,
Chennai
Location of the venue on Google maps: here
Date and Time
-
May 21, 9:00 AM to 6:00 PM
-
May 22, 9:00 AM to 12:00 PM
Workshop Ticket
This is a paid workshop, and the workshop ticket price starts from Rs. 2000 (inclusive of lunch).
Pre-requisites
-
Should be familiar with C programming fundamentals.
-
Should be familiar with microprocessors.
-
Should be familiar with Linux command line.
Hardware / Software Requirements
-
Laptop with either Windows / Linux
-
Qemu (>= 1.5) for Target Board Emulation
-
VirtualBox (>= 4.1.18) (Disk image will be provided at the venue)
Schedule
Day 1
ARM Basics
-
ARM Architecture
-
Register set
-
Exceptions & Interrupts
-
Processor Modes
-
ARM Programmer’s Model
-
ARM Processor Families
Tea Break
ARM Instruction Set
-
Data Processing Instructions
-
Branch Instructions
-
Load Store Instructions
-
Conditional Execution
ARM Assembler
-
GNU Assembler
-
Assembler Directives
-
.byte
-
.align
-
.equ
-
.asciz
-
Lunch Break
Role of Linker
-
Symbol Resolution
-
Relocation
-
Section Merging
-
Section Placement
-
Linker Scripts and Loading
-
Linker Sections
-
Linker Script Syntax
-
Data in RAM
-
Load Address
-
Copying Data to RAM
-
Exception Handling
C Startup Code
-
Stack
-
Global Variables
-
Read-only Data
-
C Startup Code
Day 2
Devices Intro
-
Memory Interfacing
-
Device Interfacing
-
Memory Mapped IO
-
Controller based IO
Using C Library
-
newlib & POSIX
-
Enabling
printf()
-
Enabling
malloc()