53
Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

  • Upload
    kimama

  • View
    47

  • Download
    0

Embed Size (px)

DESCRIPTION

Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair. Today’s Lecture. List all addressing modes of PIC18 uCs Contrast and compare the addressing modes Code PIC18 instructions to manipulate a lookup table. Access fixed data residing in ROM space. Introduction. - PowerPoint PPT Presentation

Citation preview

Page 1: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

Embedded SystemSpring, 2011Lecture 11: Bank SwitchingEng. Wazen M. Shbair

Page 2: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

2IUG- Embedded System

Today’s Lecture

List all addressing modes of PIC18 uCs Contrast and compare the addressing

modes Code PIC18 instructions to

manipulate a lookup table. Access fixed data residing in

ROM space.

Page 3: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

3

Introduction

Data could be in A register In memory Provided as an immediate values

PIC18 provides 4 addressing modes Immediate Direct Register indirect Indexed-ROM

6-3

Page 4: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

4

Immediate and Direct Addressing mode

In immediate addressing mode, the operands comes after the opcode MOVLW 0x25 SUBLW D’34’ ADDLW 0x86

In direct addressing mode, the operand data is in a RAM location whose address is known and given as a part of the instruction.

Page 5: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

5

Figure 6-1. MOVFF and MOVWF Direct Addressing Opcode

MOVLW 0X56

MOVWF 0X40

MOVFF 0X40,50H

Page 6: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

6

Immediate and Direct Addressing mode

What is the difference between INCF fileReg, W INCF fileReg, F

What is the default destination? What is the difference between DECFSZ and

DECF? Operation Branch

Page 7: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

7

DECFSZ instruction

Page 8: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

8

DECF instruction

Page 9: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

9

SFR Registers and their addresses

Can be access by Their name Their address

Which is easier to remember? MOVWF PORTB MOVWF 0xF81

Page 10: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

10

SFR Registers and their addresses

Remember SFR addresses is

started at F80h and the last location has the address FFFh

Notes In .lst file, you will see

that the SFR names are replaced with their addresses.

The WREG register is one of the SFR registers and has address FE8h

Page 11: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

11

Register indirect Addressing mode

A register is used as a pointer to the data RAM location. Three 12-bit Registers are used (from 0 to FFFh)

FSR0 FSR1 FSR2

Each register is associated with indirect register (INDFx) ; when we are move data to INDFx we are moving data to RAM location pointed by FSRx.

Also when we read form INDFx, we read from RAM location pointed by FSRx.

FSR means fileSelect register

Page 12: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

12

Register indirect Addressing mode

Page 13: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

13

Advantages of Register indirect Addressing mode

It makes accessing data dynamic Looping is possible to increment the

address Not possible in direct addressing mode Example

INCF FSR2L

Page 14: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

14

Example

Page 15: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

15

Example cont.

Page 16: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

16

Example Cont.

Page 17: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

17

Page 18: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

18

Page 19: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

19

Auto increment option for FSR

Normal increment can cause problem since it increments 8-bit INC FSR0L, F

Auto increment and auto decrement solve the problem They doesn’t affect the status flag

FF03

FSR0H FSR0L

Page 20: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

20

PIC18 auto increment/decrement of FSRn

Instruction Function

CLRF INDFn After clearing fileReg pointed by FSRn, the FSRn stays the same

CLRF POSTINCn After clearing fileReg pointed by FSRn, the FSRn is incremented (like x++)

CLRF PREINCn The FSRn is incremented, then fileReg pointed to by FSRn is cleared (like ++x)

CLRF POSTDECnAfter clearing fileReg pointed by FSRn, the FSRn is decremented (like x++)

CLRF PLUSWn Clears fileReg pointed by FSRn + WREG, and FSRn W are unchanged

Page 21: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

21

Page 22: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

22

Page 23: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

23

Page 24: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

24

Quiz

Show the output of code MOVLW 0X04 IORLW 0X30

Assume that PORTB bit RB2 is used to control an outdoor light , and bit RB5 to control a light inside building. Show how to turn “on” the outdoor light and turn “Off” the inside one.

Page 25: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

25

Page 26: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

26

Bit addressability of data RAM

One of the basic feathers of the PIC18 is the bit addressability of RAM. Bit-addressable instructions

Use only direct addressing mode

Byte-addressable instructions

Page 27: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

27

Bit addressability of data RAM

Page 28: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

28

Status Register Bit-addressability

You can access any bit of the status register by their name.

ExamplesBCF STATUS,C

BTFSS STATUS, Z

Page 29: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

29

Page 30: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

30

Page 31: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

31

Page 32: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

32

Page 33: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

33

Bank switching in the PIC18

PIC18 has maximum of 4K of RAM Not all the space used. The fileReg is divided into 16 banks of 256B each Every PIC18 has the access bank (the first 128B of

RAM + SFR ) Most PIC18 that access the data space in RAM has the

ability to access any bank through setting an optional operand, called A

Example: MOVWF myReg, A If 0 it access the default bank (default) If 1, it uses the bank selection register (BSR) to select

the bank

Page 34: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

34

Figure 6-3. Data RAM Registers

Page 35: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

35

The BSR register and bank switching

It is 8-bit register 4 bits are used 16 banks Banks 0 (from 00 to FF) Banks 1 (from 100 to 1FF) Banks 2 (from 200 to 2FF) ..... Banks F (from F00 to FFF) (includes SFR)

Upon power-on reset, BSR is equal to 0 (default value)

Page 36: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

36

A Bit in the Instruction Field for INCF F, D, A

Two thing must be done Load BSR with desired bank Make A = 1 in the instruction itself.

6-36

Page 37: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

37

Page 38: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

38

Page 39: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

39

Page 40: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

40

Page 41: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

41

Page 42: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

42

Page 43: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

43

Page 44: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

Section 6.7: Macros and models

Dividing a program into several models allows us to use models in other application. Reduce time Reduce of errors

Increase the code size every time it invoked MACRO SyntaxName MACRO dummy1, dummy2 …

…………….

…………….

ENDM

6-44

Page 45: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

Macros and models

Moving literal data into file register data RAM is widely used service, but there is no instruction for that, we can use a macro to do the job as shown:

Page 46: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

Local directive

If a macro is expanded more than ones in a program and there are labels in the label filed o the body of the macro, these label must be declared as LOCAL, other wise assembler arise error.

Page 47: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

LOCAL directive

The Following rules must be observed in the body of the macro All label must be declared LOCAL. The LOCAL directive must be write after the

MACRO directive The LOCAL directive can be used to declare

all names and labels at once as follows:

Page 48: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

LOCAL directive

Page 49: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair
Page 50: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair
Page 51: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

INCLUDE Directive

The INCLUDE directive allows a programmer to write macros and save them in a file, and later bring them into any program file.

Page 52: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair
Page 53: Embedded System Spring, 2011 Lecture 11: Bank Switching Eng. Wazen M. Shbair

53IUG- Embedded System 53

References

Jie Hu , ECE692 Embedded Computing Systems , Fall 2010.

PIC Microcontroller And Embedded Systems: using Assembly and C for PIC 18, M. Mazidi, R. McKinlay and D. Causey, Prentice Fall, 2008.

Eng. Husam Alzaq, Embedded System Course, IUG, 2010