Motherboard Forums


Reply
Thread Tools Display Modes

Writing flash-burnner program for my own board?

 
 
Lee
Guest
Posts: n/a
 
      11-07-2004, 06:16 AM
Hello,

I am writing the flash burnner program for my own board. I can debug
it by using ARM SDT2.51, i.e. load my program to RAM (0x0c000000) and
execute it. "Hello World" (LED-blinking) is working. Currently I try
to burn the "hello world" to flash (0x00000000). My method is to load
the flash burnner to RAM and run it and copy "hello world" to flash.

But when I want writing the sequence to flash, like following, I
always failed. The debugger told me "This instruction refer to memory
"0x00000000" ... that memory is read only...". (This similiar error
imformation is got when uninitialized pointer is refered. But I don't
refer an uninitialized pointer)

What could be the problem?

/* Erase the whole chip SST39VF160*/
WRITEREGW(0x5555, 0xaaaa);
WRITEREGW(0x2aaa, 0x5555);
WRITEREGW(0x5555, 0x8080);
WRITEREGW(0x5555, 0xaaaa);
WRITEREGW(0x2aaa, 0x5555);
WRITEREGW(0x5555, 0x1010);

Thanks,

Adrian
 
Reply With Quote
 
 
 
 
Lee
Guest
Posts: n/a
 
      11-09-2004, 02:40 AM
Nobody help me? //Cry

(E-Mail Removed) (Lee) wrote in message news:<(E-Mail Removed). com>...
> Hello,
>
> I am writing the flash burnner program for my own board. I can debug
> it by using ARM SDT2.51, i.e. load my program to RAM (0x0c000000) and
> execute it. "Hello World" (LED-blinking) is working. Currently I try
> to burn the "hello world" to flash (0x00000000). My method is to load
> the flash burnner to RAM and run it and copy "hello world" to flash.
>
> But when I want writing the sequence to flash, like following, I
> always failed. The debugger told me "This instruction refer to memory
> "0x00000000" ... that memory is read only...". (This similiar error
> imformation is got when uninitialized pointer is refered. But I don't
> refer an uninitialized pointer)
>
> What could be the problem?
>
> /* Erase the whole chip SST39VF160*/
> WRITEREGW(0x5555, 0xaaaa);
> WRITEREGW(0x2aaa, 0x5555);
> WRITEREGW(0x5555, 0x8080);
> WRITEREGW(0x5555, 0xaaaa);
> WRITEREGW(0x2aaa, 0x5555);
> WRITEREGW(0x5555, 0x1010);
>
> Thanks,
>
> Adrian

 
Reply With Quote
 
 
 
 
Tauno Voipio
Guest
Posts: n/a
 
      11-09-2004, 07:25 AM
> (E-Mail Removed) (Lee) wrote in message news:<(E-Mail Removed). com>...
>
>>Hello,
>>
>>I am writing the flash burnner program for my own board. I can debug
>>it by using ARM SDT2.51, i.e. load my program to RAM (0x0c000000) and
>>execute it. "Hello World" (LED-blinking) is working. Currently I try
>>to burn the "hello world" to flash (0x00000000). My method is to load
>>the flash burnner to RAM and run it and copy "hello world" to flash.
>>
>>But when I want writing the sequence to flash, like following, I
>>always failed. The debugger told me "This instruction refer to memory
>>"0x00000000" ... that memory is read only...". (This similiar error
>>imformation is got when uninitialized pointer is refered. But I don't
>>refer an uninitialized pointer)
>>
>>What could be the problem?
>>
>> /* Erase the whole chip SST39VF160*/
>> WRITEREGW(0x5555, 0xaaaa);
>> WRITEREGW(0x2aaa, 0x5555);
>> WRITEREGW(0x5555, 0x8080);
>> WRITEREGW(0x5555, 0xaaaa);
>> WRITEREGW(0x2aaa, 0x5555);
>> WRITEREGW(0x5555, 0x1010);
>>
>>Thanks,
>>
>>Adrian


Your problems may be missing startup code for the Flash start.

When running from RAM, the Flash monitor has initialized
certain parts of the hardware, but you do not show that
the same is done for the burned-in code.

Which ARM-based chip you're using?

What kind of start-up code there is (Angel) ?

How is the address space divided to different uses?

Tauno Voipio
tauno voipio (at) iki fi


 
Reply With Quote
 
Lee
Guest
Posts: n/a
 
      11-09-2004, 02:41 PM
Tauno Voipio <(E-Mail Removed)> wrote in message news:<mh_jd.26$(E-Mail Removed)>...
> > (E-Mail Removed) (Lee) wrote in message news:<(E-Mail Removed). com>...
> >
> >>Hello,
> >>
> >>I am writing the flash burnner program for my own board. I can debug
> >>it by using ARM SDT2.51, i.e. load my program to RAM (0x0c000000) and
> >>execute it. "Hello World" (LED-blinking) is working. Currently I try
> >>to burn the "hello world" to flash (0x00000000). My method is to load
> >>the flash burnner to RAM and run it and copy "hello world" to flash.
> >>
> >>But when I want writing the sequence to flash, like following, I
> >>always failed. The debugger told me "This instruction refer to memory
> >>"0x00000000" ... that memory is read only...". (This similiar error
> >>imformation is got when uninitialized pointer is refered. But I don't
> >>refer an uninitialized pointer)
> >>
> >>What could be the problem?
> >>
> >> /* Erase the whole chip SST39VF160*/
> >> WRITEREGW(0x5555, 0xaaaa);
> >> WRITEREGW(0x2aaa, 0x5555);
> >> WRITEREGW(0x5555, 0x8080);
> >> WRITEREGW(0x5555, 0xaaaa);
> >> WRITEREGW(0x2aaa, 0x5555);
> >> WRITEREGW(0x5555, 0x1010);
> >>
> >>Thanks,
> >>
> >>Adrian

