mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-12-01 09:24:10 +01:00
dab400c80d
The bootloader needs to understand whether the USB cable is connected. The HID and CDC drivers need to know if the cable is connected _and_ the device has been enumerated already. Separate these two concepts in the API. Combining these was resulting in the BL not properly detecting that the cable was plugged in, and trying to boot the firmware image immediately. This effectively bricked the board if you ever had an invalid firmware image. It also happens to be the case that the BU images automatically invalidate themselves after updating the BL so they don't run again. The cable detect bug + this intended behaviour of the BU image resulted in a bricked board after upgrading the BL.
47 lines
1.5 KiB
C
47 lines
1.5 KiB
C
/**
|
|
******************************************************************************
|
|
* @addtogroup PIOS PIOS Core hardware abstraction layer
|
|
* @{
|
|
* @addtogroup PIOS_USB USB Functions
|
|
* @{
|
|
*
|
|
* @file pios_usb.h
|
|
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
|
* @brief USB HID layer functions header
|
|
* @see The GNU Public License (GPL) Version 3
|
|
*
|
|
*****************************************************************************/
|
|
/*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
* for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
|
|
#ifndef PIOS_USB_H
|
|
#define PIOS_USB_H
|
|
|
|
#include <stdbool.h>
|
|
|
|
/* Global functions */
|
|
extern int32_t PIOS_USB_Reenumerate();
|
|
extern int32_t PIOS_USB_ChangeConnectionState(bool connected);
|
|
extern bool PIOS_USB_CableConnected(uint8_t id);
|
|
extern bool PIOS_USB_CheckAvailable(uint8_t id);
|
|
|
|
#endif /* PIOS_USB_H */
|
|
|
|
/**
|
|
* @}
|
|
* @}
|
|
*/
|