MAS Software Development

From DDCIDeos
Jump to navigationJump to search

This page primarily contains useful and miscellaneous information to a verification engineer (me). However, some of this information is useful for software development as well.

Useful Links

Build Code (regress)

Refer to Regress Howto for more detailed information about the regress tool to build and execute test procedures.

Clean the Temporary Files

Component Level:

rm -rf output

OR

common/build-utils/build -c

Tests Level:

rm -rf aarch64-deos arm-deos autom4te.cache config.log config.status configure desk Makefile ppc-deos x86-deos results

OR

common/test-utils/regress reallyClean

Touch Command (to force a rebuild)

Often during test development, the object files may get out of sync with each other. To force a recompile, you can use the ‘touch’ command through a BASH window to update the date stamp which will trigger a recompile. Example:

touch ./databases/tp0054/config.653.xml

Common Build Errors/Warnings

Unused Parameter

If you have a function where one or more arguments are not used, then the compiler will flag it as a warning. To resolve the warning, comment out the unused parameter name as shown below: void myFunction (uint32_t paramName1, size_t /* paramName2 */, size_t paramName3)

Disable a Known/Acceptable Build Warning

When there is a build warning that is intentional and acceptable, use the following approach to disable the warning:

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
  Elf32_Word jmpTableEnd = 0;
#pragma GCC diagnostic pop

NOTE: Use the actual build warning given in the build.log file. The above is specific for the [-Wunused-but-set-variable] for the intercept-a653.cpp file.

systemTickInUsec

Error message:
pi: Error #5: Feature set (deos653UserGroup), feature (oncePerPlatform) has an assert action that returned false: Table.field (platformAttributes.systemTickInUsec), value (25000), scope () has a value of (12500)

Solution:
Modify the platreg associated with the given platform to use the 25ms tick rate (25000). Example of platreg location: desk/platform/qemu-arm/etc/platreg.pi.xml

ioi-feature-set

Error message:
pi: Error #1: Process Template (tp0047b) uses feature set (ioi-feature-set), which is not present. pi: Error #2: Process Template (tp0047a) uses feature set (ioi-feature-set), which is not present. make: *** [../../../common/test-utils/test-makefile.mk:758: tp0047_platreg.s_in] Error 1

Solution:
The test procedure is using ports (sampling/queuing), but the test makefile does not link in the IOI config binary. Find another test that uses sampling or queuing ports and copy the missing part from the makefile. Use BeyondCompare to make this task easier.

Test Harness

Increase/Modify the Test Harness Time

If you want to change the test harness timeout for ALL of the test procedures, then modify the ABORT_TIMEOUT value in the /code/makefile.mk file:
ABORT_TIMEOUT = 120

If you want to change the timeout for a specific test procedure, then modify the TIMEOUT value in the specific makefile:
tp0000_TIMELIMIT = 240

Increasing the value will add additional time to the test harness timeout. This can be useful on platforms (such as qemu) where the tests often take significantly longer than tests executing on the actual hardware.

Assembly

Show Disassembly Code

From a BASH window, navigate to a directory containing the exe and object files. Use the following command:

arm-eabi-objdump -dr x.exe.dbg > x.dis

(where ‘x.exe.dbg’ is the filename in question)