QNX Sharp Zaurus SL5500

Hi all,

It seems that my previous messge has gotten lost. So I repeat my wuestion again:
Is that possible to install QNX on a Sharp Zaurus SL5500 ?

TIA

Fatih

I’m interested in knowing too …

Larry

“Fatih Erarslan” <cocoavitae@mac.com > wrote in message
news:adpe12$aja$1@inn.qnx.com

Hi all,

It seems that my previous messge has gotten lost. So I repeat my wuestion
again:
Is that possible to install QNX on a Sharp Zaurus SL5500 ?

TIA

Fatih

Hi,

I’m interested to know what would be the minimum reasonable memory
size required to run QNX on an Xscale ARM processor. I’d like to be able
to run mostly out of cache (32K I/D cache). The application code to be run on top
of QNX is fairly simple/small so it would only use basic OS services.

Thanks, Steve

It hasn’t been tested here AFAIK - But it seems to be based on the StrongARM
SA-1110. So in theory, it should run, but getting an image onto the PDA
might be a little harder.

Again, I don’t have any experience with this PDA, but it seems like to would
be possible.


Cheers,
Adam

QNX Software Systems Ltd.
[ amallory@qnx.com ]

With a PC, I always felt limited by the software available.
On Unix, I am limited only by my knowledge.
–Peter J. Schoenster <pschon@baste.magibox.net>
“Fatih Erarslan” <cocoavitae@mac.com > wrote in message
news:adpe12$aja$1@inn.qnx.com

Hi all,

It seems that my previous messge has gotten lost. So I repeat my wuestion
again:
Is that possible to install QNX on a Sharp Zaurus SL5500 ?

TIA

Fatih

“username” <username@cisco.com> wrote in message
news:3D29A879.DABDBF5F@cisco.com

Hi,

I’m interested to know what would be the minimum reasonable memory
size required to run QNX on an Xscale ARM processor. I’d like to be able
to run mostly out of cache (32K I/D cache). The application code to be
run on top
of QNX is fairly simple/small so it would only use basic OS services.

Depending on what you want the OS to do would vary the memory requirements.
If you want nothing but the OS (ie. no networking, or other services) you
can cut
your memory requirements down to probably around 2 megs (or lower maybe).

I have no idea what you mean by “small” application (ie. your idea of small
probably doesn’t
match mine :slight_smile:).

The other problem is that your cache is a 32way 32K cache, which is
virtually addressed and virtually tagged. If your virtual addresses vary in
range greatly (regardless of if the backing store is the same), I think you
could see some problems trying to get your application to “fit” in cache.


Cheers,
Adam

QNX Software Systems Ltd.
[ amallory@qnx.com ]

With a PC, I always felt limited by the software available.
On Unix, I am limited only by my knowledge.
–Peter J. Schoenster <pschon@baste.magibox.net>

With RTP numbers that are small end in M, not K.

I.E. RTP requires an order of magnitude more memory than QNX4.

“username” <username@cisco.com> wrote in message
news:3D29A879.DABDBF5F@cisco.com

Hi,

I’m interested to know what would be the minimum reasonable memory
size required to run QNX on an Xscale ARM processor. I’d like to be able
to run mostly out of cache (32K I/D cache). The application code to be
run on top
of QNX is fairly simple/small so it would only use basic OS services.

Thanks, Steve

–Peter J. Schoenster <pschon@baste.magibox.net>
“Bill Caroselli (Q-TPS)” <QTPS@EarthLink.net> wrote in message
news:agcp0p$luo$1@inn.qnx.com

With RTP numbers that are small end in M, not K.

I.E. RTP requires an order of magnitude more memory than QNX4.

I think you’re comparing apples and oranges here - Momentics takes much more
in
terms of resources to run, but there is a lot more in the offering (IMHO)
than what QNX4 had.

The comparison of QNX4 to QNX6 is like Win3.1 and Win9x - The two really
can’t be compared
fairly. QNX4 was a much simpler beast, QNX6 is a much more complex one.

