Cross platform development

Is anyone out there using CodeWarrior for Neutrino on an NT Workstation?
I’m considering using it, but because there is no eval copy policy, I’m
kinda at the mercy of the sales propaganda. All of our repository code is
on an NT server and I’d like to remotely debug via ethernet to a Neutrino
target that boots via bootp. Is this a pipe dream?

John

John Bowen <John.Bowen@grc.nasa.gov> wrote:

Is anyone out there using CodeWarrior for Neutrino on an NT Workstation?

NT, 2000, 98 is the current test hosts.


I’m considering using it, but because there is no eval copy policy, I’m
kinda at the mercy of the sales propaganda. All of our repository code is
on an NT server and I’d like to remotely debug via ethernet to a Neutrino
target that boots via bootp. Is this a pipe dream?

Ethernet or Serial

I use “Weird Solutions” and “Hummingbird Maestro” for bootp and tftpd
protocols on NT. NFS client on the target to mount the NT host and
Neutrino bin/sys/dll directories.

So everything you describe above I’ve implemented in the test lab.

But heres a couple of additional things to consider:

  • CodeWarrior supports PPC/x86 only, the Neutrino installation
    supports PPC/x86/mips.

  • the current package is Neutrino 2.0c, but 2.11 should be
    available soon as a free upgrade.

  • CodeWarrior calls out to the GNU tool chain, so you’ll be
    using the exact same tools as other hosts, the main features
    are the IDE wrapper to the tool chain and the CodeWarrior
    graphical debugger. GDB is also included in the package.

  • C++ support is from Metrowerks Standard Libraires (MSL)
    QSSL is moving to the Dinkum C++ libraries, but isn’t ready
    for general distribution yet.

  • The “Pre-Release 4” of CodeWarrior featured IDE version 3.x
    QSSL will be shipping a Release Version 1.0 to all registered
    customers this coming week. This updated “Release” features IDE
    version 4.x - Neutrino will continue to be 2.0c, to be updated
    later (as mentioned above).

Others in the field will have to comment on the overall suitablility
of our cross development solutions.

Is this the only IDE that can achieve cross platform development? I hate to
admit this but, I liked the Tornado II development environment from WRS, and
I could still use my NT LAN based stuff. My targets aren’t always powerful
enough to host Photon, or X or whatever. I just want them to run my control
app and the kernel (and of course tcp/ip).

I’m not averse to change, but I’m not convinced that this change is for the
better. This is a pre-emptive strike to Warren…

“Allan Kleywegt” <apkleywegt@qnx.com> wrote in message
news:932d2u$qpj$1@nntp.qnx.com

John Bowen <> John.Bowen@grc.nasa.gov> > wrote:
Is anyone out there using CodeWarrior for Neutrino on an NT Workstation?


NT, 2000, 98 is the current test hosts.


I’m considering using it, but because there is no eval copy policy, I’m
kinda at the mercy of the sales propaganda. All of our repository code
is
on an NT server and I’d like to remotely debug via ethernet to a
Neutrino
target that boots via bootp. Is this a pipe dream?

Ethernet or Serial

I use “Weird Solutions” and “Hummingbird Maestro” for bootp and tftpd
protocols on NT. NFS client on the target to mount the NT host and
Neutrino bin/sys/dll directories.

So everything you describe above I’ve implemented in the test lab.

But heres a couple of additional things to consider:

  • CodeWarrior supports PPC/x86 only, the Neutrino installation
    supports PPC/x86/mips.

  • the current package is Neutrino 2.0c, but 2.11 should be
    available soon as a free upgrade.

  • CodeWarrior calls out to the GNU tool chain, so you’ll be
    using the exact same tools as other hosts, the main features
    are the IDE wrapper to the tool chain and the CodeWarrior
    graphical debugger. GDB is also included in the package.

  • C++ support is from Metrowerks Standard Libraires (MSL)
    QSSL is moving to the Dinkum C++ libraries, but isn’t ready
    for general distribution yet.

  • The “Pre-Release 4” of CodeWarrior featured IDE version 3.x
    QSSL will be shipping a Release Version 1.0 to all registered
    customers this coming week. This updated “Release” features IDE
    version 4.x - Neutrino will continue to be 2.0c, to be updated
    later (as mentioned above).

