From 45513ff918fc9f19dad70bca242dad48ff73dafd Mon Sep 17 00:00:00 2001 From: dianjixz Date: Mon, 20 May 2024 09:25:03 +0800 Subject: [PATCH] [add] linux i2c example --- examples/linux_i2c/.gitignore | 6 +++++ examples/linux_i2c/SConstruct | 4 +++ examples/linux_i2c/config_defaults.mk | 6 +++++ examples/linux_i2c/main/Kconfig | 0 examples/linux_i2c/main/SConstruct | 34 ++++++++++++++++++++++++++ examples/linux_i2c/main/include/test.h | 1 + examples/linux_i2c/main/src/main.c | 24 ++++++++++++++++++ 7 files changed, 75 insertions(+) create mode 100644 examples/linux_i2c/.gitignore create mode 100644 examples/linux_i2c/SConstruct create mode 100644 examples/linux_i2c/config_defaults.mk create mode 100644 examples/linux_i2c/main/Kconfig create mode 100644 examples/linux_i2c/main/SConstruct create mode 100644 examples/linux_i2c/main/include/test.h create mode 100644 examples/linux_i2c/main/src/main.c diff --git a/examples/linux_i2c/.gitignore b/examples/linux_i2c/.gitignore new file mode 100644 index 0000000..76b743d --- /dev/null +++ b/examples/linux_i2c/.gitignore @@ -0,0 +1,6 @@ + +dist +build +.config.mk +.flash.conf.json + diff --git a/examples/linux_i2c/SConstruct b/examples/linux_i2c/SConstruct new file mode 100644 index 0000000..076d65c --- /dev/null +++ b/examples/linux_i2c/SConstruct @@ -0,0 +1,4 @@ +from pathlib import Path +import os +with open(str(Path(os.getcwd())/'..'/'..'/'tools'/'scons'/'project.py')) as f: + exec(f.read()) diff --git a/examples/linux_i2c/config_defaults.mk b/examples/linux_i2c/config_defaults.mk new file mode 100644 index 0000000..ccc30de --- /dev/null +++ b/examples/linux_i2c/config_defaults.mk @@ -0,0 +1,6 @@ + +# CONFIG_COMPONENT1_ENABLED=y +CONFIG_TOOLCHAIN_PATH="/opt/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin" +CONFIG_TOOLCHAIN_PREFIX="arm-linux-gnueabihf-" +CONFIG_DEVICE_DRIVER_ENABLED=y +CONFIG_DEVICE_I2C_ENABLED=y diff --git a/examples/linux_i2c/main/Kconfig b/examples/linux_i2c/main/Kconfig new file mode 100644 index 0000000..e69de29 diff --git a/examples/linux_i2c/main/SConstruct b/examples/linux_i2c/main/SConstruct new file mode 100644 index 0000000..d5f7941 --- /dev/null +++ b/examples/linux_i2c/main/SConstruct @@ -0,0 +1,34 @@ +# project_root/src/SConscript +import os +# Import the environment from the SConstruct file +Import('env') +with open(env['PROJECT_TOOL_S']) as f: + exec(f.read()) + + + +SRCS = Glob('src/*.c*') +INCLUDE = [ADir('include'), ADir('.')] +PRIVATE_INCLUDE = [] +REQUIREMENTS = ['pthread', "DeviceDriver"] +STATIC_LIB = [] +DYNAMIC_LIB = [] +DEFINITIONS = [] +DEFINITIONS_PRIVATE = [] +LDFLAGS = [] +LINK_SEARCH_PATH = [] + + +env['COMPONENTS'].append({'target':env['PROJECT_NAME'], + 'SRCS':SRCS, + 'INCLUDE':INCLUDE, + 'PRIVATE_INCLUDE':PRIVATE_INCLUDE, + 'REQUIREMENTS':REQUIREMENTS, + 'STATIC_LIB':STATIC_LIB, + 'DYNAMIC_LIB':DYNAMIC_LIB, + 'DEFINITIONS':DEFINITIONS, + 'DEFINITIONS_PRIVATE':DEFINITIONS_PRIVATE, + 'LDFLAGS':LDFLAGS, + 'LINK_SEARCH_PATH':LINK_SEARCH_PATH, + 'REGISTER':'project' + }) \ No newline at end of file diff --git a/examples/linux_i2c/main/include/test.h b/examples/linux_i2c/main/include/test.h new file mode 100644 index 0000000..6f70f09 --- /dev/null +++ b/examples/linux_i2c/main/include/test.h @@ -0,0 +1 @@ +#pragma once diff --git a/examples/linux_i2c/main/src/main.c b/examples/linux_i2c/main/src/main.c new file mode 100644 index 0000000..dbbb74c --- /dev/null +++ b/examples/linux_i2c/main/src/main.c @@ -0,0 +1,24 @@ +#include +#include +#include +#include +#include "linux_i2c/linuxi2c.h" + +LINUXI2CDevice i2cdev; + +int main(int argc, char *argv[]) +{ + char i2c_bus[20] = "/dev/i2c-1"; + linuxi2c_init_device(&i2cdev); + i2cdev.bus = linuxi2c_open(i2c_bus); + i2cdev.addr = 0x38; + + uint8_t data[] = {0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x01, 0x02, 0x03}; + + // linuxi2c_write(&i2cdev, 0x05, data, sizeof(data)); + linuxi2c_primitive_write(&i2cdev, data, 1, data, sizeof(data)); + + linuxi2c_close(i2cdev.bus); + + return 0; +} \ No newline at end of file