diff --git a/buildroot-2021.05/configs/milkv_duo_musl_riscv64_defconfig b/buildroot-2021.05/configs/milkv_duo_musl_riscv64_defconfig index 5bf64c7ed..777f8b3c9 100644 --- a/buildroot-2021.05/configs/milkv_duo_musl_riscv64_defconfig +++ b/buildroot-2021.05/configs/milkv_duo_musl_riscv64_defconfig @@ -268,6 +268,7 @@ BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="" # BR2_PACKAGE_BUSYBOX_SHOW_OTHERS is not set # BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES is not set # BR2_PACKAGE_BUSYBOX_WATCHDOG is not set +BR2_PACKAGE_WIRINGX=y BR2_PACKAGE_SKELETON=y BR2_PACKAGE_HAS_SKELETON=y BR2_PACKAGE_PROVIDES_SKELETON="skeleton-init-sysv" diff --git a/buildroot-2021.05/package/Config.in b/buildroot-2021.05/package/Config.in index 82b28d283..9082310ba 100644 --- a/buildroot-2021.05/package/Config.in +++ b/buildroot-2021.05/package/Config.in @@ -1,6 +1,7 @@ menu "Target packages" source "package/busybox/Config.in" + source "package/wiringx/Config.in" source "package/skeleton/Config.in" source "package/skeleton-custom/Config.in" source "package/skeleton-init-common/Config.in" diff --git a/buildroot-2021.05/package/wiringx/Config.in b/buildroot-2021.05/package/wiringx/Config.in new file mode 100644 index 000000000..87dfc9f79 --- /dev/null +++ b/buildroot-2021.05/package/wiringx/Config.in @@ -0,0 +1,4 @@ +config BR2_PACKAGE_WIRINGX + bool "wiringX" + help + wiringX diff --git a/buildroot-2021.05/package/wiringx/src/libwiringx.so b/buildroot-2021.05/package/wiringx/src/libwiringx.so new file mode 100644 index 000000000..fb2fd48b8 Binary files /dev/null and b/buildroot-2021.05/package/wiringx/src/libwiringx.so differ diff --git a/buildroot-2021.05/package/wiringx/src/wiringx.h b/buildroot-2021.05/package/wiringx/src/wiringx.h new file mode 100644 index 000000000..646ca8052 --- /dev/null +++ b/buildroot-2021.05/package/wiringx/src/wiringx.h @@ -0,0 +1,110 @@ +/* + Copyright (c) 2016 CurlyMo + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. +*/ + +#ifndef _WIRING_X_H_ +#define _WIRING_X_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +#define wiringXLog(a, b, ...) _wiringXLog(a, __FILE__, __LINE__, b, ##__VA_ARGS__) + +extern void (*_wiringXLog)(int, char *, int, const char *, ...); + +#define EXPORT __attribute__((visibility("default"))) + +#if !defined(PATH_MAX) + #if defined(_POSIX_PATH_MAX) + #define PATH_MAX _POSIX_PATH_MAX + #else + #define PATH_MAX 1024 + #endif +#endif + +enum function_t { + FUNCTION_UNKNOWN = 0, + FUNCTION_DIGITAL = 2, + FUNCTION_ANALOG = 4, + FUNCTION_I2C = 16, + FUNCTION_INTERRUPT = 32 +}; + +enum pinmode_t { + PINMODE_NOT_SET = 0, + PINMODE_INPUT = 2, + PINMODE_OUTPUT = 4, + PINMODE_INTERRUPT = 8 +}; + +enum isr_mode_t { + ISR_MODE_UNKNOWN = 0, + ISR_MODE_RISING = 2, + ISR_MODE_FALLING = 4, + ISR_MODE_BOTH = 8, + ISR_MODE_NONE = 16 +}; + +enum digital_value_t { + LOW, + HIGH +}; + +typedef struct wiringXSerial_t { + unsigned int baud; + unsigned int databits; + unsigned int parity; + unsigned int stopbits; + unsigned int flowcontrol; +} wiringXSerial_t; + +void delayMicroseconds(unsigned int); +int pinMode(int, enum pinmode_t); +int wiringXSetup(char *name, void (*func)(int, char *, int, const char *, ...)); +int wiringXGC(void); + +// int analogRead(int channel); +int digitalWrite(int, enum digital_value_t); +int digitalRead(int); +int waitForInterrupt(int, int); +int wiringXISR(int, enum isr_mode_t); + +int wiringXI2CRead(int); +int wiringXI2CReadReg8(int, int); +int wiringXI2CReadReg16(int, int); +int wiringXI2CWrite(int, int); +int wiringXI2CWriteReg8(int, int, int); +int wiringXI2CWriteReg16(int, int, int); +int wiringXI2CSetup(const char *, int); + +int wiringXSPIGetFd(int channel); +int wiringXSPIDataRW(int channel, unsigned char *data, int len); +int wiringXSPISetup(int channel, int speed); + +int wiringXSerialOpen(const char *, struct wiringXSerial_t); +void wiringXSerialFlush(int); +void wiringXSerialClose(int); +void wiringXSerialPutChar(int, unsigned char); +void wiringXSerialPuts(int, const char *); +void wiringXSerialPrintf(int, const char *, ...); +int wiringXSerialDataAvail(int); +int wiringXSerialGetChar(int); + +char *wiringXPlatform(void); +int wiringXValidGPIO(int); +int wiringXSelectableFd(int); +int wiringXSupportedPlatforms(char ***); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/buildroot-2021.05/package/wiringx/wiringx.mk b/buildroot-2021.05/package/wiringx/wiringx.mk new file mode 100644 index 000000000..a8bb38ba5 --- /dev/null +++ b/buildroot-2021.05/package/wiringx/wiringx.mk @@ -0,0 +1,17 @@ +WIRINGX_SITE = $(TOPDIR)/package/wiringx +WIRINGX_VERSION = 2023.05.30 +WIRINGX_SITE_METHOD = local + +WIRINGX_INSTALL_STAGING = YES + +define WIRINGX_INSTALL_STAGING_CMDS + $(INSTALL) -D -m 0644 $(@D)/src/wiringx.h $(STAGING_DIR)/usr/include/ + $(INSTALL) -D -m 0644 $(@D)/src/libwiringx.so $(STAGING_DIR)/usr/lib/ +endef + +define WIRINGX_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0644 $(@D)/src/wiringx.h $(TARGET_DIR)/usr/include/ + $(INSTALL) -D -m 0644 $(@D)/src/libwiringx.so $(TARGET_DIR)/usr/lib/ +endef + +$(eval $(generic-package))