Subject:
|
Re: How do I delete firmware from firmware?
|
Newsgroups:
|
lugnet.robotics.rcx.pbforth
|
Date:
|
Tue, 23 May 2000 15:06:46 GMT
|
Reply-To:
|
sjm@judgementSPAMCAKE.com
|
Viewed:
|
1558 times
|
| |
| |
Ralph Hempel wrote:
>
> > I asked this question under a confusing subject that
> > people may have missed so I am asking again. How does
> > one delete firmware from firmware. I am looking for a
> > solution for pbforth but the question could have be asked
> > for LegOS or Quite C as well. If I get no answer I will
> > try gross things like zeroing the first 50 bytes of code,
> > turn off sll interrupts and then jumping to the h8-300 reset
> > vector. Some variation of this will probably work but I
> > wondered if there was an "official" way to do this. I notice
> > from the unofficial internals doc that there is an opcode
> > for this but no rom entry is listed for this function. Has
> > anyone looked at the rom to see what it does?
>
> I think if you do a direct jump to 0x03ae, it will init memory
> and essentially start the brick from scratch. At least that's
> what I read from the internals doc...
Looking at forth code it looks like "HEX 3ae EXECUTE"
might end up doing what we are talking about. I tried this
with out getting what I expected. I will fiddle more but does
the approach seems right?
M_CODE(7,``"EXECUTE"'',EXECUTE,_FLINK)
MOV.W rTOS,rA
MOV.W @rDSP+,rTOS
JMP @rA ;jump to code address
BTW: I like the direct threaded approach of pbforth.
It is clean and easy to understand. The last forth
I knew something about used token threading which
required an extra level of indirection.
|
|
Message has 1 Reply: | | RE: How do I delete firmware from firmware?
|
| (...) Here's a copy of what Kekoa replied with... This sounds correct. In C, this is how I do it: /* Delete the firmware */ *(char *)0xffcc = 1; (*(void (**)(void))0)(); Indeed, *(void (**)(void))0) is the reset vector, whose value is 0x03ae. 0xffcc (...) (25 years ago, 23-May-00, to lugnet.robotics.rcx.pbforth)
|
Message is in Reply To:
| | RE: How do I delete firmware from firmware?
|
| (...) I think if you do a direct jump to 0x03ae, it will init memory and essentially start the brick from scratch. At least that's what I read from the internals doc... Cheers, Ralph Hempel - P.Eng ---...--- Check out pbFORTH for LEGO Mindstorms at: (...) (25 years ago, 18-May-00, to lugnet.robotics.rcx)
|
5 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
This Message and its Replies on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|