resets footer frame numbers

This commit is contained in:
Dhanya Maliakal 2015-09-02 11:06:07 +02:00
parent 34a1dac0fe
commit 95324fc929
5 changed files with 36 additions and 7 deletions

View File

@ -154,7 +154,7 @@ void Beb_GetModuleCopnfiguration(int* master, int* top){
//open file pointer //open file pointer
int fd = Beb_open(XPAR_PLB_GPIO_SYS_BASEADDR,&baseaddr); int fd = Beb_open(XPAR_PLB_GPIO_SYS_BASEADDR,&baseaddr);
if(fd < 0){ if(fd < 0){
cprintf(RED,"Module Configuration FAIL\n"); cprintf(BG_RED,"Module Configuration FAIL\n");
}else{ }else{
//read data //read data
ret = Beb_Read32(baseaddr, MODULE_CONFIGURATION_MASK); ret = Beb_Read32(baseaddr, MODULE_CONFIGURATION_MASK);
@ -177,7 +177,7 @@ u_int32_t Beb_GetFirmwareRevision(){
//open file pointer //open file pointer
int fd = Beb_open(XPAR_VERSION,&baseaddr); int fd = Beb_open(XPAR_VERSION,&baseaddr);
if(fd < 0) if(fd < 0)
cprintf(RED,"Firmware Revision Read FAIL\n"); cprintf(BG_RED,"Firmware Revision Read FAIL\n");
else{ else{
//read revision existing bit //read revision existing bit
@ -185,7 +185,7 @@ u_int32_t Beb_GetFirmwareRevision(){
printf("Firmware Revision Read OK\n"); printf("Firmware Revision Read OK\n");
//error reading //error reading
if(!(value&REVISION_EXISTING_BIT)){ if(!(value&REVISION_EXISTING_BIT)){
cprintf(RED,"Firmware Revision Number does not exist in this version\n"); cprintf(BG_RED,"Firmware Revision Number does not exist in this version\n");
value = 0; value = 0;
}else{ }else{
//read revision number //read revision number
@ -203,6 +203,27 @@ u_int32_t Beb_GetFirmwareRevision(){
return value; return value;
} }
void Beb_ResetFrameNumber(){
//mapping new memory to read master top module configuration
u_int32_t baseaddr;
//open file pointer
int fd = Beb_open(XPAR_PLB_GPIO_SYS_BASEADDR,&baseaddr);
if(fd < 0){
cprintf(BG_RED,"Reset Frame Number FAIL\n");
}else{
//write a 1
Beb_Write32(baseaddr, FRAME_NUM_RESET_OFFSET, 1);
usleep(100000); //100ms
//write a 0
Beb_Write32(baseaddr, FRAME_NUM_RESET_OFFSET, 0);
printf("Frame Number Reset OK\n");
//close file pointer
Beb_close(fd);
}
}
void Beb_ClearBebInfos(){ void Beb_ClearBebInfos(){
//unsigned int i; //unsigned int i;
//for(i=0;i<bebInfoSize;i++) free(beb_infos[i]); //for(i=0;i<bebInfoSize;i++) free(beb_infos[i]);
@ -582,7 +603,7 @@ int Beb_StopAcquisition()
//open file pointer //open file pointer
int fd = Beb_open(XPAR_CMD_GENERATOR,&baseaddr); int fd = Beb_open(XPAR_CMD_GENERATOR,&baseaddr);
if(fd < 0){ if(fd < 0){
cprintf(RED,"Beb Stop Acquisition FAIL\n"); cprintf(BG_RED,"Beb Stop Acquisition FAIL\n");
return 0; return 0;
}else{ }else{
//find value //find value
@ -657,7 +678,7 @@ int Beb_RequestNImages(unsigned int beb_number, int ten_gig, unsigned int dst_nu
//open file pointer //open file pointer
int fd = Beb_open(XPAR_CMD_GENERATOR,&baseaddr); int fd = Beb_open(XPAR_CMD_GENERATOR,&baseaddr);
if(fd < 0){ if(fd < 0){
cprintf(RED,"Beb Request N Images FAIL\n"); cprintf(BG_RED,"Beb Request N Images FAIL\n");
return 0; return 0;
}else{ }else{
@ -790,14 +811,14 @@ int Beb_open(u_int32_t baseaddr, u_int32_t* csp0base){
int fd = open("/dev/mem", O_RDWR | O_SYNC, 0); int fd = open("/dev/mem", O_RDWR | O_SYNC, 0);
if (fd == -1) if (fd == -1)
cprintf(RED,"\nCan't find /dev/mem!\n"); cprintf(BG_RED,"\nCan't find /dev/mem!\n");
else{ else{
#ifdef VERBOSE #ifdef VERBOSE
printf("/dev/mem opened\n"); printf("/dev/mem opened\n");
#endif #endif
*csp0base = (u_int32_t)mmap(0, 0x1000, PROT_READ|PROT_WRITE, MAP_FILE|MAP_SHARED, fd, baseaddr); *csp0base = (u_int32_t)mmap(0, 0x1000, PROT_READ|PROT_WRITE, MAP_FILE|MAP_SHARED, fd, baseaddr);
if (*csp0base == (u_int32_t)MAP_FAILED) { if (*csp0base == (u_int32_t)MAP_FAILED) {
cprintf(RED,"\nCan't map memmory area!!\n"); cprintf(BG_RED,"\nCan't map memmory area!!\n");
fd = -1; fd = -1;
} }
#ifdef VERBOSE #ifdef VERBOSE

View File

@ -49,6 +49,7 @@ struct BebInfo{
void Beb_GetModuleCopnfiguration(int* master, int* top); void Beb_GetModuleCopnfiguration(int* master, int* top);
u_int32_t Beb_GetFirmwareRevision(); u_int32_t Beb_GetFirmwareRevision();
void Beb_ResetFrameNumber();
int Beb_WriteTo(unsigned int index); int Beb_WriteTo(unsigned int index);

View File

@ -136,3 +136,5 @@
#define REVISION_MASK 0x0FFFFFFF #define REVISION_MASK 0x0FFFFFFF
#define SUB_REVISION_MASK 0xF0000000 #define SUB_REVISION_MASK 0xF0000000
#define FRAME_NUM_RESET_OFFSET 0xA0

View File

@ -482,6 +482,11 @@ enum detectorSettings setSettings(enum detectorSettings sett, int imod){
int startReceiver(int d){ int startReceiver(int d){
//reset frame number
printf("Going to reset Frame Number\n");
Beb_ResetFrameNumber();
//if(master) //if(master)
Feb_Control_PrepareForAcquisition(); Feb_Control_PrepareForAcquisition();
return OK; return OK;