I've got a BeagleBone Black running Angstrom, and I want to directly access 
the ARM335 registers from my C/C++ programs.  A trivial example would be to 
"read" the Device_ID at memory location 0x44E10600.  To do this I tried: 

#include <iostream>
using namespace std;

unsigned long int *p;
unsigned long int DevID = 0x44E10600;

p1 = DevID;  // <= this gives a compiler error: "invalid conversion from 
'long unsigned int' to 'long unsigned int*'
cout << *p1 << endl;  // <= if I "cheat" around the compiler error, I get a 
Segmentation fault from this statement

// etc

Note 1: just the p1 = DevI statement causes a fatal compiler error (as 
indicated in the comment.  
Note 2: I can get around this by using the -fpermissive compiler option, 
but then the cout statement (or any other way of extracting the contents of 
that memory location) gives me the segmentation fault.

I *think* this is a permissions thing -- which means I ought to be able to 
fix it with some command.  Is this correct?  In any case, can someone tell 
me how to read/write to a particular memory location using c/c++?  Much 
obliged!

BDD

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to