Others in the field will have to comment on the overall suitablility
of our cross development solutions.

“John Bowen” <John.Bowen@grc.nasa.gov> wrote in message
news:932ga0$sll$1@inn.qnx.com

Is this the only IDE that can achieve cross platform development? I hate
to
admit this but, I liked the Tornado II development environment from WRS,
and
I could still use my NT LAN based stuff. My targets aren’t always
powerful
enough to host Photon, or X or whatever. I just want them to run my
control
app and the kernel (and of course tcp/ip).

I’m not averse to change, but I’m not convinced that this change is for
the
better. This is a pre-emptive strike to Warren…

If you have low power targets (no MMU less than 100 Mhz), and you like to
develop under NT, then VxWorks is probably what you want. QNX is primarily
designed for targets that have an MMU and for developers that like to
develop in a Unix environment. While NT side development is supported, I
would guess that most developers are doing self-hosted development
(self-hosted does not mean you have to develop on a target, it simply means
that your workstation and your target are running the same OS). I often
develop the entire app on my workstation before I ever see the target; and
when I get the target the code usually works first time (since it has
already been thoroughly tested and debugged on the workstation).

Self-hosted development is many times more productive than cross-development
(I have developed both ways many times over the past 15 years). I would
suggest that before you decide that self-hosted development is not a change
for the better, that you first try it.

btw: if you require access to Windows apps from your RtP workstation, you
could always set up a Citrix server (RtP ships with an ICA client).

Rennie

John Bowen wrote:

Is this the only IDE that can achieve cross platform development? I hate to
admit this but, I liked the Tornado II development environment from WRS, and
I could still use my NT LAN based stuff. My targets aren’t always powerful
enough to host Photon, or X or whatever. I just want them to run my control
app and the kernel (and of course tcp/ip).

I’m not averse to change, but I’m not convinced that this change is for the
better.

If you not only have to produce ‘some nice days
with a fancy development environment’ … but a
fast and working TARGET, then the QNX NTO solution
is
always the better one!
Armin

But the RtP sales hype makes claims about running on “wireless portable
devices with less than 4M”. I’m confused as to what the targeted customer
base for Neutrino is. I know it can’t be everything to everybody.

I’m really trying to not be a whiner. Other RTOS vendors preach about
supporting NT hosted development, so I’m not the only one who likes this.

I used QNX before in a small embedded system and I liked it. The only real
critique that I had was with Watcom. It would be nice to get back into
using QNX/Neutrino again and the multithreading support is appealing. Other
projects with very deep pockets have spent months determining what OS they
were going to use. I don’t have that luxury and I’m trying to understand as
much as I can.

“John Doe” <john@csical.com> wrote in message
news:932i5c$gf$1@inn.qnx.com

“John Bowen” <> John.Bowen@grc.nasa.gov> > wrote in message
news:932ga0$sll$> 1@inn.qnx.com> …
Is this the only IDE that can achieve cross platform development? I
hate
to
admit this but, I liked the Tornado II development environment from WRS,
and
I could still use my NT LAN based stuff. My targets aren’t always
powerful
enough to host Photon, or X or whatever. I just want them to run my
control
app and the kernel (and of course tcp/ip).

I’m not averse to change, but I’m not convinced that this change is for
the
better. This is a pre-emptive strike to Warren…

If you have low power targets (no MMU less than 100 Mhz), and you like to
develop under NT, then VxWorks is probably what you want. QNX is
primarily
designed for targets that have an MMU and for developers that like to
develop in a Unix environment. While NT side development is supported, I
would guess that most developers are doing self-hosted development
(self-hosted does not mean you have to develop on a target, it simply
means
that your workstation and your target are running the same OS). I often
develop the entire app on my workstation before I ever see the target; and
when I get the target the code usually works first time (since it has
already been thoroughly tested and debugged on the workstation).

Self-hosted development is many times more productive than
cross-development
(I have developed both ways many times over the past 15 years). I would
suggest that before you decide that self-hosted development is not a
change
for the better, that you first try it.

btw: if you require access to Windows apps from your RtP workstation, you
could always set up a Citrix server (RtP ships with an ICA client).

Rennie

“John Bowen” <John.Bowen@grc.nasa.gov> wrote in message
news:932k4h$1g1$1@inn.qnx.com

