CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to CCS Technical Support

18F45J10 write_program_memory() compiles to nothing

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
mfer



Joined: 11 Jan 2007
Posts: 8

View user's profile Send private message

18F45J10 write_program_memory() compiles to nothing
PostPosted: Thu Jan 11, 2007 8:05 am     Reply with quote

Hello,

I've seen similar problems here in many-many posts, but couldn't find a solution for my problem yet.

I'm trying to use the followings:

---------------------------------------------

void main()
{
int32 address;
int8 count;
int8 buffer[0x100];

address=0;
count=0x40;
read_program_memory(address,buffer,count);
address=0x1000;
count=0x40;
write_program_memory(address,buffer,count);
}

---------------------------------------------

And the call write_program_memory compiles to this:

---------------------------------------------

0024: GOTO 00E0 (RETURN)

.................... write_program_memory(address,buffer,count);
00C6: MOVFF 07,10C
00CA: MOVFF 06,10B
00CE: MOVLB 1
00D0: CLRF x0E
00D2: MOVLW 0B
00D4: MOVWF x0D
00D6: CLRF x10
00D8: MOVFF 0A,10F
00DC: MOVLB 0
00DE: BRA 0024

00E0: SLEEP
---------------------------------------------

funny, isn't it?

processor: 18F45J10
pcwh version: 4.019

Thanks in advance for any info! (even if you draw my attention to a post containing the solution, but slipped my attention)

mfer
PCM programmer



Joined: 06 Sep 2003
Posts: 21708

View user's profile Send private message

PostPosted: Thu Jan 11, 2007 5:32 pm     Reply with quote

It worked OK for me. I took your code and dropped it into
a short test program and compiled it with PCH vs. 4.019.
Code:

#include <18F45J10.h>
#fuses HS, NOWDT   
#use delay(clock=20000000)

//====================
void main()
{
int32 address;
int8 count;
int8 buffer[0x100];

address=0;
count=0x40;
read_program_memory(address,buffer,count);
address=0x1000;
count=0x40;
write_program_memory(address,buffer,count);

while(1);
}


I got the following code in the .LST file:
Code:

... void main() 
... { 
0028:  CLRF   FF8
002A:  BCF    FD0.7
002C:  CLRF   FEA
002E:  CLRF   FE9
0030:  MOVF   FC1,W
0032:  ANDLW  C0
0034:  IORLW  0F
0036:  MOVWF  FC1
0038:  MOVLW  07
003A:  MOVWF  FB4
... int32 address; 
... int8 count; 
... int8 buffer[0x100]; 
... 
... address=0; 
003C:  CLRF   09
003E:  CLRF   08
0040:  CLRF   07
0042:  CLRF   06
... count=0x40; 
0044:  MOVLW  40
0046:  MOVWF  0A
... read_program_memory(address,buffer,count); 
0048:  MOVFF  08,FF8
004C:  MOVFF  07,FF7
0050:  MOVFF  06,FF6
0054:  CLRF   FEA
0056:  MOVLW  0B
0058:  MOVWF  FE9
005A:  MOVLB  1
005C:  CLRF   x0C
005E:  MOVFF  0A,10B
0062:  MOVLB  0
0064:  BRA    0004
... address=0x1000; 
0066:  CLRF   09
0068:  CLRF   08
006A:  MOVLW  10
006C:  MOVWF  07
006E:  CLRF   06
... count=0x40; 
0070:  MOVLW  40
0072:  MOVWF  0A
... write_program_memory(address,buffer,count); 
0074:  MOVFF  07,10C
0078:  MOVFF  06,10B
007C:  MOVLB  1
007E:  CLRF   x0E
0080:  MOVLW  0B
0082:  MOVWF  x0D
0084:  CLRF   x10
0086:  MOVFF  0A,10F
008A:  MOVLB  0
008C:  BRA    0024
... while(1);
008E:  BRA    008E
... }
mfer



Joined: 11 Jan 2007
Posts: 8

View user's profile Send private message

not convinced yet :)
PostPosted: Thu Jan 11, 2007 11:43 pm     Reply with quote

Hello,

You only missed the main part:
what is at 0x0024?
There should be the writing sequence itself.

Did you burn it into the pic and it did the writing properly?

mfer
PCM programmer



Joined: 06 Sep 2003
Posts: 21708

View user's profile Send private message

PostPosted: Fri Jan 12, 2007 12:55 am     Reply with quote

You're right. It's not there. I didn't comment out the #nolist when I
posted that reply. I did now, and it's definitely missing the code.
It's not fixed in vs. 4.020 either.

I was going to offer to write a substitute routine for you over the weekend
but I just took a quick look at the data sheet and it appears to be a bit
more complicated than normal in that area. There are more caveats.
The data sheet gives an example of ASM code. It should be possible
to write a routine using that example. I just don't think I have the time
to commit to do it. I have got too much to do on Friday and on Sunday
as well (at work).
mfer



Joined: 11 Jan 2007
Posts: 8

View user's profile Send private message

shall I report it as a bug?
PostPosted: Fri Jan 12, 2007 1:04 am     Reply with quote

Hello,

Do you think I should report it as a bug?

I would be curious to see your replacement code, and next week would be all right.

Thank you for your help so far!!

mfer
PCM programmer



Joined: 06 Sep 2003
Posts: 21708

View user's profile Send private message

PostPosted: Fri Jan 12, 2007 1:09 am     Reply with quote

Yes, you should report it.

Actually, I edited my post and revised it a bit in the area of promises
just before you posted your latest response. Mr. Green
Most of my time is already pre-committed on Friday (a customer needs
some boards repaired that day) and I'm supposed to get a schematic
done as well. Sunday is also committed. I can work on it, but it will be
later next week.
mfer



Joined: 11 Jan 2007
Posts: 8

View user's profile Send private message

I'll report it then
PostPosted: Fri Jan 12, 2007 1:38 am     Reply with quote

Hello,

No problem, I will do it from the datasheet, I just was curious to see your solution. You know, one can always learn from others.

mfer
mburton
Guest







PostPosted: Tue Jan 30, 2007 1:47 pm     Reply with quote

I'm having exactly the same problem with the PIC18F24J10, using compiler 3.249. No error messages or indications at all - very annoying.

Did you get your solution to work? If so, could you post your code fragment?

Thanks.


CCS Technical Support does not monitor this forum on a regular basis. Please do not post bug reports to this form. All bug reports should be emailed to [email protected]. Thank you.
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group