H7-TOOL自制Flash读写保护算法系列,为凌欧LKS32MC45x/MC05x/MC08x制作使能和解除算法,支持在线烧录和脱机烧录使用2024-12-15

news/2024/12/16 12:41:04/文章来源:https://www.cnblogs.com/armfly/p/18609829

说明:

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

实际上当前已经发布的TOOL版本,已经自制很多了,比如已经支持的兆易创新大部分型号,新唐的大部分型号等。但是依然有些厂家还没自制,所以陆续开始为这些厂家提供读写保护支持。

近期已经自制了STM32H7全系列,N32G003,N32G031,  STM32U5全系列和凌欧LKS32MC03X,复旦微FM33LE系列

这次为凌欧的LKS32MC45x,LKS32MC05x,LKS32MC08x提供Flash保护支持

实现效果:

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

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

写保护的时候,大家可以TOOL的滚码常量功能,将Flash末尾设置非0xFFFF FFFF数值即可,比如我这里使用LKS32MC45x的256KB容量Flash,设置地址0x0003FFF0开始的16个字节为0x0000 0000,就可以使能保护。

省事些,直接配置末尾4个为0即可


实现代码和原理

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

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

--芯片专有的解除保护函数
function MCU_RemoveProtect(void)--MCU_ProgOptionBytes(OB_SECURE_OFF)for j = 1, 2, 1 do-- SYS_PROTECT = 0x7a83 开启写使能if (pg_write32(0x400198A8, 0x7a83) == 0) then--print("pg_write32(0x400000A8, 0x7a83)")end-- clock 192M-- SYS_AFE_REGB = 0 Sel RCif (pg_write32(0x4001983C, 0) == 0) then--print("pg_write32(0x400000D0, 0x8FCA)")end-- RC 12MHz ON, XTAL OFF, PLLPDN使能,XTALPDN关闭,RCHPD开-- SYS_AFE_REGA = ((1<<1)|(0<<6)|(1<<7)) if (pg_write32(0x40019838, ((1<<1)|(0<<6)|(1<<7))) == 0) then--print("pg_write32(0x400000D0, 0x8FCA)")end--SYS_CLK_CFG = (0xFF|(1<<8)) 192Mif (pg_write32(0x40019880, (0xFF|(1<<8))) == 0) then--print("pg_write32(0x400000D0, 0x8FCA)")end --delayms(100)-- SYS_FLSE = 0x8FCA,写入密钥,解除擦除保护if (pg_write32(0x400198D0, 0x8FCA) == 0) then--print("pg_write32(0x400000D0, 0x8FCA)")end-- FSMC_ICFG |= BIT31
        pg_write32(0x4001A080, 0x80000000)--delayms(50) -- SYS_CLK_CFG = 0x000001FF 48MHz--if (pg_write32(0x40000080, 0x000001FF) == 0) then--  --print("pg_write32(0x40000080, 0x000001FF)")--end-- FSMC_IDIV 
        pg_write32(0x4001A09C, 0x54004022)--delayms(50) -- FSMC_ADDR = adr; 擦除最后一个扇区
        pg_write32(0x4001A084, 0x0003FC00)-- FLASH_ERASE = 0x7654DCBA 触发 On-Chip FLASH 擦除操作
        pg_write32(0x4001A090, 0x7654DCBA)-- FSMC_REDY
        pg_read32(0x4001A098)delayms(50) pg_read32(0x4001A098)--  FSMC_ICFG &= ~BIT31
        pg_write32(0x4001A080, 0x00000000)-- SYS_FLSE = 0pg_write32(0x400198D0, 0)-- SYS_PROTECT = 0x0;  关闭写使能if (pg_write32(0x400198A8, 0) == 0) then--print("pg_write32(0x400000A8, 0x7a83)")enddelayms(200)end--pg_enter_debug()
end

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/853728.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jenkins拉取GitLab代码

Jenkins、GitLab、Jenkins拉取GitLab代码Jenkins从GitLab中拉取代码 1.在Jenkins主机上生成ssh密钥 [root@jenkins gitrepo]# ssh-keygen -t ed25519 Generating public/private ed25519 key pair. Enter file in which to save the key (/root/.ssh/id_ed25519): Enter passph…

Kenkins拉取GitLab代码

Jenkins、GitLab、Jenkins拉取GitLab代码Jenkins从GitLab中拉取代码 1.在Jenkins主机上生成ssh密钥 [root@jenkins gitrepo]# ssh-keygen -t ed25519 Generating public/private ed25519 key pair. Enter file in which to save the key (/root/.ssh/id_ed25519): Enter passph…

