Jumping to the kernel.

I have an embedded device that I’m trying to get QNX 4.25D running on. It
has 1M RAM and 1M of flash. Unfortunately for me, lack of docs are forcing
me to use the iDOS that is embedded in the device to try and start the
kernel.

So I made my kernel image… and then

romqnx -c -R0x690000 (bootimage) (bootimage).rom

I then download the (bootimage).rom to 0x690000 (which is flash memory 1ws).

Now my question… can I just jump to the start of the kernel with something
like:

//+++++++++++++++++++++++++++++++++
typedef void FLAT_CALL();

FLAT_CALL Qnx = 0x690000;

void main()
{
Qnx();
}
//+++++++++++++++++++++++++++++++++

or is there more things I need to do to set up the processor coming from a
DOS like environment?

Carey Duran

I have an embedded device that I’m trying to get QNX 4.25D running on. It
has 1M RAM and 1M of flash. Unfortunately for me, lack of docs are forcing
me to use the iDOS that is embedded in the device to try and start the
kernel.

Currently my source code (for borland C 3.1) looks like:

//++++++++++++++++++++++++++++++
#include <stdio.h>
#include <setjmp.h>

void main ()
{
struct __jmp_buf Qnx;

printf( “Jumping to QNX Kernel\n”);
setjmp( &Qnx);
Qnx.j_cs = 0x00000000;
Qnx.j_ip = 0x00690000;
longjmp( &Qnx, 1);
}
//++++++++++++++++++++++++++++++

Are there any better ideas of what these registers and possibly others
should be?

Carey Duran