On a side note, my impression of the goal was to put Neutrino on the Xscale
target, not the full blown development
environment.


Cheers,
Adam

QNX Software Systems Ltd.
[ amallory@qnx.com ]

With a PC, I always felt limited by the software available.
On Unix, I am limited only by my knowledge.

“Bill Caroselli (Q-TPS)” <QTPS@earthlink.net> wrote:

With RTP numbers that are small end in M, not K.

I.E. RTP requires an order of magnitude more memory than QNX4.

Actually this is false for the following reasons:

  1. QNX4 doesn’t support Arm.

  2. Neutrino does not require x10 more memory on x86 targets.


    I think you may be confusing a development system with a target
    (which the poster was asking about).



    John







“username” <> username@cisco.com> > wrote in message
news:> 3D29A879.DABDBF5F@cisco.com> …
Hi,

I’m interested to know what would be the minimum reasonable memory
size required to run QNX on an Xscale ARM processor. I’d like to be able
to run mostly out of cache (32K I/D cache). The application code to be
run on top
of QNX is fairly simple/small so it would only use basic OS services.

Thanks, Steve


John Wall
QSSL
Custom Engineering Group (R&D)

Furthermore, Neutrino supports shared objects, which for some people ends up
saving a lot of space.

dB

“John Wall” <jwall@qnx.com> wrote in message
news:agemj9$9ug$1@nntp.qnx.com

“Bill Caroselli (Q-TPS)” <> QTPS@earthlink.net> > wrote:
With RTP numbers that are small end in M, not K.

I.E. RTP requires an order of magnitude more memory than QNX4.



Actually this is false for the following reasons:

  1. QNX4 doesn’t support Arm.

  2. Neutrino does not require x10 more memory on x86 targets.


    I think you may be confusing a development system with a target
    (which the poster was asking about).



    John







    “username” <> username@cisco.com> > wrote in message
    news:> 3D29A879.DABDBF5F@cisco.com> …
    Hi,

I’m interested to know what would be the minimum reasonable memory
size required to run QNX on an Xscale ARM processor. I’d like to be
able
to run mostly out of cache (32K I/D cache). The application code to
be
run on top
of QNX is fairly simple/small so it would only use basic OS services.

Thanks, Steve




\

John Wall
QSSL
Custom Engineering Group (R&D)

I think much of the confusion and wrong perception comes also from the fact
that Neutrino on x86 puts kernel at 4M mark by default (it is adjustable)
since that makes it faster. Plus devb-xxx drivers tend to allocate a lot of
memory by default for their cache (i think they were more conservative in
QNX4). The ELF format with support for dynamic loading also makes
executables a bit larger.

– igor

“David Bacon” <dbacon@qnx.com> wrote in message
news:agf1vf$e5u$1@inn.qnx.com

Furthermore, Neutrino supports shared objects, which for some people ends
up
saving a lot of space.

dB

“John Wall” <> jwall@qnx.com> > wrote in message
news:agemj9$9ug$> 1@nntp.qnx.com> …
“Bill Caroselli (Q-TPS)” <> QTPS@earthlink.net> > wrote:
With RTP numbers that are small end in M, not K.

I.E. RTP requires an order of magnitude more memory than QNX4.



Actually this is false for the following reasons:

  1. QNX4 doesn’t support Arm.

  2. Neutrino does not require x10 more memory on x86 targets.


    I think you may be confusing a development system with a target
    (which the poster was asking about).



    John







    “username” <> username@cisco.com> > wrote in message
    news:> 3D29A879.DABDBF5F@cisco.com> …
    Hi,

I’m interested to know what would be the minimum reasonable memory
size required to run QNX on an Xscale ARM processor. I’d like to be
able
to run mostly out of cache (32K I/D cache). The application code to
be
run on top
of QNX is fairly simple/small so it would only use basic OS
services.

Thanks, Steve




\

