Compare commits
1 Commits
edacf69fb8
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 1a47837a2c |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -5,5 +5,6 @@
|
|||||||
/sdkconfig
|
/sdkconfig
|
||||||
/sdkconfig.old
|
/sdkconfig.old
|
||||||
*.bin
|
*.bin
|
||||||
|
!/firmware/*.bin
|
||||||
*.elf
|
*.elf
|
||||||
*.map
|
*.map
|
||||||
|
|||||||
@@ -57,6 +57,8 @@ J1 커넥터의 pin 1은 `BAT+`, pin 2는 `GND`입니다. 커넥터 규격만
|
|||||||
|
|
||||||
## 빌드와 설치
|
## 빌드와 설치
|
||||||
|
|
||||||
|
직접 빌드하지 않고 바로 플래싱하려면 저장소의 [사전 빌드 펌웨어](firmware/)를 사용하십시오. 앱·부트로더·파티션 테이블과 Linux/macOS 및 Windows용 플래시 스크립트가 함께 들어 있습니다.
|
||||||
|
|
||||||
권장 환경은 ESP-IDF **v5.3.4**입니다. 다른 ESP-IDF 버전은 RGB LCD와 I2S API 차이 때문에 빌드 결과가 달라질 수 있습니다.
|
권장 환경은 ESP-IDF **v5.3.4**입니다. 다른 ESP-IDF 버전은 RGB LCD와 I2S API 차이 때문에 빌드 결과가 달라질 수 있습니다.
|
||||||
|
|
||||||
### 1. 플래싱 준비
|
### 1. 플래싱 준비
|
||||||
|
|||||||
49
firmware/README.md
Normal file
49
firmware/README.md
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
# Radick 사전 빌드 펌웨어
|
||||||
|
|
||||||
|
Basic CrowPanel 7.0 V3.0(`DIS08070H`, ESP32-S3 N4R8)용 펌웨어입니다. ESP-IDF v5.3.4로 소스 커밋 `edacf69`에서 클린 빌드했습니다. 다른 CrowPanel 버전이나 RD-03D V2에는 올리지 마십시오.
|
||||||
|
|
||||||
|
## 포함 파일
|
||||||
|
|
||||||
|
| 파일 | 크기 | Flash 오프셋 |
|
||||||
|
|---|---:|---:|
|
||||||
|
| `bootloader.bin` | 14,736 bytes | `0x0` |
|
||||||
|
| `partition-table.bin` | 3,072 bytes | `0x8000` |
|
||||||
|
| `radick.bin` | 639,952 bytes | `0x10000` |
|
||||||
|
|
||||||
|
세 바이너리를 모두 같은 빌드에서 만들었습니다. `radick.bin` 하나만 올리지 말고 세 파일을 모두 기록하십시오.
|
||||||
|
|
||||||
|
## 빠른 플래싱
|
||||||
|
|
||||||
|
1. RD-03D에 공급하는 외부 5 V 전원을 끄거나 VCC를 분리합니다.
|
||||||
|
2. 데이터 USB-C 케이블로 CrowPanel을 PC에 연결합니다.
|
||||||
|
3. Python용 esptool 4.9.0을 준비합니다.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python3 -m pip install esptool==4.9.0
|
||||||
|
```
|
||||||
|
|
||||||
|
Linux/macOS:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./firmware/flash.sh /dev/ttyUSB0
|
||||||
|
```
|
||||||
|
|
||||||
|
Windows PowerShell:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
powershell -ExecutionPolicy Bypass -File .\firmware\flash.ps1 COM5
|
||||||
|
```
|
||||||
|
|
||||||
|
포트 이름은 실제 환경에 맞게 바꾸십시오. `Connecting...`에서 멈추면 `BOOT`을 누른 채 `RESET`을 짧게 누르고, `BOOT`을 놓은 뒤 다시 실행합니다. 완료 후 RD-03D의 5 V 전원을 켜고 CrowPanel을 리셋합니다.
|
||||||
|
|
||||||
|
## 무결성 확인
|
||||||
|
|
||||||
|
Linux/macOS:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
(cd firmware && sha256sum -c SHA256SUMS)
|
||||||
|
```
|
||||||
|
|
||||||
|
자세한 포트 확인, ESP-IDF 빌드 및 문제 해결 방법은 루트 [README](../README.md#빌드와-설치)를 참고하십시오.
|
||||||
|
|
||||||
|
> 이 펌웨어는 ESP-IDF 클린 빌드와 자동 테스트를 통과했지만 실제 CrowPanel에 직접 플래싱한 실기 검증은 아직 수행하지 않았습니다.
|
||||||
3
firmware/SHA256SUMS
Normal file
3
firmware/SHA256SUMS
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
cfc2b532f0a41d4e9b3af4c953e154780b328adc0f04e4cf91e452179244c0fa bootloader.bin
|
||||||
|
73c0b5c3e5fcba3a151cc70c453c93dd5f4798899e7f2f8cca76da1f32ffc501 partition-table.bin
|
||||||
|
73059503d1602322b045d8eac868b885b4a9946deba63a109d3fda930082d80c radick.bin
|
||||||
BIN
firmware/bootloader.bin
Normal file
BIN
firmware/bootloader.bin
Normal file
Binary file not shown.
30
firmware/flash.ps1
Normal file
30
firmware/flash.ps1
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
param(
|
||||||
|
[Parameter(Mandatory = $true, Position = 0)]
|
||||||
|
[string]$Port
|
||||||
|
)
|
||||||
|
|
||||||
|
$ErrorActionPreference = "Stop"
|
||||||
|
$FirmwareDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
||||||
|
|
||||||
|
Write-Host "Keep the RD-03D external 5 V supply OFF while flashing."
|
||||||
|
|
||||||
|
$EsptoolArgs = @(
|
||||||
|
"-m", "esptool",
|
||||||
|
"--chip", "esp32s3",
|
||||||
|
"--port", $Port,
|
||||||
|
"--baud", "460800",
|
||||||
|
"--before", "default_reset",
|
||||||
|
"--after", "hard_reset",
|
||||||
|
"write_flash",
|
||||||
|
"--flash_mode", "dio",
|
||||||
|
"--flash_freq", "80m",
|
||||||
|
"--flash_size", "4MB",
|
||||||
|
"0x0", (Join-Path $FirmwareDir "bootloader.bin"),
|
||||||
|
"0x8000", (Join-Path $FirmwareDir "partition-table.bin"),
|
||||||
|
"0x10000", (Join-Path $FirmwareDir "radick.bin")
|
||||||
|
)
|
||||||
|
|
||||||
|
& python @EsptoolArgs
|
||||||
|
if ($LASTEXITCODE -ne 0) {
|
||||||
|
exit $LASTEXITCODE
|
||||||
|
}
|
||||||
26
firmware/flash.sh
Executable file
26
firmware/flash.sh
Executable file
@@ -0,0 +1,26 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
if [ "$#" -ne 1 ]; then
|
||||||
|
echo "Usage: $0 /dev/ttyUSB0" >&2
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
radick_port="$1"
|
||||||
|
firmware_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
|
||||||
|
echo "Keep the RD-03D external 5 V supply OFF while flashing."
|
||||||
|
|
||||||
|
exec python3 -m esptool \
|
||||||
|
--chip esp32s3 \
|
||||||
|
--port "$radick_port" \
|
||||||
|
--baud 460800 \
|
||||||
|
--before default_reset \
|
||||||
|
--after hard_reset \
|
||||||
|
write_flash \
|
||||||
|
--flash_mode dio \
|
||||||
|
--flash_freq 80m \
|
||||||
|
--flash_size 4MB \
|
||||||
|
0x0 "$firmware_dir/bootloader.bin" \
|
||||||
|
0x8000 "$firmware_dir/partition-table.bin" \
|
||||||
|
0x10000 "$firmware_dir/radick.bin"
|
||||||
BIN
firmware/partition-table.bin
Normal file
BIN
firmware/partition-table.bin
Normal file
Binary file not shown.
BIN
firmware/radick.bin
Normal file
BIN
firmware/radick.bin
Normal file
Binary file not shown.
Reference in New Issue
Block a user