But the RtP sales hype makes claims about running on “wireless portable
devices with less than 4M”. I’m confused as to what the targeted customer
base for Neutrino is. I know it can’t be everything to everybody.

The target can be a wireless portable devices with less then 4M to a
Multiprocessor machine with 8CPU and 4Gig of ram. Neutrino
scales extremely well. You just use the module/component that you need.

I’m really trying to not be a whiner. Other RTOS vendors preach about
supporting NT hosted development, so I’m not the only one who likes this.

They preach about it cause that’s the only thing they offer since their OS
doesn’t support self hosted. At the moment NTO offers you both, cross
or self-hosted. Local isn’t has fancy but it’s darn efficient.

  • Mario

John Bowen wrote:

But the RtP sales hype makes claims about running on “wireless portable
devices with less than 4M”. I’m confused as to what the targeted customer
base for Neutrino is. I know it can’t be everything to everybody.

What you need will fit into 4M (kernel, tcp stack + some apps) just
fine. It will fit into less that that in fact. However NTO kernel really
wants MMU. It can (theoretically) support MMU-less targets but that’s
only for deep pocket projects carried by big OEMs (since that will
involve lot of custom engineering work from QSSL).

On the bright side, most of modern CPUs have MMU (although some
brain-dead version of PPC don’t). This has not been mentioned but NTO
kernel in fact also supports Toshiba SuperH and Intel SrongARM
architectures (which I’ve heard are very attractive for small devices).
That has not been released to general public but if you have appealing
business case you sure can work out an agreement with QSSL.

I’m really trying to not be a whiner. Other RTOS vendors preach about
supporting NT hosted development, so I’m not the only one who likes this.

Well, we have tried that (NT) approach here. Turned out that
Solaris-hosted development works better for us. I suppose situation
might have improved since then and may be it will work fine for you. Few
issues to consider though:

  • cross-development tools always lag behind self-hosted ones (compiler
    versions, etc);

  • until MW comes up with their own compiler its IDE and debugger aren’t
    fully functional;

  • igor

“John Bowen” <John.Bowen@grc.nasa.gov> wrote in message
news:932k4h$1g1$1@inn.qnx.com

But the RtP sales hype makes claims about running on “wireless portable
devices with less than 4M”. I’m confused as to what the targeted customer
base for Neutrino is. I know it can’t be everything to everybody.

A wireless portable device using an ARM with less than 4MB sure. I would be
shocked if any wireless portable device being contemplated by anyone today
is sans MMU and less than 100Mhz…

I’m really trying to not be a whiner. Other RTOS vendors preach about
supporting NT hosted development, so I’m not the only one who likes this.

The reason “other” RTOS vendors “preach” about NT hosted development, is
because they don’t support self-hosted development. If they did, you could
bet your booty that their marketing people would be “preaching” like Jim
Baker after washing down a handful of bennies with a double expresso…

I used QNX before in a small embedded system and I liked it. The only
real
critique that I had was with Watcom. It would be nice to get back into
using QNX/Neutrino again and the multithreading support is appealing.
Other
projects with very deep pockets have spent months determining what OS they
were going to use. I don’t have that luxury and I’m trying to understand
as
much as I can.

And I’m trying to give you as much good (IMO) information as I can. I feel
that RtP’s self-hosted nature is a major feature. If your doing small
projects on tiny parts VxWorks is a fine product. If you are doing large
projects on small parts then there is really nothing better than Neutrino
available. IMO if you want to work with Neutrino you are just gonna be
causing yourself a lot of lost productivity by doing cross development (as
with any cross developed platform, but probably a bit worse - since QSSL
doesn’t really push cross development - can’t say I blame them).

“John Doe” <> john@csical.com> > wrote in message
news:932i5c$gf$> 1@inn.qnx.com> …

“John Bowen” <> John.Bowen@grc.nasa.gov> > wrote in message
news:932ga0$sll$> 1@inn.qnx.com> …
Is this the only IDE that can achieve cross platform development? I
hate
to
admit this but, I liked the Tornado II development environment from
WRS,
and
I could still use my NT LAN based stuff. My targets aren’t always
powerful
enough to host Photon, or X or whatever. I just want them to run my
control
app and the kernel (and of course tcp/ip).

