Just enough information to program a Blackfin - PowerPoint PPT Presentation

1 / 28
About This Presentation
Title:

Just enough information to program a Blackfin

Description:

Just enough information to program a Blackfin 90% of this course can be done knowing less than 10% of the Blackfin Instructions Familiarization assignment for the – PowerPoint PPT presentation

Number of Views:88
Avg rating:3.0/5.0
Slides: 29
Provided by: MichaelR223
Category:

less

Transcript and Presenter's Notes

Title: Just enough information to program a Blackfin


1
Just enough information to program a Blackfin
  • 90 of this course can be done knowing less than
    10 of the Blackfin Instructions
  • Familiarization assignment for the Analog
    Devices VisualDSPIntegrated Development
    Environment

2
  • Reminder Tutorial tomorrow -- Thursday
  • This will help to get ahead on the assignments

3
Tackled today
  • Recipe for Just in time knowledge ?
  • Need a dollop of C code
  • A smizzen of knowledge to build the simplest
    possible Blackfin assembly language for-loop
    and while
  • A pinch of Windows Experience
  • And a bowl to put the ingredients in (a computer
    account with password) and somebody else to do
    all the clean-up (a partner) and a desk in Labs
    ICT318 and 320.

4
VisualDSP IDE
  • Analog Devices integrated development
    environment (IDE) has been used in the following
    courses
  • Blackfin ADSP-BF533
  • ENCM415 Assembly language and interfacing
    (2004)
  • ENCM417 Switching to Blackfin for 2007
  • ENCM491 Real Time Systems (2003)
  • ENEL619.23 -- High speed embedded system
    architectures (2004)
  • ENEL583/589 Many 4th year team projects (2004)
  • TigerSHARC ADSP-TS201
  • ENCM515 Comparative Processor Architectures for
    DSP (Since 1999)
  • ENEL619.23 -- High speed embedded system
    architectures (2004)

5
Just enough to know
  • If time today will do a demo.
  • Build a directory U/ENCM415/Assignment
  • Remember to insert the BF533 board power plug
    (check that lights on board flash)
  • Activate VisualDSP -- Log into a station and use
    Analog devices CONFIGURATOR to set up a BF533
    session to connect to the hardware
  • Use VisualDSP and activate a Blackfin BF533
    session lights should pause
  • Build a Blackfin Project, add to your directory
  • Add your C files to the project
  • Compile, Link and Run using the equivalent
    commands as with Microsoft Visual Basic, Visual
    Studio etc
  • Add your assembly ASM files to the Blackfin
    project
  • Compile, Link and Run using the equivalent
    commands as with Microsoft Visual Basic, Visual
    Studio etc
  • Dont forget to add some tests so that you know
    the code is working

6
Analog Devices CONFIGURATOR
7
Run VisualDSP Add New Project
8
WRITE main.cpp, ADD to Project
9
Then BUILD (which causes a LOAD)
  • Build and load

10
Then Debug Run the code
11
Prepare for Assignment C result
12
C Version of assignment
13
Assignment talks about auto-increment. Here is
how to try to get compiler to do it
14
Prepare main( ) to call assembly codeand CHECK
the results
15
Build WITHOUT ADDING assembly code fileError
message is VERY SPECIAL
  • We thought we needed the function
  • Assignment1_ASMversion( )
  • However the linker is worried about not finding
  • _Assignment1_ASMversion__Fv

16
Standard FormatAssembly code stub
  • Header info
  • Prologue
  • Code toreturn value
  • Epilogue

17
Result using Assembly code stub
Exactly the result we expected
18
Keyword R0 32-bit Data Register
Assembly code comment
  • R0 7 // This returns value 7

End of line marker
32 bit data register -- R0, R1, R2, R3, R4, R5,
R6, R7
19
Keyword P0 32-bit pointer Register
32 bit pointer register -- P0, P1, P2, P3,
P4 Final exam question from last year Careful
when not in the assembler, the linker may give
errors which mention p0 which stands for
processor 0. The blackfin hardware can come in
multi-core version (p0 and p1 for BF561) or
multi-processor version.
20
Keyword 32-bit Frame pointer
As on many processors LINK and UNLINK
instructions involve hidden operations on FP and
SP (stack pointer) More on that in a later class
32 bit Frame pointer -- FP
21
Keyword Memory operations
32 bit memory read long-word access
R0 FP 4 If FP contains the value
0x20000000 then fetch the 32-bit value starting
at memory location 0x20000004 and place in data
register R0
22
Keyword Memory operations
16 bit memory read W word access
R1.H WFP 28 If FP contains the value
0x20000000 then fetch the 16-bit value starting
at memory location 0x20000028 and place in data
register R1.H which is the UPPER part of the
register R1 (R1.H and R1.L)
23
Keyword Memory operations
8 bit memory reads are also possible BFP
4
24
  • Perhaps time for a working example

25
Programmers model
  • 32 bit data register
  • R0, R1, R2, R3, R4, R5, R6, R7
  • 16 bit data register
  • R0.H, R1.H, R2.H, R3.H . R7.H
  • R0.L, R1.L, R2.L, R3.L . R7.L
  • 32 bit Pointer register
  • P0, P1, P2, P3, P4
  • NO 16 bit Pointer registers
  • 32 bit Frame Pointer -- FP
  • 32 bit Stack Pointer -- SP

26
Memory access MUST be done via a Pointer register
  • 32-bit Memory access
  • Place value 0x2000 into register P1 THEN
  • R0 P1 accesses (reads) the 32-bit value at
    0x2000 and leaves P1 unchanged (P1 still equals
    0x2000)
  • R0 P1 4 accesses (reads) the 32-bit value
    at 0x2004 and leaves P1 unchanged (P1 still
    equals 0x2000)
  • R0 P1 accesses (reads) the 32-bit value at
    0x2000 and autoincrements P1 by the size of a
    long word (4 bytes) (P1 NOW equals 0x2004)

27
Memory access MUST be done via a Pointer register
  • 16-bit Memory access
  • Place value 0x4000 into register P2 THEN
  • R0 WP2 accesses (reads) the 16-bit value at
    0x4000 and leaves P2 unchanged (P2 still equals
    0x4000)
  • R0 WP2 4 accesses (reads) the 16-bit value
    at 0x4004 and leaves P2 unchanged (P2 still
    equals 0x4000)
  • R0 WP2 accesses (reads) the 16-bit value at
    0x4000 and autoincrements P2 by the size of a
    word (2 bytes) (P2 NOW equals 0x2002)

28
Just enough to know
  • If time today will do a demo.
  • Build a directory U/ENCM415/Assignment
  • Remember to insert the BF533 board power plug
    (check that lights on board flash)
  • Activate VisualDSP Log into a station and use
    Analog devices CONFIGURATOR to set up a BF533
    session to connect to the hardware
  • Use VisualDSP and activate a Blackfin BF533
    session lights should pause
  • Build a Blackfin Project, add to your directory
  • Add your C files to the project
  • Compile, Link and Run using the equivalent
    commands as with Microsoft Visual Basic, Visual
    Studio etc
  • Add your ASM files to the project
  • Compile, Link and Run using the equivalent
    commands as with Microsoft Visual Basic, Visual
    Studio etc
  • Dont forget to add some tests so that you know
    the code is working
Write a Comment
User Comments (0)
About PowerShow.com