Skip to content
Merged
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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
165 changes: 138 additions & 27 deletions .github/workflows/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,34 +51,20 @@ jobs:
fail-fast: false
matrix:
legs:
- {RTT_BSP: "Edgi_Talk_M33_ADC"}
- {RTT_BSP: "Edgi_Talk_M33_AHT20"}
- {RTT_BSP: "Edgi_Talk_M33_Audio"}
- {RTT_BSP: "Edgi_Talk_M33_Blink_LED"}
- {RTT_BSP: "Edgi_Talk_CherryUSB/Edgi_Talk_M33_USB_D"}
- {RTT_BSP: "Edgi_Talk_CherryUSB/Edgi_Talk_M33_USB_H"}
- {RTT_BSP: "Edgi_Talk_M33_Driver_All"}
- {RTT_BSP: "Edgi_Talk_M33_Template"}
- {RTT_BSP: "Edgi_Talk_CherryUSB/Edgi_Talk_M33_USB_RoleSwitch"}
- {RTT_BSP: "Edgi_Talk_IPC/Edgi_Talk_M33_IPC"}
- {RTT_BSP: "Edgi_Talk_IPC/Edgi_Talk_M55_IPC"}
- {RTT_BSP: "Edgi_Talk_M55_Blink_LED"}
- {RTT_BSP: "Edgi_Talk_CherryUSB/Edgi_Talk_M55_USB_D"}
- {RTT_BSP: "Edgi_Talk_CherryUSB/Edgi_Talk_M55_USB_H"}
- {RTT_BSP: "Edgi_Talk_CherryUSB/Edgi_Talk_Extend_Screen"}
- {RTT_BSP: "Edgi_Talk_CherryUSB/Edgi_Talk_M55_USB_UVC"}
- {RTT_BSP: "Edgi_Talk_CherryUSB/Edgi_Talk_USB_Deepcraft"}
- {RTT_BSP: "Edgi_Talk_M55_Driver_All"}
- {RTT_BSP: "Edgi_Talk_M55_DEEPCRAFT_Deploy_Vision"}
- {RTT_BSP: "Edgi_Talk_M55_CoreMark"}
- {RTT_BSP: "Edgi_Talk_M33_HyperRam"}
- {RTT_BSP: "Edgi_Talk_M33_Key_Irq"}
- {RTT_BSP: "Edgi_Talk_M33_LSM6DS3"}
- {RTT_BSP: "Edgi_Talk_M55_LVGL"}
- {RTT_BSP: "Edgi_Talk_M33_S_Template"}
- {RTT_BSP: "Edgi_Talk_M33_Template"}
- {RTT_BSP: "Edgi_Talk_M55_MIPI_LCD"}
- {RTT_BSP: "Edgi_Talk_M33_RTC"}
- {RTT_BSP: "Edgi_Talk_M33_SDCARD"}
- {RTT_BSP: "Edgi_Talk_M33_WavPlayer"}
- {RTT_BSP: "Edgi_Talk_M55_WIFI"}
- {RTT_BSP: "Edgi_Talk_M55_XiaoZhi"}
- {RTT_BSP: "Edgi_Talk_CherryUSB/Edgi_Talk_Extend_Screen"}
- {RTT_BSP: "Edgi_Talk_CherryUSB/Edgi_Talk_M55_USB_RoleSwitch"}
- {RTT_BSP: "Edgi_Talk_CherryUSB/Edgi_Talk_M55_USB_UVC"}
- {RTT_BSP: "Edgi_Talk_CherryUSB/Edgi_Talk_USB_Deepcraft"}
- {RTT_BSP: "Edgi_Talk_IPC/Edgi_Talk_M55_IPC"}
steps:
- uses: actions/checkout@v2
- name: Set up Python
Expand All @@ -104,23 +90,148 @@ jobs:
echo "RTT_ROOT=${{ github.workspace }}" >> $GITHUB_ENV
echo "RTT_CC=gcc" >> $GITHUB_ENV