I’m not averse to change, but I’m not convinced that this change is
for
the
better. This is a pre-emptive strike to Warren…

If you have low power targets (no MMU less than 100 Mhz), and you like
to
develop under NT, then VxWorks is probably what you want. QNX is
primarily
designed for targets that have an MMU and for developers that like to
develop in a Unix environment. While NT side development is supported,
I
would guess that most developers are doing self-hosted development
(self-hosted does not mean you have to develop on a target, it simply
means
that your workstation and your target are running the same OS). I often
develop the entire app on my workstation before I ever see the target;
and
when I get the target the code usually works first time (since it has
already been thoroughly tested and debugged on the workstation).

Self-hosted development is many times more productive than
cross-development
(I have developed both ways many times over the past 15 years). I would
suggest that before you decide that self-hosted development is not a
change
for the better, that you first try it.

btw: if you require access to Windows apps from your RtP workstation,
you
could always set up a Citrix server (RtP ships with an ICA client).

Rennie

\

Do you merely run the kernel and pdebug on your target? What is the
development environment like on the Solaris host? I assume it is X (or
Gnome or something like that). What applications do you use to
edit/compile/debug your code?

thanks,
john
“Igor Kovalenko” <Igor.Kovalenko@motorola.com> wrote in message
news:3A5503C7.678A2406@motorola.com

John Bowen wrote:

But the RtP sales hype makes claims about running on “wireless portable
devices with less than 4M”. I’m confused as to what the targeted
customer
base for Neutrino is. I know it can’t be everything to everybody.


What you need will fit into 4M (kernel, tcp stack + some apps) just
fine. It will fit into less that that in fact. However NTO kernel really
wants MMU. It can (theoretically) support MMU-less targets but that’s
only for deep pocket projects carried by big OEMs (since that will
involve lot of custom engineering work from QSSL).

On the bright side, most of modern CPUs have MMU (although some
brain-dead version of PPC don’t). This has not been mentioned but NTO
kernel in fact also supports Toshiba SuperH and Intel SrongARM
architectures (which I’ve heard are very attractive for small devices).
That has not been released to general public but if you have appealing
business case you sure can work out an agreement with QSSL.

I’m really trying to not be a whiner. Other RTOS vendors preach about
supporting NT hosted development, so I’m not the only one who likes
this.


Well, we have tried that (NT) approach here. Turned out that
Solaris-hosted development works better for us. I suppose situation
might have improved since then and may be it will work fine for you. Few
issues to consider though:

  • cross-development tools always lag behind self-hosted ones (compiler
    versions, etc);

  • until MW comes up with their own compiler its IDE and debugger aren’t
    fully functional;

  • igor

“John Bowen” <John.Bowen@grc.nasa.gov> wrote in message
news:93hnum$1f5$1@inn.qnx.com

Do you merely run the kernel and pdebug on your target?

Plus TCP stack, plus dozen of our applications (it is rather high-end
system). We also have Xlibs there in case we need to run something like DDD
on target.

What is the
development environment like on the Solaris host? I assume it is X (or
Gnome or something like that).

GNU toolchain, just like on RTP. It is in public beta by now I think.
Solaris runs OpenWindows which is X, of course. We have version control
stuff (ClearCase), bug tracking system (DDTS/FTR) which work better on
Solaris (than on NT, in our experience).

What applications do you use to
edit/compile/debug your code?

Everyone has his own favorite editor. I personally use nedit.

Compilation is rather complicated, because we have it closely tied with
version control system. Basically, to check in anything you need a ‘DR’
(ticket number) assigned to you (because check-in will invoke custom
triggers assigned to modules). For changes to make it into next build the DR
must be resolved and approved by business change control board. That
formalism is supported by tools - input data for the build script is list of
DRs to be included. Then appropriate versions of code modules are
automatically extracted from source control database and passed to make,
along with automatically generated makefiles.

Debugger is gdb+ddd.

Note, it is also possible to trick Metrowerks CW for Solaris to generate
Neutrino code (once you have GNU toolchain for Neutrino hosted on Solaris).
I tried that, but we don’t use it much, mostly due to the fact that we need
automated scripted build process. For huge projects like ours it is pain in
the neck to compile the whole thing from an IDE :wink:

  • igor