John Wall
QSSL
Custom Engineering Group (R&D)

Adam Mallory wrote:

“username” <> username@cisco.com> > wrote in message
news:> 3D29A879.DABDBF5F@cisco.com> …
Hi,

I’m interested to know what would be the minimum reasonable memory
size required to run QNX on an Xscale ARM processor. I’d like to be able
to run mostly out of cache (32K I/D cache). The application code to be
run on top
of QNX is fairly simple/small so it would only use basic OS services.

Depending on what you want the OS to do would vary the memory requirements.
If you want nothing but the OS (ie. no networking, or other services) you
can cut
your memory requirements down to probably around 2 megs (or lower maybe).

I have no idea what you mean by “small” application (ie. your idea of small
probably doesn’t
match mine > :slight_smile:> ).

Small for me is less than 1/4 Meg total (Instruction & Data), with all
of the most frequently executed functions touching a memory
footprint that is not much that bigger than can be accomodated in
the I/D-cache. The application would require any networking, and would
only use basic OS primitives if it is required to get the size down (e.g. no
resource
managers, 2-3 processes with a couple of threads). Maybe using Neutrino is
just too heavy weight?

It sounds like you are saying this expectations of keeping things this small
is hopelessly unrealistic?

The other problem is that your cache is a 32way 32K cache, which is
virtually addressed and virtually tagged. If your virtual addresses vary in
range greatly (regardless of if the backing store is the same), I think you
could see some problems trying to get your application to “fit” in cache.

The address ranges should not vary widely so this wouldn’t be an issue.

Thanks, Steve


Cheers,
Adam

QNX Software Systems Ltd.
[ > amallory@qnx.com > ]

With a PC, I always felt limited by the software available.
On Unix, I am limited only by my knowledge.
–Peter J. Schoenster <> pschon@baste.magibox.net

Small for me is less than 1/4 Meg total (Instruction & Data), with all
of the most frequently executed functions touching a memory
footprint that is not much that bigger than can be accomodated in
the I/D-cache. The application would require any networking, and would
only use basic OS primitives if it is required to get the size down (e.g. no
resource
managers, 2-3 processes with a couple of threads). Maybe using Neutrino is
just too heavy weight?

It sounds like you are saying this expectations of keeping things this small
is hopelessly unrealistic?

As shipped now, Neutrino will not fit in such a small space. It isn’t an
executive like many other RTOSes, but is more like a realtime UNIX. On
one of the PPC platforms I test on I am able to get a system running (with
a shell and networking) in about 2M of memory.

The other problem is that your cache is a 32way 32K cache, which is
virtually addressed and virtually tagged. If your virtual addresses vary in
range greatly (regardless of if the backing store is the same), I think you
could see some problems trying to get your application to “fit” in cache.


The address ranges should not vary widely so this wouldn’t be an issue.

Well, since Neutrino uses the system’s MMU it doesn’t matter since every
process will have it’s own address space. Thankfully with the later model ARM
CPUs you don’t have to flush the cache on every context swtich, but it
still isn’t as efficent as a physically tagged system (in this situtation).

chris

\

Chris McKillop <cdm@qnx.com> “The faster I go, the behinder I get.”
Software Engineer, QSSL – Lewis Carroll –
http://qnx.wox.org/

What has to be 256K? The kernel and your app?

If so, what features do you need in your kernel?
You said (I think, you had a typo) that you don’t need any networking.
Do you need a file system?
Do you need graphics (Photon)?

If for instance you just need an application running in an embedded
environment with maybe serial and console IO, this should be easily doable
with QNX4.

