This commit is contained in:
Willy-JL
2024-06-13 00:49:03 +02:00
11 changed files with 205 additions and 29 deletions

View File

@@ -1269,6 +1269,7 @@ Function,+,furi_hal_info_get,void,"PropertyValueCallback, char, void*"
Function,+,furi_hal_info_get_api_version,void,"uint16_t*, uint16_t*"
Function,-,furi_hal_init,void,
Function,-,furi_hal_init_early,void,
Function,+,furi_hal_interrupt_get_name,const char*,uint8_t
Function,-,furi_hal_interrupt_init,void,
Function,+,furi_hal_interrupt_set_isr,void,"FuriHalInterruptId, FuriHalInterruptISR, void*"
Function,+,furi_hal_interrupt_set_isr_ex,void,"FuriHalInterruptId, FuriHalInterruptPriority, FuriHalInterruptISR, void*"
1 entry status name type params
1269 Function + furi_hal_info_get_api_version void uint16_t*, uint16_t*
1270 Function - furi_hal_init void
1271 Function - furi_hal_init_early void
1272 Function + furi_hal_interrupt_get_name const char* uint8_t
1273 Function - furi_hal_interrupt_init void
1274 Function + furi_hal_interrupt_set_isr void FuriHalInterruptId, FuriHalInterruptISR, void*
1275 Function + furi_hal_interrupt_set_isr_ex void FuriHalInterruptId, FuriHalInterruptPriority, FuriHalInterruptISR, void*

View File

@@ -1477,6 +1477,7 @@ Function,+,furi_hal_infrared_is_busy,_Bool,
Function,+,furi_hal_infrared_set_tx_output,void,FuriHalInfraredTxPin
Function,-,furi_hal_init,void,
Function,-,furi_hal_init_early,void,
Function,+,furi_hal_interrupt_get_name,const char*,uint8_t
Function,-,furi_hal_interrupt_init,void,
Function,+,furi_hal_interrupt_set_isr,void,"FuriHalInterruptId, FuriHalInterruptISR, void*"
Function,+,furi_hal_interrupt_set_isr_ex,void,"FuriHalInterruptId, FuriHalInterruptPriority, FuriHalInterruptISR, void*"
1 entry status name type params
1477 Function + furi_hal_infrared_set_tx_output void FuriHalInfraredTxPin
1478 Function - furi_hal_init void
1479 Function - furi_hal_init_early void
1480 Function + furi_hal_interrupt_get_name const char* uint8_t
1481 Function - furi_hal_interrupt_init void
1482 Function + furi_hal_interrupt_set_isr void FuriHalInterruptId, FuriHalInterruptISR, void*
1483 Function + furi_hal_interrupt_set_isr_ex void FuriHalInterruptId, FuriHalInterruptPriority, FuriHalInterruptISR, void*

View File

@@ -354,6 +354,12 @@ void USB_LP_IRQHandler(void) {
#endif
}
void USB_HP_IRQHandler(void) { //-V524
#ifndef FURI_RAM_EXEC
usbd_poll(&udev);
#endif
}
void IPCC_C1_TX_IRQHandler(void) {
HW_IPCC_Tx_Handler();
}
@@ -381,3 +387,156 @@ void USART1_IRQHandler(void) {
void LPUART1_IRQHandler(void) {
furi_hal_interrupt_call(FuriHalInterruptIdLpUart1);
}
const char* furi_hal_interrupt_get_name(uint8_t exception_number) {
int32_t id = (int32_t)exception_number - 16;
switch(id) {
case -14:
return "NMI";
case -13:
return "HardFault";
case -12:
return "MemMgmt";
case -11:
return "BusFault";
case -10:
return "UsageFault";
case -5:
return "SVC";
case -4:
return "DebugMon";
case -2:
return "PendSV";
case -1:
return "SysTick";
case 0:
return "WWDG";
case 1:
return "PVD_PVM";
case 2:
return "TAMP";
case 3:
return "RTC_WKUP";
case 4:
return "FLASH";
case 5:
return "RCC";
case 6:
return "EXTI0";
case 7:
return "EXTI1";
case 8:
return "EXTI2";
case 9:
return "EXTI3";
case 10:
return "EXTI4";
case 11:
return "DMA1_Ch1";
case 12:
return "DMA1_Ch2";
case 13:
return "DMA1_Ch3";
case 14:
return "DMA1_Ch4";
case 15:
return "DMA1_Ch5";
case 16:
return "DMA1_Ch6";
case 17:
return "DMA1_Ch7";
case 18:
return "ADC1";
case 19:
return "USB_HP";
case 20:
return "USB_LP";
case 21:
return "C2SEV_PWR_C2H";
case 22:
return "COMP";
case 23:
return "EXTI9_5";
case 24:
return "TIM1_BRK";
case 25:
return "TIM1_UP_TIM16";
case 26:
return "TIM1_TRG_COM_TIM17";
case 27:
return "TIM1_CC";
case 28:
return "TIM2";
case 29:
return "PKA";
case 30:
return "I2C1_EV";
case 31:
return "I2C1_ER";
case 32:
return "I2C3_EV";
case 33:
return "I2C3_ER";
case 34:
return "SPI1";
case 35:
return "SPI2";
case 36:
return "USART1";
case 37:
return "LPUART1";
case 38:
return "SAI1";
case 39:
return "TSC";
case 40:
return "EXTI15_10";
case 41:
return "RTC_Alarm";
case 42:
return "CRS";
case 43:
return "PWR_SOTF_BLE";
case 44:
return "IPCC_C1_RX";
case 45:
return "IPCC_C1_TX";
case 46:
return "HSEM";
case 47:
return "LPTIM1";
case 48:
return "LPTIM2";
case 49:
return "LCD";
case 50:
return "QUADSPI";
case 51:
return "AES1";
case 52:
return "AES2";
case 53:
return "RNG";
case 54:
return "FPU";
case 55:
return "DMA2_Ch1";
case 56:
return "DMA2_Ch2";
case 57:
return "DMA2_Ch3";
case 58:
return "DMA2_Ch4";
case 59:
return "DMA2_Ch5";
case 60:
return "DMA2_Ch6";
case 61:
return "DMA2_Ch7";
case 62:
return "DMAMUX1_OVR";
default:
return NULL;
}
}

View File

@@ -110,6 +110,14 @@ void furi_hal_interrupt_set_isr_ex(
FuriHalInterruptISR isr,
void* context);
/** Get interrupt name by exception number.
* Exception number can be obtained from IPSR register.
*
* @param exception_number
* @return const char* or NULL if interrupt name is not found
*/
const char* furi_hal_interrupt_get_name(uint8_t exception_number);
#ifdef __cplusplus
}
#endif

