|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
MPLAB IDE求救 |
作者:haagen 栏目:单片机 |
原来在wave(伟福)下面做好的程序,连上PCB仿真运行都正常了,由于要换成FLASH,开始用wave生成的HEX直接导入MPLAB IDE,然后用ICD2烧,但烧入的程序不对,在MPLAB IDE里反汇编,看出存储器都都含一个“X”。接下来,把ASM文件直接在MPLAB IDE里编译,出来好多警告,不管,编译成功,鼠标移到上面如下图所示: 结果仍然出现“X”,程序当然不能正确运行了。不知怎么回事,另外,注释有中文。 |
2楼: | >>参与讨论 |
作者: rad.zhu 于 2006/1/19 9:55:00 发布:
把你的警告信息贴出来看看 |
3楼: | >>参与讨论 |
作者: haagen 于 2006/1/19 10:37:00 发布:
re Warning[202] Argument out of range. Least significant bits used. Message[305] Using default destination of 1 (file). Message[302] Register in operand not in bank 0. Ensure that bank bits are correct. 基本上是这三种类型。 另外,单步仿真,虽然MAIN被编译成0X03,但还是能正确跳转到主程序,看来还是烧写设置的问题吧? |
4楼: | >>参与讨论 |
作者: haagen 于 2006/1/19 10:49:00 发布:
编译结果对照 00000E 1303 BCF 0x3, 0x6 147: MAIN: BCF STATUS,6 00000F 1683 BSF 0x3, 0x5 148: BSF STATUS,RP0 000010 300B MOVLW 0xb 149: MOVLW 10000000B ;禁止B口上拉,INT下降沿中断。 000011 081 MOVWF 0x1 150: MOVWF OPTIONS 000012 301B MOVLW 0x1b 151: MOVLW 00000001B ;SET PORTB=1 (RB0=input) 为判别模式初始化。 000013 086 MOVWF 0x6 152: MOVWF TRISB 000014 1283 BCF 0x3, 0x5 153: BCF STATUS,RP0 000015 301B MOVLW 0x1b 154: MOVLW 11111111B 000016 086 MOVWF 0x6 155: MOVWF PORTB 000017 1A3 CLRF 0x23 156: CLRF MODE_FLAG ;初始化模式标志为正常模式 000018 301B MOVLW 0x1b 157: MOVLW 11111111B ;初始化显示存储器(置1) PORTA.4=0 000019 0A4 MOVWF 0x24 158: MOVWF DISPLAY_FLAG1 挑主程序开始这段编译的结果给师傅看看,象000015这行的11111111B-->0x1b是不是有问题呢? |
5楼: | >>参与讨论 |
作者: systemchip 于 2006/1/19 11:31:00 发布:
: 二进制赋值错误: 例如赋值:00000001到W寄存器中 应该这样: movlw b'00000001' 或用16进制 movlw 0x01 |
6楼: | >>参与讨论 |
作者: xieyuanbin 于 2006/1/19 11:42:00 发布:
那些警告不要管. 出现ERROR信息才会编译不通过.0xXX是MPLAB十六进制的表示方法,可代表地址或立即数. 应该是配置位没选才对. |
7楼: | >>参与讨论 |
作者: baiyaohui 于 2006/1/19 17:50:00 发布:
如果你是otp改成FLASH 看你说的意思好像是otp改成FLASH,但程序没改,对于大多pic单片机otp改成FLASH程序要稍微改一下,起码头文件换一下,一些器件个别寄存器也定义不同 |
8楼: | >>参与讨论 |
作者: haagen 于 2006/1/20 23:53:00 发布:
鸣谢各位。 baiyaohui你猜对了,呵呵;xieyuanbin斑竹,是systemchip说的那个问题,直接加的伟福的文件,这么严重的问题怎么只是警告啊,MPLAB害人,剩下的警告没理它,可以了。 |
9楼: | >>参与讨论 |
作者: vulturew 于 2006/1/23 9:27:00 发布:
MPLAB IDE求救 把你的编译选项中MPASM Assembler 中的大Default Radix 改为Decimal。就可以了,不用改源程序。 Warning[202] Argument out of range. Least significant bits used. 是警告赋值的数太大,只取了最后的位,他当16进制来处理了。 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |