From a718e1cb69cb600bf1f98fac8913e9a2c70963e3 Mon Sep 17 00:00:00 2001 From: carbon Date: Fri, 16 Jun 2023 14:36:16 +0800 Subject: [PATCH] use wiringX as a GPIO library --- .../configs/milkv_duo_musl_riscv64_defconfig | 1 + buildroot-2021.05/package/Config.in | 1 + buildroot-2021.05/package/wiringx/Config.in | 4 + .../package/wiringx/src/libwiringx.so | Bin 0 -> 285448 bytes .../package/wiringx/src/wiringx.h | 110 ++++++++++++++++++ buildroot-2021.05/package/wiringx/wiringx.mk | 17 +++ 6 files changed, 133 insertions(+) create mode 100644 buildroot-2021.05/package/wiringx/Config.in create mode 100644 buildroot-2021.05/package/wiringx/src/libwiringx.so create mode 100644 buildroot-2021.05/package/wiringx/src/wiringx.h create mode 100644 buildroot-2021.05/package/wiringx/wiringx.mk 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 0000000000000000000000000000000000000000..fb2fd48b826bfaf49143bc3b99f908633a9f20fb GIT binary patch literal 285448 zcmdp<33waT)v(9bnuSD(2v&g-gMf&oMUX%QgjON3EebSZSD|31juWK>B0?yltAb-& zEKLLkEXop>vIt7~%$Gn^mSRe5i=~ZeSyZ~jG%TXf-v$z*uq6MvbI;MtJ+=}D`1<|N z@8?k@y)$~}&Y3&+o_lAc{H*4*+RBOwjs7g!hnjd7drFcZE=ZnZ)nD1*-=G%IZ1C?s z+7x|V!OH!GiqcKbnoF)Js2v{u9dfyULZ!Zdo;8Pj9~dK_>2u$ z{uF%n!t=rSdVhGHhp&V1d>A~wj_<`&H9Yo#$82~^fybfn;D56?!1uNI>>FYE7!%tU zUyJ%n=hs2-TGR~@dvQF(GEc?L4J!^fra`={)~s;o6O+V(!~2`>vQ9cP3tV4c)CY0w zM7^W3i8>*UWe^^sK8U&)f`|AMaT3Qy#NqI-p1JV7==m#8+7dW(@{ZQ;|KX&COOLF& zbI#$5{D1lTKMyW8NH9YvAXd|mRg!gZjDbIyv{2SmiBgGk3AJLzK#($*sZz|)@m+@~bQ_h|; z{Cj2mFO>2Bu*~{*!}=rD=L5>D?=8b0F0k;@KnQt|7`~_ z(((Fp8UB!de4U!}F4%GS(;H@Zw(D_lYAJD`;qP|+UroCjd3u%P8a`!_dv1_m39dg? zFTYcpakJ#2e-M9jkk4ZLM_8Uzr(8cJSJ%el`hK?lkCEq*SL6EcVR^Q+OAnR*H@JS{ zR>{xC0xdy)8hXU}FaEAaUPNA$SbHCyCqp~G68D$@*~$sF3v0QmqK1G8XWke?M}yX23UMPgVjVik7WF1BgHd^{%W?}JFxsix5)CO;Jx_!272P?UnjA496J~(w52gv{gO-O$F$huOHW_Aph;_7vh;FT?TSkUymIlf#g{IMoC|xi zpe}sMJn?a1hVm?jV!_rgU0M%CnZJDTQhl>PmM+t-T()?5leVa7`4x*7h^IyH)EHfQ z<)zw^%bS`m76n_N#g;BvqW$3VOJlH!+KpgfIBFI{lC zFfCtvNz>AW3+7*?T{{2LrI#;hYAO}-EZAJ>O?b)tCc+ukJ^Ou~bmk8gS zDK?M0cFI|2YFEx*yu5blvQsXF`VR$r(f zI3b{>C@6fz@;TA@PyuAUksk$kIV18=D{F~eoBab(yA=!(P>oBP8kdWc(1=UjoYF_G zh{cvJTi&#Q4*%uiR9FDjV#(s~HGci_rQ%uY>S6sgAC{cZv90d!GIzhhIUy1jk ziJ#D;JBQ4|5K7{F4^D^r}u&VRqlIGwoh@!{m8S72ap#T4&e` ze~A2yhsn=)g#3&*kpJtdKT3YaW8`N%PJYG{_0{ zg*?l+2YHe4YVyxe{XX(D?k7Lv0rE2*B>%ChKSX}U!{lc?LVm^@$bX#bkCLD982K5G zlb`Vf`Dd#BB>5Rnk)QE2`5Esde?awT$j^8e`5DiWpYd+;AFujzW`A2@fi6TkCUJA1o^+I`jg~mJVk!S)8uEoll(!|pCLcv zUF2sxOMb??$v<25=g7}^KlvHYlb`Vc@}I2w3*={fi2RHf$$g_-x$j^9~{2|pJAwS~{cI}f6MbC&bSA8mho!jMaF%|1E;BeKlvFCke~4&`56z9 z|8&(KCO_j5@-v>L_%Pm0@%gsu&moU9-j6)Xc%J->50HPJ>MxL=@gedv9;fjg5vj1Q3ieAQndKjTB>XS_&$#x)vWT%h`$G`?WmMdJ&`Jv6>xyqf&qRsBBl zGwvrp;{ozB9wh&Tsy{@2#>3=iJVJiP8_0i=>W`A2@fi6TPf+{7c#_(Odextz_JQ#< zwGWKPsr-y5sQeA8KS||hJVoVaJWYPaJIOy^^=HV>co+E@&yt_hGlE%Xo&4FXLUvi;QQH2bxrWH~AUQk)QE? z@-rT$@-I~V5#({k8<1xik0LKJ9wYxE)gLE6;|cOJo+LlxDe^~Ef13P^caop+4EY)F zBL8C5pCv!z-Q;IHPw{7b0D0j1s=t6d&iD}WEaOG;Gp?=0@$bc|--$fVxC?ofaS!q$ z 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 + + 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))