The C-SKY Flash Programmer is a piece of software supplied for download by XuanTie at
https://www.xrvm.cn/community/download?id=4425633167990394880
This tool works with CK-Link programmers to read and write to the flash memory in C-Sky's proprietary RISC core CPUs. CPUs based on C-SKY architecture include the WinnerMicro W800, W801 and W806 - XT804/CK804 type. TaiXin Semiconductor's TXW8xx are also based on C-SKY architecture - the CK803.
To make your own CKLink Lite using a cheap STM32F103 board see this thread:
https://www.elektroda.com/rtvforum/topic4120455.html or cloned cheap ready-made CK-Link boards can be bought on sites like Ali Express. There's also the official tool, for a price
Here I will demonstrate the process to read and write to a TXW817-810 - a 1mb Taixin chip seen in many cheap A9/X5/X6 type mini cams.
When PR is merged C-SKY Flash Programmer can be downloaded from
https://github.com/openshwprojects/FlashTools/tree/main/C-SKY
Initial run of the program after install:
To read device flash, an algorithm .elf file needs to be specified. Currently I have working TXW81x and W806 elf files tested, attached.
Navigate to
Advance
Under the read tab change to Bin programmer, set a save path for flash read and choose appropriate length for the flash in the target device
Under "Local JTAG" tab set ICE Clk to 1200Khz
With the CK-Link device connected, which in the case of the Taixin chips is through PA9 (DebugCLK) -> CKLink SCK and PA10 (DebugIO) -> CKLink DAT
Example device -
X6 cam
Here's that cam connected to STM32 running as a CK-Link Lite
GND - GND
PA10 - STM32 A1
PA9 - STM32 A5
power via 5v micro-USB
Click the
Read, not
Start, button to dump flash under the
Read tab
Progress
Completion
To write a flash file leave the
Advance section and come back to main screen. Here I'll flash the
Taixin demo firmware txw81x_v2.5.2.6-31320_2025.5.25_IOT_AT_PC6-PC7.bin available from
https://github.com/openshwprojects/FlashDumps/tree/main/IoT/TXW817
Highlight the box labelled
Hex and click
REMOVE. Add a
Bin type from the
ADD button. Specify file to be flashed and to flash from 0x0. In the Advance menus I have chosen to
Chip Erase the whole flash under
Erase Type.
Start button at the bottom begins flash
On next boot I can see from the output on TX/PC7 that it is the demo firmware booting
And flashing back my backup results in a working original firmware again.
Comments
Regarding the TXW806, also CK803, it appears PA8 and PA9 should be used instead of PA9/PA10. From TXW80X Mass production and programming guide.pdf at https://github.com/divadiow/DataSheets/tree/main/Taixin... [Read more]
and of course WinnerMicro W80x can be dumped in this app too if start address is correctly set https://obrazki.elektroda.pl/1290401300_1748521283_bigthumb.jpg [Read more]
@divadiow @insmod are there any known technical details of the protocol used to flash it here? I would like to implement it with Beken, Arduino, or CH341. Anything? Is this I2C? Alternatively, a salae... [Read more]
Probably some SWD or JTAG variant [Read more]
Isn't JTAG using 4 wires? SWD, on the other hand... well, it makes sense, SWDIO and SWCLK, right? Any futher references on that? Do we expect it to carry usual flash commands, or would it be fully custom? We... [Read more]
https://www.tindie.com/products/johnnywu/cklink-lite-debugger-probe/ [Read more]