void EXTI0_IRQHandler(void) { dataflag=1; Nrf_Check_Event(); //更新status,并做相应的中断处理 data_unpack(); EXTI_ClearITPendingBit(EXTI_Line0); //清除标志 }
XmlFloppyBuilder* hxcfe_initXmlFloppy(HXCFLOPPYEMULATOR* floppycontext) { AppData *ad; XmlFloppyBuilder * rfw; int i; rfw = malloc(sizeof(XmlFloppyBuilder)); if(rfw) { memset(rfw,0,sizeof(XmlFloppyBuilder)); rfw->xml_parser = XML_ParserCreate(NULL); ad = malloc(sizeof(AppData)); if(!ad) { return 0; } memset(ad,0,sizeof(AppData)); ad->interface_mode = -1; i=0; while( disklayout_list[i]) { if(disklayout_list[i]->unpacked_data) { free(disklayout_list[i]->unpacked_data); disklayout_list[i]->unpacked_data = 0; } disklayout_list[i]->unpacked_data = data_unpack(disklayout_list[i]->data,disklayout_list[i]->csize,0,disklayout_list[i]->size); i++; } ad->floppycontext = floppycontext; ad->current_state = ENTRY_STATE; ad->stack_ptr = 0; memset(ad->statestack,0xFF,sizeof(int) * 32); ad->statestack[0].state = ad->current_state; ad->p = rfw->xml_parser; memset(ad->ts,0,sizeof(track_state)*256); XML_ParserReset(rfw->xml_parser, NULL); XML_SetUserData(rfw->xml_parser, (void *) ad); XML_SetElementHandler(rfw->xml_parser, start, end); XML_SetCharacterDataHandler(rfw->xml_parser, charhandler); XML_SetNamespaceDeclHandler(rfw->xml_parser, ns_start, ns_end); rfw->ad = ad; } return rfw; }