Kenkins拉取GitLab代码 - 副本

Jenkins、GitLab、Jenkins拉取GitLab代码Jenkins从GitLab中拉取代码 1.在Jenkins主机上生成ssh密钥 [root@jenkins gitrepo]# ssh-keygen -t ed25519 Generating public/private ed25519 key pair. Enter file in which to save the key (/root/.ssh/id_ed25519): Enter passph…

2024《毒液3》最后一舞 Venom: The Last Dance 【内封简英双语字幕】电影百度云/夸克迅雷UC网盘资源链接下载

导演凯莉马塞尔 主演汤姆哈迪 / 切瓦特埃加福 / 朱诺坦普尔 / 瑞斯伊凡斯 / 斯蒂芬格拉汉姆 / 佩吉陆 / 安迪瑟金斯 / 克拉克巴茨科 / 阿兰娜乌巴赫 / 克里斯托费尔南德斯 / 杰瑞德亚伯拉汉姆森 / 哈拉芬利 / 达什麦克劳德 / 瑞德斯科特 / 杰克布雷迪 / 伊沃南迪 / 杰克阿林 / …

2024《毒液3》最后一舞 Venom: The Last Dance 【内封简英双语字幕】电影(含网盘链接)

导演凯莉马塞尔 主演汤姆哈迪 / 切瓦特埃加福 / 朱诺坦普尔 / 瑞斯伊凡斯 / 斯蒂芬格拉汉姆 / 佩吉陆 / 安迪瑟金斯 / 克拉克巴茨科 / 阿兰娜乌巴赫 / 克里斯托费尔南德斯 / 杰瑞德亚伯拉汉姆森 / 哈拉芬利 / 达什麦克劳德 / 瑞德斯科特 / 杰克布雷迪 / 伊沃南迪 / 杰克阿林 / …

如何计算多分类情况下的敏感性指标

1. 混淆矩阵cm,其中矩阵元素 cm[i][j] 表示真实标签为第 i 类且被预测为第 j 类的样本个数。 2. TP, TN, FP, FN(以类II为例)TP: 实际为正,预测为正(最中间这一格)FN:实际为真,预测为假(中间这一排里面,挖去中间一格,剩下的格子)FP:实际为假,预测为真(中间这一列…

巴黎之旅的美好回忆

ssssss在巴黎的日子里,我们经历了许多难忘的事情...

Odoo外贸定制类(衣服)解决方案

业务背景 客户业务属于定制化外贸服装,通常由他的客户提出定制化产品需求,然后下单给工厂进行生产,工厂生产完成后发货交付。期间由跟单进行发货时间的安排,尾款的跟进和售后服务等等。本例由Odoo16.0协助完成。 SKU设计 由于客户的业务特点更偏向于按需生产,实际业务中客…

语雀使用

方式1安装vscode插件新建.lake后缀的文件语雀导出的文件后缀为.lakebook,不能直接使用该插件进行编辑,需右键解压解压后为lake文件就可以进行编辑了,更多操作方式二将lakebook文件转为markdown方便查看,但lakebook文件中包含思维导图,转为markdown文件时不能显示拉取项目到…

zabbix 5 添加 ICMP PING 监控

目录克隆原生模板修改监控项添加图形添加主机检查结果 克隆原生模板改名字,添加成新模板修改监控项修改每个监控项的键值,追加: [{HOSTNAME}]添加图形添加主机添加测试主机(一个通,一个不通)链接模板检查结果看图形================# 水平有限 欢迎指正 #===============…

中电金信成为开源风险评估与治理技术实验室软件物料清单(SBOM)工作组成员单位

近期,中电金信成功加入国家工业信息安全发展研究中心开源风险评估与治理技术实验室软件物料清单(SBOM)工作组,成为其成员单位,并同步加入“筑链计划”之中。SBOM是Software Bill of Materials的缩写,中文名为软件物料清单,SBOM不仅提供了软件项目所用组件和依赖项的详细…

掌控复杂跨境项目?在线文档是你的最佳伙伴

打破国界的协作:在线文档如何重塑跨境团队效率 在如今复杂的商业环境中,跨境团队协作已成为许多企业的常态。然而,如何在文化、时差和语言差异中实现无缝对接,成为一大难题。在线文档协作正在以其独特的优势,为企业开启新的高效协作模式。 全球化带来的协作挑战 跨境团队面…