ret_code_t pds_register(pds_evt_handler_t evt_handler) { if (m_pds.n_registrants >= MAX_REGISTRANTS) { return NRF_ERROR_NO_MEM; } VERIFY_PARAM_NOT_NULL(evt_handler); if (!MODULE_INITIALIZED) { ret_code_t retval; internal_state_reset(&m_pds); peer_id_init(); retval = fds_register(fds_evt_handler); if (retval != FDS_SUCCESS) { return NRF_ERROR_NO_MEM; } retval = fds_init(); if (retval != FDS_SUCCESS) { return NRF_ERROR_INTERNAL; } } m_pds.evt_handlers[m_pds.n_registrants] = evt_handler; m_pds.n_registrants += 1; return NRF_SUCCESS; }
ret_code_t pds_init() { ret_code_t ret; // Check for re-initialization if debugging. NRF_PM_DEBUG_CHECK(!m_module_initialized); ret = fds_register(fds_evt_handler); if (ret != NRF_SUCCESS) { return NRF_ERROR_INTERNAL; } ret = fds_init(); if (ret != NRF_SUCCESS) { return NRF_ERROR_STORAGE_FULL; } peer_id_init(); peer_ids_load(); m_module_initialized = true; return NRF_SUCCESS; }
void *ipv_loop(void *args) { t_ipv *i; i = (t_ipv *)args; while (42) { fds_init(i); i->r = select(i->sock + 1, &i->fd_read, &i->fd_write, NULL, NULL); fds_check(i); } return (NULL); }
int main() { CLEAR_WRITE(); SET_STOPMOTOR(); CLEAR_SCANMEDIA(); CLEAR_MEDIASET(); CLEAR_READY(); //setup led and button gpio GPIO_SetMode(LED_G_PORT, LED_G_PIN, GPIO_PMD_OUTPUT); GPIO_SetMode(LED_R_PORT, LED_R_PIN, GPIO_PMD_OUTPUT); GPIO_SetMode(SWITCH_PORT, SWITCH_PIN, GPIO_PMD_INPUT); GPIO_SetMode(IRDATA_PORT, IRDATA_PIN, GPIO_PMD_INPUT); LED_GREEN(0); LED_RED(1); detect_board_version(); /* Unlock protected registers */ SYS_UnlockReg(); SYS_Init(); /* Lock protected registers */ SYS_LockReg(); UART0_Init(); SPI_Init(); TIMER_Open(TIMER0, TIMER_CONTINUOUS_MODE, 6000000); TIMER_Open(TIMER1, TIMER_PERIODIC_MODE, TRANSFER_RATE * 2); TIMER_Open(TIMER3, TIMER_PERIODIC_MODE, TRANSFER_RATE * 2); TIMER_EnableInt(TIMER1); TIMER_EnableInt(TIMER3); /* Open USB controller */ USBD_Open(&gsInfo, HID_ClassRequest, NULL); /* Init Endpoint configuration for HID */ HID_Init(); /* Start USB device */ USBD_Start(); /* Enable USB device interrupt */ NVIC_EnableIRQ(USBD_IRQn); LED_GREEN(1); LED_RED(0); printf("\n\nnuc123-fdsemu v%d.%02d build %d started. Compiled on "__DATE__" at "__TIME__"\n",version / 100,version % 100,BUILDNUM); printf("--CPU @ %0.3f MHz\n", (double)SystemCoreClock / 1000000.0f); printf("--SPI0 @ %0.3f MHz\n", (double)SPI_GetBusClock(SPI0) / 1000000.0f); printf("--SPI1 @ %0.3f MHz\n", (double)SPI_GetBusClock(SPI1) / 1000000.0f); printf("--Detected board version: %d (config = %d %d %d)\n", boardver,PA12,PA13,PA14); NVIC_SetPriority(USBD_IRQn,2); NVIC_SetPriority(TMR1_IRQn,1); NVIC_SetPriority(TMR2_IRQn,0); NVIC_SetPriority(TMR3_IRQn,0); NVIC_SetPriority(GPAB_IRQn,0); NVIC_SetPriority(EINT0_IRQn,0); flash_init(); sram_init(); fds_init(); print_block_info(0); while(1) { if(havepacket) { havepacket = 0; // process_send_feature(epdata,64); } console_tick(); fds_tick(); } }