Re: Help - hooking up DSP to XScale running CE6!



Forget the fact that this is a DSP. From the OS perspective, it's a memory
mapped device like any other (I assume, based on your description of it; I
have no experience with the DSP whatsoever).

You can't map it in directly from an application due to the architecture of
CE6. The function calls that allow that do that operation can't be called
from user mode. So yes, you need a driver.

But don't be afraid of a driver; it's just a dll. The dll can be very
simple, just a handful of functions that do almost nothing except for the
code that actually accesses your device. And don't be afraid of kernel
mode; the only real difference from a programming perspective is that there
is an additional set of functions that you have access to.

Driver development in CE is entirely different from big Windows. Drop all
of your preconceived notions about what it will be like, because they are
entirely incorrect. It really is a simple task to get basic access to
hardware; you can grow the complexity later if you need sophisticated buffer
management. But that isn't so bad either.

One other thing - you'll need a BSP for this hardware platform that has an
XScale and a PXA270. If you don't have that, the entire situation has
changed. BSP development is hard, if you don't have something to start with
then you're in for a long road ahead. DSP driver development will pale in
comparison.

--
Dean Ramsier - eMVP
BSQUARE Corporation


"Steve Conner" <connermcsteve@xxxxxxxxxxxxxx> wrote in message
news:199e3d38-f9d6-46fe-b392-18a646da65bc@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Hi all, thanks for reading!

I've been given the job of hooking up a Texas Instruments floating-
point DSP to an XScale (PXA270) running CE 6.0. It's part of an
ultrasonic measuring instrument: the DSP will do the signal processing
while the XScale handles the user interface and results display.

The problem I'm having is that I haven't a clue where to start :-o My
experience is mostly in metal bashing with assembler and programming
under Unix/Linux. This is only my second project under any flavour of
Windows, and the first one didn't involve bashing any hardware.

I plan to hook up the DSP's host port to the XScale's local bus, so it
gets mapped in memory or I/O space. But I've no idea how to actually
get at it through all the mess of virtual memory and user/kernel mode,
etc. All the documentation I can find on driver development applies to
CE5 and earlier, and I heard that the driver model was changed
radically for CE6.

I don't even understand whether I need to write a driver, or if
there's some sneaky API I can use to get at physical memory directly
for starters, or even a raw memory device like Linux probably has.

Any information would be much appreciated. I can't be the only person
in the world wanting to do something like this.

Steve Conner
School Of Engineering And Computing
Glasgow Caledonian University


.



Relevant Pages

  • Re: Memory leak in the Driver
    ... driver development, it's most likely that you are at fault. ... The QFE has no impact on the leak but one thing is sure, ... i am sure that all the memory that i am allocating in my driver is ...
    (microsoft.public.windowsce.platbuilder)
  • Re: how to use TLB to prevent Linux accessing a particular memory region
    ... it sounds more like you want a custom driver that "owns" that region of memory so it's marked as used and this driver is the gate keeper. ... I wonder if the console frame buffer driver for the mips ip32 arch might be a good example for you as it swallows a several meg chunk of memory for the display. ... Out of 32MB of DDR 8MB is reserved for use by DSP ... But the MIPS processor downloads firmware ...
    (Linux-Kernel)
  • [PATCH] Integrating SEP Driver with RAR Driver
    ... RAR stands for Restricted Access Region; this is memory ... This is upstream revision 4 of the SEP driver. ... +This functions maps and allocates the shared area on the external ...
    (Linux-Kernel)
  • kernel problem
    ... Scanning 0 areas for low memory corruption ... Allocating PCI resources starting at bff00000 ... Performance Events: AMD PMU driver. ... generic registers: 4 ...
    (Linux-Kernel)
  • Re: kernel problem
    ... Scanning 0 areas for low memory corruption ... CPU: L2 Cache: 512K ... Performance Events: AMD PMU driver. ... generic registers: 4 ...
    (Linux-Kernel)

Loading