kejun
驱动牛犊
驱动牛犊
  • 注册日期2001-06-28
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2309回复:4

求助,AN2131Q用KEIL C51调试时,有:NO CODE MEMORY AT ADDRESS 0045H

楼主#
更多 发布于:2001-07-14 10:39
<body>
<font color="#00ffff",size="9.pt">我用的是AN2131片子,在DEBUG时,output window有monitor error:no code memory at address 0045h.程序中有用到中断入口地址:org 0043h,如果不用这句,就没有error,或者把0043h改成其他的也对了,可问题是进USB中断一定要用43H啊。谁能帮助我啊?</font>(有这个error,程序依然可以执行,中断来了以后也能自动进中断入口,不知道这是个什么问题?)</body>
kejun
wetty
驱动牛犊
驱动牛犊
  • 注册日期2001-06-14
  • 最后登录2004-05-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-07-15 15:06
0045h的值应该是usb core  生成的自动矢量,及中断跳转表jumptable的偏移量,从而指向不同的中断服务程序。去掉org 0043h,或改成别的地址都会使得自动中断矢量功能无效,0045h的值也就失去了意义,所以不会产生错误。现在你的程序能够找到中断入口,是否是因为你的中断跳转表有问题,从而在跳转的时候出错。
另外,如果能够正确完成中断功能的话,至多是警告,不会是出错吧。
以上意见,仅供参考。
wetty
驱动牛犊
驱动牛犊
  • 注册日期2001-06-14
  • 最后登录2004-05-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-07-21 10:46
kejun你这个问题解决了吗?告诉我怎么解决的好吗?
现在我也遇到同样的问题,如果用#pragma NOIV
// Do not generate interrupt vectors
程序正常,但如果要用到自动矢量,去掉#pragma NOIV就会报警告和错误。no memory code 0045h ,谁知道啊,怎么弄?
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-07-22 22:22
好象没有任何影响,我在编译时就看到了,干脆把它当成一个BUG,如果你不放心,问CYPRESS的看看。usbapps@cypress.com

[sunkai 编辑于 2001-07-22 22:35]
leeh_cn
驱动牛犊
驱动牛犊
  • 注册日期2004-02-17
  • 最后登录2008-12-01
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-10-27 14:30
不知道大家的这个问题是否彻底解决。
以下是彻底的解决方法:


参见以下这个链接:http://www.keil.com/support/docs/863.htm
将cypress提供的EZUSB的USBJMPTB.A51文件修改以后,然后将你项目中的USBJMPTB.obj删除,加入USBJMPTB.A51,重新编译以后,然后将USBJMPTB.A51文件删除,在你的项目文件夹里会生成一个USBJMPTB.obj文件,将此USBJMPTB.obj文件加入项目之中即可
游客

返回顶部