Re: Can't link nk.lib and coredll.lib in kern.exe

Tech-Archive recommends: Fix windows errors by optimizing your registry



OK, that's no big deal. There's nothing conceptually difficult about the
OAL, but someone who's never done hardware before is sure to screw it up
badly.

Follow the examples for other hardware access in your OAL, so everything is
consistent. It might be just using a well-known address to access the
hardware. This might be something like 0xa0000000 + the physical address of
the hardware you need to talk to, but will depend on how your OEM address
table is set up.

DWORD *p = (DWORD*)(0xa0000000 + 0x00043210);
*p = ( *p & 0xff000000 ) | 0x008c9cac;

Might be the sort of thing you'd see. The OAL is probably assuming, if it
does something like this, that 0xa0000000 is the set of flags indicating
uncached, unbuffered addresses. The rest of the value is the physical
address of the I/O, which you'd get from the data*** for the processor.
Obviously, then, the dereference of p is pointing to the register at the
indicated location and writing what we hope is a suitable value there to,
say, configure the secondary functions for a set of GPIO lines set up by the
low three bytes of the register.

It's also possible that the OAL has a set of macros to get to processor
registers, who knows.

Paul T.

"Michel van Geffen" <MichelvanGeffen@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in
message news:5591F941-4CAA-4A29-89AE-8653EE50C90C@xxxxxxxxxxxxxxxx
Hi Paul,

I am programming C++ and C for 5 years now, also worked on QNX and
microcontollers. But I am new to this kind of programming, in the OAL I
mean.

But if you can give me some pointers on how to implement this, I can pass
this on to more experienced people in the firm.

Kind regards,

Michel van Geffen
Student at the Avans University of Professional Education

"Paul G. Tobey [eMVP]" wrote:

Wait a minute! You're new to programming and you're trying to modify an
OAL
to get the Ethernet address of some connected hardware? Wrong early
project! Get someone who is not new to programming to help you in the
office with you.

Paul T.

"Michel van Geffen" <MichelvanGeffen@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in
message news:42C51E17-B754-4FFD-80CC-C01D3048B8B1@xxxxxxxxxxxxxxxx
Sorry I ask, but I am kind of new in the programming business. But in
regard
to what Paul said, how can I access the ethernet hardware directly to
retrieve the current mac address.

Kind regards,

Michel van Geffen
Student at the Avans University of Professional Education

"Dean Ramsier" wrote:

Doesn't work in CE6 either. The OAL can't be linked to coredll.
Kernel
mode drivers (or any other module loaded into the kernel) can...
--
Dean Ramsier - eMVP
BSQUARE Corporation


"Paul G. Tobey [eMVP]" <p space tobey no spam AT no instrument no spam
DOT
com> wrote in message news:%23abDFIhqIHA.4492@xxxxxxxxxxxxxxxxxxxxxxx
It doesn't make sense to link with coredll in the kernel, no. In
CE6,
the
architecture changes and if I'm thinking correctly, you should be
able
to
do that (you're actually linked to the kernel version of
coredll.dll,
in
that case).

I think that, for what you're talking about, you'll have to access
the
hardware directly from the OAL and get the MAC address.

Paul T.

"Michel van Geffen" <MichelvanGeffen@xxxxxxxxxxxxxxxxxxxxxxxxx>
wrote
in
message news:8A3824F5-B6FA-40C3-9C3C-3835205E6872@xxxxxxxxxxxxxxxx
Hi all,

I am using WinCE 5, for creating an settopbox. In the OAL I want to
adjust
the OALArgsQuery(OAL_ARGS_QUERY_DEVID) so that the mac address of
the
device
is returned to the calling function. In this case
OALIoCtlHalGetDeviceId( ),
this is needed for DRM to work.

In OALArgsQuery(OAL_ARGS_QUERY_DEVID), I use the
DeviceIOControl(OID_802_3_CURRENT_ADDRESS) to get the current mac
address
of
the device. The function DeviceIOControl uses Coredll.lib, so I
link
this
library in the source of kern.exe, but NK.lib is already linked
here,
and
there are dubble methodcalls in the library's so I use
/FORCE:MULTIPLE.
This
generates several warnings, but the image builds. But when I run
the
image,
it does nothing. It won't boot. So I have a couple of questions
about
that.

Q1) Is it possible to link the two library's in the same source? If
so
how?
Q2) Is there another way to retrieve the current mac address? I
have
already
tried GetAdaptersInfo, but that doesn't work either.

Michel van Geffen
Student at the Avans University of Professional Education










.


Quantcast