visualdsp++ and test driven development prelaboratory assignment information
Post on 20-Dec-2015
215 views
TRANSCRIPT
VisualDSP++ and Test Driven Development
Prelaboratory assignment information
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
2 / 28
Concepts
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
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
3 / 28
Test 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
DescribeRequirements
Design Solution
Build Solution Test Solution
WriteAcceptance Tests
WriteUnit Tests
CUSTOMER
DEVELOPER
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
4 / 28
Software “AM” radio concept
AntennaPickup
LocalOscillator
Mixer Low passFilter
Rectifier
Audio out
RF STAGE
IF STAGE
AUDIO STAGE
Most stages handled with high speed software
Low passFilter
+ amplifier
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
5 / 28
Rectification 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);
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
6 / 28
Files and directories neededTDD and many tests files available on web
ENCM515
TDDActivateTestsmain.cpp
Check web for updatesTS201_char8_TDDLib_4Dec04.dlbTDD_include25Nov04.hTDD_Tests25Nov04.h
TigerSHARC versions to comehardwareTDD.hdatastoreTDD.h
RectifyRectify.hRectifymain.cppCustomerRectifymain.cppTS201.ldfHalfWaveDebug.cpp
Rectify.prjHalfWaveRelease.cppHalfWaveASMint.asmHalfWaveASMfloat.asm
RectifyTestsHalfWaveDebugTests.cppHalfWaveReleaseTests.cppHalfWaveASMTests.cppHalfWaveTimingTests.cpp
Lab1 Lab1Tests
Lab2 Lab2Tests
LabX LabXTests
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
7 / 28
First unit test RectifyTests/Lab1HalfWaveDebugTests.cpp (on Web)
#include “../Rectify/Rectify.h”
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
8 / 28
Running the tests or customer code Lab1/Lab1main.cpp
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
9 / 28
Running the customer product code
Rectify/CustomerRectifymain.cpp
#include “Rectify.h”
int CustomerRectifymain(void);
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
10 / 28
Test code –TDD/ActivateTestsmain.cpp
Report all tests.Success and failures
Report successes only
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
11 / 28
Build a project -- Steps 1 and 2
HolddownCTRLKey
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
12 / 28
Build a project – Steps 3, 4, 5, 6
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
13 / 28
Build a project – Steps 8, 9, 10
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
14 / 28
Adding files to project
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
15 / 28
Build and run commands
Build THIS file
Build ANY CHANGED files (Use most of the time for speed reasons)
Build ALL files
Run the programHalt the program
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
16 / 28
Runs “slowly” in single cycle accurate Simulator modeRun on “real board” in ICT320 using Summit ICE JTAG
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
17 / 28
Some useful project menu options
About every 10 buildsor when things
“just are not going right”
CleanUpdate dependencies
Rebuild ALL
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
18 / 28
RectifyTests/HalfWaveDebug.cpp “works” but contains a hidden bug
#include “Rectify/Rectify.h”
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
19 / 28
Integer array tests ZERO-LENGTH ARRAY
Unspecified requirement – shown as part of test functionality Function return pointer = NULL if error
condition present
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
20 / 28
Fast 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
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
21 / 28
Fast 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
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
22 / 28
Steps for changing options of “one file” to “optimized / release mode”
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
23 / 28
Float and assembly language tests-- Cut and paste versions of integer tests
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
24 / 28
Speed tests – integer code versions
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
25 / 28
Concepts 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
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
26 / 28
Time for a demo
Need 1 student volunteer
04/18/23 Concepts of TDD, M. Smith, ECE, University of Calgary, Canada
27 / 28
Concepts
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