thanks,
john
“Igor Kovalenko” <> Igor.Kovalenko@motorola.com> > wrote in message
news:> 3A5503C7.678A2406@motorola.com> …
John Bowen wrote:

But the RtP sales hype makes claims about running on “wireless
portable
devices with less than 4M”. I’m confused as to what the targeted
customer
base for Neutrino is. I know it can’t be everything to everybody.


What you need will fit into 4M (kernel, tcp stack + some apps) just
fine. It will fit into less that that in fact. However NTO kernel really
wants MMU. It can (theoretically) support MMU-less targets but that’s
only for deep pocket projects carried by big OEMs (since that will
involve lot of custom engineering work from QSSL).

On the bright side, most of modern CPUs have MMU (although some
brain-dead version of PPC don’t). This has not been mentioned but NTO
kernel in fact also supports Toshiba SuperH and Intel SrongARM
architectures (which I’ve heard are very attractive for small devices).
That has not been released to general public but if you have appealing
business case you sure can work out an agreement with QSSL.

I’m really trying to not be a whiner. Other RTOS vendors preach about
supporting NT hosted development, so I’m not the only one who likes
this.


Well, we have tried that (NT) approach here. Turned out that
Solaris-hosted development works better for us. I suppose situation
might have improved since then and may be it will work fine for you. Few
issues to consider though:

  • cross-development tools always lag behind self-hosted ones (compiler
    versions, etc);

  • until MW comes up with their own compiler its IDE and debugger aren’t
    fully functional;

  • igor

“Igor Kovalenko” <kovalenko@home.com> wrote in message
news:93i4o7$8r0$1@inn.qnx.com

“John Bowen” <> John.Bowen@grc.nasa.gov> > wrote in message
news:93hnum$1f5$> 1@inn.qnx.com> …
Do you merely run the kernel and pdebug on your target?
Note, it is also possible to trick Metrowerks CW for Solaris to generate
Neutrino code (once you have GNU toolchain for Neutrino hosted on
Solaris).
I tried that, but we don’t use it much, mostly due to the fact that we
need
automated scripted build process. For huge projects like ours it is pain
in
the neck to compile the whole thing from an IDE > :wink:

No kidding. At a company I worked for previously, we did software for an
FDA class 3 device. All the same config management steps (different tools)
that you describe. Trying to squeeze an IDE into that process is
impossible. Someone would have to build an IDE that does absolutely
everything, and it just doesn’t exist yet (I’d be more than willing to use
one once it did). Fortunately, I now work in a far less config managed
environment (more pleasant from a developers point-of-view).

Rennie

If Metrowerks could use plain makefiles, it would be close to what we
need. I already suggested them to encode their specific stuff as
comments in plain makefiles. Now if IDE inkoves a normal command-line
compiler, everything is fine. One can use IDE for making
changes/debugging and then scripts to do formal builds. As long as same
make files are used, it would work. CW also has hooks for version
control systems. But alas, Clearcase on NT does not play well with DDTS
(can’t use triggers).

All my experience so far tells, whenever you need to do extensive
scripting/custom procedures work all IDEs suck. And Unix environment
usually works better.

  • igor

John Doe wrote:

“Igor Kovalenko” <> kovalenko@home.com> > wrote in message
news:93i4o7$8r0$> 1@inn.qnx.com> …
“John Bowen” <> John.Bowen@grc.nasa.gov> > wrote in message
news:93hnum$1f5$> 1@inn.qnx.com> …
Do you merely run the kernel and pdebug on your target?
Note, it is also possible to trick Metrowerks CW for Solaris to generate
Neutrino code (once you have GNU toolchain for Neutrino hosted on
Solaris).
I tried that, but we don’t use it much, mostly due to the fact that we
need
automated scripted build process. For huge projects like ours it is pain
in
the neck to compile the whole thing from an IDE > :wink:

No kidding. At a company I worked for previously, we did software for an
FDA class 3 device. All the same config management steps (different tools)
that you describe. Trying to squeeze an IDE into that process is
impossible. Someone would have to build an IDE that does absolutely
everything, and it just doesn’t exist yet (I’d be more than willing to use
one once it did). Fortunately, I now work in a far less config managed
environment (more pleasant from a developers point-of-view).

Rennie