(Note: QNX4 doesn’t really support multithreaded apps but there are easy
ways around that. I.E. fork()ing and shared memory.

“Steve Marsh” <stevmars@cisco.com> wrote in message
news:3D2B6E0F.DF6EB89F@cisco.com

Adam Mallory wrote:

Small for me is less than 1/4 Meg total (Instruction & Data), with all
of the most frequently executed functions touching a memory
footprint that is not much that bigger than can be accomodated in
the I/D-cache. The application would require any networking, and would
only use basic OS primitives if it is required to get the size down (e.g.
no
resource
managers, 2-3 processes with a couple of threads). Maybe using Neutrino
is
just too heavy weight?

It sounds like you are saying this expectations of keeping things this
small
is hopelessly unrealistic?

“Chris McKillop” <cdm@qnx.com> wrote in message
news:agfvaf$a5h$2@nntp.qnx.com

Small for me is less than 1/4 Meg total (Instruction & Data), with all
of the most frequently executed functions touching a memory
footprint that is not much that bigger than can be accomodated in
the I/D-cache. The application would require any networking, and would
only use basic OS primitives if it is required to get the size down
(e.g. no
resource
managers, 2-3 processes with a couple of threads). Maybe using Neutrino
is
just too heavy weight?

It sounds like you are saying this expectations of keeping things this
small
is hopelessly unrealistic?


As shipped now, Neutrino will not fit in such a small space. It isn’t an
executive like many other RTOSes, but is more like a realtime UNIX. On
one of the PPC platforms I test on I am able to get a system running (with
a shell and networking) in about 2M of memory.

Ehehe… Remembering how original design goal of Neutrino included 4 memory
models one of them being ‘executive’ where you link your app with
microkernel… and second one i think was minimal protection (system/user).
Those would surely fit, what a shame you forgot those goals.

– igor

Unfortunatly QNX4 doesn’t run on ARM.

chris


“Bill Caroselli (Q-TPS)” <QTPS@earthlink.net> wrote:

What has to be 256K? The kernel and your app?

If so, what features do you need in your kernel?
You said (I think, you had a typo) that you don’t need any networking.
Do you need a file system?
Do you need graphics (Photon)?

If for instance you just need an application running in an embedded
environment with maybe serial and console IO, this should be easily doable
with QNX4.

(Note: QNX4 doesn’t really support multithreaded apps but there are easy
ways around that. I.E. fork()ing and shared memory.

“Steve Marsh” <> stevmars@cisco.com> > wrote in message
news:> 3D2B6E0F.DF6EB89F@cisco.com> …


Adam Mallory wrote:

Small for me is less than 1/4 Meg total (Instruction & Data), with all
of the most frequently executed functions touching a memory
footprint that is not much that bigger than can be accomodated in
the I/D-cache. The application would require any networking, and would
only use basic OS primitives if it is required to get the size down (e.g.
no
resource
managers, 2-3 processes with a couple of threads). Maybe using Neutrino
is
just too heavy weight?

It sounds like you are saying this expectations of keeping things this
small
is hopelessly unrealistic?

\


Chris McKillop <cdm@qnx.com> “The faster I go, the behinder I get.”
Software Engineer, QSSL – Lewis Carroll –
http://qnx.wox.org/

“Bill Caroselli (Q-TPS)” <QTPS@earthlink.net> wrote:

What has to be 256K? The kernel and your app?

If so, what features do you need in your kernel?
You said (I think, you had a typo) that you don’t need any networking.
Do you need a file system?
Do you need graphics (Photon)?

If for instance you just need an application running in an embedded
environment with maybe serial and console IO, this should be easily doable
with QNX4.

Bill,

As mentioned in my previous post, QNX4 does not run on the
ARM architecture.


Also, 256K would not be enough for QNX4 (under X86) without going
the XIP route (even this would really depend on the needed applications).


John

\

John

Chris McKillop <cdm@qnx.com> wrote:

Unfortunatly QNX4 doesn’t run on ARM.

Plus, keep in mind that RISC processors tend to have larger code
footprints than CISC processors…

Cheers,
-RK

chris



“Bill Caroselli (Q-TPS)” <> QTPS@earthlink.net> > wrote:
What has to be 256K? The kernel and your app?

If so, what features do you need in your kernel?
You said (I think, you had a typo) that you don’t need any networking.
Do you need a file system?
Do you need graphics (Photon)?

If for instance you just need an application running in an embedded
environment with maybe serial and console IO, this should be easily doable
with QNX4.

(Note: QNX4 doesn’t really support multithreaded apps but there are easy
ways around that. I.E. fork()ing and shared memory.

“Steve Marsh” <> stevmars@cisco.com> > wrote in message
news:> 3D2B6E0F.DF6EB89F@cisco.com> …


Adam Mallory wrote:

Small for me is less than 1/4 Meg total (Instruction & Data), with all
of the most frequently executed functions touching a memory
footprint that is not much that bigger than can be accomodated in
the I/D-cache. The application would require any networking, and would
only use basic OS primitives if it is required to get the size down (e.g.
no
resource
managers, 2-3 processes with a couple of threads). Maybe using Neutrino
is
just too heavy weight?

It sounds like you are saying this expectations of keeping things this
small
is hopelessly unrealistic?




\

Chris McKillop <> cdm@qnx.com> > “The faster I go, the behinder I get.”
Software Engineer, QSSL – Lewis Carroll –
http://qnx.wox.org/


Robert Krten, PARSE Software Devices +1 613 599 8316.
Realtime Systems Architecture, Books, Video-based and Instructor-led
Training and Consulting at www.parse.com.
Email my initials at parse dot com.

“Bill Caroselli (Q-TPS)” wrote:

What has to be 256K? The kernel and your app?

Preferably both together - 256K is more of a WBN. What is important is that
the most frequently running part of the application should fit almost entirely
within Cache.
There are a numerous infrequently run parts of the application that do
not run very often so these can have a much bigger execution footprint.

If so, what features do you need in your kernel?
You said (I think, you had a typo) that you don’t need any networking.

No typo. No networking required.

Do you need a file system?

No.

Do you need graphics (Photon)?

No.

Steve

If for instance you just need an application running in an embedded
environment with maybe serial and console IO, this should be easily doable
with QNX4.

(Note: QNX4 doesn’t really support multithreaded apps but there are easy
ways around that. I.E. fork()ing and shared memory.

“Steve Marsh” <> stevmars@cisco.com> > wrote in message
news:> 3D2B6E0F.DF6EB89F@cisco.com> …


Adam Mallory wrote:

Small for me is less than 1/4 Meg total (Instruction & Data), with all
of the most frequently executed functions touching a memory
footprint that is not much that bigger than can be accomodated in
the I/D-cache. The application would require any networking, and would
only use basic OS primitives if it is required to get the size down (e.g.
no
resource
managers, 2-3 processes with a couple of threads). Maybe using Neutrino
is
just too heavy weight?

It sounds like you are saying this expectations of keeping things this
small
is hopelessly unrealistic?

Robert Krten wrote:

Chris McKillop <> cdm@qnx.com> > wrote:
Unfortunatly QNX4 doesn’t run on ARM.

Plus, keep in mind that RISC processors tend to have larger code
footprints than CISC processors…

How much code compaction can I expect for ARM vs PPC or x86?
ARM uses a variable length instruction which should buy code compaction, no (?).
Where is there information on kernel/application size for one target processor
vs. another target processor?

Steve

Cheers,
-RK

chris

“Bill Caroselli (Q-TPS)” <> QTPS@earthlink.net> > wrote:
What has to be 256K? The kernel and your app?

If so, what features do you need in your kernel?
You said (I think, you had a typo) that you don’t need any networking.
Do you need a file system?
Do you need graphics (Photon)?

If for instance you just need an application running in an embedded
environment with maybe serial and console IO, this should be easily doable
with QNX4.

(Note: QNX4 doesn’t really support multithreaded apps but there are easy
ways around that. I.E. fork()ing and shared memory.

“Steve Marsh” <> stevmars@cisco.com> > wrote in message
news:> 3D2B6E0F.DF6EB89F@cisco.com> …


Adam Mallory wrote:

Small for me is less than 1/4 Meg total (Instruction & Data), with all
of the most frequently executed functions touching a memory
footprint that is not much that bigger than can be accomodated in
the I/D-cache. The application would require any networking, and would
only use basic OS primitives if it is required to get the size down (e.g.
no
resource
managers, 2-3 processes with a couple of threads). Maybe using Neutrino
is
just too heavy weight?

It sounds like you are saying this expectations of keeping things this
small
is hopelessly unrealistic?




\

Chris McKillop <> cdm@qnx.com> > “The faster I go, the behinder I get.”
Software Engineer, QSSL – Lewis Carroll –
http://qnx.wox.org/


Robert Krten, PARSE Software Devices +1 613 599 8316.
Realtime Systems Architecture, Books, Video-based and Instructor-led
Training and Consulting at > www.parse.com> .
Email my initials at parse dot com.

I don’t know about ARM, on X86 the procnto code & data size is about 225K.
Then there’s libc.so which is about 312K. So you’re already over half a meg
and you still need some more stuff, not to forget your apps so you get
closer to 1M. Then it is further bloated by the image filesystem which is
being put into RAM by procnto and will roughly double the total memory size.
That’s how Neutrino ends up not being able to fit into anything less than
2M. The question is, is there anything to be done about ot.

I don’t know how to reduce footprint of procnto itself, QNX folks will have
to comment. I am sure there are ways to cut down its size given you don’t
need lot of things…

The library dietician can cut size of libc a lot, leaving only functions
which are actually used by your code.

The image filesystem I believe can be unbloated somewhat by using
‘unlink_list’ feature which appeared in 6.1. It is not quite clear to me yet
what exacly can be unlinked, I did not experiment. I think once boot is over
whole thing can be unlinked, but problem is - you need image fs during boot
which means you must have that RAM even if temporarily. If there was a way
to unlink things as you go, then total RAM consumption could be reduced,
since RAM consumed by each started program would be released from image
fs… Of course it would be even nicer if image FS could be treated as XIP
(QNX4 did not have image FS at all, boot image was just loaded into memory
and ran there - that was less flexible but more memory conserving).

To summarize, i think QNX could make Neutrino a lot less demanding to memory
if they just tried harder. Something like 512K total for embedded system
should be quite realistic. Even 256K should not be out of question if
procnto was made modular so unneeded parts could be stripped out.

– igor

“Steve Marsh” <stevmars@cisco.com> wrote in message
news:3D2C4B46.76044C15@cisco.com

“Bill Caroselli (Q-TPS)” wrote:

What has to be 256K? The kernel and your app?


Preferably both together - 256K is more of a WBN. What is important is
that
the most frequently running part of the application should fit almost
entirely
within Cache.
There are a numerous infrequently run parts of the application that do
not run very often so these can have a much bigger execution footprint.


If so, what features do you need in your kernel?
You said (I think, you had a typo) that you don’t need any networking.


No typo. No networking required.

Do you need a file system?


No.

Do you need graphics (Photon)?


No.

Steve


If for instance you just need an application running in an embedded
environment with maybe serial and console IO, this should be easily
doable
with QNX4.

(Note: QNX4 doesn’t really support multithreaded apps but there are easy
ways around that. I.E. fork()ing and shared memory.

“Steve Marsh” <> stevmars@cisco.com> > wrote in message
news:> 3D2B6E0F.DF6EB89F@cisco.com> …


Adam Mallory wrote:

Small for me is less than 1/4 Meg total (Instruction & Data), with all
of the most frequently executed functions touching a memory
footprint that is not much that bigger than can be accomodated in
the I/D-cache. The application would require any networking, and
would
only use basic OS primitives if it is required to get the size down
(e.g.
no
resource
managers, 2-3 processes with a couple of threads). Maybe using
Neutrino
is
just too heavy weight?

It sounds like you are saying this expectations of keeping things this
small
is hopelessly unrealistic?