Course No.:1
Course (Category) Code |
Course Name |
Teaching Scheme (Hrs/week) |
Credits Assigned |
|||||||||||
L |
T |
P |
O |
E |
L |
T |
P |
Total |
||||||
MDM1 |
Programming ARM : The bare metal way |
2 |
0 |
2 |
3 |
7 |
2 |
0 |
1 |
3 |
||||
Examination Scheme |
||||||||||||||
Component |
ISE (%) |
MSE (%) |
ESE (%) |
Total |
||||||||||
MDEC15 |
Theory |
20 |
20 |
60 |
100 |
|||||||||
Laboratory |
80 |
— |
20 |
100 |
||||||||||
Pre-requisite Course Codes, if any. |
Digital Systems |
|
Course Objective: To develop ability to read the data sheet and reference manual of the microcontroller to develop device drivers in the C programming language and study similar code in C++ language |
||
Course Outcomes (CO): At the end of the course students will be able to |
||
MDEC15.1 |
Understand and recall the ARM architecture using the STM32 ARM CORTEX Mx |
|
MDEC15.2 |
Find and apply the information essential to build drivers for GPIO, UART, SysTick Timer, General Purpose Timers, Interrupts and ADC from the data sheet and the reference manual |
|
MDEC15.3 |
Set up the industry standard ARM KEIL toolchain for programming the STM32F103VB using C and C++ programming languages. Use the C++ Template based programming technique. |
|
MDEC15.4 |
Create device drivers in C and C++ programming language using bare-metal approach. |
|
MDEC15.5 |
Evaluate and justify the driver design decision |
|
MDEC15.6 |
Analyse and fix anomalies in ‘C’ code |
|
CO-PO Correlation Matrix (3-Strong, 2-Moderate, 1-Weak Correlation)
|
PO1 |
PO2 |
PO3 |
PO4 |
PO5 |
PO6 |
PO7 |
PO8 |
PO9 |
PO10 |
PO11 |
PO12 |
MDEC15.1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
MDEC15.2 |
3 |
|
3 |
|
|
|
|
|
|
|
|
|
MDEC15.3 |
|
|
|
|
3 |
|
|
|
|
|
|
|
MDEC15.4 |
3 |
3 |
|
|
3 |
|
|
|
|
|
|
|
MDEC15.5 |
|
|
|
3 |
|
|
|
|
|
|
|
|
MDEC15.6 |
2 |
|
|
3 |
|
|
|
|
|
|
|
|
BLOOM’S Levels Targeted
Remember√ |
Understand√ |
Apply√ |
Analyze√ |
Evaluate√ |
Create√ |
Theory Component
Module No. |
Unit No. |
Topics |
Ref. |
Hrs. |
1
|
Title |
Introduction to CORTEX-M processor family |
1 |
1 |
1.1 |
CORTEX-M processor family, profiles , hardware architectures Cortex M-ArmV7-M,CORTEX M3 and CORTEX M4 |
|||
2 |
Title |
Developing software for CORTEX-M family |
1 |
1 |
2.1 |
Introduction to KEIL MDK Community edition and software packs. |
|||
2.2 |
Third Party Configuration tools |
|||
3 |
Title |
Inside the STM32 |
1 ,online resource-2 |
12 |
3.1 |
Pipeline , Programmers model ,CPU operating modes ,Thumb2-instruction set ,Memory map ,Buses |
|||
3.2 |
System timer, Interrupt handling ,Nested Vectored Interrupt controller(NVIC) , Advanced interrupt handling modes, Power modes Power supply ,Reset circuitry , Oscillators ,Clocking |
|||
4 |
Title |
STM32 Peripherals |
1 ,online resource-1 and online resource 2 |
09 |
4.1 |
GPIO (General purpose Input / output) ,AFIO (Alternate function Input / output) ,External Interrupts ,General Purpose Timers, Backup domain, USART |
|||
4.2 |
NVIC , SysTick timer ,System Control Block |
|||
5 |
Title |
C++Foundations |
Lecture Notes |
05 |
5.1 |
Creating and LED class |
|||
5.2 |
Template programming fundamentals |
|||
5.3 |
GPIO template design |
|||
6 |
Self Study |
Material in the Online resources has to be read as told by the instructor for understanding the implementation details of the peripherals |
Online resource -2 |
*42 |
Total(Does not include* ) |
28 |
Laboratory Component
Sr. No |
Title of the Experiment |
1 |
Installation of KEIL MDK ,Create the first blinky project Configuring the project from scratch Configuring the run time environment ,Project configuration, Third party configuration tools |
2 |
GPIO (General purpose Input / output) C PROGRAM |
3 |
AFIO (Alternate function Input / output) C PROGRAM |
4 |
External Interrupts C PROGRAM |
5 |
ADC C PROGRAM |
6 |
General Purpose Timers C PROGRAM |
7 |
Backup domain C PROGRAM |
8 |
USART C PROGRAM |
9 |
NVIC |
10 |
SysTick timer |
Text Books
Sr. No |
Title |
Edition |
Authors |
Publisher |
Year |
1 |
Designers Guide to Cortex-M processor Family |
3rd Edition |
Trevor Martin |
Newnes |
2023 |
Online Resources:
1. https://developer.arm.com/documentation/dui0552/a/preface/about-this-book