Home > User Support > CoverageMaster winAMS FAQ
Question:
I am using an ARM Cortex MPU (Cortex-A5/A7/A8/A9/A12/A15, Cortex-R4/R4F/R5/R5F, Cortex-M0/M0+/M1, Cortex-M3, Cortex-M4), and the ARM linker (armlink). When selecting the variables for my test CSV file in CoverageMaster, some variables do not appear in the "All Variables" or "Detected Variables" tabs. How can I use these variables for my test?
Answer:
When using a scatter file (*.sct or *.scat) with the ARM linker (armlink), the R/W data section of the object is compressed by default. Since CoverageMaster cannot use the compressed initialization data and debug information for these variables, they do not appear in the variables lists.
Perform the following to fix.
1.) When using a scatter file ( --scatter=filename), add the NOCOMPRESS option in the scatter file as shown in
the example below, then recompile the object.
Note: Not using a scatter file also fixes this problem.
Reference: ARM Compiler armlink User Guide: --scatter
Scatter File Example:
SDRAM 0x00000000 NOCOMPRESS
{
APP_CODE +0
{
* (VECTORS, +FIRST)
* (+RO-CODE)
* (+RO-DATA)
}
APP_DATA +0
{
* (+RW, +ZI)
}
}
2.) If the method above does not fix the problem, add [--datacompressor=off] to the linker options and recompile the object.
Note: The default setting is [--datacompressor=on]. If [--datacompressor=off] is used but NOCOMPRESS is not set, the Scatter file settings have priority and the data is compressed.
3.) If the methods above do not fix the problem, remove [--compress_debug] from the linker options.
Note: The default setting is [--no_compress_debug].
4.) If the methods above do not fix the problem, add [--no_remove] to the linker options.
Note: The default setting is [--remove] (meaning remove unused sections).
Other technical tips in GAIO's web site can be searched for using the links below.
Search key word link: Cortex-A | Cortex-R | Endian | Simulation Error | Invalid Instruction
Technical Tips Google Search