mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
Nina: Add firmware version checking.
This commit is contained in:
parent
9dafa2447b
commit
ab506618d7
@ -19,6 +19,14 @@
|
|||||||
#define NINA_MAX_NETWORK_LIST (10)
|
#define NINA_MAX_NETWORK_LIST (10)
|
||||||
#define NINA_MAX_SOCKET (10)
|
#define NINA_MAX_SOCKET (10)
|
||||||
|
|
||||||
|
#define NINA_FW_VER_MAJOR (1)
|
||||||
|
#define NINA_FW_VER_MINOR (4)
|
||||||
|
#define NINA_FW_VER_PATCH (7)
|
||||||
|
|
||||||
|
#define NINA_FW_VER_MAJOR_OFFS (0)
|
||||||
|
#define NINA_FW_VER_MINOR_OFFS (2)
|
||||||
|
#define NINA_FW_VER_PATCH_OFFS (4)
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
NINA_SEC_INVALID = 0,
|
NINA_SEC_INVALID = 0,
|
||||||
NINA_SEC_OPEN,
|
NINA_SEC_OPEN,
|
||||||
|
|||||||
@ -320,13 +320,6 @@ int nina_init()
|
|||||||
{
|
{
|
||||||
// Initialize the BSP.
|
// Initialize the BSP.
|
||||||
nina_bsp_init();
|
nina_bsp_init();
|
||||||
|
|
||||||
// check firmware version
|
|
||||||
uint8_t fw_ver[NINA_FW_VER_LEN];
|
|
||||||
if (nina_fw_version(fw_ver) != 0) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
// TODO check fw version matches the driver.
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -85,7 +85,27 @@ static mp_obj_t py_nina_active(size_t n_args, const mp_obj_t *args)
|
|||||||
int error = 0;
|
int error = 0;
|
||||||
if ((error = nina_init()) != 0) {
|
if ((error = nina_init()) != 0) {
|
||||||
mp_raise_msg_varg(&mp_type_OSError,
|
mp_raise_msg_varg(&mp_type_OSError,
|
||||||
MP_ERROR_TEXT("Failed to initialize Nina-W10 module: %d\n"), error);
|
MP_ERROR_TEXT("Failed to initialize Nina-W10 module, error: %d\n"), error);
|
||||||
|
}
|
||||||
|
// check firmware version
|
||||||
|
uint8_t fw_ver[NINA_FW_VER_LEN];
|
||||||
|
if (nina_fw_version(fw_ver) != 0) {
|
||||||
|
nina_deinit();
|
||||||
|
mp_raise_msg_varg(&mp_type_OSError,
|
||||||
|
MP_ERROR_TEXT("Failed to read firmware version, error: %d\n"), error);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check fw version matches the driver.
|
||||||
|
if ((fw_ver[NINA_FW_VER_MAJOR_OFFS] - 48) != NINA_FW_VER_MAJOR ||
|
||||||
|
(fw_ver[NINA_FW_VER_MINOR_OFFS] - 48) != NINA_FW_VER_MINOR ||
|
||||||
|
(fw_ver[NINA_FW_VER_PATCH_OFFS] - 48) != NINA_FW_VER_PATCH) {
|
||||||
|
nina_deinit();
|
||||||
|
mp_raise_msg_varg(&mp_type_OSError,
|
||||||
|
MP_ERROR_TEXT("Firmware version mismatch. Expected %d.%d.%d found: %d.%d.%d\n"),
|
||||||
|
NINA_FW_VER_MAJOR, NINA_FW_VER_MINOR, NINA_FW_VER_PATCH,
|
||||||
|
fw_ver[NINA_FW_VER_MAJOR_OFFS] - 48,
|
||||||
|
fw_ver[NINA_FW_VER_MINOR_OFFS] - 48,
|
||||||
|
fw_ver[NINA_FW_VER_PATCH_OFFS] - 48);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
nina_deinit();
|
nina_deinit();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user