首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >H7-TOOL自制Flash读写保护算法系列,为凌欧LKS32MC03x制作读写使能和解除算法,支持在线烧录和脱机烧录使用(2024-10-28)

H7-TOOL自制Flash读写保护算法系列,为凌欧LKS32MC03x制作读写使能和解除算法,支持在线烧录和脱机烧录使用(2024-10-28)

作者头像
Simon223
发布2025-10-16 08:56:41
发布2025-10-16 08:56:41
1500
代码可运行
举报
运行总次数:0
代码可运行

说明:

很多IC厂家仅发布了内部Flash算法文件,并没有提供读写保护算法文件,也就是选项字节算法文件,需要我们制作。

实际上当前已经发布的TOOL版本,已经自制很多了。但是依然有些厂家还没自制,所以陆续开始为这些厂家提供读写保护支持。

近期已经自制了STM32H7全系列,N32G003,N32G031,  STM32U5全系列,这次为凌鸥LKS32MC03x提供Flash保护支持。 实现效果:

从2.27版本开始将正式带此支持,支持解除和使能。这款芯片没有选项字节的概念,是通过Flash末尾的4字节来解除和使能。

解除保护已经在TOOL上位机集成:

写保护的时候,大家可以TOOL的滚码常量功能,将Flash末尾设置非0xFFFF FFFF数值即可,比如我这里使用的32KB容量Flash,设置地址0x0000 7FFC为0x0000 0000,就可以使能保护

实现代码和原理

通过H7-TOOL的LUA小程序就可以方便的实现保护解除,不需要自制算法文件。

对应的代码如下,这个不需要用户去管,已经封装到TOOL里面了,这里给大家分享是方便大家了解:

代码语言:javascript
代码运行次数:0
运行
复制
--芯片专有的解除保护函数
function MCU_RemoveProtect(void)
        --MCU_ProgOptionBytes(OB_SECURE_OFF)
 
        -- SYS_WR_PROTECT = 0x7a83 开启写使能
        if (pg_write32(0x400000A8, 0x7a83) == 0) then
                --print("pg_write32(0x400000A8, 0x7a83)")
        end
 
        -- SYS_FLSE = 0x8FCA
        if (pg_write32(0x400000D0, 0x8FCA) == 0) then
                --print("pg_write32(0x400000D0, 0x8FCA)")
        end
 
        -- SYS_AFE_REG0 |= BIT15  BIT15:PLLPDN 
        pg_write32(0x40000010, 0x8000)
 
        -- 等待PLL稳定
        delayms(1) 
 
        -- SYS_CLK_CFG = 0x000001FF 48MHz
        if (pg_write32(0x40000080, 0x000001FF) == 0) then
                --print("pg_write32(0x40000080, 0x000001FF)")
        end
 
        -- FLASH_CFG = 0x80008030 开启擦除,Full,48MHz
        pg_write32(0x00010000, 0x80008030)
 
        -- FLASH_ERASE = 0x7654DCBA,trig full erase
        pg_write32(0x00010010, 0x7654DCBA)
 
        -- SYS_FLSE = 0
        pg_write32(0x400000D0, 0)
 
        -- FLASH_CFG = 0x00008030 关闭擦除
        pg_write32(0x00010000, 0x00008030)
 
        -- SYS_WR_PROTECT = 0x0;  关闭写使能
        if (pg_write32(0x400000A8, 0) == 0) then
                --print("pg_write32(0x400000A8, 0)")
    end
 
        delayms(100)
 
--pg_enter_debug()
end
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档