Fix furi_hal_bus related crashes in plugins (#2799)

* Fix furi_hal_bus issues in plugins
* Rework pwm is running check
* ApiSymbols: update and sync targets

Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
MMX
2023-06-28 18:25:07 +09:00
committed by GitHub
co-authored by あく
parent e52fdcf109
commit ee96e34767
6 changed files with 59 additions and 10 deletions
+2 -1
View File
@@ -1,5 +1,5 @@
entry,status,name,type,params
Version,+,31.1,,
Version,+,31.2,,
Header,+,applications/services/bt/bt_service/bt.h,,
Header,+,applications/services/cli/cli.h,,
Header,+,applications/services/cli/cli_vcp.h,,
@@ -1061,6 +1061,7 @@ Function,+,furi_hal_power_sleep,void,
Function,+,furi_hal_power_sleep_available,_Bool,
Function,+,furi_hal_power_suppress_charge_enter,void,
Function,+,furi_hal_power_suppress_charge_exit,void,
Function,+,furi_hal_pwm_is_running,_Bool,FuriHalPwmOutputId
Function,+,furi_hal_pwm_set_params,void,"FuriHalPwmOutputId, uint32_t, uint8_t"
Function,+,furi_hal_pwm_start,void,"FuriHalPwmOutputId, uint32_t, uint8_t"
Function,+,furi_hal_pwm_stop,void,FuriHalPwmOutputId
1 entry status name type params
2 Version + 31.1 31.2
3 Header + applications/services/bt/bt_service/bt.h
4 Header + applications/services/cli/cli.h
5 Header + applications/services/cli/cli_vcp.h
1061 Function + furi_hal_power_sleep_available _Bool
1062 Function + furi_hal_power_suppress_charge_enter void
1063 Function + furi_hal_power_suppress_charge_exit void
1064 Function + furi_hal_pwm_is_running _Bool FuriHalPwmOutputId
1065 Function + furi_hal_pwm_set_params void FuriHalPwmOutputId, uint32_t, uint8_t
1066 Function + furi_hal_pwm_start void FuriHalPwmOutputId, uint32_t, uint8_t
1067 Function + furi_hal_pwm_stop void FuriHalPwmOutputId
+2 -1
View File
@@ -1,5 +1,5 @@
entry,status,name,type,params
Version,+,31.1,,
Version,+,31.2,,
Header,+,applications/services/bt/bt_service/bt.h,,
Header,+,applications/services/cli/cli.h,,
Header,+,applications/services/cli/cli_vcp.h,,
@@ -1286,6 +1286,7 @@ Function,+,furi_hal_power_sleep,void,
Function,+,furi_hal_power_sleep_available,_Bool,
Function,+,furi_hal_power_suppress_charge_enter,void,
Function,+,furi_hal_power_suppress_charge_exit,void,
Function,+,furi_hal_pwm_is_running,_Bool,FuriHalPwmOutputId
Function,+,furi_hal_pwm_set_params,void,"FuriHalPwmOutputId, uint32_t, uint8_t"
Function,+,furi_hal_pwm_start,void,"FuriHalPwmOutputId, uint32_t, uint8_t"
Function,+,furi_hal_pwm_stop,void,FuriHalPwmOutputId
1 entry status name type params
2 Version + 31.1 31.2
3 Header + applications/services/bt/bt_service/bt.h
4 Header + applications/services/cli/cli.h
5 Header + applications/services/cli/cli_vcp.h
1286 Function + furi_hal_power_sleep_available _Bool
1287 Function + furi_hal_power_suppress_charge_enter void
1288 Function + furi_hal_power_suppress_charge_exit void
1289 Function + furi_hal_pwm_is_running _Bool FuriHalPwmOutputId
1290 Function + furi_hal_pwm_set_params void FuriHalPwmOutputId, uint32_t, uint8_t
1291 Function + furi_hal_pwm_start void FuriHalPwmOutputId, uint32_t, uint8_t
1292 Function + furi_hal_pwm_stop void FuriHalPwmOutputId
@@ -82,6 +82,15 @@ void furi_hal_pwm_stop(FuriHalPwmOutputId channel) {
}
}
bool furi_hal_pwm_is_running(FuriHalPwmOutputId channel) {
if(channel == FuriHalPwmOutputIdTim1PA7) {
return furi_hal_bus_is_enabled(FuriHalBusTIM1);
} else if(channel == FuriHalPwmOutputIdLptim2PA4) {
return furi_hal_bus_is_enabled(FuriHalBusLPTIM2);
}
return false;
}
void furi_hal_pwm_set_params(FuriHalPwmOutputId channel, uint32_t freq, uint8_t duty) {
furi_assert(freq > 0);
uint32_t freq_div = 64000000LU / freq;
@@ -9,6 +9,7 @@ extern "C" {
#endif
#include <stdint.h>
#include <stdbool.h>
typedef enum {
FuriHalPwmOutputIdTim1PA7,
@@ -37,6 +38,13 @@ void furi_hal_pwm_stop(FuriHalPwmOutputId channel);
*/
void furi_hal_pwm_set_params(FuriHalPwmOutputId channel, uint32_t freq, uint8_t duty);
/** Is PWM channel running?
*
* @param[in] channel PWM channel (FuriHalPwmOutputId)
* @return bool - true if running
*/
bool furi_hal_pwm_is_running(FuriHalPwmOutputId channel);
#ifdef __cplusplus
}
#endif