Title: VisualDSP and Test Driven Development
1VisualDSP and Test Driven Development
- Prelaboratory assignment information
2Concepts
- Stages in a conventional radio
- Stages in a software radio
- Goals for the long term project
- Building a VisualDSP project using TDD
- See web for more specific details
- Demo if time is available
3Test Driven Development
- Customer Tests personally find these hard to do
- Not clear if there is yet a real process
available - Developer Tests have found many advantages
CUSTOMER DEVELOPER
4Software AM radio concept
RF STAGE
Antenna Pickup
AUDIO STAGE
Low passFilter amplifier
Low passFilter
Rectifier
Mixer
LocalOscillator
IF STAGE
Audio out
Most stages handled with high speed software
5Rectification algorithm
- Choices are
- C compiler in DEBUG mode
- int RectifyDEBUG(int initial , int final, int
N) - float RectifyDEBUG (float initial , float
final, int N) - C compiler in RELEASE mode
- int RectifyRELEASE(int initial , int final,
int N) - float RectifyRELEASE(float initial , float
final, int N) - US in ASSEMBLY mode
- int RectifyASM(int initial , int final, int
N) - float RectifyASM(float initial , float final,
int N) - US in OPTIMIZED ASSEMBLY mode
- int RectifyOPTASM (int initial , int final,
int N) - float RectifyOPTASM (float initial , float
final, int N)
6Files and directories neededTDD and many tests
files available on web
ENCM515
RectifyTests HalfWaveDebugTests.cpp HalfWaveReleas
eTests.cpp HalfWaveASMTests.cpp HalfWaveTimingTest
s.cpp
TDD ActivateTestsmain.cpp Check web for
updates TS201_char8_TDDLib_4Dec04.dlb TDD_include2
5Nov04.h TDD_Tests25Nov04.h TigerSHARC versions
to come hardwareTDD.h datastoreTDD.h
Rectify Rectify.h Rectifymain.cpp CustomerRectifym
ain.cpp TS201.ldf HalfWaveDebug.cpp Rectify.prj H
alfWaveRelease.cpp HalfWaveASMint.asm HalfWaveASMf
loat.asm
Lab1
Lab1Tests
Lab2
Lab2Tests
LabX
LabXTests
7First unit test
- RectifyTests/Lab1HalfWaveDebugTests.cpp (on Web)
include ../Rectify/Rectify.h
8Running the tests or customer code
9Running the customer product code
- Rectify/CustomerRectifymain.cpp
include Rectify.hint CustomerRectifymain(vo
id)
10Test code TDD/ActivateTestsmain.cpp
Report all tests.Success and failures
Report successes only
11Build a project -- Steps 1 and 2
HolddownCTRLKey
12Build a project Steps 3, 4, 5, 6
13Build a project Steps 8, 9, 10
14Adding files to project
15Build and run commands
Build ANY CHANGED files (Use most of the time for
speed reasons)
Build THIS file
Build ALL files
Run the program Halt the program
16Runs slowly in single cycle accurate Simulator
mode Run on real board in ICT320 using Summit
ICE JTAG
17Some useful project menu options
About every 10 buildsor when thingsjust are
not going right Clean Update
dependenciesRebuild ALL
18RectifyTests/HalfWaveDebug.cpp works but
contains a hidden bug
include Rectify/Rectify.h
19Integer array tests ZERO-LENGTH ARRAY
- Unspecified requirement shown as part of test
functionality - Function return pointer NULL if error condition
present
20Fast generation of Release Code/Tests
- Save a version of RectifyTests/
HalfWaveDebugTests.cpp as RectifyTests/
HalfWaveReleaseTests.cpp - Use editor to change function names from XXXDebug
to XXXRelease - Save a version of Rectify/ HalfWaveDebug.cpp as
Rectify/ HalfWaveRelease.cpp - Use editor to change function names from XXXDebug
to XXXRelease
21Fast generation of Release code/tests
- Add RectifyTests/ HalfWaveReleaseTests.cpp and
Rectify/ HalfWaveRelease.cpp to project - Compile and link to make sure that they work
- Need to change compile option for Rectify/
HalfWaveRelease.cpp to optimized
22Steps for changing options of one file to
optimized / release mode
23Float and assembly language tests-- Cut and
paste versions of integer tests
24Speed tests integer code versions
25Concepts covered
- Stages in a conventional radio
- Stages in a software radio
- Goals for the long term project
- Concept of test driven development
- Digital rectification
- Tests for integer array rectification
- Tests for float array rectification (C
compiler) - Tests for rectification in assembly code
- More details of test driven development
26Time for a demo
27Concepts
- Stages in a conventional radio
- Stages in a software radio
- Goals for the long term project
- Building a VisualDSP project using TDD
- See web for more specific details
- Demo if time is available