- name: Check and Run mklinks.sh
- name: Prepare edgeprotecttools for M33 secure image
if: ${{ success() && contains(matrix.legs.RTT_BSP, 'M33') }}
shell: bash
run: |
sudo apt-get -qq install wine64
tool_dir="${{ github.workspace }}/tools/edgeprotecttools/bin"
mv "$tool_dir/edgeprotecttools.exe" "$tool_dir/edgeprotecttools.win.exe"
cat > "$tool_dir/edgeprotecttools.exe" <<'EOF'
#!/usr/bin/env bash
set -e
export WINEDEBUG=-all
export WINEPREFIX="${WINEPREFIX:-${RUNNER_TEMP:-/tmp}/w}"
script_dir="$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)"
exec wine "$script_dir/edgeprotecttools.win.exe" "$@"
EOF
chmod +x "$tool_dir/edgeprotecttools.exe"
WINEPREFIX="${RUNNER_TEMP:-/tmp}/w" wineboot --init || true

- name: Prepare project links
if: ${{ success() }}
shell: bash
env:
RTT_BSP: ${{ matrix.legs.RTT_BSP }}
run: |
cd projects/$RTT_BSP
project_dir="projects/$RTT_BSP"
cd "$project_dir"
if [ -f mklinks.sh ]; then
chmod +x mklinks.sh
./mklinks.sh
fi
link_if_missing() {
name="$1"
target="$2"
if [ ! -e "$name" ] && [ ! -L "$name" ]; then
ln -s "$target" "$name"
fi
}
link_if_missing libraries "${{ github.workspace }}/libraries"
link_if_missing libs "${{ github.workspace }}/projects/libs"
link_if_missing rt-thread "${{ github.workspace }}/rt-thread"
link_if_missing tools "${{ github.workspace }}/tools"

- name: Compile ${{ matrix.legs.RTT_BSP }}
if: ${{ success() }}
shell: bash
env:
RTT_BSP: ${{ matrix.legs.RTT_BSP }}
run: |
cd projects
scons -C $RTT_BSP
if [[ "$RTT_BSP" == *M33* ]]; then
scons -C "projects/$RTT_BSP" build/rtthread_app.hex
else
scons -C "projects/$RTT_BSP"
fi

- name: Merge M33 secure image
if: ${{ success() && contains(matrix.legs.RTT_BSP, 'M33') }}
shell: bash
env:
RTT_BSP: ${{ matrix.legs.RTT_BSP }}
run: |
project_dir="${{ github.workspace }}/projects/$RTT_BSP"
cd "$project_dir"
old_secure_hex="libraries/components/infineon-pse84-secure-firmware-latest/build/rtthread.hex"
new_secure_hex="build/secure_fw/rtthread.hex"
if [ -f "$new_secure_hex" ]; then
secure_hex="$new_secure_hex"
elif [ -f "$old_secure_hex" ]; then
secure_hex="$old_secure_hex"
else
echo "Secure HEX not found in $new_secure_hex or $old_secure_hex" >&2
exit 1
fi

boot_config="build/boot_with_extended_boot_scons.ci.json"
python - "$secure_hex" "$boot_config" <<'PY'
import json
import os
import sys

secure_hex = sys.argv[1].replace(os.sep, "/")
boot_config = sys.argv[2]

with open("config/boot_with_extended_boot_scons.json", "r") as config_in:
config = json.load(config_in)

for item in config.get("content", []):
if item.get("name") != "merge":
continue
for command in item.get("commands", []):
inputs = command.get("inputs", [])
if len(inputs) > 1:
inputs[1]["file"] = secure_hex

os.makedirs(os.path.dirname(boot_config), exist_ok=True)
with open(boot_config, "w") as config_out:
json.dump(config, config_out, indent=4)
PY

"${{ github.workspace }}/tools/edgeprotecttools/bin/edgeprotecttools.exe" run-config -i "$boot_config"
test -f build/rtthread_app.hex
test -f "$secure_hex"
test -f build/rtthread.hex

- name: Collect HEX artifacts
if: ${{ success() }}
shell: bash
env:
RTT_BSP: ${{ matrix.legs.RTT_BSP }}
run: |
safe_bsp="${RTT_BSP//\//_}"
echo "SAFE_BSP=$safe_bsp" >> "$GITHUB_ENV"
artifact_dir="${{ github.workspace }}/ci-artifacts/$safe_bsp"
rm -rf "$artifact_dir"
mkdir -p "$artifact_dir"

project_dir="${{ github.workspace }}/projects/$RTT_BSP"

