To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.rcx.legosOpen lugnet.robotics.rcx.legos in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / RCX / legOS / 1861
1860  |  1862
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: 
1690 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:
  LegOS bug - firmware unlock string not below CC00h in some circumstances
 
Just thought I'd better report this... 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. (...) (23 years ago, 28-Apr-01, to lugnet.robotics.rcx.legos)

2 Messages in This Thread:

Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR