参考博文

Invalid ROM Table原因及解决办法
STM32芯片锁死问题

概述

在调试STM32时,出现如下的现象:软件写好之后首次下载程序至芯片时成功,但程序未能正常运行,之后再下载程序时便报错:Invalid ROM Table

原因

出现该现象的原因为板子外部晶振为25M,而程序软件上以8M为输入晶振频率,导致芯片超频锁死,无法连接、下载

解决方案

  • 断电,将芯片原来通过10k电阻接地的BOOT0引脚直接接3.3V,硬件上置1
  • 上电,连接目标板,Keil中点选Flash->Erase,清除芯片原有程序
  • 断电,将BOOT0重新通过10k电阻接地后正常下载修改后的程序即可。

结论

所有软件上引起的芯片锁死等现象基本均可尝试下这一方法。

/----------------------------------------------------------------------------------------------------------/

另外附上Boot1 Boot0的应用原理

存储器采用固定的存储器映射,代码区域起始地址为 0x0000 0000(通过 ICode/DCode 总 线访问),而数据区域起始地址为 0x2000 0000(通过系统总线访问)。Cortex™-M4F CPU 始终通过 ICode 总线获取复位向量,这意味着只有代码区域(通常为 Flash)可以提供 自举空间。STM32F4xx 微控制器实施一种特殊机制,可以从其它存储器(如内部 SRAM) 进行自举。

在 STM32F4xx 中,可通过 BOOT[1:0] 引脚选择三种不同的自举模式,如表 3 所示。

复位后,在 SYSCLK 的第四个上升沿锁存 BOOT 引脚的值。
复位后,用户可以通过设置 BOOT1 和 BOOT0 引脚来选择需要的自举模式。

启动模式

STM32 三种启动模式对应的存储介质均是芯片内置的,它们是:

1)主闪存存储器 :

STM32内置的Flash,一般我们使用JTAG或者SWD模式下载程序时,就是下载到这个里面,重启后也直接从这启动程序。

2)嵌入式SRAM

内置SRAM,既然是SRAM,自然也就没有程序存储的能力了,这个模式一般用于程序调试。假如我只修改了代码中一个小小的地方,然后就需要重新擦除整个Flash,比较的费时,可以考虑从这个模式启动代码(也就是STM32的内存中),用于快速的程序调试,等程序调试完成后,再将程序下载到Flash中。

3)系统存储器

这种模式启动的程序功能是由厂家设置的。一般来说,这种启动方式用的比较少。系统存储器是芯片内部一块特定的区域,STM32在出厂时,由ST在这个区域内部预置了一段BootLoader,也就是我们常说的ISP程序,这是一块ROM,出厂后无法修改。一般来说,我们选用这种启动模式时,是为了从串口下载程序,因为在厂家提供的BootLoader中,提供了串口下载程序的固件,可以通过这个BootLoader将程序下载到系统的Flash中。但是这个下载方式需要以下步骤:
Step1:将BOOT0设置为1,BOOT1设置为0,然后按下复位键,这样才能从系统存储器启动BootLoader。
Step2:最后在BootLoader的帮助下,通过串口下载程序到Flash中
Step3:程序下载完成后,又有需要将BOOT0设置为GND,手动复位,这样,STM32才可以从Flash中启动。
可以看到,利用串口下载程序还是比较的麻烦,需要跳帽跳来跳去的,非常的不注重用户体验。

要注意的是,一般不使用内置SRAM 启动(BOOT1=1 BOOT0=1),因为SRAM 掉电后数据就丢失。多数情况下SRAM 只是在调试时使用,也可以做其他一些用途。如做故障的局部诊断,写一段小程序加载到SRAM 中诊断板上的其他电路,或用此方法读写板上的Flash 或EEPROM 等。还可以通过这种方法解除内部Flash 的读写保护,当然解除读写保护的同时Flash 的内容也被自动清除,以防止恶意的软件拷贝。

一般 BOOT1 和BOOT0 跳线都跳到0(地)。只是在ISP 下载的情况下,BOOT0=1,BOOT1=0 ,下载完成后,把 BOOT0 的跳线接回0,也即BOOT0=0,BOOT1=0 。

