How to write code that communicates with an accelerator in the real address space (real mode)?
Posted
by
ysap
on Ask Ubuntu
See other posts from Ask Ubuntu
or by ysap
Published on 2012-09-14T15:05:16Z
Indexed on
2012/09/14
15:49 UTC
Read the original article
Hit count: 238
This is a preliminary question for the issue, where I was asked to program a host-accelerator program on an embedded system we are building. The system is comprised of (among the standard peripherals) an ARM core and an accelerator processor. Both processors access the system bus via their bus interfaces, and share the same 32-bit global physical memory space. Both share access to the system's DRAM through the system bus.
(The computer concept is similar to Beagleboard/raspberry Pie, but with a specialized accelerator added)
The accelerator has its own internal memory (SRAM) which is exposed to the system and occupies a portion of the global address space (as opposed to how a graphics card would talk to teh CPU via a "small" aperture in the system memory space).
On the ARM core (the host) we plan on running Ubuntu 12.04. The mode of operation of communicating between the processors should be that the host issues memory transactions on the system bus that are targeted at the accelerator internal memory.
As far as my understanding goes, if I write a program for the host that simply writes to the physical address of the accelerator, most chances are that the program will crash due to a segmentation violation. So, I assume that I need some way of communicating with the device in real mode.
What is the easiest way to achieve this mode of operation?
© Ask Ubuntu or respective owner