| Details |
Message |
|
Read-Only
Author Klaus Wang
Posted 8-Feb-2007 06:47 GMT
Toolset C51
|
 Can LOAD file to a specified memory area ?
Klaus Wang
The command "SAVE" can be used to save a specified memory
to hex file. So, my question is that there is any command for loading
a file into a specified memory area?
For example, I have a hex file, I want to write it into external
memory from 0x0100 to 0x0200. The website http://www.keil.com/support/man/docs/uv3/uv3_cm_load.htm
is about command "LOAD", but it seem can not load file into a
specified memory.
Thank you for helping.
Best Regard.
|
|
|
Read-Only
Author Andy Neil
Posted 8-Feb-2007 07:27 GMT
Toolset C51
|
 RE: Can LOAD file to a specified memory area ?
Andy Neil
The Hex file from Save includes address information - so that Load
will put it back where it came from.
If you want to Load it to somewhere else, you will have to edit
the Hex file to change the addresses...
See: http://www.keil.com/support/docs/2397.htm
|
|
|
Read-Only
Author Klaus Wang
Posted 8-Feb-2007 08:33 GMT
Toolset C51
|
 RE: Can LOAD file to a specified memory area ?
Klaus Wang
The Hex file from Save includes address information - so that
Load will put it back where it came from.
You mean, if I SAVE to SIM1.hex from a specified memory
0~0x1000 at first, then use LOAD will cause SIM1.hex load into
0~0x1000, because the hex file already include address information by
SAVE. Is that your meaning ?
How can I LOAD SIM1.hex into 0x0300~0x2000 not 0~0x1000
?
However if I did LOAD hex file without address information
at first, it will cause a error ?
Actually, I want to find a way out that I can load(read) my own
bin file into a data memory area I defined, and maybe the bin file
just include some raw data.
Another question is that, from http://www.keil.com/support/docs/2397.htm,
where is definition of S:, T:, U:, and V: ?
After testing, I already know that S:/T:/U:/V: are specified
memory name with start and end address, and it seems that I must give
name as S/T/U/V.
Thank you for helping.
Best Regards,
|
|
|
Read-Only
Author Andy Neil
Posted 8-Feb-2007 09:06 GMT
Toolset C51
|
 RE: Can LOAD file to a specified memory area ?
Andy Neil
"You mean, if I SAVE to SIM1.hex from a specified memory
0~0x1000 at first, then use LOAD will cause SIM1.hex load into
0~0x1000, because the hex file already include address information by
SAVE. Is that your meaning ?"
Correct.
"How can I LOAD SIM1.hex into 0x0300~0x2000 not 0~0x1000
?"
As I said, you would have to edit the Hex file.
Do you understand how Intel Hex files work?
There is a description here: http://www.keil.com/support/docs/1584.htm
The Hex file contains both data and the addresses at which to
place that data.
"if I did LOAD hex file without address information"
There is no such thing - see above.
"Actually, I want to find a way out that I can load(read) my
own bin file"
I don't think uVision supports loading BIN files - you can check
in the Manual.
But you can convert a BIN file to HEX - see the links in the page
I cited earlier.
"where is definition of S:, T:, U:, and V: ?"
It tells you they are user-defined - so
you define them!
|
|
|
Read-Only
Author Christoph Franck
Posted 8-Feb-2007 10:10 GMT
Toolset C51
|
 RE: Can LOAD file to a specified memory area ?
Christoph Franck
But you can convert a BIN file to HEX - see the links in the
page I cited earlier.
There are ready-made tools available for this purpose - some of
them are even available for free, like "srecord". They can also do
the address manipulation for you.
|
|
|
Read-Only
Author Andy Neil
Posted 8-Feb-2007 10:39 GMT
Toolset None
|
 HEX2BIN and BIN2HEX
Andy Neil
"There are ready-made tools available for this purpose - some
of them are even available for free"
And some included with the Keil tools!
Of course, the Link describes the Keil ones.
|
|
|
Read-Only
Author Klaus Wang
Posted 13-Feb-2007 02:35 GMT
Toolset C51
|
 RE: Can LOAD file to a specified memory area ?
Klaus Wang
Thank you very much, Andy.
I had used BIN2HEX to convert the bin file to be a hex
file, and I LOAD it into memory in uVision2 command window
successfully.
But it got a error while loading the hex file with big size. I set
the starting address is 0x3000, and the hex file size is around 10MB.
uVision2 feedback a error message "error 57: illegal
address:0x00FFFF".
I guess it is that loading 10MB hex file get over 64KB address
defintion, because loading 3KB hex file doesn't.
How can I solve it?
BR,
|
|
|
Read-Only
Author Andy Neil
Posted 13-Feb-2007 07:58 GMT
Toolset C51
|
 Well, obviously...
Andy Neil
"I guess it is that loading 10MB hex file get over 64KB
address defintion"
Of course it does!
"How can I solve it?"
Don't attempt to load files that are too big!!
|
|