void afterBist(void)
{
    unsigned int jumpers;
    unsigned int selftest;
    unsigned int bist;

    P4205_REG_READ(P4205_BOARD_CNTL_STATUS, P4205_JUMPER_STATUS_REG, jumpers);
    selftest = jumpers & P4205_SELFTEST_MODE_MASK;

    // Turn off Front Panel Leds
    P4205_SET_LED_STATE(0);

    // Display all errors detected during initialization on console
    printErrorLog();

    // If user flash erase jumper is ON, Erase User flash 
    if (jumpers & P4205_FLASH_BOOTPARM_RESTORE) 
    {
        extern void set_console_baud_rate(int);
        set_console_baud_rate(9600);

        diag_printf("Initializing Flash Defaults\n");
        argv[1] = "-i";
        argv[2] = "-v";
        argc = 3;
        do_flash_config(argc, argv);
    } 
    
    /* If BIST in progress */
    P4205_REG_READ(P4205_BOARD_CNTL_STATUS, P4205_BIST_REG, bist);
    if (bist & P4205_BIST_IN_PROGRESS)
    {
    }

    /* Run diagnostics continuously */
    if (selftest == P4205_RUN_CONTINUOUS_BIST)  
    {
       bist &= ~(P4205_BIST_WARM_START | P4205_BIST_IN_PROGRESS);
       P4205_REG_WRITE(P4205_BOARD_CNTL_STATUS, P4205_BIST_REG, bist);
       diag_printf("Diagnostic Only Mode, Resetting...\n");
       CYGACC_CALL_IF_DELAY_US(2*100000);
       CYGACC_CALL_IF_RESET();
    } 
    else
    {
       bist &= ~(P4205_BIST_IN_PROGRESS);
       P4205_REG_WRITE(P4205_BOARD_CNTL_STATUS, P4205_BIST_REG, bist);
    }

}
Example #2
0
int main(int argc, char* argv[]) {getCurrentDir(self_dir);self_path=self_dir+String(path_delim)+executable_name;
    CWD=toString(self_dir);
    CWDN=basename(self_dir);
    prepareLogDir();
    
    

    
    //////////////////////////////// Opt parse////////////////////////////////////////////
    
    StringArray args;
    for(int i = 1; i < argc; i++){args.push_back(argv[i]);}
    
    bool skipcount=false;
    bool noopt=false;
  { //Scope for the following objects
    Options inc_obj("-inc","--increment-value");
    Options linc_obj("-linc","--line-increment-value");
    Options si_obj("-i","-si","--index","--start-index");
    Options ei_obj("-ei","--end-index");
    Options ifl_obj("-ifl","--index-field-length");
    Options ifp_obj("-ifp","--index-field-precision");
    Options iff_obj("-iff","--index-field-filler");
    Options ns_obj("-ns","--name-string");
    Options nsf_obj("-ns/f","--name-string-file");
    Options sl_obj("-l","-sl","--line","--start-line");
    Options el_obj("-el","--end-line");
    Options ss_obj("-ss","--search-string");
    Options ss_file_obj("-ss/f","--search-string-file");
    Options rs_obj("-rs","--replace-string");
    Options rs_file_obj("-rs/f","--replace-string-file");
    Options re_obj("-re","--regex");
    Options dp_obj("-dp","--depth");
    Options if_obj("-if","--index-flags");
    
    for(int i = 0; i < (int)args.size(); i++){
      if(skipcount){skipcount=false;continue;}
        
      String opt=toLower(String(args[i]));
      
     if(!noopt){
      if(opt=="-h"||opt=="--help"){
          printe help_message;
          return 0;
        }
      else if(opt=="-v"||opt=="--version"){
          printe version_info;
          return 0;
        }
        
      else if(opt=="-q"||opt=="--quiet"){
          quiet=true;
          
        }
      
      else if(opt=="-fo"||opt=="--file-only"){
          file_only=true;
          
        }
      
      else if(opt=="-do"||opt=="--directory-only"){
          directory_only=true;
        
        }
        
      else if(opt=="-ed"||opt=="--exclude-directory"){
          exclude_directory=true;
          
        }
        
      else if(opt=="-inc"||opt=="--increment-value"){
          checkArgAvailability(args,i+1);
          mustBeAPositiveNumber("Increment Value","\nNegative increment i.e decrement will be available using name string rule:\n\
"+path_delim+"-i"+path_delim+", "+path_delim+"-ir"+path_delim+", "+path_delim+"-id"+path_delim+" etc..\n",args[i+1]);
          inc=stringTo<decltype(inc)>(args[i+1]);
          skipcount=true;
          
          inc_obj.count++;
          if(inc_obj.count>1){printWarningLog("Increment value overwritten");}
        }
        
      else if(opt=="-linc"||opt=="--line-increment-value"){
          checkArgAvailability(args,i+1);
          mustBeAPositiveInteger("Line Increment Value",args[i+1]);
          linc=stringTo<decltype(linc)>(args[i+1]);
          skipcount=true;
          
          linc_obj.count++;
          if(linc_obj.count>1){printWarningLog("Line increment value overwritten");}
        }
        
        
      else if(opt=="-i"||opt=="-si"||opt=="--index"||opt=="--start-index"){
          checkArgAvailability(args,i+1);
          mustBeANumber("Start Index",args[i+1]);
          start_index=stringTo<decltype(start_index)>(args[i+1]);
          current_index=start_index;
          current_index_rd=start_index;
          reverse_index=start_index;
          reverse_index_rd=start_index;
          DIRECTORY_INDEX=start_index;
          DIRECTORY_REVERSE_INDEX=start_index;
          skipcount=true;
          
          si_obj.count++;
          if(si_obj.count>1){printWarningLog("Start index overwritten");}
        }
        
      else if(opt=="-ei"||opt=="--end-index"){
          checkArgAvailability(args,i+1);
          mustBeANumber("End Index",args[i+1]);
          end_index=stringTo<decltype(end_index)>(args[i+1]);
          skipcount=true;
          
          ei_obj.count++;
          if(ei_obj.count>1){printWarningLog("End index overwritten");}
        }
        
        
      else if(opt=="-if"||opt=="--index-flags"){
          checkArgAvailability(args,i+1);
          parseIndexFlags(args[i+1]);
          skipcount=true;
          if_obj.count++;
          if(if_obj.count>1){printWarningLog("Override occurred in Index flags");}
        }
        
      else if(opt=="-ifl"||opt=="--index-field-length"){
          checkArgAvailability(args,i+1);
          mustBeAPositiveInteger("Index field length",args[i+1]);
          index_field_length=stringTo<decltype(index_field_length)>(args[i+1]);
          skipcount=true;
          
          ifl_obj.count++;
          if(ifl_obj.count>1){printWarningLog("Index field length overwritten");}
        }
        
      else if(opt=="-ifp"||opt=="--index-field-precision"){
          checkArgAvailability(args,i+1);
          mustBeAPositiveInteger("Index field precision",args[i+1]);
          IFP=stringTo<decltype(IFP)>(args[i+1]);
          skipcount=true;
          
          ifp_obj.count++;
          if(ifp_obj.count>1){printWarningLog("Index field precision overwritten");}
        }
        
        
      else if(opt=="-iff"||opt=="--index-field-filler"){
          checkArgAvailability(args,i+1);
          mustBeAValidSingleCharacter("Index field filler",args[i+1]);
          IFF=stringTo<decltype(IFF)>(args[i+1]);
          IFF=replaceStringAll(IFF,"\\","");
          skipcount=true;
          
          iff_obj.count++;
          if(iff_obj.count>1){printWarningLog("Index field filler overwritten");}
        }
      
      else if(opt=="-ns"||opt=="--name-string"){
          checkArgAvailability(args,i+1);
          name_string=args[i+1];
          skipcount=true;
          
          ns_obj.count++;
          if(ns_obj.count>1){printWarningLog("Name string overwritten");}
        }
        
        
      else if(opt=="-ns/f"||opt=="--name-string-file"){
          checkArgAvailability(args,i+1);
          name_string_file=args[i+1];
          skipcount=true;
          
          nsf_obj.count++;
          if(nsf_obj.count>1){printErrorLog("Only one name string file is allowed");Exit(1);}
        }
        
        
      else if(opt=="-ns/fn"||opt=="--name-string-file-null-terminated"){
          checkArgAvailability(args,i+1);
          name_string_file=args[i+1];
          nsf_n=true;
          skipcount=true;
          
          nsf_obj.count++;
          if(nsf_obj.count>1){printErrorLog("Only one name string file is allowed");Exit(1);}
        }
        
      else if(opt=="-l"||opt=="-sl"||opt=="--line"||opt=="--start-line"){
          checkArgAvailability(args,i+1);
          mustBeAPositiveInteger("Start Line",args[i+1]);
          start_line=stringTo<decltype(start_line)>(args[i+1]);
          current_line=start_line;
          skipcount=true;
          
          sl_obj.count++;
          if(sl_obj.count>1){printWarningLog("Start line overwritten");}
        }
        
      else if(opt=="-lv"||opt=="-slv"||opt=="--line-reverse"||opt=="--start-line-reverse"){
          checkArgAvailability(args,i+1);
          mustBeAPositiveInteger("Start Line",args[i+1]);
          start_line=stringTo<decltype(start_line)>(args[i+1]);
          current_line=start_line;
          skipcount=true;
          reverse_line=true;
          
          sl_obj.count++;
          if(sl_obj.count>1){printWarningLog("Start line overwritten");}
        }
        
      else if(opt=="-el"||opt=="--end-line"){
          checkArgAvailability(args,i+1);
          mustBeAPositiveInteger("End Line",args[i+1]);
          end_line=stringTo<decltype(end_line)>(args[i+1]);
          skipcount=true;
          
          el_obj.count++;
          if(el_obj.count>1){printWarningLog("End line overwritten");}
        }
      
      else if(opt=="-elv"||opt=="--end-line-reverse"){
          checkArgAvailability(args,i+1);
          mustBeAPositiveInteger("End Line",args[i+1]);
          end_line=stringTo<decltype(end_line)>(args[i+1]);
          skipcount=true;
          reverse_line=true;
          
          el_obj.count++;
          if(el_obj.count>1){printWarningLog("End line overwritten");}
        }
        
      else if(opt=="-ss"||opt=="--search-string"){
          checkArgAvailability(args,i+1);
          search_string.push_back(args[i+1]);
          fixed_ss.push_back(false);
          skipcount=true;
          
          ss_obj.count++;
          ///multple is allowed
        }
        
        
      else if(opt=="-ss/f"||opt=="--search-string-file"){
          checkArgAvailability(args,i+1);
          search_string_file=args[i+1];
          skipcount=true;
          
          if(isFile(search_string_file)){
            StringArray temp=getLineFromFileAndReturnVector(search_string_file);
            ///append temp to search_string
            search_string.insert(search_string.end(),temp.begin(),temp.end());
            ///Populate fixed_ss with same number of boolean value
            for(Int i=0;i<(Int)temp.size();i++){
                fixed_ss.push_back(false);
                }
          }
          else{
            printErrorLog("Search string file not found: "+search_string_file);
            Exit(1);
          }
          ss_file_obj.count++;
          ///multple is allowed
        }
        
         
      else if(opt=="-ssf"||opt=="--search-string-fixed"){
          checkArgAvailability(args,i+1);
          search_string.push_back(args[i+1]);
          fixed_ss.push_back(true);
          skipcount=true;
          
          ss_obj.count++;
          ///multple is allowed
        }
        
          
      else if(opt=="-ssf/f"||opt=="--search-string-fixed-file"){
          checkArgAvailability(args,i+1);
          search_string_file=args[i+1];
          skipcount=true;
          if(isFile(search_string_file)){
            StringArray temp=getLineFromFileAndReturnVector(search_string_file);
            ///append temp to search_string
            search_string.insert(search_string.end(),temp.begin(),temp.end());
            ///Populate fixed_ss with same number of boolean value
            for(Int i=0;i<(Int)temp.size();i++){
                fixed_ss.push_back(true);
                }
          }
          else{
            printErrorLog("Search string file not found: "+search_string_file);
            Exit(1);
          }
          ss_file_obj.count++;
          ///multple is allowed
        }
        
        
      else if(opt=="-rs"||opt=="--replace-string"){
          checkArgAvailability(args,i+1);
          replace_string.push_back(args[i+1]);
          skipcount=true;
          
          rs_obj.count++;
          ///multple is allowed
        }
        
        
      else if(opt=="-rs/f"||opt=="--replace-string-file"){
          checkArgAvailability(args,i+1);
          replace_string_file=args[i+1];
          skipcount=true;
          if(isFile(replace_string_file)){
              StringArray temp=getLineFromFileAndReturnVector(replace_string_file);
            replace_string.insert(replace_string.end(),temp.begin(),temp.end());
          }
          else{
            printErrorLog("Replace string file not found: "+replace_string_file);
            Exit(1);
          }
          rs_file_obj.count++;
          ///multple is allowed
        }
        
      else if(opt=="-re" || opt == "--regex"){
          checkArgAvailability(args,i+1);
          re_type=toLower(args[i+1]);
          skipcount=true;
          
          re_obj.count++;
          if(re_obj.count>1){printWarningLog("Regex mode overwritten");}
        }
        
        else if(opt=="-rel"||opt=="--regex-locale"){
          re_locale=true;
          
        }
        
       
      else if(opt=="-dp"||opt=="--depth"){
          checkArgAvailability(args,i+1);
          mustBeAnInteger("Depth",args[i+1]);
          depth=stringTo<decltype(depth)>(args[i+1]);
          if(depth<0){depth=std::numeric_limits<Int>::max();}
          skipcount=true;
          
          dp_obj.count++;
          if(dp_obj.count>1){printWarningLog("Directory depth overwritten");}
        }
        
        
      else if(opt=="-cd"||opt=="--count-directory"){
          count_directory=true;
          
        }
        
        
      else if(opt=="-cf"||opt=="--count-file"){
          count_file=true;
          
        }
        
        
      else if(opt=="-s"||opt=="--sort"){
          sort=true;
          sort_type="default";
          
        }
        
        
      else if(opt=="-s/g"||opt=="--sort/g"){
          sort=true;
          sort_type="general";
        }
        
        
      else if(opt=="-s/n"||opt=="--sort/n"){
          sort=true;
          sort_type="natural";
        }
        
      else if(opt=="-s/none"||opt=="--sort/none"){
          sort=true;
          sort_type="none";
        }
        
      else if(opt=="-y"||opt=="--yes"){
          all_yes=true;
          
        }
        
      else if(opt=="-fl"||opt=="--follow-link"){
          follow_symlink=true;
          
        }
        
      else if(opt=="-shop"||opt=="--show-options"){
          show_options=true;
          
        }
        
      else if(opt=="-f"||opt=="--force"){
          force=true;
          
        }
        
      else if(opt=="-u"||opt=="--undo"){
          undo=true;
          
        }
        
      else if(opt=="-sim"||opt=="--simulation"){
          simulation=true;
          
        }
        
        
      else if(opt=="--"){
          noopt=true;
          
        }
        
        
      else if(opt[0]=='-'){
          printErrorLog("Invalid Option: "+opt);
          Exit(1);
          
        }
        
        else {
            files.push_back(String(args[i]));
            
            
        }
        
     }
        
     else {
Example #3
0
void checkArgAvailability(const StringArray& sa,int i){
    if(i>=(int)sa.size()){
        printErrorLog("One or more argument/s missing");
        Exit(1);
    }
}