打印
[STM32F1]

有关STM32的读写保护疑问

[复制链接]
6959|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mikejx|  楼主 | 2014-3-29 16:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在搞STM32的IAP功能,对于APP正确下载后,bootloader区和APP区的读写保护究竟要怎样设置感到迷惑,目的当然是不让别人轻松读出FLASH内的东西(包括bootloader和APP),看资料好像是把读保护设置了就行了,把读保护取消会擦除整个FLASH,但写保护要不要设置,应该怎样设置?好像这个写保护对防止代码外泄没什么作用啊,在RAM区运行程序好像也能清除写保护,清除写保护又好像不会导致擦除整个FLASH,没有写保护,会不会被人在APP区写入代码来读出bootloader区的内容呢?
沙发
mikejx|  楼主 | 2014-3-31 11:09 | 只看该作者
没人了解吗?板主能否解释一下?

使用特权

评论回复
板凳
airwill| | 2014-3-31 18:02 | 只看该作者
读保护设置了就行了
会不会被人在APP区写入代码来读出bootloader区的内容呢?楼主考虑的非常仔细.
个人感觉有这个风险, 不过APP区写入代码可能破坏正常的代码, 也不容易得到控制权.
另外, bootloader 在给 APP 移交控制权之前, 也可以验证一下 APP 的合法性.

使用特权

评论回复
地板
mikejx|  楼主 | 2014-4-1 20:59 | 只看该作者
谢谢airwill的指点,通过这几天的研究大概得出以下不一定准确的结论:1.开启了读保护的芯片的调试功能是禁止的,也就是说不能通过jtag或其他调试接口来读出或写入程序进FLASH里。2.可以通过RAM上运行的程序解除写保护,这个对FLASH内的代码没影响,但刷除了写保护后读保护还存在的话还是不能通过调试接口写入程序的,写保护只是为了防止程序跑飞时乱写FLASH?如果解除读保护会导致FLASH整片刷除。3.还有一个疑问就是,设置读保护而没有写保护的情况下,能通过STM32内置的ISP程序在不刷除整片FLASH的情况下烧写代码吗?因本人没有用过内部的ISP下载代码也没相关工具,请大家指点一下。

使用特权

评论回复
5
airwill| | 2014-4-1 22:04 | 只看该作者
设置读保护而没有写保护的情况下,能通过STM32内置的ISP程序在不刷除整片FLASH的情况下烧写代码吗? 能

使用特权

评论回复
6
mikejx|  楼主 | 2014-4-3 10:00 | 只看该作者
官方自己內置的isp,也能在读保护不解除的情况下写入?这样太大漏洞了吧?

使用特权

评论回复
7
拿起书本| | 2014-4-3 14:50 | 只看该作者
做个简单的小结:
读保护     写保护      对flash的操作功能
有效       有效       CPU只能读,禁止调试和非法访问
有效       无效     CPU可读,禁止调试和非法访问,页0~3为写保护
无效       无效       CPU可读,允许调试和非法访问
无效      无效     CPU 可以读写,允许调试和非法访问

使用特权

评论回复
8
上官梦舞| | 2015-9-19 17:15 | 只看该作者
airwill 发表于 2014-4-1 22:04
设置读保护而没有写保护的情况下,能通过STM32内置的ISP程序在不刷除整片FLASH的情况下烧写代码吗? 能 ...

能不能指定unlock擦除的Flash范围啊,我不想清除前面的bootloader程序。还要用来下载新的程序呢。

使用特权

评论回复
9
airwill| | 2015-9-19 17:47 | 只看该作者
上官梦舞 发表于 2015-9-19 17:15
能不能指定unlock擦除的Flash范围啊,我不想清除前面的bootloader程序。还要用来下载新的程序呢。 ...

你可以设置写保护. 因为写保护是分块的,
但读保护是全局的.

使用特权

评论回复
评论
xl1736 2016-4-12 13:17 回复TA
AirWill你好,请问使能了写保护,要怎么样才能失能? 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

28

帖子

1

粉丝