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

  • 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

  • Hi Andrew,

    I appreciate your patience. The developers have been discussing this to find the best option.

    To create minimal copies of the files, you would also have to use these files in your code, which would not be a preferred option.

    According to the developers, we cannot generally mock Zephyr drivers using Unity and Cmock. One solution is to let Cmock strip specific keywords, as in this pull request: https://github.com/nrfconnect/sdk-nrf/pull/9998. Another option is to use the Zephyr Test Framework (Ztest) instead. For more information about Ztest and how to use it, see Test Framework.

    Best regards,

    Marte

  • Hello,

    I finally achieved to make unity work will mocking device.h

    Will using NCS v2.3.0, I added those lines to the script header_prepare.py

    dt_foreach_pattern = re.compile(r"DT_FOREACH_STATUS_OKAY_NODE.*", re.M)
    content = dt_foreach_pattern.sub(r"", content)

    And also added 

    FUNC_EXCLUDE "DEVICE_DT_NAME_GET"
    to my cmock handler creation of device.h inside the test CMakeLists.txt.

    Thank you for the help.

    Regards,

    Andrew

Reply Children
No Data
Related