LPC8XX开发板Invalid ROM Table错误原因及解决方法完整版

  • donatello
  • LV6工程师
  • |      2017-08-21 23:46:25
  • 浏览量 1979
  • 回复:1
以前总在各论坛看到人们用MDK开发LPC824的时候出现Invalid ROM Table的弹框报错,果不其然,今天我也遇到了。 人们对于这个弹框的原因有个猜测就是板载LPC11U35仿真器的固件版本太旧,需要更新高版本的固件,这个猜测的支持者众多,因为人们在更新了固件之后就不会再遇到这个弹框了,但是我经过开发几个LPC824板子(有大联大的VEML6040、深圳优龙电子的LPC824Lite)得出经验,出现Invalid ROM Table弹框的原因并不是固件版本太旧,而是因为板子进入了__WFI()函数的低功耗模式。为什么我会坚定地认为不是固件版本的问题呢?因为我横向测试了两个固件版本不同的VEML6040开发板,一个更新了固件,一个没有更新,两个板子在烧录同一个程序的时候都出现Invalid ROM Table弹框,因此,可以初步判断不是固件版本旧的问题。后来我参阅了某个论坛一个年代非常久远的帖子,这个帖子说凡是采用LPC11U35作为仿真器的LPC8XX开发板,板上除了RESET复位按键以外,都有一个ISP按键,同时按住ISP和RESET按键,然后先松开RESET按键,最后松开ISP按键,就会进入ISP模式,再下程序就不会出现Invalid ROM Table的提示。我个人的猜测是,板子进入ISP模式,不执行任何用户程序,所以就退出了__WFI()低功耗模式了,一旦退出低功耗模式,板子就可以继续下载程序了。注意,这个低功耗模式不是休眠模式,按WAKE_UP按键唤醒是没用的。 这里再说说人们为什么会认为重新刷固件就能解决Invalid ROM Table问题呢?因为重新刷固件的话,板子的用户程序就被擦除了,也一样是退出了低功耗模式,也就可以重新下载程序了。 这里说下会导致板子进入低功耗模式的语句__WFI()。WFI即Wait for Interrupt,等待中断,这是Cortex-M系列工程里面的一个函数,至于为什么这个函数会导致Invalid ROM Table弹框报错,我也不清楚,我只知道的是,把这句注释了,板子下程序的时候就不会再出现Invalid ROM Table提示。
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:1
赢客建站 2017-12-05
担路赢客一个互联网整合营销的平台,拥有建站平台建站平台、微信营销、小程序创建的功能齐全后台,实时更新后台信息,全方位开发企业营销渠道。整合百度、搜狗、360、今日头条等推广平台,一个后台专业托管。减低企业进入互联网的门槛,解决多平台推广,对接不同客服的问题,致力于企业用最少的营销成本,获得最大的网络营销收益。担路赢客,一个科技让营销更简单的平台,助力您从网站迎来更多的客户。
0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子