Hi,
posted a similar request a few weeks ago but after help still not
getting a handle to the PLD registers of the video card.
Once problem was that i needed to be SU to do an open on "dev/mem"
but still the pointer to "pld_regs=(unsigned char *)mmap(" is
returning a -1. Checked page size btw which is 4096.
I dont have a problem mapping the video buffer though?
Code below, any suggestions?
Thanks
Matt
#include <unistd.h>
#include <sys/types.h>
#include <sys/mman.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
volatile unsigned char *pld_regs;
int main(int argc, char **argv)
{
char base7;
int mem_handle=open("/dev/mem", O_RDWR | O_SYNC);
//
// 0x11E0_0000 = PLD Register base address
printf("mem handle = %d\n", mem_handle);
pld_regs=(unsigned char *)mmap(0, 4096 , PROT_READ|PROT_WRITE,
MAP_SHARED, mem_handle, 0x11E00000);
if ((int)pld_regs=-1) {
printf("MMap failed.\n Page size = %d\n",getpagesize() );
exit(1);
}
//
//
//
//
printf("TS-7KV Register settings probe \n");
printf("------------------------------ \n\n");
printf("BASE+0 Board ID #1 = %X (documented as 0x41)\n", pld_regs
[0xE0] );
printf("BASE+1 Board ID #2 = %X (documented as 0x20)\n", pld_regs
[0xE1] );
base7=pld_regs[0xE7];
if (base7 & 0x80) printf("ADC option is installed\n");
if (base7 & 0x40) printf("CAN option is installed\n");
if (base7 & 0x20) printf("J5 Set\n");
if (base7 & 0x10) printf("J4 Set\n");
if (base7 & 0x08) printf("J3 Set\n");
if (base7 & 0x04) printf("J2 Set\n");
if (base7 & 0x02) printf("J1 Set\n");
//
//
return 0;
}
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ts-7000/
<*> To unsubscribe from this group, send an email to:
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|