int load_rc( void ) { int eax; FILE *fp; char buf[4096]; char *cp; int rv; if ( cp ) { __snprintf_chk( rc_file, 4096, 1, 4096, "%s/%s", cp, ".mathomaticrc" ); fp = (FILE*)fopen( rc_file, "r" ); if ( fopen( rc_file, "r" ) ) { rv = 1; for ( ; fgets( buf, 4096, fp ) == 0; ) { set_error_level( &ebx ); rv = set_options( cp ) == 0 ? rv : 0; } } } rv = 1; if ( 0 ^ 0 ) { return rv; } return rv; }
void main(void){ //turn on LED's this will flash the LED's during startup P7OUT=0xFF; P7DIR=0xFF; //DO this first ARC_setup(); //TESTING: set log level to report everything by default set_error_level(0); //initialize UART UCA1_init_UART(UART_PORT,UART_TX_PIN_NUM,UART_RX_PIN_NUM); //setup bus interface initARCbus(0x1F); //init complete turn on LED0 and all others off P7OUT=BIT0; ctl_task_run(&terminal_task,BUS_PRI_LOW,terminal,"ARClib testing program ready","terminal",sizeof(terminal_stack)/sizeof(terminal_stack[0])-2,terminal_stack-1,0); ctl_task_run(&sub_task,BUS_PRI_HIGH,sub_events,NULL,"SUB_events",sizeof(sub_stack)/sizeof(sub_stack[0])-2,sub_stack-1,0); //main loop mainLoop(); }
int main(void){ //DO this first ARC_setup(); //setup system specific peripherals //setup mmc interface mmcInit_msp(); //TESTING: set log level to report everything by default set_error_level(0); #ifdef ACDS_BUILD //set all driver pins low P2OUT&=0x03; P4OUT&=0x03; P5OUT&=0x03; P6OUT&=0x03; P7OUT&=0x03; P8OUT&=0x03; //set pins to GPIO function P2SEL&=0x03; P4SEL&=0x03; P5SEL&=0x03; P6SEL&=0x03; P7SEL&=0x03; P8SEL&=0x03; //set driver pins as outputs P2DIR|=0xFC; P4DIR|=0xFC; P5DIR|=0xFC; P6DIR|=0xFC; P7DIR|=0xFC; P8DIR|=0xFC; //setup LED Pins P2SEL&=0xFC; P4SEL&=0xFC; P2OUT&=0xFC; P4OUT&=0xFC; P2DIR|=0x03; P4DIR|=0x03; //turn on power LED P2DIR|=BIT1; //setup bus interface initARCbus(BUS_ADDR_ACDS); #else //setup P8 for output P8OUT=0x00; P8DIR=0xFF; P8SEL=0x00; //Turn off LED's P7OUT=0x00; P7DIR=0xFF; //turn on power LED P7OUT|=BIT4; //setup bus interface initARCbus(BUS_ADDR_IMG); #endif //initialize stacks memset(stack1,0xcd,sizeof(stack1)); // write known values into the stack stack1[0]=stack1[sizeof(stack1)/sizeof(stack1[0])-1]=0xfeed; // put marker values at the words before/after the stack memset(stack2,0xcd,sizeof(stack2)); // write known values into the stack stack2[0]=stack2[sizeof(stack2)/sizeof(stack2[0])-1]=0xfeed; // put marker values at the words before/after the stack memset(stack3,0xcd,sizeof(stack3)); // write known values into the stack stack3[0]=stack3[sizeof(stack3)/sizeof(stack3[0])-1]=0xfeed; // put marker values at the words before/after the stack //create tasks ctl_task_run(&tasks[0],BUS_PRI_LOW,cmd_parse,NULL,"cmd_parse",sizeof(stack1)/sizeof(stack1[0])-2,stack1+1,0); ctl_task_run(&tasks[1],BUS_PRI_NORMAL,sd_term,(void*)&async_term,"terminal",sizeof(stack2)/sizeof(stack2[0])-2,stack2+1,0); ctl_task_run(&tasks[2],BUS_PRI_HIGH,sub_events,NULL,"sub_events",sizeof(stack3)/sizeof(stack3[0])-2,stack3+1,0); mainLoop(); }