static mp_obj_t mod_wlan_patch_version() { uint8_t pver[2]; mp_obj_tuple_t *t_pver = mp_obj_new_tuple(2, NULL); nvmem_read_sp_version(pver); t_pver->items[0] = mp_obj_new_int(pver[0]); t_pver->items[1] = mp_obj_new_int(pver[1]); return t_pver; }
void hw_net_initialize (void) { CC3000_START; SpiInit(4e6); hw_wait_us(10); wlan_init(CC3000_UsynchCallback, NULL, NULL, NULL, ReadWlanInterruptPin, WlanInterruptEnable, WlanInterruptDisable, WriteWlanPin); wlan_start(0); int r = wlan_ioctl_set_connection_policy(0, 0, 0); if (r != 0) { TM_DEBUG("Fail setting policy %i", r); } r = wlan_ioctl_set_scan_params(10000, 100, 100, 5, 0x7FF, -100, 0, 205, wifi_intervals); if (r != 0) { TM_DEBUG("Fail setting scan params %i", r); } r = wlan_ioctl_set_connection_policy(0, true, true); if (r != 0) { TM_DEBUG("Fail setting connection policy %i", r); } wlan_stop(); hw_wait_ms(10); wlan_start(0); // tm_sleep_ms(100); // TM_COMMAND('w',"setting event mask\n"); wlan_set_event_mask(HCI_EVNT_WLAN_KEEPALIVE|HCI_EVNT_WLAN_UNSOL_INIT|HCI_EVNT_WLAN_ASYNC_PING_REPORT); // TM_COMMAND('w',"done setting event mask\n"); unsigned long aucDHCP = 14400; unsigned long aucARP = 3600; unsigned long aucKeepalive = 10; unsigned long aucInactivity = 0; if (netapp_timeout_values(&aucDHCP, &aucARP, &aucKeepalive, &aucInactivity) != 0) { TM_DEBUG("Error setting inactivity timeout!"); } unsigned char version[2]; if (nvmem_read_sp_version(version)) { TM_ERR("Failed to read CC3000 firmware version."); } memcpy(hw_cc_ver, version, 2); CC3000_END; }
BOOL _cc3000_getFirmwareVersion(uint8_t* major, uint8_t* minor) { uint8_t fwpReturn[2]; if (nvmem_read_sp_version(fwpReturn) != CC3000_SUCCESS) { printf("Unable to read the firmware version\n"); return FALSE; } *major = fwpReturn[0]; *minor = fwpReturn[1]; return TRUE; }
/** * @brief Reads the firmware version from the CC3000 * * @param[out] fw_ver firmware version in 2 bytes. [0] is major and [1] is minor * @return True is firmware could be read from the CC3000. False otherwise. */ bool SFE_CC3000::getFirmwareVersion(unsigned char *fw_ver) { /* If CC3000 is not initialized, return false. */ if (!getInitStatus()) { return false; } /* Read firmware version from the CC3000 */ if (nvmem_read_sp_version(fw_ver) != CC3000_SUCCESS) { return false; } return true; }
/*********************************WIFI 任务函数**********************************************/ void taskwlan(void *parg) { (void)parg; //DisplayStatus = WifiStatusDisplayStatus; //显示wifi连接状态 Init_CC3000Driver(); //初始化cc3000 nvmem_read_sp_version(Sp_Fw); while(1) { #ifdef IWDGENABLE IWDG_ReloadCounter(); #endif Wifi_event_handler(); //wifi状态切换 // CC3000DataRecProcess(CurrentAddress); //接收没有对象之分 // if(ulWifiEvent == WIFI_SEND_RECV) // { // if(TerminalStatus[CurrentAddress] == CC1101LoginAckStatus) //终端登陆 // { // TerminalStatus[CurrentAddress] = CC3000LoginReqStatus; // LoginTransmit(CurrentAddress,CC3000Target); // CommandAckTimerOut = 0; // } // else if (TerminalStatus[CurrentAddress] == CC1101WorkingStateMsgAckStatus) // { // WorkingStateMsgTransmit(CurrentAddress,CC3000Target); // TerminalStatus[CurrentAddress] = CC3000WorkingStateMsgReqStatus; //等待状态 cc1101发送数据 激活发送状态 // CommandAckTimerOut = 0; // } // } OSTimeDly(OS_TICKS_PER_SEC/100); } }
void SPARK_WLAN_Setup(void (*presence_announcement_callback)(void)) { announce_presence = presence_announcement_callback; /* Initialize CC3000's CS, EN and INT pins to their default states */ CC3000_WIFI_Init(); /* Configure & initialize CC3000 SPI_DMA Interface */ CC3000_SPI_DMA_Init(); /* WLAN On API Implementation */ wlan_init(WLAN_Async_Callback, WLAN_Firmware_Patch, WLAN_Driver_Patch, WLAN_BootLoader_Patch, CC3000_Read_Interrupt_Pin, CC3000_Interrupt_Enable, CC3000_Interrupt_Disable, CC3000_Write_Enable_Pin); Delay(100); /* Trigger a WLAN device */ wlan_start(0); SPARK_LED_FADE = 0; SPARK_WLAN_STARTED = 1; /* Mask out all non-required events from CC3000 */ wlan_set_event_mask(HCI_EVNT_WLAN_KEEPALIVE | HCI_EVNT_WLAN_UNSOL_INIT | HCI_EVNT_WLAN_ASYNC_PING_REPORT); if(NVMEM_SPARK_Reset_SysFlag == 0x0001 || nvmem_read(NVMEM_SPARK_FILE_ID, NVMEM_SPARK_FILE_SIZE, 0, NVMEM_Spark_File_Data) != NVMEM_SPARK_FILE_SIZE) { /* Delete all previously stored wlan profiles */ wlan_ioctl_del_profile(255); /* Create new entry for Spark File in CC3000 EEPROM */ nvmem_create_entry(NVMEM_SPARK_FILE_ID, NVMEM_SPARK_FILE_SIZE); memset(NVMEM_Spark_File_Data,0, arraySize(NVMEM_Spark_File_Data)); nvmem_write(NVMEM_SPARK_FILE_ID, NVMEM_SPARK_FILE_SIZE, 0, NVMEM_Spark_File_Data); NVMEM_SPARK_Reset_SysFlag = 0x0000; Save_SystemFlags(); } if(WLAN_MANUAL_CONNECT == 0) { if(NVMEM_Spark_File_Data[WLAN_PROFILE_FILE_OFFSET] == 0) { WLAN_SMART_CONFIG_START = 1; } else if(NVMEM_Spark_File_Data[WLAN_POLICY_FILE_OFFSET] == 0) { wlan_ioctl_set_connection_policy(DISABLE, DISABLE, ENABLE); NVMEM_Spark_File_Data[WLAN_POLICY_FILE_OFFSET] = 1; nvmem_write(NVMEM_SPARK_FILE_ID, 1, WLAN_POLICY_FILE_OFFSET, &NVMEM_Spark_File_Data[WLAN_POLICY_FILE_OFFSET]); } } if((WLAN_MANUAL_CONNECT > 0) || !WLAN_SMART_CONFIG_START) { LED_SetRGBColor(RGB_COLOR_GREEN); LED_On(LED_RGB); } nvmem_read_sp_version(patchVer); if (patchVer[1] == 24)//19 for old patch { /* Latest Patch Available after flashing "cc3000-patch-programmer.bin" */ } Clear_NetApp_Dhcp(); Set_NetApp_Timeout(); }
void Initialize(void) { #ifdef CONFIG_EXAMPLES_CC3000_MEM_CHECK mmstart = mallinfo(); memcpy(&mmprevious, &mmstart, sizeof(struct mallinfo)); show_memory_usage(&mmstart,&mmprevious); #endif uint8_t fancyBuffer[MAC_ADDR_LEN]; if (isInitialized) { printf("CC3000 already initialized. Shutting down and restarting...\n"); wlan_stop(); usleep(1000000); /* Delay 1s */ } printf("Initializing CC3000...\n"); CC3000_Init(); #ifdef CONFIG_EXAMPLES_CC3000_STACK_CHECK stkmon_disp(); #endif printf(" CC3000 init complete.\n"); if (nvmem_read_sp_version(fancyBuffer) == 0) { printf(" Firmware version is: "); printf("%d", fancyBuffer[0]); printf("."); printf("%d\n", fancyBuffer[1]); } else { printf("Unable to get firmware version. Can't continue.\n"); return; } #if 0 if (nvmem_get_mac_address(fancyBuffer) == 0) { printf(" MAC address: "); for (i = 0; i < MAC_ADDR_LEN; i++) { if (i != 0) { printf(":"); } printf("%x", fancyBuffer[i]); } printf("\n"); isInitialized = true; } else { printf("Unable to get MAC address. Can't continue.\n"); } #else isInitialized = true; #endif #ifdef CONFIG_EXAMPLES_CC3000_MEM_CHECK mmprevious = mallinfo(); show_memory_usage(&mmstart,&mmprevious); #endif }