zephyr/tests/boards/intel_s1000_crb/main
Marc Herbert debade9121 tests: make find_package(Zephyr...) REQUIRED
... because it is (required).

This makes a difference when building with CMake and forgetting
ZEPHYR_BASE or not registering Zephyr in the CMake package registry.

In this particular case, REQUIRED turns this harmless looking log
statement:

-- Could NOT find Zephyr (missing: Zephyr_DIR)
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/cc
-- ...
-- ...
-- ...
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at CMakeLists.txt:8 (target_sources):
  Cannot specify sources for target "app" which is not built by
  this project.

... into this louder, clearer, faster and (last but not least) final
error:

CMake Error at CMakeLists.txt:5 (find_package):
  Could not find a package configuration file provided by "Zephyr" with
  any of the following names:

    ZephyrConfig.cmake
    zephyr-config.cmake

  Add the installation prefix of "Zephyr" to CMAKE_PREFIX_PATH or set
  "Zephyr_DIR" to a directory containing one of the above files.  If
  "Zephyr" provides a separate development package or SDK, be sure it
  has been installed.

-- Configuring incomplete, errors occurred!

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2020-05-29 10:47:25 +02:00
..
src flash: Convert DT_FLASH_AREA to FLASH_AREA macros 2020-05-13 21:22:53 +02:00
CMakeLists.txt tests: make find_package(Zephyr...) REQUIRED 2020-05-29 10:47:25 +02:00
README.txt
prj.conf
testcase.yaml

README.txt

Title: Intel S1000 CRB tests

Description:

This test illustrates the various features enabled on Intel S1000 CRB.

Features exhibited in this test set
============================

GPIO toggling
  - GPIO_23 configured as input
  - GPIO_24 configured as output and interrupt capable
  - GPIO_23 and GPIO_24 are shorted
  - Upon toggling GPIO_23, GPIO_24 also changes state appropriately and
    also calls its callback function if interrupt is configured

I2C slave communication
  - Intel S1000 CRB I2C configured as master, 7 bit mode, standard speed
  - 2 LED matrices are configured as slaves
  - The LED matrices are written over I2C to emit blue light and red
    light alternately
  - Read functionality verified by reading LED0 after every write and
    dumping the result on to the console

Interrupt handling
  - All peripheral interrupts are enabled by default
  - Each peripheral interrupt can be disabled by calling irq_disable().
    For e.g. GPIO IRQ can be disabled by calling "irq_disable(GPIO_DW_0_IRQ);"

UART prints
  - Displays the various prints dumped to the console by the above modules

---------------------------------------------------------------------------

Building and Running Project:

This project outputs to the console.  It can be built and executed
on Intel S1000 CRB using the flyswatter2 as follows:

    make flash

---------------------------------------------------------------------------

Troubleshooting:

Problems caused by out-dated project information can be addressed by
issuing one of the following commands then rebuilding the project:

    make clean          # discard results of previous builds
                        # but keep existing configuration info
or
    make pristine       # discard results of previous builds
                        # and restore pre-defined configuration info

---------------------------------------------------------------------------

Sample Output:

***** BOOTING ZEPHYR OS v1.9.99-intel_internal - BUILD: Oct 31 2017 14:48:57 *****
Sample app running on: xtensa Intel S1000 CRB
Reading GPIO_24 = 0
LED0 = 10
GPIO_24 triggered
Reading GPIO_24 = 1
LED0 = 41