Computer System Laboratory

Slides:



Advertisements
Similar presentations
Lab III Real-Time Embedded Operating System for a SoC System.
Advertisements

Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1.
Lab 4 Department of Computer Science and Information Engineering National Taiwan University Lab4 - Bootloader 2014/10/14/ 13 1.
Introduction To The ARM Microprocessor
Introduction to ARM Architecture, Programmer’s Model and Assembler Embedded Systems Programming.
ARM 7 Datapath. Has “BIGEND” input bit, which defines whether the memory is big or little endian Modes: ARM7 supports six modes of operation: (1) User.
ECE Department: University of Massachusetts, Amherst Lab 1: Introduction to NIOS II Hardware Development.
Embedded Systems Programming
Software Development and Software Loading in Embedded Systems.
Prardiva Mangilipally
Programming & Development of Mobile & Embedded Systems Lin Zhong ELEC424, Fall 2010.
Introduction Purpose Objectives Content Learning Time
COMPUTER SYSTEM LABORATORY Lab8 - Debugging II. Lab 8 Experimental Goal Learn how to debug Linux in source-level by Domingo and diagnose target boards.
The ARM Programmer’s Model
COMPUTER SYSTEM LABORATORY Lab4 - Bootloader. Lab 4 Experimental Goal Learn how to build U-Boot bootloader for PXA /10/8/ 142.
Part 1 Using the ARM board And start working with C Tutorial 5 and 6
Silicon Labs ToolStick Development Platform
NET+OS 6.1 Training. BSP NET+OS 6.1 BSP Initialization Memory map New features Debugging Porting Issues.
U-Boot Debug using CCSv5 In this session we will cover fundamentals necessary to use CCSv5 and a JTAG to debug a TI SDK-based U-Boot on an EVM platform.
Lab 3 Department of Computer Science and Information Engineering National Taiwan University Lab3 - Cross Tools 2014/10/7/ 20 1.
Exception and Interrupt Handling
NetBurner MOD 5282 Network Development Kit MCF 5282 Integrated ColdFire 32 bit Microcontoller 2 DB-9 connectors for serial I/O supports: RS-232, RS-485,
Computer System Laboratory
COMPUTER SYSTEM LABORATORY Lab10 - Sensor II. Lab 10 Experimental Goal Learn how to write programs on the PTK development board (STM32F207). 2013/11/19/
Computer System Laboratory
Introduction Purpose This course describes the process of installing the KPIT GNU toolchain on your PC. Objective Learn how easy it is to get information.
Lab 1 Department of Computer Science and Information Engineering National Taiwan University Lab1 - Sensor 2014/9/23/ 13 1.
Renesas Technology America Inc. 1 SKP8CMINI Tutorial 2 Creating A New Project Using HEW.
Lab 10 Department of Computer Science and Information Engineering National Taiwan University Lab10 – Debugging II 2014/12/2 1 /16.
Operating Systems 1 K. Salah Module 1.2: Fundamental Concepts Interrupts System Calls.
Renesas Technology America Inc. 1 SKP8CMINI Tutorial 2 Creating A New Project Using HEW.
© 2008, Renesas Technology America, Inc., All Rights Reserved 1 Introduction Purpose  This training course explains how to use section setting and memory.
AT91 C-startup. 2 For reasons of modularity and portability most application code for an embedded application is written in C The application entry point.
Implementation of Embedded OS Lab4 Cortex-M3 Programming.
ChibiOS/RT Demo A free embedded RTOS
Implementation of Embedded OS Lab3 Porting μC/OS-II.
Interrupt driven I/O Computer Organization and Assembly Language: Module 12.
بسم الله الرحمن الرحيم MEMORY AND I/O.
Lab 9 Department of Computer Science and Information Engineering National Taiwan University Lab9 - Debugging I 2014/11/4/ 28 1.
© 2008, Renesas Technology America, Inc., All Rights Reserved 1 Introduction Purpose  This training course demonstrates the Project Generator function.
Implementation of Embedded OS
1 TM 1 Embedded Systems Lab./Honam University r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 (sp) r14 (lr) r15 (pc) cpsr r13 (sp) r14 (lr) spsr r13 (sp)
Introduction to ARM processor. Intro.. ARM founded in November 1990 Advanced RISC Machines Company headquarters in Cambridge, UK Processor design centers.
ARM7 TDMI INTRODUCTION.
© 2008, Renesas Technology America, Inc., All Rights Reserved 1 Introduction Purpose  This training course demonstrates the use of the High-performance.
Chap. 4 ARM Boot Loader Internals. 2 S3C2500 ARM940T Core module ARM9TDMI CoreIC.
Computer System Laboratory
Lab 1: Using NIOS II processor for code execution on FPGA
Interrupts and signals
Computer System Laboratory
Implementation of Embedded OS
Implementation of Embedded OS
Timer and Interrupts.
MCF5249 Software Examples Bootable example code for the MCF5249
Computer System Laboratory
PRU-ICSS Programming with CCS
May 2006 Saeid Nooshabadi ELEC2041 Microprocessors and Interfacing Lectures 27: Exceptions & Interrupts - I
Overview Introduction General Register Organization Stack Organization
CENG2400 Tutorial 1 Keil IDE CENG2400 tutorial 1 v.7a.
Processor Organization and Architecture
Real-Time Embedded Operating System for a SoC System
Interrupt handling Explain how interrupts are used to obtain processor time and how processing of interrupted jobs may later be resumed, (typical.
Introduction to Microprocessor Programming
Computer System Laboratory
ARM Introduction.
Computer System Laboratory
JTAG, Multi-ICE and Angel
Computer System Laboratory
Agenda Programmers Model Instruction Sets System Design
May, 2004 Modified from notes by Saeid Nooshabadi
Presentation transcript:

Computer System Laboratory Lab3 SW Emulator

Experimental Goal Understand the basic process of bootloader & download this trivial bootloader to target board by Domingo Lab3 2019/4/26

Environment Host System Build System Target System Software Windows XP/Ubuntu 8.04 Build System Ubuntu 8.04 Target System XScale PXA270 Software Bootloader source code Makefile & linker script Test program Microtime Domingo IDE You can download all the source codes from RSWiki CSL Course Software Lab3 2019/4/26

Equipment –PXA270 Lab3 2019/4/26

Introduction to ARM The ARM processor design is based on RISC principles Load-store architecture Fixed-length 32-bit instructions 3-address instruction formats The ARM processor has 37 registers, each of these registers is 32 bit wide 31 general-purpose registers & 6 status registers The ARM processor has 7 processor modes They are User, FIQ, IRQ, Supervisor, Abort, Undefined & System mode Mode changes can be made by writing directly to CPSR (explain later), or can be caused by exception arising The modes other than User mode are known as privileged modes The privileged modes other than System mode are known as exception modes Lab3 2019/4/26

Banked Registers The ARM processor has a different register bank for each processor mode, as shown in picture below Each column of picture shows which registers are visible in the indicated processor mode Banked registers are registers which are visible in particular processor mode Lab3 2019/4/26

Banked Registers (Cont.) Lab3 2019/4/26

Program Status Registers The ARM processor uses Current Program Status Register (CPSR) to monitor and control internal operations The bits at the bottom of the CPSR control the processor mode, instruction set (‘ T ’) & interrupt enables (‘ I ’ & ‘ F ’) and write to these bits in User mode are ignored Each exception mode has a Saved Program Status Register (SPSR), that is used to preserve the value of the CPSR when the associated exception occurs Lab3 2019/4/26

Exceptions The ARM processor has 7 exception types The picture below shows the types of exception and the processor mode that is used to process each type When exception arises, execution is forced from a fixed memory address corresponding to the type of exception The fixed address are called the exception vectors Lab3 2019/4/26

Misc. On reset, the ARM processor starts up in Supervisor (SVC) mode, in ARM state, with IRQ and FIQ disabled, and then the processor fetches and executes code from 0x00000000 The Thumb instruction set is designed to allow better code density than ARM instruction set, we do not discuss it here There are many ARM software development tools on the market, such as ADS, RVDS, IAR EWARM & Keil MDK-ARM, but they are not free Recommended Reference Books ARM Architecture Reference Manual ARM System-on-Chip Architecture 2/e Lab3 2019/4/26

Exception Vectors Code The instruction at each exception vector will usually contain a branch to the exception handler All GNU assembler directives have names that begin with a period (‘ . ’), they behave similarly to preprocessor directives in the C programming language .section "Vect" _reset_entry: b Reset_Handler b Undefined_Handler b SWI_Handler b Prefetch_Handler b Abort_Handler b IRQ_Handler b FIQ_Handler Lab3 2019/4/26

Initialization Code There are some tasks should be accomplished before calling C main function Initialize the memory system Initialize the stack pointers Copy the content of the initialized data section to specified address Reserve spaces for unitialized data section in RAM Tips init.s does not perform memory system initialization Use Domingo’s peripheral configuration manager instead for memory system initialization Need to use Domingo for running and debugging foo.c Lab3 2019/4/26

Linker Script The main purpose of the linker script is to control the memory layout of the executable Please refer to the website below http://www.heygotimes.com/ext/b2/index?ch=CH05_03 According to our linker script (i.e. foo.ld), the executable should be downloaded to memory at 0xa0000000 Now, we can compile trivial bootloader Just download codes from RSWiki and make (check Lab1’s arm-elf toolchain path in PATH) The resulting foo.bin is the executable we want Lab3 2019/4/26

File Transfer If you did not create Build System, you need to switch to Windows to download bootloader using Domingo Use one of the following methods to transfer executable Install EXT2IFS, http://www.fs-driver.org/screenshots.html By R217 workstation By USB, E-mail, or else Lab3 2019/4/26

Hardware Setup Connect target board and ICE via JTAG Connect RS232 null cable and parallel cable to your PC Connect Ethernet cable to your PC Connect target board and ICE via JTAG Lab3 2019/4/26

Introduction to Domingo Domingo is an integrated development environment developed by Microtime Computer Inc. Domingo adopts visual project management which integrates with editor, compiler and debugger let you manage project just from a single environment Lab3 2019/4/26

Connect with Domingo Step1 : power on the board Step2 : install Domingo IDE in Windows Step3 : start Domingo and choose No Project Lab3 2019/4/26

Connect with Domingo (Cont.) Step4 : import creator_pxa270.pcm and click OK Lab3 2019/4/26

Download Executable to Board Step1 : click Debug  Load Module Step2 : load foo.bin (load address 0xa0000000) Lab3 2019/4/26

Download Executable to Board (Cont.) Step3 : change the PC value in registers Step4 : click Debug  Free Go You will see LED lighting Lab3 2019/4/26