found=0
for hex in \
"$project_dir"/*.hex \
"$project_dir"/build/*.hex \
"$project_dir"/build/secure_fw/*.hex \
"$project_dir"/build/secure_scons/*.hex \
"$project_dir"/Debug/*.hex \
"$project_dir"/libraries/components/infineon-pse84-secure-firmware-latest/build/*.hex; do
[ -f "$hex" ] || continue
rel="${hex#$project_dir/}"
cp "$hex" "$artifact_dir/${rel//\//_}"
found=1
done

if [ "$found" -eq 0 ]; then
echo "No HEX artifacts found under $project_dir" >&2
exit 1
fi

ls -lh "$artifact_dir"

- name: Upload HEX artifacts
if: ${{ success() }}
uses: actions/upload-artifact@v4
with:
name: firmware-${{ env.SAFE_BSP }}
path: ci-artifacts/${{ env.SAFE_BSP }}
if-no-files-found: error
51 changes: 25 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,42 +19,41 @@ $ sdk-bsp-psoc_e84-edgi-talk
├── README.md
├── sdk-bsp-psoc_e84-edgi-talk.yaml
├── docs
│ ├── Edgi-Talk_Board_Schematic.pdf
│ └── Edgi-Talk_User_Manual.pdf
│ ├── 3d model
│ ├── board
│ ├── components
│ ├── figures
│ ├── source
│ ├── tools
│ ├── coding_style_cn.md
│ ├── RT-Thread 编程指南.pdf
│ └── 外设拓展配置手册.pdf
├── libraries
│ ├── HAL_Drivers
├── projects
│ ├── Edgi-Talk_ADC
│ ├── Edgi-Talk_AHT20
│ ├── Edgi-Talk_Audio
│ ├── Edgi-Talk_Blink_Led
│ ├── Edgi_Talk_CherryUSB
│ │ ├── Edgi_Talk_M33_USB_D
│ │ ├── Edgi_Talk_M33_USB_H
│ │ ├── Edgi_Talk_M55_USB_D
│ │ └── Edgi_Talk_M55_USB_H
│ │ ├── Edgi_Talk_Extend_Screen
│ │ ├── Edgi_Talk_M33_USB_RoleSwitch
│ │ ├── Edgi_Talk_M55_USB_RoleSwitch
│ │ ├── Edgi_Talk_M55_USB_UVC
│ │ └── Edgi_Talk_USB_Deepcraft
│ ├── Edgi_Talk_IPC
│ │ ├── Edgi_Talk_M33_IPC
│ │ └── Edgi_Talk_M55_IPC
│ ├── Edgi-Talk_CoreMark
│ ├── Edgi-Talk_CDC_Echo
│ ├── Edgi-Talk_HyperRam
│ ├── Edgi-Talk_Key_Irq
│ ├── Edgi-Talk_LSM6DS3
│ ├── Edgi-Talk_LVGL
│ ├── Edgi_Talk_M33_Blink_LED
│ ├── Edgi-Talk_M33_Template
│ ├── Edgi-Talk_MIPI_LCD
│ ├── Edgi-Talk_RTC
│ ├── Edgi-Talk_SDCARD
│ ├── Edgi-Talk_WavPlayer
│ ├── Edgi-Talk_WIFI
│ ├── Edgi-Talk_XiaoZhi
│ ├── Edgi_Talk_M33_Driver_All
│ ├── Edgi_Talk_M33_Template
│ ├── Edgi_Talk_M55_DEEPCRAFT_Deploy_Vision
│ ├── Edgi_Talk_M55_Driver_All
│ ├── Edgi_Talk_M55_LVGL
│ ├── Edgi_Talk_M55_WIFI
│ ├── Edgi_Talk_M55_XiaoZhi
│ ├── FAQ_page
│ └── libs
└── rt-thread
```

* `sdk-bsp-psoc_e84-edgi-talk.yaml`: Hardware description file for the Edgi-Talk board
* `docs`: Board schematics, user manual, and datasheets
* `docs`: Board documents, 3D models, component references, documentation source, and tool references
* `libraries`: Common peripheral drivers for Edgi-Talk
* `projects`: Example applications, including sensor, display, audio, USB, and network demos
* `rt-thread`: RT-Thread source code
Expand Down Expand Up @@ -116,7 +115,7 @@ The system boot sequence is as follows:

---

* If example projects cannot run correctly, compile and flash the **Edgi_Talk_M33_Blink_LED** project first to ensure core initialization and startup flow are functioning before running other demos.
* If example projects cannot run correctly, compile and flash the **Edgi_Talk_M33_Template** project first to ensure core initialization and startup flow are functioning before running other demos.
* To enable the M55 core, configure it inside the **M33 project**:

```
Expand Down
51 changes: 24 additions & 27 deletions README_zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@

## 简介

中文页

`sdk-bsp-psoc_e84-edgi-talk` 是针对 **PSoC™ E84 Edgi-Talk 开发板** 的 RT-Thread 支持包,同时也可作为用户开发使用的软件 SDK,让用户可以更方便地开发自己的应用程序。

Edgi-Talk 开发板基于 **PSoC™ E84 MCU**,为工程师提供了一个灵活、全面的开发平台。板上集成了丰富的外设接口和示例模块,助力开发者快速完成多传感器、显示和通信应用的开发。
Expand All @@ -19,42 +17,41 @@ $ sdk-bsp-psoc_e84-edgi-talk
├── README.md
├── sdk-bsp-psoc_e84-edgi-talk.yaml
├── docs
│ ├── Edgi-Talk_Board_Schematic.pdf
│ └── Edgi-Talk_User_Manual.pdf
│ ├── 3d model
│ ├── board
│ ├── components
│ ├── figures
│ ├── source
│ ├── tools
│ ├── coding_style_cn.md
│ ├── RT-Thread 编程指南.pdf
│ └── 外设拓展配置手册.pdf
├── libraries
│ ├── HAL_Drivers
├── projects
│ ├── Edgi_Talk_ADC
│ ├── Edgi_Talk_AHT20
│ ├── Edgi_Talk_Audio
│ ├── Edgi_Talk_Blink_Led
│ ├── Edgi_Talk_CherryUSB
│ │ ├── Edgi_Talk_M33_USB_D
│ │ ├── Edgi_Talk_M33_USB_H
│ │ ├── Edgi_Talk_M55_USB_D
│ │ └── Edgi_Talk_M55_USB_H
│ │ ├── Edgi_Talk_Extend_Screen
│ │ ├── Edgi_Talk_M33_USB_RoleSwitch
│ │ ├── Edgi_Talk_M55_USB_RoleSwitch
│ │ ├── Edgi_Talk_M55_USB_UVC
│ │ └── Edgi_Talk_USB_Deepcraft
│ ├── Edgi_Talk_IPC
│ │ ├── Edgi_Talk_M33_IPC
│ │ └── Edgi_Talk_M55_IPC
│ ├── Edgi_Talk_CoreMark
│ ├── Edgi_Talk_CDC_Echo
│ ├── Edgi_Talk_HyperRam
│ ├── Edgi_Talk_Key_Irq
│ ├── Edgi_Talk_LSM6DS3
│ ├── Edgi_Talk_LVGL
│ ├── Edgi_Talk_M33_Blink_LED
│ ├── Edgi_Talk_M33_Driver_All
│ ├── Edgi_Talk_M33_Template
│ ├── Edgi_Talk_MIPI_LCD
│ ├── Edgi_Talk_RTC
│ ├── Edgi_Talk_SDCARD
│ ├── Edgi_Talk_WavPlayer
│ ├── Edgi_Talk_WIFI
│ ├── Edgi_Talk_XiaoZhi
│ ├── Edgi_Talk_M55_DEEPCRAFT_Deploy_Vision
│ ├── Edgi_Talk_M55_Driver_All
│ ├── Edgi_Talk_M55_LVGL
│ ├── Edgi_Talk_M55_WIFI
│ ├── Edgi_Talk_M55_XiaoZhi
│ ├── FAQ_page
│ └── libs
└── rt-thread
```

* `sdk-bsp-psoc_e84-edgi-talk.yaml`:描述 Edgi-Talk 开发板的硬件信息
* `docs`:开发板原理图、用户手册及 datasheet
* `docs`:开发板文档、3D 模型、组件参考、文档源码和工具参考
* `libraries`:Edgi-Talk 通用外设驱动
* `projects`:示例工程文件夹,包含传感器、显示、音频、USB、网络等示例程序
* `rt-thread`:RT-Thread 源码
Expand Down Expand Up @@ -114,7 +111,7 @@ $ sdk-bsp-psoc_e84-edgi-talk

---

* 若示例工程无法正常运行,建议先编译并烧录 **Edgi_Talk_M33_Blink_LED** 工程,确保初始化与核心启动流程正常,再运行本示例。
* 若示例工程无法正常运行,建议先编译并烧录 **Edgi_Talk_M33_Template** 工程,确保初始化与核心启动流程正常,再运行本示例。
* 若要开启 M55,需要在 **M33 工程** 中打开配置:

```
Expand Down
Loading
Loading