Skip to content
Merged

RDA5981 #1813

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 19 additions & 11 deletions .github/workflows/workflow.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,20 @@ jobs:
steps:
- name: Source checkout
uses: actions/checkout@v4
- name: Update SDKs if required
run: make update-submodules
- name: Set outputs
id: refs
run: |
export BRANCH=${GITHUB_REF#refs/*/}
echo "branch: ${BRANCH}"
export BRANCHTRANSLATED=$(echo ${BRANCH} | tr '/' '_')
echo "short_ref: ${BRANCHTRANSLATED}"
export VERSION=${BRANCHTRANSLATED}_$(git rev-parse --short=12 HEAD)
echo "short_ref=${BRANCHTRANSLATED}" >> $GITHUB_OUTPUT
echo "sha_short=SHA-$(git rev-parse --short=12 HEAD)" >> $GITHUB_OUTPUT
echo "version=${VERSION}" >> $GITHUB_OUTPUT
- name: Semantic Release
id: semantic
if: github.ref == 'refs/heads/main' || github.ref_name == 'alpha'
uses: cycjimmy/semantic-release-action@v4
with:
dry_run: true
Expand All @@ -37,22 +47,16 @@ jobs:
conventional-changelog-conventionalcommits@7
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set outputs
id: refs
- name: Set release outputs
id: refs_release
if: github.ref == 'refs/heads/main' || github.ref_name == 'alpha'
run: |
export BRANCH=${GITHUB_REF#refs/*/}
echo "branch: ${BRANCH}"
export BRANCHTRANSLATED=$(echo ${BRANCH} | tr '/' '_')
echo "short_ref: ${BRANCHTRANSLATED}"
export VERSION=""
if ${{ steps.semantic.outputs.new_release_published == 'true' }}; then
export VERSION=${{ steps.semantic.outputs.new_release_version }}
else
export VERSION=${BRANCHTRANSLATED}_$(git rev-parse --short=12 HEAD)
fi
echo "new_release=${{ steps.semantic.outputs.new_release_published }}" >> $GITHUB_OUTPUT
echo "short_ref=${BRANCHTRANSLATED}" >> $GITHUB_OUTPUT
echo "sha_short=SHA-$(git rev-parse --short=12 HEAD)" >> $GITHUB_OUTPUT
echo "version=${VERSION}" >> $GITHUB_OUTPUT

build2:
Expand Down Expand Up @@ -194,6 +198,9 @@ jobs:
gcc: 10.3-2021.10
- platform: OpenECR6600
variant: default
- platform: OpenRDA5981
variant: default
gcc: 6-2017-q2

# extras for BK7231T
- platform: OpenBK7231T
Expand Down Expand Up @@ -233,6 +240,7 @@ jobs:
architecture: 'x64'
cache: 'pip'
- name: Install dependencies
if: ${{ matrix.platform == 'OpenLN882H' }}
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: cmake
Expand Down
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -77,3 +77,7 @@
path = sdk/OpenTXW81X
url = https://github.com/NonPIayerCharacter/OpenTXW81X
branch = main
[submodule "sdk/OpenRDA5981"]
path = sdk/OpenRDA5981
url = https://github.com/NonPIayerCharacter/OpenRDA5981
branch = master
3 changes: 3 additions & 0 deletions .releaserc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,8 @@ generateNotes:
- RTL87x1DA (AmebaDplus family) (eg BW20, WR11-U, WR11-2S)
- RTL87x0E (AmebaLite family) (eg PKM8710ECF)
- ECR6600 (eg AXYU, AXY2S, WG236, DSM-036, CDI-WX56600A-00, BL-M6600XT1, HF-LPT6200)
- TXW81X (eg TXW817-810)
- RDA5981 (eg RDA5981AM, RDA5981BM, WRD2L, TYWRD3S, HLK-M50)

footerPartial: |
{{#if noteGroups}}
Expand Down Expand Up @@ -190,6 +192,7 @@ generateNotes:
| ESP8266 1MB | UART Flash | [OpenESP8266_1MB_{{version}}.factory.bin]({{host}}/{{owner}}/{{repository}}/releases/download/{{version}}/OpenESP8266_1MB_{{version}}.factory.bin) |
| ESP8266 2MB | UART Flash | [OpenESP8266_2MB_{{version}}.factory.bin]({{host}}/{{owner}}/{{repository}}/releases/download/{{version}}/OpenESP8266_2MB_{{version}}.factory.bin) |
| ESP8266 2MB | OTA Update | [OpenESP8266_{{version}}.img]({{host}}/{{owner}}/{{repository}}/releases/download/{{version}}/OpenESP8266_{{version}}.img) |
| RDA5981 | UART/OTA | [OpenRDA5981_{{version}}.img]({{host}}/{{owner}}/{{repository}}/releases/download/{{version}}/OpenRDA5981_{{version}}.img) |
| TXW81X | | [OpenTXW81X_{{version}}.bin]({{host}}/{{owner}}/{{repository}}/releases/download/{{version}}/OpenTXW81X_{{version}}.bin) |
| Win32 | | [obkSimulator_{{version}}.zip]({{host}}/{{owner}}/{{repository}}/releases/download/{{version}}/obkSimulator_{{version}}.zip) |

Expand Down
19 changes: 19 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -362,6 +362,14 @@ prebuild_OpenTXW81X: berry
else echo "prebuild for OpenTXW81X not found ... "; \
fi

prebuild_OpenRDA5981: berry
git submodule update --init --recursive --depth=1 sdk/OpenRDA5981
@if [ -e platforms/RDA5981/pre_build.sh ]; then \
echo "prebuild found for OpenRDA5981"; \
sh platforms/RDA5981/pre_build.sh; \
else echo "prebuild for OpenRDA5981 not found ... "; \
fi

# Build main binaries
OpenBK7231T: prebuild_OpenBK7231T
mkdir -p output
Expand Down Expand Up @@ -663,6 +671,16 @@ OpenTXW81X: prebuild_OpenTXW81X
mkdir -p output/$(APP_VERSION)
cp sdk/OpenTXW81X/project/APP.bin output/$(APP_VERSION)/OpenTXW81X_$(APP_VERSION).bin
#cp sdk/OpenTXW81X/project/APP_compress.bin output/$(APP_VERSION)/OpenTXW81X_$(APP_VERSION)_ota.img

.PHONY: OpenRDA5981
OpenRDA5981: prebuild_OpenRDA5981
$(MAKE) -C sdk/OpenRDA5981 APP_VERSION=$(APP_VERSION) OBK_VARIANT=$(OBK_VARIANT) -j $(shell nproc)
mkdir -p output/$(APP_VERSION)
cp sdk/OpenRDA5981/.build/OpenBeken.bin output/$(APP_VERSION)/OpenRDA5981_$(APP_VERSION).img
#cp sdk/OpenRDA5981/ota_lzma/bootloader_lzma.bin output/$(APP_VERSION)/OpenRDA5981_$(APP_VERSION).bin
#dd conv=notrunc bs=1K if=sdk/OpenRDA5981/.build/OpenBeken.bin of=output/$(APP_VERSION)/OpenRDA5981_$(APP_VERSION).bin seek=12
#./sdk/OpenRDA5981/ota_lzma/imgpkt e sdk/OpenRDA5981/.build/OpenBeken.bin sdk/OpenRDA5981/.build/OpenBeken.bin.lzma
#python3 sdk/OpenRDA5981/ota_lzma/ota_pack_image_lzma.py sdk/OpenRDA5981/.build/OpenBeken.bin sdk/OpenRDA5981/.build/OpenBeken.bin.lzma output/$(APP_VERSION)/OpenRDA5981_$(APP_VERSION)_ota.img

# Add custom Makefile if required
-include custom.mk
Expand Down Expand Up @@ -690,6 +708,7 @@ clean:
-test -d ./sdk/ameba-rtos && cd sdk/ameba-rtos/amebalite_gcc_project && ./build.py -a ../../../platforms/RTL8720E -c
-test -d ./sdk/beken_freertos_sdk && $(MAKE) -C sdk/beken_freertos_sdk clean
-test -d ./sdk/OpenTXW81X && $(MAKE) -C sdk/OpenTXW81X/project clean
-test -d ./sdk/OpenRDA5981 && $(MAKE) -C sdk/OpenRDA5981 clean
-test -d ./sdk/OpenLN882H/build && cmake --build ./sdk/OpenLN882H/build --target clean
-test -d ./platforms/ESP-IDF/build-32 && cmake --build ./platforms/ESP-IDF/build-32 --target clean
-test -d ./platforms/ESP-IDF/build-c3 && cmake --build ./platforms/ESP-IDF/build-c3 --target clean
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ Although this repository is named "OpenBK7231T_App", it has evolved into a multi
- TR6260 (eg [HLK-M20](https://fccid.io/2AD56HLK-M20), XY-WE2S-A V1.1) (see [guide](https://www.elektroda.com/rtvforum/topic4093752.html))
- ECR6600 (eg [AXYU](https://developer.tuya.com/en/docs/iot/AXYU?id=Kb0rwbv5b7aiy), [AXY2S](https://developer.tuya.com/en/docs/iot/AXY2S?id=Kb1aztk507fxf), [WG236](https://www.skylabmodule.com/product/wifi6-802-11axbluetooth-ble-5-1-combo-module-wg236), [DSM-036](https://www.dusuniot.com/product-specification/dsm-036-wi-fi6-and-ble-dual-cloud-module]), CDI-WX56600A-00, [BL-M6600XT1](https://jkrorwxhkqmllp5m-static.micyjz.com/BL-M6600XT1_datasheet_V1.0.1.0_230817-aidllBpoKqpljSRnkmnkjlnjp.pdf?dp=GvUApKfKKUAU), [HF-LPT6200](http://www.hi-flying.com/hf-lpt6200) (see [guide](https://www.elektroda.com/rtvforum/topic4111822.html))
- TXW81X (eg TXW817-810, see [development thread](https://www.elektroda.com/rtvforum/topic4033757.html))
- RDA5981 (eg RDA5981AM, RDA5981BM, WRD2L, TYWRD3S, HLK-M50)

Please use automatically compiled binaries from the Releases tab. To build OpenBeken yourself for any supported platform, fork our version of the submodule SDK first, and then check out this app repository alongside it. Details further down. Alternatively consider using the easier [override method.](https://www.elektroda.com/rtvforum/topic4082682.html)

Expand Down
53 changes: 27 additions & 26 deletions docs/platforms.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,31 @@

| Platform | Family | WPA3 | OTA | GPIO | GPIO IRQ | UART | PWM | ADC | Deep sleep | WDT | SPI LED | IR |
|---------------------------------------------------------|-----------------|------|---------|------|----------|------|------|-----|------------|-----|---------|----|
| BK7231T | Beken | ✅¹² | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅¹² | ✅ |
| BK7231N | Beken | ✅¹² | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| BK7231S<br>BK7231U | Beken | ✅ | ✅¹ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| BK7238 | Beken | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| BK7252 | Beken | ✅ | ⚠️¹'¹⁴ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| BK7252N | Beken | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| XR809 | XRadio | ❌ | ❌⁵ | ✅ | ✅ | ✅ | ✅⁸ | ✅ | ✅ | ✅ | ❌ | ❌ |
| XR806 | XRadio | ✅ | ✅ | ✅ | ✅ | ✅ | ✅⁸ | ✅ | ✅ | ✅ | ❌ | ❌ |
| XR872/XF16 | XRadio | ✅ | ✅² | ✅ | ✅ | ✅ | ✅⁸ | ✅ | ✅ | ✅ | ❌ | ❌ |
| BL602/LF686 | Bouffalo Lab | ✅ | ✅⁴ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ |
| W800/W801 | Winner Micro | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ |
| W600/W601 | Winner Micro | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ |
| LN882H | Lightning Semi | ✅ | ✅⁴ | ✅ | ✅ | ❌ | ✅ | ❗️ | ❌ | ✅ | ✅ | ✅ |
| ESP8266<br>ESP8285 | Espressif | ⚠️¹³ | ✅²'⁴ | ✅ | ✅ | ✅ | ✅⁷ | ❌ | ❗️ | ❓⁹ | ❌ | ❌ |
| ESP32<br>-C2<br>-C3<br>-C5<br>-C6<br>-C61<br>-S2<br>-S3 | Espressif | ⚠️¹³ | ✅⁴ | ✅ | ✅ | ✅ | ✅ | ❓ | ✅¹⁰ | ✅ | ✅ | ❌ |
| TR6260 | Transa Semi | ❌ | ❗️³'⁴ | ✅ | ❌ | ❌ | ✅⁸ | ❌ | ❌ | ✅⁹ | ❌ | ❌ |
| RTL8711AM (Ameba1) | Realtek | ❗️ | ✅⁴ | ✅ | ✅ | ✅ | ✅⁸ | ❌ | ❌ | ✅ | ✅ | ❌ |
| RTL8710B (AmebaZ) | Realtek | ✅ | ✅⁴ | ✅ | ✅ | ✅ | ✅⁸ | ❌ | ❌ | ✅ | ✅ | ❌ |
| RTL8710C<br>RTL8720C (AmebaZ2) | Realtek | ✅ | ✅⁴ | ✅ | ✅ | ✅ | ✅⁸ | ➖ | ❌ | ✅ | ✅ | ✅ |
| RTL8720D (AmebaD)<br>RTL872xCSM<br>RTL8720CS (AmebaCS) | Realtek | ✅ | ✅⁴ | ✅ | ✅ | ✅ | ✅⁸ | ❌ | ❌ | ✅ | ✅ | ❗️ |
| RTL8721DA<br>RTL8711DAF (AmebaDplus) | Realtek | ✅ | ✅⁶ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❗️ |
| RTL8720E<br>RTL8710ECF (AmebaLite) | Realtek | ✅ | ✅⁶ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❗️ |
| ECR6600 | ESWIN | ✅ | ✅ | ✅ | ✅ | ✅ | ✅⁸ | ❗️ | ❗️¹¹ | ✅ | ❌ | ❌ |
| TXW81X | Taixin | ❌ | ❗️ | ✅ | ❓ | ❌ | ❌ | ❌ | ❌ | ❓ | ❌ | ❌ |
| Platform | Family | WPA3 | OTA | GPIO | GPIO IRQ | UART | PWM | ADC | Deep sleep | WDT | SPI LED | IR |
|---------------------------------------------------------|----------------|------|---------|------|----------|------|------|-----|------------|-----|---------|----|
| BK7231T | Beken | ✅¹² | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅¹² | ✅ |
| BK7231N | Beken | ✅¹² | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| BK7231S<br>BK7231U | Beken | ✅ | ✅¹ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| BK7238 | Beken | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| BK7252 | Beken | ✅ | ⚠️¹'¹⁴ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| BK7252N | Beken | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| XR809 | XRadio | ❌ | ❌⁵ | ✅ | ✅ | ✅ | ✅⁸ | ✅ | ✅ | ✅ | ❌ | ❌ |
| XR806 | XRadio | ✅ | ✅ | ✅ | ✅ | ✅ | ✅⁸ | ✅ | ✅ | ✅ | ❌ | ❌ |
| XR872/XF16 | XRadio | ✅ | ✅² | ✅ | ✅ | ✅ | ✅⁸ | ✅ | ✅ | ✅ | ❌ | ❌ |
| BL602/LF686 | Bouffalo Lab | ✅ | ✅⁴ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ |
| W800/W801 | Winner Micro | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ |
| W600/W601 | Winner Micro | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ |
| LN882H | Lightning Semi | ✅ | ✅⁴ | ✅ | ✅ | ❌ | ✅ | ❗️ | ❌ | ✅ | ✅ | ✅ |
| ESP8266<br>ESP8285 | Espressif | ⚠️¹³ | ✅²'⁴ | ✅ | ✅ | ✅ | ✅⁷ | ❌ | ❗️ | ❓⁹ | ❌ | ❌ |
| ESP32<br>-C2<br>-C3<br>-C5<br>-C6<br>-C61<br>-S2<br>-S3 | Espressif | ⚠️¹³ | ✅⁴ | ✅ | ✅ | ✅ | ✅ | ❓ | ✅¹⁰ | ✅ | ✅ | ❌ |
| TR6260 | Transa Semi | ❌ | ❗️³'⁴ | ✅ | ❌ | ❌ | ✅⁸ | ❌ | ❌ | ✅⁹ | ❌ | ❌ |
| RTL8711AM (Ameba1) | Realtek | ❗️ | ✅⁴ | ✅ | ✅ | ✅ | ✅⁸ | ❌ | ❌ | ✅ | ✅ | ❌ |
| RTL8710B (AmebaZ) | Realtek | ✅ | ✅⁴ | ✅ | ✅ | ✅ | ✅⁸ | ❌ | ❌ | ✅ | ✅ | ❌ |
| RTL8710C<br>RTL8720C (AmebaZ2) | Realtek | ✅ | ✅⁴ | ✅ | ✅ | ✅ | ✅⁸ | ➖ | ❌ | ✅ | ✅ | ✅ |
| RTL8720D (AmebaD)<br>RTL872xCSM<br>RTL8720CS (AmebaCS) | Realtek | ✅ | ✅⁴ | ✅ | ✅ | ✅ | ✅⁸ | ❌ | ❌ | ✅ | ✅ | ❗️ |
| RTL8721DA<br>RTL8711DAF (AmebaDplus) | Realtek | ✅ | ✅⁶ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❗️ |
| RTL8720E<br>RTL8710ECF (AmebaLite) | Realtek | ✅ | ✅⁶ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❗️ |
| ECR6600 | ESWIN | ✅ | ✅ | ✅ | ✅ | ✅ | ✅⁸ | ❗️ | ❗️¹¹ | ✅ | ❌ | ❌ |
| TXW81X | Taixin | ❌ | ❗️ | ✅ | ❓ | ❌ | ❌ | ❌ | ❌ | ❓ | ❌ | ❌ |
| RDA5981 | RDA | ❌ | ❓ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ➖ | ❌ |

✅ - Works<br>
❓ - Not tested<br>
Expand Down
5 changes: 5 additions & 0 deletions libraries/easyflash/inc/ef_cfg.h
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,11 @@
#define EF_START_ADDR 0xEF000
#define ENV_AREA_SIZE 0x6000

#elif PLATFORM_RDA5981

#define EF_START_ADDR 0xF7000
#define ENV_AREA_SIZE 0x4000

#elif WINDOWS

#define EF_START_ADDR 0
Expand Down
18 changes: 14 additions & 4 deletions libraries/easyflash/ports/ef_port.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#if !WINDOWS && !PLATFORM_TXW81X
#if !WINDOWS && !PLATFORM_TXW81X && !PLATFORM_RDA5981
#include "FreeRTOS.h"
#include "semphr.h"
#include "queue.h"
Expand Down Expand Up @@ -72,6 +72,16 @@ typedef k_mutex_handle_t QueueHandle_t;
#define xSemaphoreGive(a) csi_kernel_mutex_unlock(a)
extern struct spi_nor_flash* obk_flash;

#elif PLATFORM_RDA5981

#include "stdbool.h"
#include "rda_sys_wrapper.h"

typedef void* QueueHandle_t;
#define xSemaphoreCreateMutex rda_mutex_create
#define xSemaphoreTake rda_mutex_wait
#define xSemaphoreGive rda_mutex_realease

#elif WINDOWS

#include "framework.h"
Expand Down Expand Up @@ -172,7 +182,7 @@ EfErrCode ef_port_read(uint32_t addr, uint32_t* buf, size_t size)
#elif WINDOWS
memcpy(buf, env_area + addr, size);
return EF_NO_ERR;
#elif PLATFORM_TXW81X
#elif PLATFORM_TXW81X || PLATFORM_RDA5981
HAL_FlashRead(buf, size, addr);
return EF_NO_ERR;
#endif
Expand Down Expand Up @@ -211,7 +221,7 @@ EfErrCode ef_port_erase(uint32_t addr, size_t size)
return res;
#elif WINDOWS
memset(env_area + addr, 0xFF, size);
#elif PLATFORM_TXW81X
#elif PLATFORM_TXW81X || PLATFORM_RDA5981
HAL_FlashEraseSector(addr);
return EF_NO_ERR;
#endif
Expand Down Expand Up @@ -250,7 +260,7 @@ EfErrCode ef_port_write(uint32_t addr, const uint32_t* buf, size_t size)
#elif WINDOWS
memcpy(env_area + addr, buf, size);
return EF_NO_ERR;
#elif PLATFORM_TXW81X
#elif PLATFORM_TXW81X || PLATFORM_RDA5981
HAL_FlashWrite(buf, size, addr);
return EF_NO_ERR;
#endif
Expand Down
Loading
Loading