From 557e959d389dfd22facad410e8978012cdf840c2 Mon Sep 17 00:00:00 2001 From: Xu Si Yu Date: Sat, 9 May 2026 11:19:32 +0800 Subject: [PATCH] feat(coex): support esp32h4 coexist(ed8e01d1) --- .gitlab-ci.yml | 12 ++++++------ esp32/libcoexist.a | Bin 125562 -> 125562 bytes esp32c2/libcoexist.a | Bin 93342 -> 93342 bytes esp32c3/libcoexist.a | Bin 88050 -> 88050 bytes esp32c5/libcoexist.a | Bin 97866 -> 97866 bytes esp32c6/libcoexist.a | Bin 99628 -> 99628 bytes esp32c61/libcoexist.a | Bin 93168 -> 93168 bytes esp32h2/libcoexist.a | Bin 91790 -> 91790 bytes esp32h4/libcoexist.a | Bin 0 -> 91198 bytes esp32s2/libcoexist.a | Bin 101828 -> 101828 bytes esp32s3/libcoexist.a | Bin 109680 -> 109680 bytes esp32s31/libcoexist.a | Bin 103900 -> 103900 bytes fix_printf.sh | 4 ++-- 13 files changed, 8 insertions(+), 8 deletions(-) create mode 100644 esp32h4/libcoexist.a diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 13cd755..50de6d9 100755 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -41,14 +41,14 @@ check_lib_reversion: - GIT_COMMIT_ID=`git log --pretty="%s" -1 | grep -o '([0-9a-f]*)' | tail -1 | cut -c 2-8` - echo "GIT_COMMIT_ID is "$GIT_COMMIT_ID - test $(echo -n $GIT_COMMIT_ID | wc -c) -eq 7 - - for dir in esp32 esp32s2 esp32s3 esp32c3 esp32c2 esp32c6 esp32h2 esp32c5 esp32c61 esp32s31; do grep $GIT_COMMIT_ID $dir/libcoexist.a; done; - - for dir in esp32 esp32s2 esp32s3 esp32c3 esp32c2 esp32c6 esp32h2 esp32c5 esp32c61 esp32s31; do grep $GIT_COMMIT_ID-remote $dir/libcoexist.a; done; - - for dir in esp32 esp32s2 esp32s3 esp32c3 esp32c2 esp32c6 esp32h2 esp32c5 esp32c61 esp32s31; do test $(grep $GIT_COMMIT_ID-dirty $dir/*.a | wc -l) -eq 0; done; - - for dir in esp32c3 esp32c2 esp32c6 esp32h2 esp32c5 esp32c61 esp32s31; do test $(riscv32-esp-elf-nm $dir/*.a | grep -w printf | wc -l) -eq 0; done; - - for dir in esp32c3 esp32c2 esp32c6 esp32h2 esp32c5 esp32c61 esp32s31; do test $(riscv32-esp-elf-nm $dir/*.a | grep -w ets_printf | wc -l) -eq 0; done; + - for dir in esp32 esp32s2 esp32s3 esp32c3 esp32c2 esp32c6 esp32h2 esp32c5 esp32c61 esp32s31 esp32h4; do grep $GIT_COMMIT_ID $dir/libcoexist.a; done; + - for dir in esp32 esp32s2 esp32s3 esp32c3 esp32c2 esp32c6 esp32h2 esp32c5 esp32c61 esp32s31 esp32h4; do grep $GIT_COMMIT_ID-remote $dir/libcoexist.a; done; + - for dir in esp32 esp32s2 esp32s3 esp32c3 esp32c2 esp32c6 esp32h2 esp32c5 esp32c61 esp32s31 esp32h4; do test $(grep $GIT_COMMIT_ID-dirty $dir/*.a | wc -l) -eq 0; done; + - for dir in esp32c3 esp32c2 esp32c6 esp32h2 esp32c5 esp32c61 esp32s31 esp32h4; do test $(riscv32-esp-elf-nm $dir/*.a | grep -w printf | wc -l) -eq 0; done; + - for dir in esp32c3 esp32c2 esp32c6 esp32h2 esp32c5 esp32c61 esp32s31 esp32h4; do test $(riscv32-esp-elf-nm $dir/*.a | grep -w ets_printf | wc -l) -eq 0; done; - for dir in esp32 esp32s2 esp32s3; do test $(xtensa-esp32-elf-nm $dir/*.a | grep -w printf | wc -l) -eq 0; done; - for dir in esp32 esp32s2 esp32s3; do test $(xtensa-esp32-elf-nm $dir/*.a | grep -w ets_printf | wc -l) -eq 0; done; - - for dir in esp32 esp32s2 esp32s3 esp32c3 esp32c2 esp32c6 esp32h2 esp32c5 esp32c61 esp32s31; do cd $dir; for filename in *; do if [[ -x "$file" ]]; then echo "Execute permissions for $dir/$filename"; exit 1; fi; done; cd .. ; done + - for dir in esp32 esp32s2 esp32s3 esp32c3 esp32c2 esp32c6 esp32h2 esp32c5 esp32c61 esp32s31 esp32h4; do cd $dir; for filename in *; do if [[ -x "$file" ]]; then echo "Execute permissions for $dir/$filename"; exit 1; fi; done; cd .. ; done include: - 'tools/ci/config/build.yml' diff --git a/esp32/libcoexist.a b/esp32/libcoexist.a index f44f087a6f99cc40a11794e841879a5a1e0ac5b5..a329fffca3826e203d0719b03eb289065d767889 100644 GIT binary patch delta 41 rcmex$h5gqR_6=5QVyP(>sRo8Ax<#qE`6a0gP;PU8+V%i7My(?NSceYv delta 41 rcmex$h5gqR_6=5QVrFT^DFznFx<#qE`6a0gP;PU8+V%i7My(?NP#_MQ diff --git a/esp32c2/libcoexist.a b/esp32c2/libcoexist.a index c78cb363810ed1d01896b5bfafc80573e88ba7b3..6f7f59ff9d00906bec5463961b81f8c5cfcc9c5c 100644 GIT binary patch delta 46 xcmbPtlXc!r)(!Ji#8Xo&QVk4Kbc<4R^Gi}07@+*gA6-P7PpND_rNVf{9RQzF5ugA7 delta 46 xcmbPtlXc!r)(!Ji#Ld!-Qw%JUb&FDS^Gi}07@+*gA6-P7PpND_rNVf{9RQV95k>$2 diff --git a/esp32c3/libcoexist.a b/esp32c3/libcoexist.a index 8862ff33efae8c8753fa51cd105ee1096e5d45a6..6da2f9d6446155cc52e8985e88b238033ffdab0e 100644 GIT binary patch delta 46 xcmeygp7qmu)(zW~#Zyx(QVk4Kbc<4R^Gi}07@+*gf-a)XkCeARQf3q|0RX1d5P|>z delta 46 xcmeygp7qmu)(zW~#m&-;Qw%JUb&FDS^Gi}07@+*gf-a)XkCeARQf3q|0RWuX5GViu diff --git a/esp32c5/libcoexist.a b/esp32c5/libcoexist.a index 035c0b18b71084393c659b3f1f7fa496a7e5de4b..6256395c47576576683e78b6ab4940b9d6450e95 100644 GIT binary patch delta 42 tcmX^0hxODS)(xxF#Zyx(QVk4Kbc<4R^Gi}07@+*-gX-H4sxx+m0RVJ$5GViu delta 42 tcmX^0hxODS)(xxF#m&-;Qw%JUb&FDS^Gi}07@+*-gX-H4sxx+m0RU^^56%Dp diff --git a/esp32c6/libcoexist.a b/esp32c6/libcoexist.a index 6fe2178e3b5000ad6cb10b367f7ef9533ce757eb..ab6ef54b0f3682e215d2773ca192f55c4054b1d1 100644 GIT binary patch delta 46 wcmZ3}#kQu4ZNm+9@zfNHR0G2l-J;ao{E}1#1}J~>MnBPJ7LDyJ8jKpT0EIpe4FCWD delta 46 wcmZ3}#kQu4ZNm+9akDhz6a$N7-J;ao{E}1#1}J~>MnBPJ7LDyJ8jKpT0DD3Xvj6}9 diff --git a/esp32c61/libcoexist.a b/esp32c61/libcoexist.a index 3d287a87c20cb9b2e5c3348dffabe97941a5c345..f6e26e33905684a2accff67509257c0abd520d25 100644 GIT binary patch delta 46 xcmexxo%O?Y)(u-!#8Xo&QVk4Kbc<4R^Gi}07@+*gg07;?4^*~4P+=5s2LQ975Z?d* delta 46 xcmexxo%O?Y)(u-!#Ld!-Qw%JUb&FDS^Gi}07@+*gg07;?4^*~4P+=5s2LP$15QP8$ diff --git a/esp32h2/libcoexist.a b/esp32h2/libcoexist.a index 8f411954a4f80253d814bf3b49402f2d02c74d65..c8aa1b558bd2497b98594ef47c6683050c601f9a 100644 GIT binary patch delta 42 scmeA>%i4FAb;Bk#@zfNHR0G2l-J;ao{E}1#1}MMzq}ukAYK%wi0aUCHi~s-t delta 42 scmeA>%i4FAb;Bk#akDhz6a$N7-J;ao{E}1#1}MMzq}ukAYK%wi0ZbSVG5`Po diff --git a/esp32h4/libcoexist.a b/esp32h4/libcoexist.a new file mode 100644 index 0000000000000000000000000000000000000000..4ea16687e6933e82b5e16c9d9c2573a913a8bbd1 GIT binary patch literal 91198 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 delta 41 scmX>yo9)PKwhebw#LUu+Qw%JUb&FDS^Gi}0pxow9D%(G)FkZ?408C&H=Kufz diff --git a/esp32s3/libcoexist.a b/esp32s3/libcoexist.a index eabc0f07c2f952155e24a9d10fa52fcdf03126ff..f20d00de160f83dd44ebbeced53776f6939d0150 100644 GIT binary patch delta 41 scmexxgYCl&whb>-#Zpr&QVk4Kbc<4R^Gi}0pxowvs@wmmG8VM~0CsW^_y7O^ delta 41 scmexxgYCl&whb>-#mv%-Qw%JUb&FDS^Gi}0pxowvs@wmmG8VM~0B#Eqo&W#< diff --git a/esp32s31/libcoexist.a b/esp32s31/libcoexist.a index c21a44ae3ba6a035dcf937a43da6ed948784a877..8adc5178e0fa5839695d9579183f72a774f54015 100644 GIT binary patch delta 45 vcmcb!n(fYNwgp<^sVNqz28JoRMX9;@C8-PyQ2yk=5Yc8Gt?fEmj2p56d2$b0 delta 45 vcmcb!n(fYNwgp<^W@*ML1{TS>MX9;@C8-PyQ2yk=5Yc8Gt?fEmj2p56Z*~s= diff --git a/fix_printf.sh b/fix_printf.sh index c377234..636d168 100755 --- a/fix_printf.sh +++ b/fix_printf.sh @@ -1,10 +1,10 @@ #!/bin/bash -for dir in esp32 esp32s2 esp32c3 esp32s3 esp32c2 esp32c6 esp32h2 esp32c5 esp32c61 esp32s31; do +for dir in esp32 esp32s2 esp32c3 esp32s3 esp32c2 esp32c6 esp32h2 esp32c5 esp32c61 esp32s31 esp32h4; do if [ $dir = esp32 ]; then TOOLCHAIN="xtensa-esp32-elf" elif [ $dir = esp32s2 ]; then TOOLCHAIN="xtensa-esp32s2-elf" - elif [ $dir = esp32c3 -o $dir = esp32c2 -o $dir = esp32c6 -o $dir = esp32h2 -o $dir = esp32c5 -o $dir = esp32c61 -o $dir = esp32s31 ]; then + elif [ $dir = esp32c3 -o $dir = esp32c2 -o $dir = esp32c6 -o $dir = esp32h2 -o $dir = esp32c5 -o $dir = esp32c61 -o $dir = esp32s31 -o $dir = esp32h4 ]; then TOOLCHAIN="riscv32-esp-elf" elif [ $dir = esp32s3 ]; then TOOLCHAIN="xtensa-esp32s3-elf"