Error while mocking zephyr drivers

 Hello,


I'm migrating from NCS v2.1.0 to NCS v2.2.0 and I have some unit tests with Unity and Cmock.

While migrating, I've checked my tests and they don't work anymore.

The problem is that when I try to mock some zephyr drivers files (like led.h, device.h, etc), I have those errors:

/usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/twister-out/native_posix_64/unity.ihm/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_14'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/twister-out/native_posix_64/unity.ihm/mocks/zephyr/device.h:283: first defined here
/usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/twister-out/native_posix_64/unity.ihm/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_15'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/twister-out/native_posix_64/unity.ihm/mocks/zephyr/device.h:283: first defined here
/usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/twister-out/native_posix_64/unity.ihm/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_10'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/twister-out/native_posix_64/unity.ihm/mocks/zephyr/device.h:283: first defined here

I've tryed multiple things with no results and it was working on NCS v2.1.0...

Is it possible to help me with this problem ?

Kind regards,

Andrew

Parents
  • Hi Andrew. 

    Is the error the same for all modules you are trying to mock, "multiple definitions of __device_dts_ord__" or do you only get it if you mock device.h? 

    The error you posted, is from the terminal output for the log file? I seem to recall the log file would often give some more clues to the problem. 

    Kind regards,

    Runar 

  • Yes it's the same for all modules mocked.
    Here is the list of my CMakeLists.txt with my mocked modules:

    # SPDX-License-Identifier: Apache-2.0
    
    cmake_minimum_required(VERSION 3.20.0)
    
    find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
    project(device)
    
    test_runner_generate(src/ihm_test.c)
    cmock_handle(${ZEPHYR_BASE}/include/zephyr/device.h zephyr)
    cmock_handle(${ZEPHYR_BASE}/include/zephyr/drivers/led.h zephyr/drivers)
    cmock_handle(${ZEPHYR_BASE}/../safehear/include/safehear/drivers/button.h safehear/drivers)
    cmock_handle(${ZEPHYR_BASE}/../safehear/include/safehear/drivers/dsp.h safehear/drivers)
    cmock_handle(${ZEPHYR_BASE}/include/zephyr/settings/settings.h zephyr/settings)
    cmock_handle(${ZEPHYR_BASE}/include/zephyr/drivers/sensor.h zephyr/drivers)
    
    zephyr_include_directories(
        ../../include
    )
    
    target_sources(app PRIVATE src/ihm_test.c)
    target_sources(app PRIVATE ../../App/src/ihm.c)

    And here is the entire log output:

    [2/116] Generating include/generated/version.h
    -- Zephyr version: 3.2.99 (/home/pi/safehear/zephyr), build: v3.2.99-ncs1
    [10/116] Generating mocks/safehear/drivers/cmock_button.c
    Creating mock for button...
    [11/116] Generating mocks/zephyr/drivers/cmock_led.c
    Creating mock for led...
    [12/116] Generating mocks/zephyr/cmock_device.c
    Creating mock for device...
    [14/116] Generating mocks/safehear/drivers/cmock_dsp.c
    Creating mock for dsp...
    [29/116] Generating mocks/zephyr/settings/cmock_settings.c
    Creating mock for settings...
    [68/116] Generating mocks/zephyr/drivers/cmock_sensor.c
    Creating mock for sensor...
    [73/116] Building C object CMakeFiles/app.dir/runner/runner_ihm_test.c.obj
    In file included from runner/runner_ihm_test.c:9:
    mocks/safehear/drivers/cmock_button.h:28:1: warning: ‘used’ attribute ignored [-Wattributes]
       28 | void __cmock_i_button_set_event_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_button.h:32:1: warning: ‘used’ attribute ignored [-Wattributes]
       32 | void __cmock_i_button_set_event_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_button.h:34:132: warning: ‘used’ attribute ignored [-Wattributes]
       34 | void __cmock_i_button_set_event_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, uint32_t button, struct k_event* p_evnt_obj, uint32_t event, __used int cmock_to_return);
          |                                                                                                                                    ^~~~~~~
    In file included from runner/runner_ihm_test.c:12:
    mocks/safehear/drivers/cmock_dsp.h:28:1: warning: ‘used’ attribute ignored [-Wattributes]
       28 | void __cmock_i_dsp_configure_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:32:1: warning: ‘used’ attribute ignored [-Wattributes]
       32 | void __cmock_i_dsp_configure_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:34:92: warning: ‘used’ attribute ignored [-Wattributes]
       34 | void __cmock_i_dsp_configure_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, __used int cmock_to_return);
          |                                                                                            ^~~~~~
    mocks/safehear/drivers/cmock_dsp.h:42:1: warning: ‘used’ attribute ignored [-Wattributes]
       42 | void __cmock_i_dsp_unmute_output_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:46:1: warning: ‘used’ attribute ignored [-Wattributes]
       46 | void __cmock_i_dsp_unmute_output_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:48:96: warning: ‘used’ attribute ignored [-Wattributes]
       48 | void __cmock_i_dsp_unmute_output_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, __used int cmock_to_return);
          |                                                                                                ^~~~~~
    mocks/safehear/drivers/cmock_dsp.h:56:1: warning: ‘used’ attribute ignored [-Wattributes]
       56 | void __cmock_i_dsp_mute_output_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:60:1: warning: ‘used’ attribute ignored [-Wattributes]
       60 | void __cmock_i_dsp_mute_output_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:62:94: warning: ‘used’ attribute ignored [-Wattributes]
       62 | void __cmock_i_dsp_mute_output_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, __used int cmock_to_return);
          |                                                                                              ^~~~~~
    mocks/safehear/drivers/cmock_dsp.h:70:1: warning: ‘used’ attribute ignored [-Wattributes]
       70 | void __cmock_i_dsp_unmute_input_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:74:1: warning: ‘used’ attribute ignored [-Wattributes]
       74 | void __cmock_i_dsp_unmute_input_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:76:95: warning: ‘used’ attribute ignored [-Wattributes]
       76 | void __cmock_i_dsp_unmute_input_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, __used int cmock_to_return);
          |                                                                                               ^~~~~~
    mocks/safehear/drivers/cmock_dsp.h:84:1: warning: ‘used’ attribute ignored [-Wattributes]
       84 | void __cmock_i_dsp_mute_input_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:88:1: warning: ‘used’ attribute ignored [-Wattributes]
       88 | void __cmock_i_dsp_mute_input_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:90:93: warning: ‘used’ attribute ignored [-Wattributes]
       90 | void __cmock_i_dsp_mute_input_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, __used int cmock_to_return);
          |                                                                                             ^~~~~~
    mocks/safehear/drivers/cmock_dsp.h:98:1: warning: ‘used’ attribute ignored [-Wattributes]
       98 | void __cmock_i_dsp_set_input_volume_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:102:1: warning: ‘used’ attribute ignored [-Wattributes]
      102 | void __cmock_i_dsp_set_input_volume_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:104:99: warning: ‘used’ attribute ignored [-Wattributes]
      104 | void __cmock_i_dsp_set_input_volume_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, int16_t volumeLevel, __used int cmock_to_return);
          |                                                                                                   ^~~~~~
    mocks/safehear/drivers/cmock_dsp.h:114:1: warning: ‘used’ attribute ignored [-Wattributes]
      114 | void __cmock_i_dsp_set_output_volume_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:118:1: warning: ‘used’ attribute ignored [-Wattributes]
      118 | void __cmock_i_dsp_set_output_volume_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:120:100: warning: ‘used’ attribute ignored [-Wattributes]
      120 | void __cmock_i_dsp_set_output_volume_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, int16_t volumeLevel, __used int cmock_to_return);
          |                                                                                                    ^~~~~~
    mocks/safehear/drivers/cmock_dsp.h:130:1: warning: ‘used’ attribute ignored [-Wattributes]
      130 | void __cmock_i_dsp_get_VAD_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used uint8_t cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:134:1: warning: ‘used’ attribute ignored [-Wattributes]
      134 | void __cmock_i_dsp_get_VAD_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used uint8_t cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:136:90: warning: ‘used’ attribute ignored [-Wattributes]
      136 | void __cmock_i_dsp_get_VAD_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, __used uint8_t cmock_to_return);
          |                                                                                          ^~~~~~
    [77/116] Building C object CMakeFiles/app.dir/mocks/safehear/drivers/cmock_button.c.obj
    In file included from mocks/safehear/drivers/cmock_button.c:5:
    mocks/safehear/drivers/cmock_button.h:28:1: warning: ‘used’ attribute ignored [-Wattributes]
       28 | void __cmock_i_button_set_event_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_button.h:32:1: warning: ‘used’ attribute ignored [-Wattributes]
       32 | void __cmock_i_button_set_event_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_button.h:34:132: warning: ‘used’ attribute ignored [-Wattributes]
       34 | void __cmock_i_button_set_event_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, uint32_t button, struct k_event* p_evnt_obj, uint32_t event, __used int cmock_to_return);
          |                                                                                                                                    ^~~~~~~
    mocks/safehear/drivers/cmock_button.c:17:3: warning: ‘used’ attribute ignored [-Wattributes]
       17 |   __used int ReturnVal;
          |   ^~~~~~
    mocks/safehear/drivers/cmock_button.c:35:3: warning: ‘used’ attribute ignored [-Wattributes]
       35 |   __used int __cmock_i_button_set_event_FinalReturn;
          |   ^~~~~~
    mocks/safehear/drivers/cmock_button.c: In function ‘__cmock_i_button_set_event’:
    mocks/safehear/drivers/cmock_button.c:86:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
       86 |          sizeof(__used int[sizeof(cmock_call_instance->ReturnVal) == sizeof(__used int) ? 1 : -1])); /* add __used int to :treat_as_array if this causes an error */
          |          ^~~~~~
    mocks/safehear/drivers/cmock_button.c:86:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
    mocks/safehear/drivers/cmock_button.c:92:5: warning: ‘used’ attribute ignored [-Wattributes]
       92 |     __used int cmock_cb_ret = Mock.__cmock_i_button_set_event_CallbackFunctionPointer(dev, button, p_evnt_obj, event, Mock.__cmock_i_button_set_event_CallbackCalls++);
          |     ^~~~~~
    mocks/safehear/drivers/cmock_button.c: At top level:
    mocks/safehear/drivers/cmock_button.c:149:1: warning: ‘used’ attribute ignored [-Wattributes]
      149 | void __cmock_i_button_set_event_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return)
          | ^~~~
    mocks/safehear/drivers/cmock_button.c:170:1: warning: ‘used’ attribute ignored [-Wattributes]
      170 | void __cmock_i_button_set_event_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return)
          | ^~~~
    mocks/safehear/drivers/cmock_button.c:184:132: warning: ‘used’ attribute ignored [-Wattributes]
      184 | void __cmock_i_button_set_event_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, uint32_t button, struct k_event* p_evnt_obj, uint32_t event, __used int cmock_to_return)
          |                                                                                                                                    ^~~~~~~
    mocks/safehear/drivers/cmock_button.c: In function ‘__cmock_i_button_set_event_CMockExpectAndReturn’:
    mocks/safehear/drivers/cmock_button.c:196:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
      196 |          sizeof(__used int[sizeof(cmock_to_return) == sizeof(__used int) ? 1 : -1])); /* add __used int to :treat_as_array if this causes an error */
          |          ^~~~~~
    mocks/safehear/drivers/cmock_button.c:196:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
    [78/116] Building C object CMakeFiles/app.dir/mocks/safehear/drivers/cmock_dsp.c.obj
    In file included from mocks/safehear/drivers/cmock_dsp.c:5:
    mocks/safehear/drivers/cmock_dsp.h:28:1: warning: ‘used’ attribute ignored [-Wattributes]
       28 | void __cmock_i_dsp_configure_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:32:1: warning: ‘used’ attribute ignored [-Wattributes]
       32 | void __cmock_i_dsp_configure_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:34:92: warning: ‘used’ attribute ignored [-Wattributes]
       34 | void __cmock_i_dsp_configure_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, __used int cmock_to_return);
          |                                                                                            ^~~~~~
    mocks/safehear/drivers/cmock_dsp.h:42:1: warning: ‘used’ attribute ignored [-Wattributes]
       42 | void __cmock_i_dsp_unmute_output_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:46:1: warning: ‘used’ attribute ignored [-Wattributes]
       46 | void __cmock_i_dsp_unmute_output_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:48:96: warning: ‘used’ attribute ignored [-Wattributes]
       48 | void __cmock_i_dsp_unmute_output_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, __used int cmock_to_return);
          |                                                                                                ^~~~~~
    mocks/safehear/drivers/cmock_dsp.h:56:1: warning: ‘used’ attribute ignored [-Wattributes]
       56 | void __cmock_i_dsp_mute_output_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:60:1: warning: ‘used’ attribute ignored [-Wattributes]
       60 | void __cmock_i_dsp_mute_output_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:62:94: warning: ‘used’ attribute ignored [-Wattributes]
       62 | void __cmock_i_dsp_mute_output_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, __used int cmock_to_return);
          |                                                                                              ^~~~~~
    mocks/safehear/drivers/cmock_dsp.h:70:1: warning: ‘used’ attribute ignored [-Wattributes]
       70 | void __cmock_i_dsp_unmute_input_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:74:1: warning: ‘used’ attribute ignored [-Wattributes]
       74 | void __cmock_i_dsp_unmute_input_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:76:95: warning: ‘used’ attribute ignored [-Wattributes]
       76 | void __cmock_i_dsp_unmute_input_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, __used int cmock_to_return);
          |                                                                                               ^~~~~~
    mocks/safehear/drivers/cmock_dsp.h:84:1: warning: ‘used’ attribute ignored [-Wattributes]
       84 | void __cmock_i_dsp_mute_input_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:88:1: warning: ‘used’ attribute ignored [-Wattributes]
       88 | void __cmock_i_dsp_mute_input_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:90:93: warning: ‘used’ attribute ignored [-Wattributes]
       90 | void __cmock_i_dsp_mute_input_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, __used int cmock_to_return);
          |                                                                                             ^~~~~~
    mocks/safehear/drivers/cmock_dsp.h:98:1: warning: ‘used’ attribute ignored [-Wattributes]
       98 | void __cmock_i_dsp_set_input_volume_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:102:1: warning: ‘used’ attribute ignored [-Wattributes]
      102 | void __cmock_i_dsp_set_input_volume_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:104:99: warning: ‘used’ attribute ignored [-Wattributes]
      104 | void __cmock_i_dsp_set_input_volume_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, int16_t volumeLevel, __used int cmock_to_return);
          |                                                                                                   ^~~~~~
    mocks/safehear/drivers/cmock_dsp.h:114:1: warning: ‘used’ attribute ignored [-Wattributes]
      114 | void __cmock_i_dsp_set_output_volume_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:118:1: warning: ‘used’ attribute ignored [-Wattributes]
      118 | void __cmock_i_dsp_set_output_volume_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:120:100: warning: ‘used’ attribute ignored [-Wattributes]
      120 | void __cmock_i_dsp_set_output_volume_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, int16_t volumeLevel, __used int cmock_to_return);
          |                                                                                                    ^~~~~~
    mocks/safehear/drivers/cmock_dsp.h:130:1: warning: ‘used’ attribute ignored [-Wattributes]
      130 | void __cmock_i_dsp_get_VAD_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used uint8_t cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:134:1: warning: ‘used’ attribute ignored [-Wattributes]
      134 | void __cmock_i_dsp_get_VAD_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used uint8_t cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:136:90: warning: ‘used’ attribute ignored [-Wattributes]
      136 | void __cmock_i_dsp_get_VAD_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, __used uint8_t cmock_to_return);
          |                                                                                          ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:22:3: warning: ‘used’ attribute ignored [-Wattributes]
       22 |   __used int ReturnVal;
          |   ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:32:3: warning: ‘used’ attribute ignored [-Wattributes]
       32 |   __used int ReturnVal;
          |   ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:42:3: warning: ‘used’ attribute ignored [-Wattributes]
       42 |   __used int ReturnVal;
          |   ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:52:3: warning: ‘used’ attribute ignored [-Wattributes]
       52 |   __used int ReturnVal;
          |   ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:62:3: warning: ‘used’ attribute ignored [-Wattributes]
       62 |   __used int ReturnVal;
          |   ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:72:3: warning: ‘used’ attribute ignored [-Wattributes]
       72 |   __used int ReturnVal;
          |   ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:84:3: warning: ‘used’ attribute ignored [-Wattributes]
       84 |   __used int ReturnVal;
          |   ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:96:3: warning: ‘used’ attribute ignored [-Wattributes]
       96 |   __used uint8_t ReturnVal;
          |   ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:105:3: warning: ‘used’ attribute ignored [-Wattributes]
      105 |   __used int __cmock_i_dsp_configure_FinalReturn;
          |   ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:111:3: warning: ‘used’ attribute ignored [-Wattributes]
      111 |   __used int __cmock_i_dsp_unmute_output_FinalReturn;
          |   ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:117:3: warning: ‘used’ attribute ignored [-Wattributes]
      117 |   __used int __cmock_i_dsp_mute_output_FinalReturn;
          |   ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:123:3: warning: ‘used’ attribute ignored [-Wattributes]
      123 |   __used int __cmock_i_dsp_unmute_input_FinalReturn;
          |   ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:129:3: warning: ‘used’ attribute ignored [-Wattributes]
      129 |   __used int __cmock_i_dsp_mute_input_FinalReturn;
          |   ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:135:3: warning: ‘used’ attribute ignored [-Wattributes]
      135 |   __used int __cmock_i_dsp_set_input_volume_FinalReturn;
          |   ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:141:3: warning: ‘used’ attribute ignored [-Wattributes]
      141 |   __used int __cmock_i_dsp_set_output_volume_FinalReturn;
          |   ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:147:3: warning: ‘used’ attribute ignored [-Wattributes]
      147 |   __used uint8_t __cmock_i_dsp_get_VAD_FinalReturn;
          |   ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c: In function ‘__cmock_i_dsp_configure’:
    mocks/safehear/drivers/cmock_dsp.c:289:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
      289 |          sizeof(__used int[sizeof(cmock_call_instance->ReturnVal) == sizeof(__used int) ? 1 : -1])); /* add __used int to :treat_as_array if this causes an error */
          |          ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:289:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
    mocks/safehear/drivers/cmock_dsp.c:295:5: warning: ‘used’ attribute ignored [-Wattributes]
      295 |     __used int cmock_cb_ret = Mock.__cmock_i_dsp_configure_CallbackFunctionPointer(dev, Mock.__cmock_i_dsp_configure_CallbackCalls++);
          |     ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c: At top level:
    mocks/safehear/drivers/cmock_dsp.c:324:1: warning: ‘used’ attribute ignored [-Wattributes]
      324 | void __cmock_i_dsp_configure_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return)
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.c:345:1: warning: ‘used’ attribute ignored [-Wattributes]
      345 | void __cmock_i_dsp_configure_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return)
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.c:359:92: warning: ‘used’ attribute ignored [-Wattributes]
      359 | void __cmock_i_dsp_configure_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, __used int cmock_to_return)
          |                                                                                            ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c: In function ‘__cmock_i_dsp_configure_CMockExpectAndReturn’:
    mocks/safehear/drivers/cmock_dsp.c:371:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
      371 |          sizeof(__used int[sizeof(cmock_to_return) == sizeof(__used int) ? 1 : -1])); /* add __used int to :treat_as_array if this causes an error */
          |          ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:371:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
    mocks/safehear/drivers/cmock_dsp.c: In function ‘__cmock_i_dsp_unmute_output’:
    mocks/safehear/drivers/cmock_dsp.c:408:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
      408 |          sizeof(__used int[sizeof(cmock_call_instance->ReturnVal) == sizeof(__used int) ? 1 : -1])); /* add __used int to :treat_as_array if this causes an error */
          |          ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:408:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
    mocks/safehear/drivers/cmock_dsp.c:414:5: warning: ‘used’ attribute ignored [-Wattributes]
      414 |     __used int cmock_cb_ret = Mock.__cmock_i_dsp_unmute_output_CallbackFunctionPointer(dev, Mock.__cmock_i_dsp_unmute_output_CallbackCalls++);
          |     ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c: At top level:
    mocks/safehear/drivers/cmock_dsp.c:443:1: warning: ‘used’ attribute ignored [-Wattributes]
      443 | void __cmock_i_dsp_unmute_output_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return)
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.c:464:1: warning: ‘used’ attribute ignored [-Wattributes]
      464 | void __cmock_i_dsp_unmute_output_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return)
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.c:478:96: warning: ‘used’ attribute ignored [-Wattributes]
      478 | void __cmock_i_dsp_unmute_output_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, __used int cmock_to_return)
          |                                                                                                ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c: In function ‘__cmock_i_dsp_unmute_output_CMockExpectAndReturn’:
    mocks/safehear/drivers/cmock_dsp.c:490:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
      490 |          sizeof(__used int[sizeof(cmock_to_return) == sizeof(__used int) ? 1 : -1])); /* add __used int to :treat_as_array if this causes an error */
          |          ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:490:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
    mocks/safehear/drivers/cmock_dsp.c: In function ‘__cmock_i_dsp_mute_output’:
    mocks/safehear/drivers/cmock_dsp.c:527:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
      527 |          sizeof(__used int[sizeof(cmock_call_instance->ReturnVal) == sizeof(__used int) ? 1 : -1])); /* add __used int to :treat_as_array if this causes an error */
          |          ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:527:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
    mocks/safehear/drivers/cmock_dsp.c:533:5: warning: ‘used’ attribute ignored [-Wattributes]
      533 |     __used int cmock_cb_ret = Mock.__cmock_i_dsp_mute_output_CallbackFunctionPointer(dev, Mock.__cmock_i_dsp_mute_output_CallbackCalls++);
          |     ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c: At top level:
    mocks/safehear/drivers/cmock_dsp.c:562:1: warning: ‘used’ attribute ignored [-Wattributes]
      562 | void __cmock_i_dsp_mute_output_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return)
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.c:583:1: warning: ‘used’ attribute ignored [-Wattributes]
      583 | void __cmock_i_dsp_mute_output_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return)
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.c:597:94: warning: ‘used’ attribute ignored [-Wattributes]
      597 | void __cmock_i_dsp_mute_output_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, __used int cmock_to_return)
          |                                                                                              ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c: In function ‘__cmock_i_dsp_mute_output_CMockExpectAndReturn’:
    mocks/safehear/drivers/cmock_dsp.c:609:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
      609 |          sizeof(__used int[sizeof(cmock_to_return) == sizeof(__used int) ? 1 : -1])); /* add __used int to :treat_as_array if this causes an error */
          |          ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:609:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
    mocks/safehear/drivers/cmock_dsp.c: In function ‘__cmock_i_dsp_unmute_input’:
    mocks/safehear/drivers/cmock_dsp.c:646:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
      646 |          sizeof(__used int[sizeof(cmock_call_instance->ReturnVal) == sizeof(__used int) ? 1 : -1])); /* add __used int to :treat_as_array if this causes an error */
          |          ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:646:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
    mocks/safehear/drivers/cmock_dsp.c:652:5: warning: ‘used’ attribute ignored [-Wattributes]
      652 |     __used int cmock_cb_ret = Mock.__cmock_i_dsp_unmute_input_CallbackFunctionPointer(dev, Mock.__cmock_i_dsp_unmute_input_CallbackCalls++);
          |     ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c: At top level:
    mocks/safehear/drivers/cmock_dsp.c:681:1: warning: ‘used’ attribute ignored [-Wattributes]
      681 | void __cmock_i_dsp_unmute_input_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return)
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.c:702:1: warning: ‘used’ attribute ignored [-Wattributes]
      702 | void __cmock_i_dsp_unmute_input_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return)
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.c:716:95: warning: ‘used’ attribute ignored [-Wattributes]
      716 | void __cmock_i_dsp_unmute_input_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, __used int cmock_to_return)
          |                                                                                               ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c: In function ‘__cmock_i_dsp_unmute_input_CMockExpectAndReturn’:
    mocks/safehear/drivers/cmock_dsp.c:728:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
      728 |          sizeof(__used int[sizeof(cmock_to_return) == sizeof(__used int) ? 1 : -1])); /* add __used int to :treat_as_array if this causes an error */
          |          ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:728:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
    mocks/safehear/drivers/cmock_dsp.c: In function ‘__cmock_i_dsp_mute_input’:
    mocks/safehear/drivers/cmock_dsp.c:765:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
      765 |          sizeof(__used int[sizeof(cmock_call_instance->ReturnVal) == sizeof(__used int) ? 1 : -1])); /* add __used int to :treat_as_array if this causes an error */
          |          ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:765:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
    mocks/safehear/drivers/cmock_dsp.c:771:5: warning: ‘used’ attribute ignored [-Wattributes]
      771 |     __used int cmock_cb_ret = Mock.__cmock_i_dsp_mute_input_CallbackFunctionPointer(dev, Mock.__cmock_i_dsp_mute_input_CallbackCalls++);
          |     ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c: At top level:
    mocks/safehear/drivers/cmock_dsp.c:800:1: warning: ‘used’ attribute ignored [-Wattributes]
      800 | void __cmock_i_dsp_mute_input_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return)
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.c:821:1: warning: ‘used’ attribute ignored [-Wattributes]
      821 | void __cmock_i_dsp_mute_input_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return)
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.c:835:93: warning: ‘used’ attribute ignored [-Wattributes]
      835 | void __cmock_i_dsp_mute_input_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, __used int cmock_to_return)
          |                                                                                             ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c: In function ‘__cmock_i_dsp_mute_input_CMockExpectAndReturn’:
    mocks/safehear/drivers/cmock_dsp.c:847:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
      847 |          sizeof(__used int[sizeof(cmock_to_return) == sizeof(__used int) ? 1 : -1])); /* add __used int to :treat_as_array if this causes an error */
          |          ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:847:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
    mocks/safehear/drivers/cmock_dsp.c: In function ‘__cmock_i_dsp_set_input_volume’:
    mocks/safehear/drivers/cmock_dsp.c:884:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
      884 |          sizeof(__used int[sizeof(cmock_call_instance->ReturnVal) == sizeof(__used int) ? 1 : -1])); /* add __used int to :treat_as_array if this causes an error */
          |          ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:884:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
    mocks/safehear/drivers/cmock_dsp.c:890:5: warning: ‘used’ attribute ignored [-Wattributes]
      890 |     __used int cmock_cb_ret = Mock.__cmock_i_dsp_set_input_volume_CallbackFunctionPointer(dev, volumeLevel, Mock.__cmock_i_dsp_set_input_volume_CallbackCalls++);
          |     ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c: At top level:
    mocks/safehear/drivers/cmock_dsp.c:926:1: warning: ‘used’ attribute ignored [-Wattributes]
      926 | void __cmock_i_dsp_set_input_volume_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return)
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.c:947:1: warning: ‘used’ attribute ignored [-Wattributes]
      947 | void __cmock_i_dsp_set_input_volume_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return)
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.c:961:99: warning: ‘used’ attribute ignored [-Wattributes]
      961 | void __cmock_i_dsp_set_input_volume_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, int16_t volumeLevel, __used int cmock_to_return)
          |                                                                                                   ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c: In function ‘__cmock_i_dsp_set_input_volume_CMockExpectAndReturn’:
    mocks/safehear/drivers/cmock_dsp.c:973:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
      973 |          sizeof(__used int[sizeof(cmock_to_return) == sizeof(__used int) ? 1 : -1])); /* add __used int to :treat_as_array if this causes an error */
          |          ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:973:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
    mocks/safehear/drivers/cmock_dsp.c: In function ‘__cmock_i_dsp_set_output_volume’:
    mocks/safehear/drivers/cmock_dsp.c:1017:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
     1017 |          sizeof(__used int[sizeof(cmock_call_instance->ReturnVal) == sizeof(__used int) ? 1 : -1])); /* add __used int to :treat_as_array if this causes an error */
          |          ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:1017:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
    mocks/safehear/drivers/cmock_dsp.c:1023:5: warning: ‘used’ attribute ignored [-Wattributes]
     1023 |     __used int cmock_cb_ret = Mock.__cmock_i_dsp_set_output_volume_CallbackFunctionPointer(dev, volumeLevel, Mock.__cmock_i_dsp_set_output_volume_CallbackCalls++);
          |     ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c: At top level:
    mocks/safehear/drivers/cmock_dsp.c:1059:1: warning: ‘used’ attribute ignored [-Wattributes]
     1059 | void __cmock_i_dsp_set_output_volume_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return)
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.c:1080:1: warning: ‘used’ attribute ignored [-Wattributes]
     1080 | void __cmock_i_dsp_set_output_volume_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return)
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.c:1094:100: warning: ‘used’ attribute ignored [-Wattributes]
     1094 | void __cmock_i_dsp_set_output_volume_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, int16_t volumeLevel, __used int cmock_to_return)
          |                                                                                                    ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c: In function ‘__cmock_i_dsp_set_output_volume_CMockExpectAndReturn’:
    mocks/safehear/drivers/cmock_dsp.c:1106:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
     1106 |          sizeof(__used int[sizeof(cmock_to_return) == sizeof(__used int) ? 1 : -1])); /* add __used int to :treat_as_array if this causes an error */
          |          ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:1106:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
    mocks/safehear/drivers/cmock_dsp.c: In function ‘__cmock_i_dsp_get_VAD’:
    mocks/safehear/drivers/cmock_dsp.c:1150:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
     1150 |          sizeof(__used uint8_t[sizeof(cmock_call_instance->ReturnVal) == sizeof(__used uint8_t) ? 1 : -1])); /* add __used uint8_t to :treat_as_array if this causes an error */
          |          ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:1150:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
    mocks/safehear/drivers/cmock_dsp.c:1156:5: warning: ‘used’ attribute ignored [-Wattributes]
     1156 |     __used uint8_t cmock_cb_ret = Mock.__cmock_i_dsp_get_VAD_CallbackFunctionPointer(dev, Mock.__cmock_i_dsp_get_VAD_CallbackCalls++);
          |     ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c: At top level:
    mocks/safehear/drivers/cmock_dsp.c:1185:1: warning: ‘used’ attribute ignored [-Wattributes]
     1185 | void __cmock_i_dsp_get_VAD_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used uint8_t cmock_to_return)
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.c:1206:1: warning: ‘used’ attribute ignored [-Wattributes]
     1206 | void __cmock_i_dsp_get_VAD_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used uint8_t cmock_to_return)
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.c:1220:90: warning: ‘used’ attribute ignored [-Wattributes]
     1220 | void __cmock_i_dsp_get_VAD_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, __used uint8_t cmock_to_return)
          |                                                                                          ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c: In function ‘__cmock_i_dsp_get_VAD_CMockExpectAndReturn’:
    mocks/safehear/drivers/cmock_dsp.c:1232:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
     1232 |          sizeof(__used uint8_t[sizeof(cmock_to_return) == sizeof(__used uint8_t) ? 1 : -1])); /* add __used uint8_t to :treat_as_array if this causes an error */
          |          ^~~~~~
    mocks/safehear/drivers/cmock_dsp.c:1232:10: warning: ‘used’ attribute does not apply to types [-Wattributes]
    [81/116] Building C object CMakeFiles/app.dir/src/ihm_test.c.obj
    In file included from ../src/ihm_test.c:9:
    mocks/safehear/drivers/cmock_button.h:28:1: warning: ‘used’ attribute ignored [-Wattributes]
       28 | void __cmock_i_button_set_event_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_button.h:32:1: warning: ‘used’ attribute ignored [-Wattributes]
       32 | void __cmock_i_button_set_event_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_button.h:34:132: warning: ‘used’ attribute ignored [-Wattributes]
       34 | void __cmock_i_button_set_event_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, uint32_t button, struct k_event* p_evnt_obj, uint32_t event, __used int cmock_to_return);
          |                                                                                                                                    ^~~~~~~
    In file included from ../src/ihm_test.c:12:
    mocks/safehear/drivers/cmock_dsp.h:28:1: warning: ‘used’ attribute ignored [-Wattributes]
       28 | void __cmock_i_dsp_configure_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:32:1: warning: ‘used’ attribute ignored [-Wattributes]
       32 | void __cmock_i_dsp_configure_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:34:92: warning: ‘used’ attribute ignored [-Wattributes]
       34 | void __cmock_i_dsp_configure_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, __used int cmock_to_return);
          |                                                                                            ^~~~~~
    mocks/safehear/drivers/cmock_dsp.h:42:1: warning: ‘used’ attribute ignored [-Wattributes]
       42 | void __cmock_i_dsp_unmute_output_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:46:1: warning: ‘used’ attribute ignored [-Wattributes]
       46 | void __cmock_i_dsp_unmute_output_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:48:96: warning: ‘used’ attribute ignored [-Wattributes]
       48 | void __cmock_i_dsp_unmute_output_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, __used int cmock_to_return);
          |                                                                                                ^~~~~~
    mocks/safehear/drivers/cmock_dsp.h:56:1: warning: ‘used’ attribute ignored [-Wattributes]
       56 | void __cmock_i_dsp_mute_output_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:60:1: warning: ‘used’ attribute ignored [-Wattributes]
       60 | void __cmock_i_dsp_mute_output_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:62:94: warning: ‘used’ attribute ignored [-Wattributes]
       62 | void __cmock_i_dsp_mute_output_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, __used int cmock_to_return);
          |                                                                                              ^~~~~~
    mocks/safehear/drivers/cmock_dsp.h:70:1: warning: ‘used’ attribute ignored [-Wattributes]
       70 | void __cmock_i_dsp_unmute_input_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:74:1: warning: ‘used’ attribute ignored [-Wattributes]
       74 | void __cmock_i_dsp_unmute_input_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:76:95: warning: ‘used’ attribute ignored [-Wattributes]
       76 | void __cmock_i_dsp_unmute_input_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, __used int cmock_to_return);
          |                                                                                               ^~~~~~
    mocks/safehear/drivers/cmock_dsp.h:84:1: warning: ‘used’ attribute ignored [-Wattributes]
       84 | void __cmock_i_dsp_mute_input_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:88:1: warning: ‘used’ attribute ignored [-Wattributes]
       88 | void __cmock_i_dsp_mute_input_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:90:93: warning: ‘used’ attribute ignored [-Wattributes]
       90 | void __cmock_i_dsp_mute_input_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, __used int cmock_to_return);
          |                                                                                             ^~~~~~
    mocks/safehear/drivers/cmock_dsp.h:98:1: warning: ‘used’ attribute ignored [-Wattributes]
       98 | void __cmock_i_dsp_set_input_volume_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:102:1: warning: ‘used’ attribute ignored [-Wattributes]
      102 | void __cmock_i_dsp_set_input_volume_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:104:99: warning: ‘used’ attribute ignored [-Wattributes]
      104 | void __cmock_i_dsp_set_input_volume_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, int16_t volumeLevel, __used int cmock_to_return);
          |                                                                                                   ^~~~~~
    mocks/safehear/drivers/cmock_dsp.h:114:1: warning: ‘used’ attribute ignored [-Wattributes]
      114 | void __cmock_i_dsp_set_output_volume_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:118:1: warning: ‘used’ attribute ignored [-Wattributes]
      118 | void __cmock_i_dsp_set_output_volume_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used int cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:120:100: warning: ‘used’ attribute ignored [-Wattributes]
      120 | void __cmock_i_dsp_set_output_volume_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, int16_t volumeLevel, __used int cmock_to_return);
          |                                                                                                    ^~~~~~
    mocks/safehear/drivers/cmock_dsp.h:130:1: warning: ‘used’ attribute ignored [-Wattributes]
      130 | void __cmock_i_dsp_get_VAD_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, __used uint8_t cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:134:1: warning: ‘used’ attribute ignored [-Wattributes]
      134 | void __cmock_i_dsp_get_VAD_CMockExpectAnyArgsAndReturn(UNITY_LINE_TYPE cmock_line, __used uint8_t cmock_to_return);
          | ^~~~
    mocks/safehear/drivers/cmock_dsp.h:136:90: warning: ‘used’ attribute ignored [-Wattributes]
      136 | void __cmock_i_dsp_get_VAD_CMockExpectAndReturn(UNITY_LINE_TYPE cmock_line, const struct device* dev, __used uint8_t cmock_to_return);
          |                                                                                          ^~~~~~
    ../src/ihm_test.c: In function ‘test_i_ihm_init’:
    ../src/ihm_test.c:54:25: warning: unused variable ‘dev_mock’ [-Wunused-variable]
       54 |     const struct device dev_mock;
          |                         ^~~~~~~~
    ../src/ihm_test.c: In function ‘test_i_ihm_thread_entry’:
    ../src/ihm_test.c:177:25: warning: unused variable ‘dev_mock’ [-Wunused-variable]
      177 |     const struct device dev_mock;
          |                         ^~~~~~~~
    [111/116] Linking C executable zephyr/zephyr_pre0.elf
    FAILED: zephyr/zephyr_pre0.elf zephyr/zephyr_pre0.map 
    : && ccache /usr/bin/gcc  -gdwarf-4 zephyr/CMakeFiles/zephyr_pre0.dir/misc/empty_file.c.obj -o zephyr/zephyr_pre0.elf  -Wl,-T  zephyr/linker_zephyr_pre0.cmd  -Wl,-Map=/home/pi/safehear/applications/louis/tests/ihm/build/zephyr/zephyr_pre0.map  -Wl,--whole-archive  app/libapp.a  zephyr/libzephyr.a  zephyr/arch/arch/posix/core/libarch__posix__core.a  zephyr/soc/posix/inf_clock/libsoc__posix__inf_clock.a  zephyr/boards/posix/native_posix/libboards__posix__native_posix.a  zephyr/drivers/console/libdrivers__console.a  zephyr/drivers/timer/libdrivers__timer.a  modules/safehear/drivers/unity/lib..__safehear__drivers__unity.a  -Wl,--no-whole-archive  zephyr/kernel/libkernel.a  zephyr/CMakeFiles/offsets.dir/./arch/posix/core/offsets/offsets.c.obj  -L/home/pi/safehear/applications/louis/tests/ihm/build/zephyr  -no-pie  -Wl,--gc-sections  -Wl,--build-id=none  -Wl,--sort-common=descending  -Wl,--sort-section=alignment  -Wl,-u,_OffsetAbsSyms  -Wl,-u,_ConfigAbsSyms  -lgcov  -ldl  -pthread  -lm  -Wl,--defsym,device_handle_get=__cmock_device_handle_get,--defsym,device_from_handle=__cmock_device_from_handle,--defsym,device_required_handles_get=__cmock_device_required_handles_get,--defsym,device_injected_handles_get=__cmock_device_injected_handles_get,--defsym,device_supported_handles_get=__cmock_device_supported_handles_get,--defsym,device_required_foreach=__cmock_device_required_foreach,--defsym,device_supported_foreach=__cmock_device_supported_foreach,--defsym,device_get_binding=__cmock_device_get_binding,--defsym,z_device_get_all_static=__cmock_z_device_get_all_static,--defsym,z_device_is_ready=__cmock_z_device_is_ready,--defsym,device_is_ready=__cmock_device_is_ready,--defsym,DEVICE_DT_NAME_GET=__cmock_DEVICE_DT_NAME_GET  -Wl,--defsym,led_blink=__cmock_led_blink,--defsym,led_get_info=__cmock_led_get_info,--defsym,led_set_brightness=__cmock_led_set_brightness,--defsym,led_write_channels=__cmock_led_write_channels,--defsym,led_set_channel=__cmock_led_set_channel,--defsym,led_set_color=__cmock_led_set_color,--defsym,led_on=__cmock_led_on,--defsym,led_off=__cmock_led_off  -Wl,--defsym,i_button_set_event=__cmock_i_button_set_event  -Wl,--defsym,i_dsp_configure=__cmock_i_dsp_configure,--defsym,i_dsp_unmute_output=__cmock_i_dsp_unmute_output,--defsym,i_dsp_mute_output=__cmock_i_dsp_mute_output,--defsym,i_dsp_unmute_input=__cmock_i_dsp_unmute_input,--defsym,i_dsp_mute_input=__cmock_i_dsp_mute_input,--defsym,i_dsp_set_input_volume=__cmock_i_dsp_set_input_volume,--defsym,i_dsp_set_output_volume=__cmock_i_dsp_set_output_volume,--defsym,i_dsp_get_VAD=__cmock_i_dsp_get_VAD  -Wl,--defsym,settings_subsys_init=__cmock_settings_subsys_init,--defsym,settings_register=__cmock_settings_register,--defsym,settings_load=__cmock_settings_load,--defsym,settings_load_subtree=__cmock_settings_load_subtree,--defsym,settings_load_subtree_direct=__cmock_settings_load_subtree_direct,--defsym,settings_save=__cmock_settings_save,--defsym,settings_save_one=__cmock_settings_save_one,--defsym,settings_delete=__cmock_settings_delete,--defsym,settings_commit=__cmock_settings_commit,--defsym,settings_commit_subtree=__cmock_settings_commit_subtree,--defsym,settings_src_register=__cmock_settings_src_register,--defsym,settings_dst_register=__cmock_settings_dst_register,--defsym,settings_parse_and_lookup=__cmock_settings_parse_and_lookup,--defsym,settings_call_set_handler=__cmock_settings_call_set_handler,--defsym,settings_name_steq=__cmock_settings_name_steq,--defsym,settings_name_next=__cmock_settings_name_next,--defsym,settings_runtime_set=__cmock_settings_runtime_set,--defsym,settings_runtime_get=__cmock_settings_runtime_get,--defsym,settings_runtime_commit=__cmock_settings_runtime_commit,--defsym,settings_storage_get=__cmock_settings_storage_get  -Wl,--defsym,sensor_attr_set=__cmock_sensor_attr_set,--defsym,sensor_attr_get=__cmock_sensor_attr_get,--defsym,sensor_trigger_set=__cmock_sensor_trigger_set,--defsym,sensor_sample_fetch=__cmock_sensor_sample_fetch,--defsym,sensor_sample_fetch_chan=__cmock_sensor_sample_fetch_chan,--defsym,sensor_channel_get=__cmock_sensor_channel_get,--defsym,sensor_ms2_to_g=__cmock_sensor_ms2_to_g,--defsym,sensor_g_to_ms2=__cmock_sensor_g_to_ms2,--defsym,sensor_rad_to_degrees=__cmock_sensor_rad_to_degrees,--defsym,sensor_degrees_to_rad=__cmock_sensor_degrees_to_rad,--defsym,sensor_value_to_double=__cmock_sensor_value_to_double,--defsym,sensor_value_from_double=__cmock_sensor_value_from_double && cd /home/pi/safehear/applications/louis/tests/ihm/build/zephyr && /usr/local/bin/cmake -E echo
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_0'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_4'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_1'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_28'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_29'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_17'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_18'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_19'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_20'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_21'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_22'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_23'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_24'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_25'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_26'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_7'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_9'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_13'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_8'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_14'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_15'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_10'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_5'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_6'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_27'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_16'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_11'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_12'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_device.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_3'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_0'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_4'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_1'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_28'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_29'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_17'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_18'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_19'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_20'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_21'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_22'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_23'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_24'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_25'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_26'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_7'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_9'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_13'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_8'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_14'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_15'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_10'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_5'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_6'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_27'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_16'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_11'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_12'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_led.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_3'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_0'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_4'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_1'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_28'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_29'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_17'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_18'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_19'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_20'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_21'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_22'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_23'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_24'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_25'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_26'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_7'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_9'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_13'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_8'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_14'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_15'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_10'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_5'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_6'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_27'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_16'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_11'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_12'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_button.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_3'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_0'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_4'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_1'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_28'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_29'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_17'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_18'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_19'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_20'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_21'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_22'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_23'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_24'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_25'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_26'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_7'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_9'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_13'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_8'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_14'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_15'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_10'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_5'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_6'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_27'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_16'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_11'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_12'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_dsp.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_3'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_0'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_4'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_1'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_28'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_29'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_17'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_18'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_19'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_20'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_21'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_22'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_23'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_24'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_25'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_26'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_7'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_9'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_13'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_8'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_14'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_15'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_10'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_5'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_6'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_27'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_16'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_11'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_12'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(cmock_sensor.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_3'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_0'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_4'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_1'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_28'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_29'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_17'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_18'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_19'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_20'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_21'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_22'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_23'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_24'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_25'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_26'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_7'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_9'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_13'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_8'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_14'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_15'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_10'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_5'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_6'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_27'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_16'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_11'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_12'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_3'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_0'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_4'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_1'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_28'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_29'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_17'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_18'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_19'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_20'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_21'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_22'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_23'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_24'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_25'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_26'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_7'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_9'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_13'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_8'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_14'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_15'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_10'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_5'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_6'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_27'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_16'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_11'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_12'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld: app/libapp.a(ihm.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: multiple definition of `__device_dts_ord_3'; app/libapp.a(runner_ihm_test.c.obj):/home/pi/safehear/applications/louis/tests/ihm/build/mocks/zephyr/device.h:283: first defined here
    /usr/bin/ld:--defsym:12: undefined symbol `__cmock_DEVICE_DT_NAME_GET' referenced in expression
    collect2: error: ld returned 1 exit status
    ninja: build stopped: subcommand failed.

    Regards,

    Andrew

  • Thanks for the logs Andrew, I will look into it and see if I can figure out anything. 

    Regards

    Runar

  • Hello,

    My tests worked on NCS 2.1.0 and is not working on NCS 2.2.0 so it's not a problem of devicetree.
    And the error is not an undefined reference but a multiple reference...

    Regards,

    Andrew

Reply Children
  • Hi Andrew, have you compared your devicetree zephyr.dts in NCS 2.1 vs NCS 2.2? Just to verify that no nodes has the same label or similar. 

    Regards

    Runar

  • Hi Runar,

    Here is the zephyr.dts from NCS 2.1

    /dts-v1/;
    
    / {
    	#address-cells = < 0x1 >;
    	#size-cells = < 0x1 >;
    	model = "Native POSIX Board";
    	compatible = "zephyr,posix";
    	chosen {
    		zephyr,console = &uart0;
    		zephyr,shell-uart = &uart0;
    		zephyr,uart-mcumgr = &uart0;
    		zephyr,flash = &flash0;
    		zephyr,entropy = &rng;
    		zephyr,flash-controller = &flashcontroller0;
    		zephyr,ec-host-interface = &hcp;
    		zephyr,display = &sdl_dc;
    		zephyr,canbus = &can_loopback0;
    	};
    	aliases {
    		eeprom-0 = &eeprom0;
    		i2c-0 = &i2c0;
    		spi-0 = &spi0;
    		led0 = &led0;
    	};
    	leds {
    		compatible = "gpio-leds";
    		led0: led_0 {
    			gpios = < &gpio0 0x0 0x0 >;
    			label = "Green LED";
    		};
    	};
    	cpus {
    		#address-cells = < 0x1 >;
    		#size-cells = < 0x0 >;
    		cpu0: cpu@0 {
    			compatible = "zephyr,native-posix-cpu";
    			reg = < 0x0 >;
    		};
    	};
    	flashcontroller0: flash-controller@0 {
    		compatible = "zephyr,sim-flash";
    		reg = < 0x0 0x200000 >;
    		#address-cells = < 0x1 >;
    		#size-cells = < 0x1 >;
    		erase-value = < 0xff >;
    		label = "flash_ctrl";
    		flash0: flash@0 {
    			status = "okay";
    			compatible = "soc-nv-flash";
    			label = "flash";
    			erase-block-size = < 0x1000 >;
    			write-block-size = < 0x1 >;
    			reg = < 0x0 0x200000 >;
    			partitions {
    				compatible = "fixed-partitions";
    				#address-cells = < 0x1 >;
    				#size-cells = < 0x1 >;
    				boot_partition: partition@0 {
    					label = "mcuboot";
    					reg = < 0x0 0xc000 >;
    				};
    				slot0_partition: partition@c000 {
    					label = "image-0";
    					reg = < 0xc000 0x69000 >;
    				};
    				slot1_partition: partition@75000 {
    					label = "image-1";
    					reg = < 0x75000 0x69000 >;
    				};
    				scratch_partition: partition@de000 {
    					label = "image-scratch";
    					reg = < 0xde000 0x1e000 >;
    				};
    				storage_partition: partition@fc000 {
    					label = "storage";
    					reg = < 0xfc000 0x4000 >;
    				};
    			};
    		};
    	};
    	eeprom0: eeprom {
    		status = "okay";
    		compatible = "zephyr,sim-eeprom";
    		label = "EEPROM_0";
    		size = < 0x8000 >;
    	};
    	i2c0: i2c@100 {
    		status = "okay";
    		compatible = "zephyr,i2c-emul-controller";
    		clock-frequency = < 0x186a0 >;
    		#address-cells = < 0x1 >;
    		#size-cells = < 0x0 >;
    		reg = < 0x100 0x4 >;
    		label = "I2C_0";
    	};
    	spi0: spi@200 {
    		status = "okay";
    		compatible = "zephyr,spi-emul-controller";
    		clock-frequency = < 0x2faf080 >;
    		#address-cells = < 0x1 >;
    		#size-cells = < 0x0 >;
    		reg = < 0x200 0x4 >;
    		label = "SPI_0";
    	};
    	espi0: espi@300 {
    		status = "okay";
    		compatible = "zephyr,espi-emul-controller";
    		reg = < 0x300 0x4 >;
    		#address-cells = < 0x1 >;
    		#size-cells = < 0x0 >;
    		label = "ESPI_0";
    	};
    	uart0: uart {
    		status = "okay";
    		compatible = "zephyr,native-posix-uart";
    		label = "UART_0";
    		current-speed = < 0x0 >;
    	};
    	uart1: uart_1 {
    		status = "okay";
    		compatible = "zephyr,native-posix-uart";
    		label = "UART_1";
    		current-speed = < 0x0 >;
    	};
    	rng: rng {
    		status = "okay";
    		compatible = "zephyr,native-posix-rng";
    		label = "ENTROPY_0";
    	};
    	counter0: counter {
    		status = "okay";
    		compatible = "zephyr,native-posix-counter";
    		label = "COUNTER_0";
    	};
    	hcp: ec-host-cmd-periph {
    		status = "okay";
    		compatible = "zephyr,sim-ec-host-cmd-periph";
    		label = "EC_HOST_CMD_SIM";
    	};
    	gpio0: gpio@800 {
    		status = "okay";
    		compatible = "zephyr,gpio-emul";
    		label = "GPIO_0";
    		reg = < 0x800 0x4 >;
    		rising-edge;
    		falling-edge;
    		high-level;
    		low-level;
    		gpio-controller;
    		#gpio-cells = < 0x2 >;
    		phandle = < 0x1 >;
    	};
    	zephyr_udc0: udc0 {
    		compatible = "zephyr,native-posix-udc";
    		label = "USBD";
    	};
    	sdl_dc: sdl_dc {
    		compatible = "zephyr,sdl-dc";
    		label = "SDL display controller";
    		height = < 0xf0 >;
    		width = < 0x140 >;
    	};
    	can_loopback0: can_loopback0 {
    		status = "disabled";
    		compatible = "zephyr,can-loopback";
    		label = "CAN_LOOPBACK_0";
    		sjw = < 0x1 >;
    		sample-point = < 0x36b >;
    		bus-speed = < 0x1e848 >;
    	};
    };

    And here is the one from NCS 2.2:

    /dts-v1/;
    
    / {
    	#address-cells = < 0x1 >;
    	#size-cells = < 0x1 >;
    	model = "Native POSIX Board";
    	compatible = "zephyr,posix";
    	chosen {
    		zephyr,console = &uart0;
    		zephyr,shell-uart = &uart0;
    		zephyr,uart-mcumgr = &uart0;
    		zephyr,flash = &flash0;
    		zephyr,entropy = &rng;
    		zephyr,flash-controller = &flashcontroller0;
    		zephyr,ec-host-interface = &hcp;
    		zephyr,display = &sdl_dc;
    		zephyr,canbus = &can_loopback0;
    		zephyr,keyboard-scan = &sdl_kscan;
    	};
    	aliases {
    		eeprom-0 = &eeprom0;
    		i2c-0 = &i2c0;
    		spi-0 = &spi0;
    		led0 = &led0;
    		kscan0 = &sdl_kscan;
    	};
    	leds {
    		compatible = "gpio-leds";
    		led0: led_0 {
    			gpios = < &gpio0 0x0 0x0 >;
    			label = "Green LED";
    		};
    	};
    	cpus {
    		#address-cells = < 0x1 >;
    		#size-cells = < 0x0 >;
    		cpu0: cpu@0 {
    			compatible = "zephyr,native-posix-cpu";
    			reg = < 0x0 >;
    		};
    	};
    	flashcontroller0: flash-controller@0 {
    		compatible = "zephyr,sim-flash";
    		reg = < 0x0 0x200000 >;
    		#address-cells = < 0x1 >;
    		#size-cells = < 0x1 >;
    		erase-value = < 0xff >;
    		flash0: flash@0 {
    			status = "okay";
    			compatible = "soc-nv-flash";
    			erase-block-size = < 0x1000 >;
    			write-block-size = < 0x1 >;
    			reg = < 0x0 0x200000 >;
    			partitions {
    				compatible = "fixed-partitions";
    				#address-cells = < 0x1 >;
    				#size-cells = < 0x1 >;
    				boot_partition: partition@0 {
    					label = "mcuboot";
    					reg = < 0x0 0xc000 >;
    				};
    				slot0_partition: partition@c000 {
    					label = "image-0";
    					reg = < 0xc000 0x69000 >;
    				};
    				slot1_partition: partition@75000 {
    					label = "image-1";
    					reg = < 0x75000 0x69000 >;
    				};
    				scratch_partition: partition@de000 {
    					label = "image-scratch";
    					reg = < 0xde000 0x1e000 >;
    				};
    				storage_partition: partition@fc000 {
    					label = "storage";
    					reg = < 0xfc000 0x4000 >;
    				};
    			};
    		};
    	};
    	eeprom0: eeprom {
    		status = "okay";
    		compatible = "zephyr,sim-eeprom";
    		size = < 0x8000 >;
    	};
    	i2c0: i2c@100 {
    		status = "okay";
    		compatible = "zephyr,i2c-emul-controller";
    		clock-frequency = < 0x186a0 >;
    		#address-cells = < 0x1 >;
    		#size-cells = < 0x0 >;
    		reg = < 0x100 0x4 >;
    	};
    	spi0: spi@200 {
    		status = "okay";
    		compatible = "zephyr,spi-emul-controller";
    		clock-frequency = < 0x2faf080 >;
    		#address-cells = < 0x1 >;
    		#size-cells = < 0x0 >;
    		reg = < 0x200 0x4 >;
    	};
    	espi0: espi@300 {
    		status = "okay";
    		compatible = "zephyr,espi-emul-controller";
    		reg = < 0x300 0x4 >;
    		#address-cells = < 0x1 >;
    		#size-cells = < 0x0 >;
    	};
    	uart0: uart {
    		status = "okay";
    		compatible = "zephyr,native-posix-uart";
    		current-speed = < 0x0 >;
    	};
    	uart1: uart_1 {
    		status = "okay";
    		compatible = "zephyr,native-posix-uart";
    		current-speed = < 0x0 >;
    	};
    	rng: rng {
    		status = "okay";
    		compatible = "zephyr,native-posix-rng";
    	};
    	counter0: counter {
    		status = "okay";
    		compatible = "zephyr,native-posix-counter";
    	};
    	hcp: ec-host-cmd-periph {
    		status = "okay";
    		compatible = "zephyr,sim-ec-host-cmd-periph";
    	};
    	gpio0: gpio@800 {
    		status = "okay";
    		compatible = "zephyr,gpio-emul";
    		reg = < 0x800 0x4 >;
    		rising-edge;
    		falling-edge;
    		high-level;
    		low-level;
    		gpio-controller;
    		#gpio-cells = < 0x2 >;
    		phandle = < 0x1 >;
    	};
    	zephyr_udc0: udc0 {
    		compatible = "zephyr,native-posix-udc";
    	};
    	sdl_dc: sdl_dc {
    		compatible = "zephyr,sdl-dc";
    		height = < 0xf0 >;
    		width = < 0x140 >;
    	};
    	sdl_kscan: sdl_kscan {
    		compatible = "zephyr,sdl-kscan";
    	};
    	can_loopback0: can_loopback0 {
    		status = "okay";
    		compatible = "zephyr,can-loopback";
    		sjw = < 0x1 >;
    		sample-point = < 0x36b >;
    		bus-speed = < 0x1e848 >;
    	};
    	can0: can {
    		status = "disabled";
    		compatible = "zephyr,native-posix-linux-can";
    		host-interface = "zcan0";
    		sjw = < 0x1 >;
    		sample-point = < 0x36b >;
    		bus-speed = < 0x1e848 >;
    	};
    };
    

    Both of them are for the same project. Except for the labels removed because of deprecation, there is no major difference.

    Regards,

    Andrew

  • Hi Andrew,

    I am able to reproduce this issue in the example unit test (nrf/tests/unity/example_test) by mocking Zephyr APIs. There are some changes to Unity in v2.2.0, such as changing from __wrap t __cmock and replacing the --wrap compiler option with --defsym, so the problem might be related to these. So far I have not been able to figure out exactly what the issue is, but I have asked the developers about this. I am still waiting on a response, so I will get back to you.

    Best regards,

    Marte

  • Hi Andrew,

    I have gotten a response from the developers. The issue is due to some changes in Zephyr, in particular these lines that have been added to include/zephyr/device.h:

    #if defined(CONFIG_HAS_DTS) || defined(__DOXYGEN__)
    /**
     * @brief Declare a device for each status "okay" devicetree node.
     *
     * @note Disabled nodes should not result in devices, so not predeclaring these
     * keeps drivers honest.
     *
     * This is only "maybe" a device because some nodes have status "okay", but
     * don't have a corresponding @ref device allocated. There's no way to figure
     * that out until after we've built the zephyr image, though.
     */
    #define Z_MAYBE_DEVICE_DECLARE_INTERNAL(node_id)                               \
        extern const struct device DEVICE_DT_NAME_GET(node_id);
     
    DT_FOREACH_STATUS_OKAY_NODE(Z_MAYBE_DEVICE_DECLARE_INTERNAL)
    #endif /* CONFIG_HAS_DTS */
    

    They suggest a possible workaround, as long as you are not interested in mocking the entire Zephyr driver files but rather to get the test to compile so that you can test out other parts of your logic. In that case, you can try to create minimal copies of the Zephyr drivers (device.h, led.h, dsp.h, settings,h, and sensor.h), and including these when running the unit test.

    Best regards,

    Marte

  • Hi Marte,

    Thank you for the reply. How do I make them mockable then ?

    I include <zephyr/device.h> in my code so how can I say to unity and cmock to use those minimals copy and not the originals when testing and mocking ?

    Regards,

    Andrew

Related