can't find the right course?
contact us for customized training

see our course feedback

    Embedded Programming for ARM Processors (PC244)

    SynopsisARM processor is the dominant processors family used in todays’ embedded industry, while C is the most popular programming language for the vast majority of embedded applications. Having both together will be the dominant choice for embedded system development for the foreseeable future, especially with the increasing demand for ever sophisticated, miniature, and intelligent appliances. Embedded system engineers fluent in ARM architectures and C programming are therefore highly sought after to fulfill industry skillset demand.

    This course is specifically tailored for engineers intending to understand the ARM architecture, and develop the skill in programming ARM with embedded C. The hand-on exercises emphasis on structured coding, modularity, reliability, and resource allocations. The topics covered ranges from processor boot-up sequence, exception handlings, I/O access programming to embedded design methodology based on state machine. Participants will also learn to use the industry standard open source IDE Eclipse software development platform to develop and debug program through the JTAG interface. The skill learnt can hence be used for a wide range of embedded developments, including those based on other processor families that ranges from resource constrained microcontroller-based systems to operating-system capable single-board computers.

    Course Highlight
    The course comprises of lecture type delivery with extensive hand-on exercises. Each participant will have individual ARM9 embedded board during the class to perform the various programming exercises.. Participant will also learn how to use Open source software development platform, the Eclipse IDE, to develop and debug software through the processor JTAG interface.

    Figure below showing ARM9 Embedded System Development Board Used in the Course
    ARM Development Board

    What You Will LearnParticipants will be taught the following topics:

    • ARM processor family architecture
    • ARM9 boot up sequence
    • Access of integrated peripherals
    • Exception handling routine programming
    • C constructs suitable for embedded systems
    • Modular programming for reusability
    • JTAG Debugging techniques

    Who Should AttendThis course is particularly suited for design engineers, application engineers, software engineers and programmers responsible for designing and implementing for ARM based embedded systems.

    PrerequisiteParticipants should have basic knowledge in processor/microcontroller architecture, with some C programming experience (PC environment). Participants lacking C programming experience are highly recommended to attend the "Practical C Programming for Engineers" course before hand.

    Course MethodologyThis course is presented in a workshop style with example-led lectures interlaced with hands-on practical exercises for maximum understanding.

    Course Duration3 days, 9am - 5pm

    Course StructureDay 1

    • Processor Overview: History of ARM, overview of processor operation.
    • Eclipse IDE: Familiarize with Eclipse-based development tools through project creation, debugger configuration, and a real-time debugging session using JTAG.
    • ARM Address space and peripheral access: Understand ARM memory-mapped peripheral access.
    • Basic ARM assembly language: Writing assembly code to flash on-board LED.
    • Linker Script configuration: Developing relocateable code
    Day 2
    • Boot up process: Understanding the ARM9 boot-up initialization requirement and developing the assembly code for proper boot-up
    • Basic embedded I/O programming: Developing C program to perform I/O access of on-board peripherals
    • Interrupt Exception Programming: Understanding the exceptions handling processing for ARM9 and its AIC. Coding of exception handlers of ARM’s FIQ and IRQ exceptions, as well as memory remap operation.
    Day 3
    • Timer Operation and Programming: Understanding ARM9 timer design and operation, and develop timer ISR based program
    • Serial Port programming: Understand the ARM9 serial port design and operation, and developing interrupt driven program to operate the serial port
    • An embedded application development: Using the various routines developed earlier to produce an embedded application (Traffic Light Pedestrian Crossing) based on a state machine design methodology.

    Upcoming Program Registration

    Upcoming Program Registration

      No public course is currently scheduled.


    Can't find the course in your country? Why not fly to our locations for training? It's more affordable than you think.. details