此程序编译完之后,下载到STM32的FLASH中去,
fun2的作用是把fun1所在page擦除,并且把fun1();这句话替换成NOP
这样可能实现吗?
我试了很久,都不行
擦除只能擦除程序没用到的page,一旦程序写到flash中,比如说这个程序占用了0x08000000~0x08002000,那么这一段是无论如何都擦写不掉的
只能擦写这后面的
您好,我来为您解答:
先在程序中定义一个const 类型的常量数组,并指定其存储位置(方便找到写入、读取位置),这样编译器就会分配你指定的空间将常量数组存入FLASH中。当你做擦除。读写 *** 作时,只要在这个常量数组所在的地址范围就好。
const uint8_t table[10] __at(0x08010000) = {0x55} ;
MDK303A开始就支持关键字 __at() 。
需要加#include <absacch>
希望我的回答对你有帮助。
这个flash已经在你的板子上了,要是有norflash,还可以先让程序在norflash里边运行,然后再擦除nand flash。最简单的方式应该通过jtag在PC *** 作就可以了,一般jtag下载PC端的软件肯定具有这个功能的,因为写之前就要先擦除。我们提供NAND Flash烧录器,当然你讲的这个擦除Flash的功能是有的,但要把片子拆下来才能弄,貌似不是你需要的东西,不过也可访问下面网址了解下:
没有办法,只能块擦除。
如果你想保留原来的数据,建议先把这需要擦除的1024个字节保存到一个数组里,然后修改数组里对应的数据,通过块擦除,再把修改完的数据写回原来的地址。我以前写XS128的DATA-FLASH就是这么干的。
你的单片机内部有厂家的启动下载功能的程序。你把这部分删除后通过类似于USB这样直接下载的方式就不行了。需要用JTAG或者其他可以直接访问单片机内部或外部FLASH的硬件连接单片机才可以。去问问你的实验板的厂家,如何恢复到之前的状态。你的硬件应该没坏。不要着急
以上就是关于有没有可能把STM32的flash里面的某个函数擦除全部的内容,包括:有没有可能把STM32的flash里面的某个函数擦除、stm32擦除flash所有页是否会将程序代码也擦除了、nand flash怎么擦除等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)