Subject:
|
RE: LegOS bug - firmware unlock string not below CC00h in some circumstances
|
Newsgroups:
|
lugnet.robotics.rcx.legos
|
Date:
|
Sun, 29 Apr 2001 12:57:19 GMT
|
Viewed:
|
1855 times
|
| |
| |
Kieran wrote:
> Firmdl3 is unable to download very large statically linked programs
> (with a .text segment greater than 4c00h bytes). Unlike previous size
> related bugs, this is *not* caused by firmdl, but rather by kmain.c.
> Because the firmware unlock string is declared as a string constant, it
> is placed in the data segment, which comes after the text segement.
Argh! This is so typical of many embedded projects that I have seen go
sour over the years. It's due to not using the linker to full advantage.
In my firmware, I declare the string in its own .text section (you can
do this in inline assembler if necessary and force it to link
early in the process.
Another option is to declare a special section name and update the h8300.rcx
link script to force the string in low memory.
As a final alternative, a special startup assembler
file something like this:
.text
.global __entry
__entry:
JMP __kmain
.ascii "Do you byte, when I knock?"
would suffice....
--------------------------------------------------------------------
Check out pbFORTH for LEGO Mindstorms at:
<http://www.hempeldesigngroup.com/lego/pbForth>
Buy "Extreme Mindstorms: an Advanced Guide to Lego Mindstorms"
<http://www.amazon.com/exec/obidos/ASIN/1893115844/hempeldesigngrou>
--------------------------------------------------------------------
Reply to: rhempel at bmts dot com
--------------------------------------------------------------------
|
|
Message is in Reply To:
2 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|