Example #1
0
int main() {
  printf("X%iX\n", pxH = getexclp());

  CPUinit();
  while (1) {
    sleep(1000);
    printf("%i\n", CPUpoll());
  }
}
Example #2
0
int main(void){
	DisableDog();
	EALLOW;
	int test = 0;
	int laggingValue = 0xFF;

	unsigned int value = 0;
	EALLOW;
	CPUinit();
	EALLOW;
	DINT;

	outputEnable();

	initADC();
	EALLOW;
	outputEnable(); //having issues when not enabling twice
	SRAMwrite(0);
	SRAMaddress = 0x260000;


	//DAC_init();
	DAC_init();
	timerINIT();

	EALLOW;


	int oldvalue = 0;
	while(1){
//		SRAMaddress = 0x2FFFFF;
//		*SRAMaddress = 0x77;
		if(a == 1){ //cross your fingers folks
			value = keypadScan();
			*outputPORT = value;
			if(value < 0xF && value != 1 && oldvalue != value){
				FreqSet(value); //setting the frequency based upon keypad input
				oldvalue = value;
			}
		}
	}


	EALLOW;






	return 0;
}
Example #3
0
int main(int argc, char *argv[])
{
  CPU *cpu;

  prg = load_file(argv[1]);

  cpu = CPUsimple_template((CPUaddr) (prg->data - prg->memstart),
			   (CPUaddr) (prg->memstart + prg->memsize - 60000),
			   0);

  fill_template(cpu);

  CPUinit(cpu);
  CPUrun();

  return 0;
}
Example #4
0
int main(void) {
	
	DisableDog();
	CPUinit();
	EALLOW;
	outputEnable();
	LCDinit();
	LCDclear();
	initADC();
	DAC_init();
//	SRAMwrite(0);
//	SRAMaddress = 0x260000; //shouldn't need SRAM here
	fft_init();
	initBuffers();

	timerINIT(ISRvalue, samplingRate);




	while(1){
		if(sampleBufferFull){
			fft.InBuf = &sampleBuffer[0];
			int i;
			for(i = 0;i<FFT_SIZE;i++){
				outBuffer[i] = 0;
			}
			for(i=0;i<FFT_SIZE/2;i++){
				MagBuffer[i] = 0;
			}
			RFFT_f32(&fft);
			//fft.MagBuf = &sampleBuffer[0];
			RFFT_f32_mag(&fft);

			sampleBufferFull = 0;
			EINT;
		}
		else{
			//do nothing
		}

	}
	return 0;
}
Example #5
0
int main(void) {
	
	DisableDog();
	CPUinit();
	EALLOW;
	outputEnable();
	LCDinit();
	LCDclear();
	initADC();
	DAC_init();
	init_buffer();
	timerINIT(ISRvalue, samplingRate);

	while(1){

	}


	return 0;
}
Example #6
0
int main(void){
	DisableDog();
	EALLOW;
	unsigned int test = 0;
	int laggingValue = 0xFF;

	//unsigned int value = 0;
	EALLOW;
	CPUinit();
	EALLOW;
	DINT;

	outputEnable();

	initADC();
	EALLOW;
	DAC_init();
	EALLOW;
	outputEnable(); //having issues when not enabling twice
	EALLOW;



	timerINIT();
	EALLOW;


	while(1){

	}


	EALLOW;






	return 0;
}
Example #7
0
//начало основной программы
void main(void)
{
  CPUinit();         //инициализация системы
  PIT_init();      //инициализация PIT
  LCDinit_clear();   //нач инициализация и сброс ЖКИ

  // Вывод на ЖКИ начальной заставки
  lcd_pro_data('L', 0);
  lcd_tek_data('c');
  lcd_tek_data('d');
  lcd_tek_data('_');
  lcd_tek_data('k');
  lcd_tek_data('n');
  lcd_tek_data('o');
  lcd_tek_data('p');
  lcd_tek_data('_');
  lcd_tek_data('p');
  lcd_tek_data('_');
  lcd_tek_data('S');
  lcd_tek_data('R');
  lcd_tek_data('A');
  lcd_tek_data('M');

   //начало основного цикла
    for (;;)
    {
      if  (flagn_kn1==1)    // нажималась ли кнопка 1
     	    {
            flagn_kn1=0;    //да, сбросить флаг нажатия

            //смена состояния выхода светодиода LED1
            if (led1_old_state==OFF)
                     {
                     AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED1); // зажечь сетодиод 1
                     led1_old_state=ON;
                     }
            else
                     {
                     AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED1); // погасить светодиод 1
                     led1_old_state=OFF;
                     }

            // Вывод на ЖКИ заставки - слова  "Привет!"
            lcd_pro_data(rus_P, 64);
            lcd_tek_data('p');
            lcd_tek_data(rus_i);
            lcd_tek_data(rus_v);
            lcd_tek_data('e');
            lcd_tek_data(rus_t);
            lcd_tek_data('!');
            }

     if  (flagn_kn2==1)    // нажималась ли кнопка 2
	    {
	    flagn_kn2=0;    //да, сбросить флаг нажатия

           //смена состояния выхода светодиода LED2
           if (led2_old_state==OFF)
                     {
                     AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED2); // зажечь сетодиод 2
                     led2_old_state=ON;
                     }
            else
                     {
                     AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED2); // погасить светодиод 2
                     led2_old_state=OFF;
                     }

            // Вывод на ЖКИ слова  "Privet!"
            lcd_pro_data('P', 72);
            lcd_tek_data('r');
            lcd_tek_data('i');
            lcd_tek_data('v');
            lcd_tek_data('e');
            lcd_tek_data('t');
            lcd_tek_data('!');
            }

     if  (flagn_kn3==1)    // нажималась ли кнопка 3
	    {
	    flagn_kn3=0;    //да, сбросить флаг нажатия

           //смена состояния выхода светодиода LED3
           if (led3_old_state==OFF)
                     {
                     AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED3); // зажечь сетодиод 3
                     led3_old_state=ON;
                     }
            else
                     {
                     AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED3); // погасить светодиод 3
                     led3_old_state=OFF;
                     }

            lcd_clear();          //очистка ЖКИ
            }

     if  (flagn_kn4==1)    // нажималась ли кнопка 4
	    {
	    flagn_kn4=0;    //да, сбросить флаг нажатия

           //смена состояния выхода светодиода LED4
           if (led4_old_state==OFF)
                     {
                     AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED4); // зажечь сетодиод 4
                     led4_old_state=ON;
                     }
            else
                     {
                     AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED4); // погасить светодиод 4
                     led4_old_state=OFF;
                     }

            lcd_init();           //инициализация ЖКИ
            }
    }
}
Example #8
0
//начало основной программы
void main(void)
{
  CPUinit();         //инициализация системы
  timer_init();      //инициализация таймеров-счетчиков
  LCDinit_clear();   //нач инициализация и сброс ЖКИ
  InitUSART0(115200);    //инициализация USART0 со скоростью обмена 115200 кбит/с

  // Вывод на ЖКИ начальной заставки
  lcd_pro_data('U', 0);
  lcd_tek_data('S');
  lcd_tek_data('A');
  lcd_tek_data('R');
  lcd_tek_data('T');
  lcd_tek_data('_');
  lcd_tek_data('F');
  lcd_tek_data('L');
  lcd_tek_data('A');
  lcd_tek_data('S');
  lcd_tek_data('H');

    //начало основного цикла
    for (;;)
    {
      if  (flagn_kn1==1)    // нажималась ли кнопка 1
     	    {
            flagn_kn1=0;    //да, сбросить флаг нажатия

            //смена состояния выхода светодиода LED1
            if (led1_old_state==OFF)
                     {
                     AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED1); // зажечь сетодиод 1
                     led1_old_state=ON;
                     }
            else
                     {
                     AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED1); // погасить светодиод 1
                     led1_old_state=OFF;
                     }
            //выбор значения для передачи в USART
            ch0++;
            if (ch0 == 'z')  ch0 = '!';
            lcd_pro_data(ch0, 64); //индикация символа, подлежащего передаче
            }

     if  (flagn_kn2==1)    // нажималась ли кнопка 2
	    {
	    flagn_kn2=0;    //да, сбросить флаг нажатия

           //смена состояния выхода светодиода LED2
           if (led2_old_state==OFF)
                     {
                     AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED2); // зажечь сетодиод 2
                     led2_old_state=ON;
                     }
            else
                     {
                     AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED2); // погасить светодиод 2
                     led2_old_state=OFF;
                     }
            write_char_USART0(ch0); //передача символа через USART0
            lcd_pro_data(ch0, 66); //индикация переданного символа
           }

     if  (flagn_kn3==1)    // нажималась ли кнопка 3
	    {
	    flagn_kn3=0;    //да, сбросить флаг нажатия

           //смена состояния выхода светодиода LED3
           if (led3_old_state==OFF)
                     {
                     AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED3); // зажечь сетодиод 3
                     led3_old_state=ON;
                     }
            else
                     {
                     AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED3); // погасить светодиод 3
                     led3_old_state=OFF;
                     }

             write_str_USART0(stroka); //передача в USART0 строки данных
            //индикация переданной строки
            U8 i = 0x0;
            while(stroka[i] != '\0')
                     {
                   lcd_pro_data(stroka[i], 68+i); //индикация переданного символа строки
                   i++;
                     }
            }

     if  (flagn_kn4==1)    // нажималась ли кнопка 4
	    {
	    flagn_kn4=0;    //да, сбросить флаг нажатия

           //смена состояния выхода светодиода LED4
           if (led4_old_state==OFF)
                     {
                     AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED4); // зажечь сетодиод 4
                     led4_old_state=ON;
                     }
            else
                     {
                     AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED4); // погасить светодиод 4
                     led4_old_state=OFF;
                     }
            lcd_clear();          //очистка ЖКИ
            }
    }
}
Example #9
0
int main(void){
  
  int inputlength;
  int tokcount;
  int i;
  char input[1024];
  char previnput[1024];
  char *functok;
  char *emptytok;
  char *parameter[4];      //should never have more than 3 elements used, but what the hey - let's make it 4!
  char delim[] = " \t";

  CPUinit();
  ST_stringTableInit();

  //initialize the array of break points first off 
  for (i = 0; i < 4; i++){
    bpoints[i] = -1;
  }

  printf("\n--> ");

  while (fgets(input, 1023, stdin) ){

    if (input[0] == '\n'){
      //if user enters blank line, re-execute the previous command.
      //make the previous command also equal to the previous command (ie don't change it)
      strcpy(input, previnput);
    }
    else{  //if the user entered input, fix it up:

      //remove the carridge return from the end of the string.
      input[strlen(input)-1] = '\0';

      //get rid of any spaces or tabs at the end of the string.
      inputlength = strlen(input);
      while(((input[inputlength-1] == ' ') || (input[inputlength-1] == '\t')) && (inputlength > 0)){
        input[inputlength-1] = '\0';
        inputlength--;
      }

      strcpy(previnput, input);    //copy the current command into the previous command 
                                  //for possible use next time.
    }
      
    //there will be at most 4 input parameters entered by the user: setmem <addr> <b/w> <data>
    //so strtok will be used 5 times on the input string. The first 4 tokens created will/may
    //contain parameters, but the 5th one should always be empty. If the 5th one isn't empty, 
    //the user has entered too many parameters, and should be shot. Depending on the function
    //being called, the user may not enter all 4 parameters -- some functions only require 2 
    //or 3 tokens. The parameters may be separated by tabs or spaces.

    functok = strtok(input, delim);        //specifies which function to call
    parameter[0] = strtok(NULL, delim);    //parameter #1  ie address
    parameter[1] = strtok(NULL, delim);    //parameter #2  ie byte/word
    parameter[2] = strtok(NULL, delim);    //parameter #3  ie newvalue
    emptytok = strtok(NULL, delim);        //should always be empty.  if not, error!!

    //valid input only it emptytok is empty, and functok is not empty.
    //is possible that only functok has value if it is a "help" call...
    if ((emptytok == NULL) && (functok !=NULL)){
      
      //change all gathered input to all small letters
      MS_stringtolower(functok);

      tokcount = 0;
      if (parameter[0] != NULL){
        MS_stringtolower(parameter[0]);
        tokcount ++;
      }
      if (parameter[1] != NULL){
        MS_stringtolower(parameter[1]);
        tokcount ++;
      }
      if (parameter[2] != NULL){
        MS_stringtolower(parameter[2]);
        tokcount ++;
      }
      
      // determine which function to call
      if ((!strcmp(functok, "setmem")) || (!strcmp(functok, "sm"))){
        UI_setMem(parameter, tokcount);
      }
      else if ((!strcmp(functok, "readmem")) || (!strcmp(functok, "rm"))){
        UI_readMem(parameter, tokcount);
      }
      else if ((!strcmp(functok, "setreg")) || (!strcmp(functok, "sr"))){
        UI_setReg(parameter, tokcount);
      }
      else if ((!strcmp(functok, "readreg")) || (!strcmp(functok, "rr"))){
        UI_readReg(parameter, tokcount);
      }
      else if (!strcmp(functok, "run")){      //if they are too lazy to type run, then they shouldn't be using our simulator
        UI_run(parameter, tokcount);
      }
      else if ((!strcmp(functok, "loadmem")) || (!strcmp(functok, "load")) || (!strcmp(functok, "lm"))){
        UI_loadMem(parameter, tokcount);
      }
      else if ((!strcmp(functok, "trace")) || (!strcmp(functok, "tr"))){
        UI_trace(tokcount);
      }
      else if ((!strcmp(functok, "list")) || (!strcmp(functok, "li"))){
        UI_list(parameter, tokcount);
      }
      else if ((!strcmp(functok, "pcreset")) || (!strcmp(functok, "pcr"))){
        UI_pcReset(tokcount);
      }
      else if ((!strcmp(functok, "next")) || (!strcmp(functok, "nx"))){
        UI_next(tokcount);
      }
      else if ((!strcmp(functok, "setbreak")) || (!strcmp(functok, "sb"))){
        UI_setBreak(parameter, tokcount);
      }
      else if ((!strcmp(functok, "clrbreak")) || (!strcmp(functok, "cb"))){
        UI_clrBreak(parameter, tokcount);
      }
      else if ((!strcmp(functok, "setflag")) || (!strcmp(functok, "setflg")) || (!strcmp(functok, "sf"))){
        UI_setFlg(parameter, tokcount);
      }
      else if ((!strcmp(functok, "memdump")) || (!strcmp(functok, "md"))){
        UI_memDump(parameter, tokcount);
      }
      else if ((!strcmp(functok, "help")) || (!strcmp(functok, "?"))){
        UI_help(parameter, tokcount);
      }
      else if ((!strcmp(functok, "quit")) || (!strcmp(functok, "exit"))){
        CPUhalt();
        printf("Exiting.\n");
        return 0;
      }
      else{
        printf("Not a valid command name.\n");
      }
    }
    else if (emptytok != NULL){
      printf("Too many parameters buddy. Try again.\n");
    }
    printf("\n--> ");

  }//end outermost while

  printf("Exiting.\n");
  return 0;
}
Example #10
0
int sysmon_init(void) {
    waketime = getlastwaketime();
    return CPUinit();
}