stm32晶振配置不一致导致 Invalid Rom Table 至芯片锁死解决方案相关推荐

  1. 记录一下STM32下载报错invalid rom table的解决

    今天调试一个stm32板子和往常的习惯一样,会一部分一部分的焊接,今天调试发现下载程序时候报错:invalid rom table. 终于在找到了网友的解决办法. 200KHz下载成功的,马上尝试了, ...

  2. Invalid ROM Table解决办法

    今天下午在调试程序的时候,下载了一个别人写的程序,忘记修改时钟频率配置,导致STM32F407芯片锁死问题.以下是我解决的办法,亲测很有效,分享给有需要的童鞋们. 原因 出现该现象的原因为板子外部晶振 ...

  3. STM32 USB虚拟串口调试总结(内部晶振、外部晶振配置、硬件电路说明、测试方法)

    目录 1.参考链接: 2.虚拟串口硬件说明 2.1.程序中无需配置硬件的设计:D+直接接了3.3V的上拉电阻. 2.2.需要程序中配置D+上拉电阻使能的设计:可以软件模拟USB插拔,便于固件更新后自动 ...

  4. .axf文件_干货!STM32晶振的更改,BIN文件的生成

    STM32因为硬件设计的不同,要根据实际安装晶振修改程序参数, 一般使用的晶振是8M,如果遇到使用24M晶振的时候程序配置要怎么去修改呢? 一共有两处需要修改,如果是24M就把这个修改为24,同理8M ...

  5. 麒麟座MINI板串口乱码(HAL库晶振配置)

    网上说STM32默认是8MHZ晶振,但是用其他频率的晶振都可以 之前用的ZET6的开发板,没有注意过这个问题,现在MINI板CBT6使用的12MHZ晶振,用和原来一样的串口代码输出的是乱码,变了很多个 ...

  6. STM32晶振 选型

    频率 STM32有5个时钟源,有高速内部时钟(HSI)和低速内部时钟(LSI),还有高速外部时钟(HSE)和低速外部时钟(LSE),而这里的外部高速时钟HSI就是我们图中的Y1,8MHz的晶振,外部低 ...

  7. MSP430晶振配置详解

    MSP430(F5529)相比MSP430(F149)来讲,功能更加强大. UCS简介 MSP430F5XX/MSP430F6XX系列器件的UCS包含有五种时钟源,依次是:XT1CLK.VLOCLK. ...

  8. stm32晶振工作一段时间停振

    停振的相关原因 晶振相关内容 晶振的的匹配电容 根据负载电容来选择匹配电容,一般负载电容 CL=cs+cscs∗csCL=\frac{cs+cs}{cs*cs}CL=cs∗cscs+cs​+PCB的自 ...

  9. 晶振虚焊导致TI 28335 DSP 烧写FLASH后,连接仿真器时正常工作,拔掉仿真器却不能启动运行...

    遇到个诡异的问题,28335的DSP,之前程序调试一切正常,但是烧写FLASH后,拔掉仿真器却始终部工作. 解决思路: 1) 检查配置文件貌似没什么问题,复制到其他工程,在开发板上拔掉仿真器启动正常. ...

  10. Invalid ROM Table原因及解决办法(STM32F429VET6程序移植F429IGT6)

    移植程序过程中出现烧写一次以后STLINK无法在连接问题,经过数次测试只有用flymcu擦除全部程序后才能重新烧写程序,移植过程中除了芯片型号变更, 此处因为外置晶振原先为8M现在开发板上为25M 改 ...

最新文章

  1. Cache Aside Pattern(缓存模式)
  2. 数据中心行业人士如何进行继续教育
  3. Python—sqlalchemy
  4. 实践1-qq邮箱主页
  5. Laravel使用EasyWechat 进行微信支付
  6. Laravel用post提交表单常见的两个错误
  7. rust中使用cargo expand查看被宏隐藏的代码
  8. python输入成绩求总分和平均分_python脚本如何输入成绩求平均分?
  9. android:id=@android:id/tabhost 、android:id=@+id/llRoot 、android:id=@id/llRoot 之间的区别...
  10. LeetCode 537. Complex Number Multiplication
  11. java四则运算,计算器的实现
  12. 大学生静态HTML鲜花网页设计作品 DIV布局网上鲜花介绍网页模板代码 DW花店网站制作成品 web网页制作与实现
  13. J2EE框架搭建大集合
  14. 有刷电机与无刷电机的接线方法(淘宝一卖家写的很好,厚实的实践经验)
  15. 使用office tool plus清除office激活状态
  16. PostgreSQL下载地址
  17. Python OOP 项目实践:烤地瓜,搬家具
  18. YYCMS5.0影视系统/源码全开源无授权/影视站全自动采集
  19. Spring Boot 接口幂等性实现的 4 种方案!
  20. YoutubeAPI使用

热门文章

  1. WMB ESQL报文函数截取新的XML方法
  2. PS|如何将Adobe Photoshop(PS)完全卸载
  3. 2020最新项目经理面试题(持续更新)
  4. 一. Scala安装与环境配置
  5. 神器 git clean
  6. 玉米社:百度SEM竞价推广的投放地域设置技巧
  7. Android 颜色对照表
  8. HTML---网络编程基础知识(2)
  9. linux测试上行带宽,linux服务器上传下载带宽测试
  10. 程序员不应该错过的 6大导航