Currently, booting up the camera is as follows:
When the service is disabled, the user can run this script manually, which:
All of those lead to a solid lockup of the Beta, because if you write to one of those memory addresses which are used for communicating with the PL, and there is no handler in the FPGA, the ARM cores lock up solid, no recovery possible they basically wait for an ACK/NACK forever.
Research is taking place in the Labs here.
Unit tests have been added to the project to verify correct functionality. Catch2 framework is used, because it's single-header only and utilizes C++11 way of doing things.
When adding new or extending available tests: RAM access of the camera is different from x86/x64 CPUs, modified classes have to be used to bypass this, otherwise SEGFAULT would be the result.
In the CMake scripts a switch called ENABLE_MOCK was added, to allow to disable parts of code which cannot work on a regular PC (see CMV12000AdapterTests.cpp for an example). While running the build on camera cmake .. is sufficient, but for development one should use:
cmake -DENABLE_MOCK=ON ..