| 我自己写了一个手机端类似的烧录工具代替pc端的工具,负责把bin文件写到stm32f4 flash中。但是写完数据后,重新上电不启动。我通过STM32 ST-LINK Utility工具烧录对应的bin文件,是可以启动的,同时把对应flash数据读出来与不能启动情况下写进去的数据比较发现完全一样。为啥我写bin文件到flash中不能启动,而STM32 ST-LINK Utility工具写的bin 文件可以启动?不知道还有什么特殊操作吗? |
楼主,可以直接生成bin文件的,直接烧写bin文件即可。
楼主,可以直接生成bin文件的,直接烧写bin文件即可。
我现在就是写bin文件到flash中呀,在写的过程中同时边写边读,把读出来的数据与bin文件原始数据比较是一样的。但是就是无法运行。
楼主,可以直接生成bin文件的,直接烧写bin文件即可。
发现一个奇怪的现象,我再写bin文件到flash过程中,我每写完512字节后,再从flash读512字节回来比较都能读到数据,并且数据比较也完全对。为啥我整个写完后,再重新从0x8000000开始回读整个数据,发现开头部分或中间有些部分都是FF,感觉没有写进去似的。这是啥回事呀,写完数据还需要发送什么命令保证数据完整写入吗?
发现一个奇怪的问题,我erase一些sector后,写flash时,每次写完512字节数据后,回读出来都正常。但是我把整个bin文件写完后,再重新从0x8000000地址读数据时,发现有些地址块数据全是FF,好像没有写进去。为啥边写边回读又正常呢?
知道原因了,谢谢大家
知道原因了,谢谢大家
什么原因
什么原因
我估计是写擦的问题,楼主,建议写之前就都擦除了,后面就直接写,不进行擦除操作了。或者是内部地址增加的时候,发生了地址计算错误或者溢出的情况。