ITMC301 : ARM microprocessor

Department

Department of Mobile Computing

Academic Program

Bachelor in Mobile Computing

Type

Elective

Credits

03

Prerequisite

ITGS223

Overview

This course on 32 bit ARM Programming covers in-depth learning of ARM processors, its architecture, Programming for both ARM7 and ARM9 families. Also included are Introduction to GNU tool chain, ARM programming model, Exception handling, Introduction to thumb instruction set, ARM THUMB procedure call standards (ATPCS), ARM optimization techniques, Building RTOS image and porting.

Intended learning outcomes

Knowledge & understand

  • To familiarize the student with microprocessors.
  • To familiarize the student with the architecture of microprocessors.
  • To familiarize the student with the type of data that is programmed with microprocessors.
  • To familiarize the student with the methods of programming processors.
  • To familiarize the student with the methods of communication of microprocessors with other systems.

Mental skills

  • An ability to analyze devices and micro-engineering assemblies of microprocessors.
  • Mental ability to program processors after understanding how they work.
  • An ability to understand and analyze simulation and modeling programs for microprocessor simulation.
  • The student's ability to make small practical laboratory projects using microprocessors.
  • Ability to teamwork in small groups to complete projects using wizards.

Practical & professional skills

  • To distinguish between different types of microprocessors and their characteristics.
  • The student's ability to design and write a program to solve a specific problem in the best and simplest way.
  • That the student uses different programming languages and at different levels of micro-programming.
  • The student applies what he studied practically in mini-projects or through simulation.
  • The student should design integrated circuits using microprocessors to perform a specific purpose or function.

Generic and transferable skills

  • That the student be able to understand the internal structure of the processors.
  • The student should be able to simulate the processors with one of the simulation programs.
  • The student should be able to work within a team to solve a problem and apply and implement it.
  • That the student be able to think of creating practical projects that are useful to the community using processors.

Teaching and learning methods

  • Theoretical lectures inside the classrooms.
  • Practical lectures inside the laboratory with the help of teaching assistants in the college.
  • A panel discussion between the students and in the presence of the professor to obtain new opinions and ideas.
  • Assignments and tests to activate the students in reaching the best way to solve and discuss it with the professor.
  • The student implements practical projects using various microprocessors to serve the community.

Methods of assessments

  • Midterm Exam = 30
  • Assignments = 10
  • Mini-project = 10
  • Final Exam = 50

Course contents

  • introduces ARM processors
  • ARM architecture
  • ARM Assembly Language Programming
  • ARM Organization and Implementation
  • The ARM Instruction Set
  • Architectural Support for High-Level Languages
  • Introduction to thumb instruction set
  • Architectural Support for System Development
  • ARM Processor Cores
  • Memory Hierarchy
  • Architectural Support for Operating Systems
  • ARM CPU Cores
  • Embedded ARM Applications
  • The AMULET Asynchronous ARM Processors

Principles of Games Developments (ITMC404)
Parallel and Distributed Computing (ITMC403)
Mobile Multimedia (ITMC402)
Mobile 3D Graphics (ITMC401)
Mobile Commerce (ITMC304)
Programming Paradigms (ITMC302)
ARM microprocessor (ITMC301)
Arabic language 1 (ITAR111)
General English1 (ITEL111)
Physics (ITPH111)
Intro to Information Technology (ITGS111)
Problem solving Technic (ITGS113)
Mathematics I (ITMM111)
Arabic language 2 (ITAR122)
Mathematics II (ITMM122)
General English2 (ITEL122)
Introduction to Programming (ITGS122)
System Analysis and Design (ITGS124)
logic Circuit Design (ITGS126)
Introduction to Statistics (ITST211)
Object Oriented Programmin (ITGS211)
Introduction to Software Engineering (ITGS213)
Introduction to Networking (ITGS215)
Discrete Structures (ITGS217)
Numerical analysis (ITGS219)
Computer Architucture & Organization (ITGS223)
Data Structure (ITGS220)
Foundation of Information Systems (ITGS222)
Information Security (ITGS224)
Introduction to Internet Programming (ITGS226)
Introduction to Databases (ITGS228)
Mobile Applications Development (ITMC311)
Design and Analysis algorithms (ITGS301)
Operating System (ITGS302)
Principles of mobile communication networks (ITMC312)
IT Project Management (ITGS303)
Scientific Writing (ITGS304)
Cross-Platform Mobile App Development (Flutter) (ITMC323)
Heterogeneous and Mobile Databases (ITMC322)
Mobile Interaction Design (ITMC321)
Mobile Operating System (ITMC313)
Security in mobile computing (ITMC411)
Personal Area Networks (ITMC412)
Social Networking (ITMC413)
Networks Programming (ITMC414)
Fundamentals ubiquitous computing (ITMC421)
Cloud Computing (ITMC422)