>
> Your problems may be missing startup code for the Flash start.
>
> When running from RAM, the Flash monitor has initialized
> certain parts of the hardware, but you do not show that
> the same is done for the burned-in code.
>
> Which ARM-based chip you're using?
>
> What kind of start-up code there is (Angel) ?
>
> How is the address space divided to different uses?
>
> Tauno Voipio
> tauno voipio (at) iki fi


ARM (samsung S3C44B0X)
Flash (SST39VF160Q)
Debugger is ARM SDT2.51 or ARM ADS1.2

The debugger is connected to Angel and Angel is connected to target
board. I initialized the memory control register by using Angel. I
didn't have any memory initialization code in my program. I thought it
is done by Angel.

Someone told me debugger cannot be used to burn flash, maybe this is
due to debugger protect readonly memory. Is it true?

Thank a lot.
 
Reply With Quote
 
Tauno Voipio
Guest
Posts: n/a
 
      11-09-2004, 06:18 PM
Lee wrote:
> Tauno Voipio <(E-Mail Removed)> wrote in message news:<mh_jd.26$(E-Mail Removed)>...
>
>>>(E-Mail Removed) (Lee) wrote in message news:<(E-Mail Removed). com>...
>>>
>>>
>>>>Hello,
>>>>
>>>>I am writing the flash burnner program for my own board. I can debug
>>>>it by using ARM SDT2.51, i.e. load my program to RAM (0x0c000000) and
>>>>execute it. "Hello World" (LED-blinking) is working. Currently I try
>>>>to burn the "hello world" to flash (0x00000000). My method is to load
>>>>the flash burnner to RAM and run it and copy "hello world" to flash.
>>>>
>>>>But when I want writing the sequence to flash, like following, I
>>>>always failed. The debugger told me "This instruction refer to memory
>>>>"0x00000000" ... that memory is read only...". (This similiar error
>>>>imformation is got when uninitialized pointer is refered. But I don't
>>>>refer an uninitialized pointer)
>>>>
>>>>What could be the problem?
>>>>
>>>> /* Erase the whole chip SST39VF160*/
>>>> WRITEREGW(0x5555, 0xaaaa);
>>>> WRITEREGW(0x2aaa, 0x5555);
>>>> WRITEREGW(0x5555, 0x8080);
>>>> WRITEREGW(0x5555, 0xaaaa);
>>>> WRITEREGW(0x2aaa, 0x5555);
>>>> WRITEREGW(0x5555, 0x1010);
>>>>
>>>>Thanks,
>>>>
>>>>Adrian

>>
>>Your problems may be missing startup code for the Flash start.
>>
>>When running from RAM, the Flash monitor has initialized
>>certain parts of the hardware, but you do not show that
>>the same is done for the burned-in code.
>>
>>Which ARM-based chip you're using?
>>
>>What kind of start-up code there is (Angel) ?
>>
>>How is the address space divided to different uses?
>>
>>Tauno Voipio
>>tauno voipio (at) iki fi

>
>
> ARM (samsung S3C44B0X)
> Flash (SST39VF160Q)
> Debugger is ARM SDT2.51 or ARM ADS1.2
>
> The debugger is connected to Angel and Angel is connected to target
> board. I initialized the memory control register by using Angel. I
> didn't have any memory initialization code in my program. I thought it
> is done by Angel.
>
> Someone told me debugger cannot be used to burn flash, maybe this is
> due to debugger protect readonly memory. Is it true?
>
> Thank a lot.


OK.

So is the Angel on a separate processor or on a Flash
chip on the target board? You say that Angel is connected
to the target board. Is it using the JTAG connection to
the target board processor?

In principle, the Flash write using JTAG goes:

- initialize the memory control registers, both RAM and Flash,
- load into RAM the code to be written,
- load Flash writer code into free area of RAM
- run the Flash writer to program the target code into Flash

HTH

Tauno Voipio
tauno voipio (at) iki fi

Tauno Voipio
tauno voipio (at) iki fi

 
Reply With Quote
 
 
 
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
8051: writing to memory in the program wanwan Embedded 8 01-12-2007 02:42 AM
to combine C language program and ASSEMBLY language program manoj Embedded 10 10-06-2006 06:33 PM
"Out Of Memory error when trying to start a program or while program is running" Dharmarajan.K Hardware 0 06-11-2004 09:42 PM
Re: Program writing Ron Cook Hardware 0 10-16-2003 01:13 AM
Re: Program writing Dave Hardware 0 10-14-2003 06:12 PM


All times are GMT. The time now is 11:55 PM.


Welcome!
Welcome to Motherboard Point
 

Advertisment