This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello!
I have been following through a lot of wiki pages, E2E posts, and internal CCS help section recently. I managed to understand what code coverage is and how to enable it, but how do you incorporate the original hardware test case into a software test case?
Description
The normal test procedure is as follows:
1. Load application onto target device (in this case DSP platform - TCI6482)
2. Run the DSP application
3. Run a test script through a controller to test the overall system
Since target device is now running in simulation mode, test script needs to run in simulation mode as well.
Question
1. How would you modify the original controller test script to work with testing the simulation code?
2. There are some posts that mentioned ".out test framework". Are there example codes for that?
--------------------------
The idea that no test code is needed crossed my mind a lot of times too, but based on my limited knowledge of code coverage's functionality I still believe a test case is needed...
Thanks in advance!
- Shiou Mei Huang
Are you referring to the code coverage feature built in to the compiler? Or something else?
Thanks and regards,
-George
Hi Georgem,
Yes. I am referring to the code coverage feature built in to the compiler. I couldn't identify whether a test script or so would be needed in this case, but it makes more sense to me that it is needed.
Thanks for your help!
- Shiou Mei
Is the code coverage feature working for you as you expect? If not, please show what you are getting, and clearly describe what you expect to get instead.
Thanks and regards,
-George
Hi George,
We are attempting the path profiling feature to target C6482 hardware as described in the C6000 Compiler User's Guide as well as the CCSv5-CodeCoverage2 powerpoint. At first we experienced the error message indicating MemBoot memory section (0x800) is not large enough to hold the "BOOT" object (0xa20), so we increased the size of MemBoot (highlighted as follows), re-compiled, and now are receiving a conflict with the IRAM range. I have not been able to identify where tihs range specification is.
Once path profiling works, we are expecting the Profile Data Decoder to format the data collected in .pdat file into a feedback file (.prf), which we can then use to generate code coverage information.
-------------------------------------------------------------------------
MEMORY
{
MemBoot: o=00800000h l=00000800h -----> o=00800000h l=00000a20h
MemLINKCP: o=00800800h l=00000100h -----> o=00800a20h l=00000100h
MemICODE: o=00900900h l=000bf700h
}
SECTIONS
{
BOOT > MemBoot
CPDSPLNK > MemLINKCP
ICODE > MemICODE
IDATA > IRAM
CPMSG > CPMSGBUF
SRPOUTPUTDATA > LMUFREE
}
----------------------------------------------------------
-l"..\..\..\Libraries\csl_c6482\lib\csl_c6482.lib" -l"..\..\..\Libraries\csl_c64xplus_intc\lib\csl_c64xplus_intc.lib" -l"..\..\..\Libraries\dsplib\lib\dsp64x.lib" -l"..\..\..\Libraries\mthlib\lib\fastrts64x.lib" -l"libc.a" "../LMU3G.cmd"
<Linking>
"../LMU3G.cmd", line 88: error: MemBoot memory range overlaps existing memory
range IRAM
"../LMU3G.cmd", line 89: error: MemLINKCP memory range overlaps existing memory
range IRAM
warning #10247-D: creating output section ".ppdata" without a SECTIONS
specification
"../LMU3G.cmd", line 96: error #10099-D: placement fails for object "CPDSPLNK",
size 0x100 (page 0). Available ranges:
MemLINKCP size: 0x100 unused: 0x100 max hole: 0x100
error #10010: errors encountered during linking; "NxtGenDsp.out" not built
gmake: *** [NxtGenDsp.out] Error 1
gmake: Target `all' not remade because of errors.
>> Compilation failure
-------------------------------------------------------------------------
Any inputs are greatly appreciated!
Thanks,
Shiou Mei Huang
You have some linker errors to fix. Once those are fixed, we can then worry about code coverage.
Shiou Mei Huang said:"../LMU3G.cmd", line 88: error: MemBoot memory range overlaps existing memory
range IRAM
The linker is saying there is some other link command file, that link command file defines a memory range named IRAM, and the IRAM memory range overlaps with this MemBoot memory range. It is a good guess that IRAM is defined in a link command file auto-generated as part of a BIOS build. This wiki article should help you understand how to modify your BIOS configuration to add new memory ranges and sections.
Shiou Mei Huang said:warning #10247-D: creating output section ".ppdata" without a SECTIONS
specification
When you build with --gen_profile_info, the compiler adds code to your system to count how often blocks of the code are executed. Among other things, this requires counters in memory for all the blocks. These counters are kept in the section .ppdata. So, you need to explicitly allocate this section in your link command file. Otherwise, it gets placed in memory with the default algorithm, which is probably wrong.
Shiou Mei Huang said:"../LMU3G.cmd", line 96: error #10099-D: placement fails for object "CPDSPLNK",
The output section CPDSPLNK does not fit in the memory range you selected. Please see this wiki article.
Thanks and regards,
-George