View File

@@ -94,7 +94,7 @@ static const struct CcidConfigDescriptor ccid_cfg_desc = {
.bConfigurationValue = 1,
.iConfiguration = NO_DESCRIPTOR,
.bmAttributes = USB_CFG_ATTR_RESERVED | USB_CFG_ATTR_SELFPOWERED,
.bMaxPower = USB_CFG_POWER_MA(100),
.bMaxPower = USB_CFG_POWER_MA(500),
},
.intf_0 =
{

View File

@@ -7,13 +7,13 @@
#include "usb.h"
#include "usb_cdc.h"
#define CDC0_RXD_EP 0x02
#define CDC0_RXD_EP 0x01
#define CDC0_TXD_EP 0x82
#define CDC0_NTF_EP 0x81
#define CDC0_NTF_EP 0x83
#define CDC1_RXD_EP 0x04
#define CDC1_TXD_EP 0x84
#define CDC1_NTF_EP 0x83
#define CDC1_TXD_EP 0x85
#define CDC1_NTF_EP 0x86
#define CDC_NTF_SZ 0x08
@@ -75,7 +75,7 @@ static const struct CdcConfigDescriptorSingle cdc_cfg_desc_single = {
.bConfigurationValue = 1,
.iConfiguration = NO_DESCRIPTOR,
.bmAttributes = USB_CFG_ATTR_RESERVED | USB_CFG_ATTR_SELFPOWERED,
.bMaxPower = USB_CFG_POWER_MA(100),
.bMaxPower = USB_CFG_POWER_MA(500),
},
.iad_0 =
{
@@ -188,7 +188,7 @@ static const struct CdcConfigDescriptorDual
.bConfigurationValue = 1,
.iConfiguration = NO_DESCRIPTOR,
.bmAttributes = USB_CFG_ATTR_RESERVED | USB_CFG_ATTR_SELFPOWERED,
.bMaxPower = USB_CFG_POWER_MA(100),
.bMaxPower = USB_CFG_POWER_MA(500),
},
.iad_0 =
{

View File

@@ -152,7 +152,7 @@ static const struct HidConfigDescriptor hid_cfg_desc = {
.bConfigurationValue = 1,
.iConfiguration = NO_DESCRIPTOR,
.bmAttributes = USB_CFG_ATTR_RESERVED | USB_CFG_ATTR_SELFPOWERED,
.bMaxPower = USB_CFG_POWER_MA(100),
.bMaxPower = USB_CFG_POWER_MA(500),
},
.intf_0 =
{

View File

@@ -79,7 +79,7 @@ static const struct HidConfigDescriptor hid_u2f_cfg_desc = {
.bConfigurationValue = 1,
.iConfiguration = NO_DESCRIPTOR,
.bmAttributes = USB_CFG_ATTR_RESERVED | USB_CFG_ATTR_SELFPOWERED,
.bMaxPower = USB_CFG_POWER_MA(100),
.bMaxPower = USB_CFG_POWER_MA(500),
},
.iad_0 =
{