mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
feat(driver): added RMT mock
This commit is contained in:
parent
ca5dd7f0b3
commit
f679218cb6
@ -10,9 +10,11 @@ set(include_dirs
|
||||
"${original_driver_dir}/i2c/include/driver"
|
||||
"${original_driver_dir}/spi/include/driver"
|
||||
"${original_driver_dir}/gpio/include/driver"
|
||||
"${original_driver_dir}/rmt/include/driver"
|
||||
"${original_driver_dir}/i2c/include"
|
||||
"${original_driver_dir}/spi/include"
|
||||
"${original_driver_dir}/gpio/include"
|
||||
"${original_driver_dir}/rmt/include"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../hal/include")
|
||||
|
||||
idf_component_mock(INCLUDE_DIRS ${include_dirs}
|
||||
@ -21,6 +23,10 @@ idf_component_mock(INCLUDE_DIRS ${include_dirs}
|
||||
${original_driver_dir}/spi/include/driver/spi_master.h
|
||||
${original_driver_dir}/spi/include/driver/spi_common.h
|
||||
${original_driver_dir}/i2c/include/driver/i2c.h
|
||||
${original_driver_dir}/gpio/include/driver/gpio.h)
|
||||
${original_driver_dir}/gpio/include/driver/gpio.h
|
||||
${original_driver_dir}/rmt/include/driver/rmt_rx.h
|
||||
${original_driver_dir}/rmt/include/driver/rmt_tx.h
|
||||
${original_driver_dir}/rmt/include/driver/rmt_common.h
|
||||
${original_driver_dir}/rmt/include/driver/rmt_encoder.h)
|
||||
|
||||
target_compile_definitions(${COMPONENT_LIB} PUBLIC SOC_I2C_NUM=2)
|
||||
|
31
tools/mocks/hal/include/hal/rmt_types.h
Normal file
31
tools/mocks/hal/include/hal/rmt_types.h
Normal file
@ -0,0 +1,31 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* NOTE: this is not the original header file from the hal component. It is a stripped-down copy to support mocking.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef int rmt_clock_source_t;
|
||||
|
||||
typedef union {
|
||||
struct {
|
||||
unsigned int duration0 : 15; /*!< Duration of level0 */
|
||||
unsigned int level0 : 1; /*!< Level of the first part */
|
||||
unsigned int duration1 : 15; /*!< Duration of level1 */
|
||||
unsigned int level1 : 1; /*!< Level of the second part */
|
||||
};
|
||||
unsigned int val; /*!< Equivalent unsigned value for the RMT symbol */
|
||||
} rmt_symbol_word_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -19,6 +19,10 @@ tools/test_apps/linux_compatible/hello_world_linux_compatible:
|
||||
enable:
|
||||
- if: INCLUDE_DEFAULT == 1 or IDF_TARGET == "linux"
|
||||
|
||||
tools/test_apps/linux_compatible/rmt_mock_build_test:
|
||||
enable:
|
||||
- if: IDF_TARGET == "linux"
|
||||
|
||||
tools/test_apps/peripherals/i2c_wifi:
|
||||
disable:
|
||||
- if: SOC_I2C_SUPPORTED != 1 or SOC_WIFI_SUPPORTED != 1
|
||||
|
@ -0,0 +1,8 @@
|
||||
# The following lines of boilerplate have to be in your project's
|
||||
# CMakeLists in this exact order for cmake to work correctly
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
||||
set(COMPONENTS main)
|
||||
list(APPEND EXTRA_COMPONENT_DIRS "$ENV{IDF_PATH}/tools/mocks/driver/")
|
||||
project(rmt_mock_build_test)
|
@ -0,0 +1,2 @@
|
||||
| Supported Targets | Linux |
|
||||
| ----------------- | ----- |
|
@ -0,0 +1,2 @@
|
||||
idf_component_register(SRCS "main.c"
|
||||
PRIV_REQUIRES "driver")
|
@ -0,0 +1,22 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: CC0-1.0
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "Mockrmt_encoder.h"
|
||||
#include "Mockrmt_common.h"
|
||||
#include "Mockrmt_tx.h"
|
||||
#include "Mockrmt_rx.h"
|
||||
|
||||
void app_main(void)
|
||||
{
|
||||
rmt_channel_handle_t channel = 0;
|
||||
|
||||
/*Test that mock functions exist*/
|
||||
rmt_new_bytes_encoder(NULL, NULL);
|
||||
rmt_new_rx_channel(NULL, NULL);
|
||||
rmt_del_channel(channel);
|
||||
rmt_new_tx_channel(NULL, NULL);
|
||||
}
|
@ -0,0 +1 @@
|
||||
CONFIG_IDF_TARGET="linux"
|
Loading…
Reference in New Issue
Block a user