C-SKY Flash Programmer with STM32 CK-Link Lite: Reading/Writing to Taixin TXW817-810 MCU
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.

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

Code: Text
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

Code: Text
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
Code: Text
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]