You are on page 1of 7

COURSE CONTENT

Academic Year 2019/20


Course Coordinator Chan Chee Keong/Gan Woon Seng
Course Code EE3002/IM2002
Course Title Microprocessors
Pre-requisites Nil
No of AUs 4
Contact Hours Lectures (TEL): 39 hours; Tutorials: 26 hours; Laboratories: 6 hours
Proposal Date 25th September 2019

Course Aims
This is an introductory course about the fundamentals of ARM microprocessors. It covers the ARM
architecture, hardware interface, software programming in assembly language as well as C language.
It will also introduce you to the system-on-chip concept and the use of ARM as a microcontroller.

Intended Learning Outcomes (ILO)


By the end of this course, you should be able to:
1) explain the basic ARM core and programmer’s model;
2) explain Assembler rules and directives;
3) write an ARM assembly program;
4) implement logic and arithmetic operations, branches and loops;
5) subdivide a program into subroutines;
6) handle stacks and exception;
7) incorporate Thumb Instructions and C language;
8) discuss basic peripherals and interfacing techniques.

Course Content
1) Introduction to ARM core and Programmer’s Model
2) Assembler Directives
3) Loads, Stores and Addressing
4) Logic and Arithmetic
5) Flow Control Instructions
6) Subroutines, Stacks and Exception Handling
7) Thumb Instructions and C language

1
8) Peripherals Interfacing

Course Outline

S/N Topic Lecture Tutorial


Hours Hours
1) Introduction to ARM Core and Programmer’s Model 5 4
History of RISC, Application of ARM processors, System on Chip,
Number Systems, Keil Software Tools, Data Types, Processor Modes,
Registers

2) Assembler Directives 5 4
Structure of Assembly Language Modules, Predefined Register Names,
Frequently Used Directives, Macros. Sample programs and
programming guidelines.

3) Load, Stores and Addressing 5 4


Memory architecture, Memory Map, Load and Store instructions,
Operand Addressing, Endianness, ARM rotation scheme, Loading
Constants and Addresses into Registers.

4) Logic and Arithmetic 4 4


Use of Flags, Comparison Instructions, Data Processing Instructions,
Fractional Notations.

5) Flow Control Instructions 5 4


Branching, Looping, Conditional Execution, Lookup Tables, Jump Tables
and Binary Searches.

6) Subroutines, Stacks and Exception Handling 5 4


Stack, Subroutines, ARM APCS, Interrupts, Error Conditions, Processor
Exception Sequence. The Vector Table. Exception Handlers and
Priorities.

7) THUMB Instructions and C Language 4 2


16-bit THUMB Instructions, THUMB Implementation and Use, THUMB
Compilation. Mixing C and Assembly, Embedded Assembler.

8) Peripherals Interfacing 6
Peripheral functions and interfacing, A/D,D/A converter and Serial
Communications. Case Studies.

2
Total hours 39 26

LAB DESCRIPTION

Two lab modules are incorporated in this course. The two lab modules will allow students to have a
good idea of how embedded systems are programmed in a practical environment.
Lab Module 1 (L3002A) (3 hours)
This lab will introduce the students to the Keil ARM evaluation board. The student will learn how to
flash the microprocessor on the evaluation board. The students will then write programs to control
the LEDs and color LCD panel using inputs from the onboard push buttons, joystick and potentiometer.
They can devise various patterns of blinking LEDs.
Lab Module 2 (L3002B) (3 hours)
Using the programming knowledge learnt in Lab module 1, the students will have to do a mini-software
project that takes in inputs from the joysticks, push buttons and perform some simple arithmetic and
display the results on the LCD panel.

Assessment (includes both continuous and summative assessment)

Related
Course LO Programme LO Team/ Assessment
Component Weighting
Tested or Graduate Individual rubrics
Attributes
EAB SLO* (a),
1. Final examination 1,2,3,4,5,6,7,8 60% Individual
(b), (c), (d)

2. Continuous
EAB SLO* (a),
Assessment 1 (CA1): 1,2,3,4 10% Individual
(b), (c)
Quiz 1

EAB SLO* (a),


3. CA 2: Quiz 2 5,6,7,8 10% Individual
(b), (c)

4. CA 3: Lab A (hands- EAB SLO* (d),


1,2,3,4 10% Individual
on session) (e)

5. CA 4: Lab B (hands- EAB SLO* (d),


1,2,3,4,5,6,7,8 10% Individual
on session) (e)

Total 100%

3
Mapping of Course SLOs to EAB Graduate Attributes

Course Student EAB’s 12 Graduate Attributes*


Learning Cat
(a) (b) (c) (d) (e) (f) (g) (h) (i) (j) (k) (l)
Outcomes
PE for EEE;
EE3002/IM2002
Microprocessors
Core for ● ◐ ● ◐ ◐ ○
IEM

1) explain the basic ARM core and programmer’s model EAB SLO* (a), (d)

2) explain Assembler rules and directives EAB SLO* (a), (d)

3) write an ARM assembly program EAB SLO* (a), (b), (c), (d)

4) implement logic and arithmetic operations, branches and loops EAB SLO* (a), (b), (c), (d)

5) subdivide a program into subroutines EAB SLO* (a), (b), (c), (d)

6) handle stacks and exception EAB SLO* (a), (b), (c), (d)

7) incorporate Thumb Instructions and C language EAB SLO* (a), (b), (c), (d)

8) discuss basic peripherals and interfacing techniques. EAB SLO* (a), (b), (c), (d)

Legend:  Fully consistent (contributes to more than 75% of Student Learning Outcomes)
◐ Partially consistent (contributes to about 50% of Student Learning Outcomes)
 Weakly consistent (contributes to about 25% of Student Learning Outcomes)
