[FL-3637] NFC RC fixes (#3165)
* firmware: remove nfc lib build settings section * furi hal nfc: fix nfc irq gpio deinit * lib nfc: remove deprecated exception from sources * nfc: use ASK demodulator in transparent mode * mf ultralight: add upper page bound for NTAGI2C1K * furi hal nfc: set event if nfc event was started * nfc: fix PVS warnings * lib signal reader: remove gpio pull setting in alloc * furi: added math.h include for compatibility with existing apps * nfc: remove resolved TODO in mf desfire poller * bump api symbol version Co-authored-by: hedger <hedger@nanode.su> Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
parent
844e0f10e5
commit
3d872cf37a
@ -71,15 +71,6 @@ env = ENV.Clone(
|
|||||||
"FURI_DEBUG" if ENV["DEBUG"] else "FURI_NDEBUG",
|
"FURI_DEBUG" if ENV["DEBUG"] else "FURI_NDEBUG",
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
"nfc": {
|
|
||||||
"CCFLAGS": [
|
|
||||||
"-Og",
|
|
||||||
],
|
|
||||||
"CPPDEFINES": [
|
|
||||||
"NDEBUG",
|
|
||||||
"FURI_DEBUG",
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
FW_API_TABLE=None,
|
FW_API_TABLE=None,
|
||||||
_APP_ICONS=None,
|
_APP_ICONS=None,
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
entry,status,name,type,params
|
entry,status,name,type,params
|
||||||
Version,+,40.0,,
|
Version,+,40.1,,
|
||||||
Header,+,applications/services/bt/bt_service/bt.h,,
|
Header,+,applications/services/bt/bt_service/bt.h,,
|
||||||
Header,+,applications/services/cli/cli.h,,
|
Header,+,applications/services/cli/cli.h,,
|
||||||
Header,+,applications/services/cli/cli_vcp.h,,
|
Header,+,applications/services/cli/cli_vcp.h,,
|
||||||
|
|||||||
|
@ -1,5 +1,5 @@
|
|||||||
entry,status,name,type,params
|
entry,status,name,type,params
|
||||||
Version,+,40.0,,
|
Version,+,40.1,,
|
||||||
Header,+,applications/drivers/subghz/cc1101_ext/cc1101_ext_interconnect.h,,
|
Header,+,applications/drivers/subghz/cc1101_ext/cc1101_ext_interconnect.h,,
|
||||||
Header,+,applications/services/bt/bt_service/bt.h,,
|
Header,+,applications/services/bt/bt_service/bt.h,,
|
||||||
Header,+,applications/services/cli/cli.h,,
|
Header,+,applications/services/cli/cli.h,,
|
||||||
|
|||||||
|
@ -25,9 +25,10 @@ FuriHalNfcError furi_hal_nfc_event_stop() {
|
|||||||
|
|
||||||
void furi_hal_nfc_event_set(FuriHalNfcEventInternalType event) {
|
void furi_hal_nfc_event_set(FuriHalNfcEventInternalType event) {
|
||||||
furi_assert(furi_hal_nfc_event);
|
furi_assert(furi_hal_nfc_event);
|
||||||
furi_assert(furi_hal_nfc_event->thread);
|
|
||||||
|
|
||||||
furi_thread_flags_set(furi_hal_nfc_event->thread, event);
|
if(furi_hal_nfc_event->thread) {
|
||||||
|
furi_thread_flags_set(furi_hal_nfc_event->thread, event);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FuriHalNfcError furi_hal_nfc_abort() {
|
FuriHalNfcError furi_hal_nfc_abort() {
|
||||||
|
|||||||
@ -23,6 +23,6 @@ void furi_hal_nfc_init_gpio_isr() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void furi_hal_nfc_deinit_gpio_isr() {
|
void furi_hal_nfc_deinit_gpio_isr() {
|
||||||
furi_hal_gpio_init(&gpio_nfc_irq_rfid_pull, GpioModeOutputOpenDrain, GpioPullNo, GpioSpeedLow);
|
|
||||||
furi_hal_gpio_remove_int_callback(&gpio_nfc_irq_rfid_pull);
|
furi_hal_gpio_remove_int_callback(&gpio_nfc_irq_rfid_pull);
|
||||||
|
furi_hal_gpio_init(&gpio_nfc_irq_rfid_pull, GpioModeAnalog, GpioPullNo, GpioSpeedLow);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -48,7 +48,7 @@ static FuriHalNfcIso15693Listener* furi_hal_nfc_iso15693_listener_alloc() {
|
|||||||
|
|
||||||
instance->signal = iso15693_signal_alloc(&gpio_spi_r_mosi);
|
instance->signal = iso15693_signal_alloc(&gpio_spi_r_mosi);
|
||||||
instance->parser =
|
instance->parser =
|
||||||
iso15693_parser_alloc(&gpio_spi_r_miso, FURI_HAL_NFC_ISO15693_MAX_FRAME_SIZE);
|
iso15693_parser_alloc(&gpio_nfc_irq_rfid_pull, FURI_HAL_NFC_ISO15693_MAX_FRAME_SIZE);
|
||||||
|
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,6 +24,9 @@
|
|||||||
// FreeRTOS timer, REMOVE AFTER REFACTORING
|
// FreeRTOS timer, REMOVE AFTER REFACTORING
|
||||||
#include <timers.h>
|
#include <timers.h>
|
||||||
|
|
||||||
|
// Workaround for math.h leaking through HAL in older versions
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -51,7 +51,7 @@ env.Append(
|
|||||||
libenv = env.Clone(FW_LIB_NAME="nfc")
|
libenv = env.Clone(FW_LIB_NAME="nfc")
|
||||||
libenv.ApplyLibFlags()
|
libenv.ApplyLibFlags()
|
||||||
|
|
||||||
sources = libenv.GlobRecursive("*.c*", exclude="deprecated/*c")
|
sources = libenv.GlobRecursive("*.c*")
|
||||||
|
|
||||||
lib = libenv.StaticLibrary("${FW_LIB_NAME}", sources)
|
lib = libenv.StaticLibrary("${FW_LIB_NAME}", sources)
|
||||||
libenv.Install("${LIB_DIST_DIR}", lib)
|
libenv.Install("${LIB_DIST_DIR}", lib)
|
||||||
|
|||||||
@ -297,7 +297,7 @@ bool mf_ultralight_load(MfUltralightData* data, FlipperFormat* ff, uint32_t vers
|
|||||||
uint32_t pages_total = 0;
|
uint32_t pages_total = 0;
|
||||||
if(!flipper_format_read_uint32(ff, MF_ULTRALIGHT_PAGES_TOTAL_KEY, &pages_total, 1)) break;
|
if(!flipper_format_read_uint32(ff, MF_ULTRALIGHT_PAGES_TOTAL_KEY, &pages_total, 1)) break;
|
||||||
uint32_t pages_read = 0;
|
uint32_t pages_read = 0;
|
||||||
if(data_format_version < mf_ultralight_data_format_version) {
|
if(data_format_version < mf_ultralight_data_format_version) { //-V547
|
||||||
pages_read = pages_total;
|
pages_read = pages_total;
|
||||||
} else {
|
} else {
|
||||||
if(!flipper_format_read_uint32(ff, MF_ULTRALIGHT_PAGES_READ_KEY, &pages_read, 1))
|
if(!flipper_format_read_uint32(ff, MF_ULTRALIGHT_PAGES_READ_KEY, &pages_read, 1))
|
||||||
|
|||||||
@ -518,6 +518,8 @@ static uint16_t mf_ultralight_get_upper_page_bound(MfUltralightType type) {
|
|||||||
upper_page_bound = 511;
|
upper_page_bound = 511;
|
||||||
else if(type == MfUltralightTypeNTAGI2C2K)
|
else if(type == MfUltralightTypeNTAGI2C2K)
|
||||||
upper_page_bound = 479;
|
upper_page_bound = 479;
|
||||||
|
else if(type == MfUltralightTypeNTAGI2C1K)
|
||||||
|
upper_page_bound = 225;
|
||||||
else {
|
else {
|
||||||
upper_page_bound = mf_ultralight_get_config_page_num(type) - 2;
|
upper_page_bound = mf_ultralight_get_config_page_num(type) - 2;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -68,7 +68,7 @@ Iso15693Parser* iso15693_parser_alloc(const GpioPin* pin, size_t max_frame_size)
|
|||||||
signal_reader_set_sample_rate(
|
signal_reader_set_sample_rate(
|
||||||
instance->signal_reader, SignalReaderTimeUnit64Mhz, ISO15693_PARSER_BITRATE_F64MHZ);
|
instance->signal_reader, SignalReaderTimeUnit64Mhz, ISO15693_PARSER_BITRATE_F64MHZ);
|
||||||
signal_reader_set_pull(instance->signal_reader, GpioPullDown);
|
signal_reader_set_pull(instance->signal_reader, GpioPullDown);
|
||||||
signal_reader_set_polarity(instance->signal_reader, SignalReaderPolarityInverted);
|
signal_reader_set_polarity(instance->signal_reader, SignalReaderPolarityNormal);
|
||||||
signal_reader_set_trigger(instance->signal_reader, SignalReaderTriggerRisingFallingEdge);
|
signal_reader_set_trigger(instance->signal_reader, SignalReaderTriggerRisingFallingEdge);
|
||||||
|
|
||||||
return instance;
|
return instance;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user