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.