Blank Not related to Student Learning Outcomes

Formative feedback
Examination results;
Markers’ report on overall examination performance;
Quizzes scores and answers through NTULearn;

Learning and Teaching approach

How does this approach support students in achieving the learning


Approach
outcomes?

LECTURE course materials covering all topics

TUTORIAL Classroom discussions on tutorial questions and related topics

4
LABORATORY(if any) Hands-on exercises on related topics

Reading and References


TEXTBOOKS
1) William Hohl, ARM Assembly Language Fundamentals and Techniques, CRC Press, 2 nd Edition, 2015.
REFERENCES
1) Daniel W. Lewis, Fundamentals of Embedded Software with the ARM Cortex-M3, Prentice Hall,
2012.
2) Andrew Sloss, Dominic Symes and Chris Wright, ARM System Developer’s Guide: Designing and
Optimizing System Software, Morgan Kaufmann (Elsevier) 2004.
3) David A. Patterson, John L. Hennessy, Computer Organization and Design: The Hardware/Software
Interface (ARM edition), 4th edition, Morgan Kaufmann 2011.

Course Policies and Student Responsibilities


General: You are expected to complete all online activities and tests by due dates. You are expected to
take responsibility to follow up with course notes, assignments and course related announcements. You
are expected to participate in all tutorial discussions and activities.
Continuous assessments and lab sessions: You are required to attend all continuous assessments and lab
sessions.
Absenteeism: Continuous assessments and laboratories make up a significant portion of your course
grade. Absence from continuous assessments and laboratories without officially approved leave will
result in no marks and affect your overall course grade.

Academic Integrity
Good academic work depends on honesty and ethical behaviour. The quality of your work as a student
relies on adhering to the principles of academic integrity and to the NTU Honour Code, a set of values
shared by the whole university community. Truth, Trust and Justice are at the core of NTU’s shared
values.
As a student, it is important that you recognize your responsibilities in understanding and applying the
principles of academic integrity in all the work you do at NTU. Not knowing what is involved in
maintaining academic integrity does not excuse academic dishonesty. You need to actively equip
yourself with strategies to avoid all forms of academic dishonesty, including plagiarism, academic fraud,
collusion and cheating. If you are uncertain of the definitions of any of these terms, you should go to
the academic integrity website for more information. Consult your instructor(s) if you need any
clarification about the requirements of academic integrity in the course.

Course Instructors

Instructor Office Location Phone Email

5
Chan Chee Keong S1-B1b-51 6790 5377 eckchan@ntu.edu.sg
Gan Woon Seng S2-B2b-68 6790 4538 ewsgan@ntu.edu.sg

Planned Weekly Schedule

Week Topic Course LO Readings/ Activities


1 Introduction to Microprocessors and ARM 1,2 Briefing

2 Data Representation 1,2 Tutorial 1

3 Programmer’s model 1,2 Tutorial 2

4 ARM Assembling Language, Rules and Directives 2,3 Tutorial 3

5 Load, Stores and Addressing 3,4 Tutorial 4

6 Constants, Literals and Logic 3,4 Tutorial 5

7 Arithmetic operations and loop 3,4 Tutorial 6

8 Table operations 3,4 Tutorial 7

9 Stack and Subroutines 4,5,6 Tutorial 8

10 Stack and Subroutines 4,5,6 Tutorial 9

11 Exceptions 4,5,6 Tutorial 10

12 THUMB instructions 5,6,7 Tutorial 11

13 C Programming and Peripherals 5,6,7,8 Tutorial 12

6
Appendix 3: The EAB (Engineering Accreditation Board) Accreditation SLOs (Student Learning
Outcomes)

a) Engineering knowledge: Apply the knowledge of mathematics, natural science, engineering


fundamentals, and an engineering specialisation to the solution of complex engineering
problems
b) Problem Analysis: Identify, formulate, research literature, and analyse complex engineering
problems reaching substantiated conclusions using first principles of mathematics, natural
sciences, and engineering sciences.
c) Design/development of Solutions: Design solutions for complex engineering problems and
design system components or processes that meet the specified needs with appropriate
consideration for public health and safety, cultural, societal, and environmental considerations.
d) Investigation: Conduct investigations of complex problems using research-based knowledge
and research methods including design of experiments, analysis and interpretation of data, and
synthesis of the information to provide valid conclusions.
e) Modern Tool Usage: Create, select, and apply appropriate techniques, resources, and modern
engineering and IT tools including prediction and modelling to complex engineering activities
with an understanding of the limitations
f) The engineer and Society: Apply reasoning informed by the contextual knowledge to assess
societal, health, safety, legal, and cultural issues and the consequent responsibilities relevant to
the professional engineering practice.
g) Environment and Sustainability: Understand the impact of the professional engineering
solutions in societal and environmental contexts, and demonstrate the knowledge of, and need
for the sustainable development.
h) Ethics: Apply ethical principles and commit to professional ethics and responsibilities and norms
of the engineering practice.
i) Individual and Team Work: Function effectively as an individual, and as a member or leader in
diverse teams and in multidisciplinary settings.
j) Communication: Communicate effectively on complex engineering activities with the
engineering community and with society at large, such as, being able to comprehend and write
effective reports and design documentation, make effective presentations, and give and receive
clear instructions.
k) Project Management and Finance: Demonstrate knowledge and understanding of the
engineering and management principles and economic decision-making, and apply these to
one’s own work, as a member and leader in a team, to manage projects and in multidisciplinary
environments.
l) Life-long Learning: Recognise the need for, and have the preparation and ability to engage in
independent and life-long learning in the broadest context of technological change.

You might also like