pic18f4455 - ACCESS flag on the device working or not?
Sivaram Gowkanapalli <[email protected]> Fri, 3 Jun 2011 02:28:11 -0400
| Newsgroups | gmane.comp.hardware.microcontrollers.gnupic |
|---|---|
| Message-ID | <[email protected]> |
--_6d19d119-9950-4032-8995-c1dc02e2f313_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Hello=2C
This piece of code is not working on the pic18F4455. It has been compiled w=
ithXINST =3D ON and with the --extended flag of gpasm.
The expected result of _temp is 0xf+1+1+1=2C but it stays at 0xff=2C the va=
luefrom the instruction at address 180. As you can see that _temp has anad=
dress of 0x3 and it should not be affected by the BSR. I am not sure if thi=
shas to do with the extended instruction set or if it could be something el=
se.It seems to be something simple that I am missing as the below case is t=
oostraightforward to be a bug. Is this how the instructions would be=2C wit=
h XINST=3D ON?
It works perfectly fine on gpsim. I see the value of _temp =3D 0xf+1+1+1. I=
t is only on the device that it is not working.
from the .lst file:
00017e 0eff movlw 0xff movlw 0xff000180 cfe8 m=
ovff 0xfe8=2C 0x3 movff WREG=2C_temp000182 f003000184 0e0f =
movlw 0xf movlw 0x0f000186 6e03 movwf 0x3=2C 0 =
movwf _temp=2CACCESS000188 2a03 incf 0x3=2C 0x1=2C 0 =
incf _temp=2CF=2CACCESS00018a 2a03 incf 0x3=2C 0x1=2C 0 =
incf _temp=2CF=2CACCESS00018c 2a03 incf 0x3=2C 0x1=2C 0 =
incf _temp=2CF=2CACCESS
from the hex file which was downloaded from the pic (to confirm that the he=
xfile was written to the pic correctly=2C fromgpdasm -y -p p18f4455 from-pi=
c.hex | less) :
000180: cfe8 movff 0xfe8=2C 0x3000182: f003000184: 0e0f movlw 0x=
f000186: 6e03 movwf 0x3=2C 0000188: 2a03 incf 0x3=2C 0x1=2C 0000=
18a: 2a03 incf 0x3=2C 0x1=2C 000018c: 2a03 incf 0x3=2C 0x1=2C 0
output from gpsim when stepping through the code:
0x0000000000002FE9 p18f4455 0x017E 0x0EFF movlw 0xff Wrote: 0x00FF to W(0x=
0FE8) was 0x00080x0000000000002FEB p18f4455 0x0180 0xCFE8 movff W=2CREG003 =
Read: 0x00FF from W(0x0FE8) Wrote: 0x00FF to REG003(0x0003) was 0x00000x0=
000000000002FEC p18f4455 0x0184 0x0E0F movlw 0x0f Wrote: 0x000F to W(0x0FE=
8) was 0x00FF0x0000000000002FED p18f4455 0x0186 0x6E03 movwf REG003 Read: =
0x000F from W(0x0FE8) Wrote: 0x000F to REG003(0x0003) was 0x00FF0x00000000=
00002FEE p18f4455 0x0188 0x2A03 incf REG003=2Cf=2C0 Read: 0x000F from REG0=
03(0x0003) Wrote: 0x0010 to REG003(0x0003) was 0x000F Wrote: 0x0002 to st=
atus(0x0FD8) was 0x00040x0000000000002FEF p18f4455 0x018A 0x2A03 incf REG00=
3=2Cf=2C0 Read: 0x0010 from REG003(0x0003) Wrote: 0x0011 to REG003(0x0003=
) was 0x0010 Wrote: 0x0000 to status(0x0FD8) was 0x00020x0000000000002FF0 =
p18f4455 0x018C 0x2A03 incf REG003=2Cf=2C0 Read: 0x0011 from REG003(0x0003=
) Wrote: 0x0012 to REG003(0x0003) was 0x0011 Wrote: 0x0000 to status(0x0F=
D8) was 0x0000
Any thoughts=2C please?
ThanksSiva
=
--_6d19d119-9950-4032-8995-c1dc02e2f313_--