Re: HalAllocateCommonBuffer & MmMapIoSpace problem



Hi Max,

I don't know why the HalAllocateCommonBuffer & MmMapIoSpace crash. I just
want to find another way to fit your requirement.

You can try to implement the some function of application to a seperate
xyz.dll file and use ActivateDeviceEx() to load the .dll file to the same
slot (device.exe in CE5.0) with DMA driver. Because the DMA driver and the
xyz.dll file are in the same slot, you can share the uncachable address
directly. ^_^

If you want to process the raw data (like as compress/encode), the better
way is copy them to the cachable area. The total performance maybe beter even
though you waste the copy time.

Regards,
Paul, Chao @ Techware, Taiwan.

"max" wrote:

Thank you Paul,

your solution was my first version of the driver.

It manages dma, qci and i2c to get frames from a camera. Some
measurements made by a test application showed that instead of 15
frames per second (the maximum speed at which the camera acquires) I
get only 8.

I think it was caused by the copy of the 600 KB from the dma buffer to
the application buffer, so I decided to share the dma buffer. Now the
application shows the images at full speed.

But, with the debug version of the os, I found the logs of my previous
message. It seems that Hal... and Mm... are not the correct functions
to use, but I do not know what other memory management api I must
use.

Usuallly debug checks are warnings about something getting wrong, and
I would like to know what it is.

Can you help me?

.