Rework LED flashing and add Particle's boards
This commit is contained in:
		@@ -136,6 +136,8 @@ static void wait_for_events(void)
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    led_tick();
 | 
			
		||||
 | 
			
		||||
    if ((m_update_status == BOOTLOADER_COMPLETE) ||
 | 
			
		||||
        (m_update_status == BOOTLOADER_TIMEOUT) ||
 | 
			
		||||
        (m_update_status == BOOTLOADER_RESET) )
 | 
			
		||||
@@ -221,8 +223,8 @@ void bootloader_dfu_update_process(dfu_update_status_t update_status)
 | 
			
		||||
    else if (update_status.status_code == DFU_UPDATE_SD_COMPLETE)
 | 
			
		||||
    {
 | 
			
		||||
        settings.bank_0_crc     = update_status.app_crc;
 | 
			
		||||
        settings.bank_0_size    = update_status.sd_size + 
 | 
			
		||||
                                  update_status.bl_size + 
 | 
			
		||||
        settings.bank_0_size    = update_status.sd_size +
 | 
			
		||||
                                  update_status.bl_size +
 | 
			
		||||
                                  update_status.app_size;
 | 
			
		||||
        settings.bank_0         = BANK_VALID_SD;
 | 
			
		||||
        settings.bank_1         = BANK_INVALID_APP;
 | 
			
		||||
@@ -326,7 +328,7 @@ uint32_t bootloader_dfu_start(bool ota, uint32_t timeout_ms)
 | 
			
		||||
    uint32_t err_code;
 | 
			
		||||
 | 
			
		||||
    // Clear swap if banked update is used.
 | 
			
		||||
    err_code = dfu_init(); 
 | 
			
		||||
    err_code = dfu_init();
 | 
			
		||||
    VERIFY_SUCCESS(err_code);
 | 
			
		||||
 | 
			
		||||
    if ( ota )
 | 
			
		||||
@@ -467,4 +469,3 @@ void bootloader_settings_get(bootloader_settings_t * const p_settings)
 | 
			
		||||
    p_settings->app_image_size = p_bootloader_settings->app_image_size;
 | 
			
		||||
    p_settings->sd_image_start = p_bootloader_settings->sd_image_start;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -589,7 +589,7 @@ static void on_dfu_evt(ble_dfu_t * p_dfu, ble_dfu_evt_t * p_evt)
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case BLE_DFU_PACKET_WRITE:
 | 
			
		||||
            led_red_blink_fast(true);
 | 
			
		||||
            led_state(STATE_WRITING_STARTED);
 | 
			
		||||
            on_dfu_pkt_write(p_dfu, p_evt);
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
@@ -741,6 +741,7 @@ static void on_ble_evt(ble_evt_t * p_ble_evt)
 | 
			
		||||
        case BLE_GAP_EVT_CONNECTED:
 | 
			
		||||
            m_conn_handle    = p_ble_evt->evt.gap_evt.conn_handle;
 | 
			
		||||
            m_is_advertising = false;
 | 
			
		||||
            led_state(STATE_BLE_CONNECTED);
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case BLE_GAP_EVT_DISCONNECTED:
 | 
			
		||||
@@ -750,9 +751,9 @@ static void on_ble_evt(ble_evt_t * p_ble_evt)
 | 
			
		||||
 | 
			
		||||
                m_direct_adv_cnt = APP_DIRECTED_ADV_TIMEOUT;
 | 
			
		||||
 | 
			
		||||
                led_red_blink_fast(false);
 | 
			
		||||
                led_state(STATE_BLE_DISCONNECTED);
 | 
			
		||||
 | 
			
		||||
                err_code = sd_ble_gatts_sys_attr_get(m_conn_handle, 
 | 
			
		||||
                err_code = sd_ble_gatts_sys_attr_get(m_conn_handle,
 | 
			
		||||
                                                     sys_attr,
 | 
			
		||||
                                                     &sys_attr_len,
 | 
			
		||||
                                                     BLE_GATTS_SYS_ATTR_FLAG_SYS_SRVCS);
 | 
			
		||||
 
 | 
			
		||||
@@ -106,7 +106,7 @@ static uint32_t data_queue_element_free(uint8_t element_index)
 | 
			
		||||
    uint32_t  retval;
 | 
			
		||||
 | 
			
		||||
    retval = NRF_ERROR_INVALID_PARAM;
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    if (MAX_BUFFERS > element_index)
 | 
			
		||||
    {
 | 
			
		||||
        p_data = (uint8_t *)DATA_QUEUE_ELEMENT_GET_PDATA(element_index);
 | 
			
		||||
@@ -137,7 +137,7 @@ static uint32_t data_queue_element_alloc(uint8_t * p_element_index, uint8_t pack
 | 
			
		||||
    uint32_t index;
 | 
			
		||||
 | 
			
		||||
    retval = NRF_ERROR_NO_MEM;
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    if (INVALID_PACKET == packet_type)
 | 
			
		||||
    {
 | 
			
		||||
        retval = NRF_ERROR_INVALID_PARAM;
 | 
			
		||||
@@ -216,7 +216,7 @@ static void process_dfu_packet(void * p_event_data, uint16_t event_size)
 | 
			
		||||
                            break;
 | 
			
		||||
 | 
			
		||||
                        case START_PACKET:
 | 
			
		||||
                            packet->params.start_packet = 
 | 
			
		||||
                            packet->params.start_packet =
 | 
			
		||||
                                (dfu_start_packet_t*)packet->params.data_packet.p_data_packet;
 | 
			
		||||
                            retval = dfu_start_pkt_handle(packet);
 | 
			
		||||
                            APP_ERROR_CHECK(retval);
 | 
			
		||||
@@ -227,14 +227,14 @@ static void process_dfu_packet(void * p_event_data, uint16_t event_size)
 | 
			
		||||
                            retval = dfu_init_pkt_complete();
 | 
			
		||||
                            APP_ERROR_CHECK(retval);
 | 
			
		||||
 | 
			
		||||
                            led_red_blink_fast(true);
 | 
			
		||||
                            led_state(STATE_WRITING_STARTED);
 | 
			
		||||
                            break;
 | 
			
		||||
 | 
			
		||||
                        case STOP_DATA_PACKET:
 | 
			
		||||
                            (void)dfu_image_validate();
 | 
			
		||||
                            (void)dfu_image_activate();
 | 
			
		||||
 | 
			
		||||
                            led_red_blink_fast(false);
 | 
			
		||||
                            led_state(STATE_WRITING_FINISHED);
 | 
			
		||||
 | 
			
		||||
                            // Break the loop by returning.
 | 
			
		||||
                            return;
 | 
			
		||||
@@ -273,7 +273,7 @@ void rpc_transport_event_handler(hci_transport_evt_t event)
 | 
			
		||||
            retval = app_sched_event_put(NULL, 0, process_dfu_packet);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    if (p_rpc_cmd_buffer != NULL && NRF_SUCCESS != retval)
 | 
			
		||||
    {
 | 
			
		||||
        // Free the packet that could not be processed.
 | 
			
		||||
@@ -308,7 +308,6 @@ uint32_t dfu_transport_serial_close(void)
 | 
			
		||||
{
 | 
			
		||||
    // Remove all buffered packets.
 | 
			
		||||
    data_queue_flush();
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    return hci_transport_close();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user