int main(void) { u8 rx_buf[10]; System_init(); TIM_Cmd(TIM3,ENABLE); TIM_Cmd(TIM4,ENABLE); while(1) { while(1) { if(NRF24L01_RxPacket(rx_buf) == 0) { break; } } switch(rx_buf[0]) { case '1': run1(); break; case '2': run2(); break; case '3': run3(); delay_ms(3000); PCout(0) = 0; break; case '4': run4(); delay_ms(3000); PCout(0) = 0; break; case '5': run5(); break; default: break; } rx_buf[0] = 0; } return 0; }
/**************************************************** * thread func *****************************************************/ static void worker_thread_func(cross_thread_type5 * obj) { if(!obj) { LOG_ERROR("para error in test \r\n"); return; } int ret; if(obj->m_id.invoke == general_run) { ret = general_run(obj->task); } else if(obj->m_id.invoke == run1) { ret = run1(obj->task,obj->para1); } else if(obj->m_id.invoke == run2) { ret = run2(obj->task,obj->para1,obj->para2); } else if(obj->m_id.invoke == run3) { ret = run3(obj->task,obj->para1,obj->para2,obj->para3); } else if(obj->m_id.invoke == run4) { ret = run4(obj->task,obj->para1,obj->para2,obj->para3,obj->para4); } else if(obj->m_id.invoke == run5) { ret = run5(obj->task,obj->para1,obj->para2,obj->para3,obj->para4,obj->para5); } else { LOG_ERROR("un recongize type\r\n"); ret = -100; } if(obj->call_back) { if(obj->m_id.invoke == general_run) { (*(obj->call_back))(ret,0); } else if(obj->m_id.invoke == run1) { (*(obj->call_back))(ret,1,obj->para1); } else if(obj->m_id.invoke == run2) { (*(obj->call_back))(ret,2,obj->para1,obj->para2); } else if(obj->m_id.invoke == run3) { (*(obj->call_back))(ret,3,obj->para1,obj->para2,obj->para3); } else if(obj->m_id.invoke == run4) { (*(obj->call_back))(ret,4,obj->para1,obj->para2,obj->para3,obj->para4); } else if(obj->m_id.invoke == run5) { (*(obj->call_back))(ret,5,obj->para1,obj->para2,obj->para3,obj->para4,obj->para5); } else { (*(obj->call_back))(ret,0); } } free(obj); }
int main(){ printf("\nStack grows downward from a high address.\n\n"); printf("If [stack_begin, stack_end] is the vm area, \n"); printf("then stack starts near stack_end grows " "towards stack_begin.\n\n"); printf("run1(): goes beyond stack_end, seg faults.\n"); printf("run2(): within stack_end, but overwrites return addr.\n"); printf("run3(): within stack_end and jumps over return addr." " No memory error reported.\n"); printf("run4(): toward and within stack_begin, " "but overwrites return addr.\n"); printf("run5(): toward and beyond stack_begin," " does not overwrite %%rsi, no memory error reported.\n"); printf("run6(): toward stack_begin, no %%rsi overwrite, " "stack_begin not crossed because of prior call.\n"); int i; printf("run = "); scanf("%d", &i); switch(i){ case 1: run1(); break; case 2: run2(); break; case 3: run3(); break; case 4: run4(); break; case 5: run5(); printf("getpid() again = %ld \n", syscall(__NR_getpid)); break; case 6: run6(); break; } }
void ImFCSCalibrationWizard::on_btnStep5_clicked() { emit run5(); }