由于工作需求,我的电脑都是Linux桌面版,现在使用的是Ubuntu2404,看了官网CW32没有提供Linux的烧录套间于是想利用OpenOCD提供调试和烧录的能力。我之前编写过ht32f523xx芯片的烧录算法,过程是先解锁Flash,擦除Flash然后将二进制文件写入到特定区域,Flash加写保护,验证可用,在CW32L010上复刻这个方案。我看了CW32L010的寄存器手册,Flash的解锁操作应该是向PAGELOCK写入0x5A5AFFFF(5A5A为写KEY)。但是我在openocd中使用target_write_u32()接口的时候发现写操作似乎没有生效,在写入0x5A5AFFFF后再使用target_read_u32()读出PAGELOCK的值发现还是0x00000000。请问是我的操作有问题吗?

图:PAGELOCK寄存器

图:解锁函数的实现

图:openocd连接cw32l010,使用telnet localhost 4444>halt>cw32l010x mass_erase 0报错
|