Program to update the D7A modem's firmware.

Dependencies:   modem_ref_helper DebouncedInterrupt

Committer:
Jeej
Date:
Mon Sep 18 13:38:40 2017 +0000
Revision:
22:f2b01e5e087e
Child:
29:aa16a927f0eb
Release SH2050 v4.10.1 (ECC) for v4.9.x

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jeej 22:f2b01e5e087e 1 #include "modem_ref_helper.h"
Jeej 22:f2b01e5e087e 2
Jeej 22:f2b01e5e087e 3 // ============================================================}}}
Jeej 22:f2b01e5e087e 4
Jeej 22:f2b01e5e087e 5 // Callbacks to MODEM's ALP requests
Jeej 22:f2b01e5e087e 6 // ============================================================{{{
Jeej 22:f2b01e5e087e 7 void my_read(u8 fid, u32 offset, u32 length, int id)
Jeej 22:f2b01e5e087e 8 {
Jeej 22:f2b01e5e087e 9 modem_respond(0, ALP_ERR_FILE_NOT_FOUND, id);
Jeej 22:f2b01e5e087e 10 }
Jeej 22:f2b01e5e087e 11
Jeej 22:f2b01e5e087e 12 void my_write(u8 fid, void *data, u32 offset, u32 length, int id)
Jeej 22:f2b01e5e087e 13 {
Jeej 22:f2b01e5e087e 14 modem_respond(0, ALP_ERR_FILE_NOT_FOUND, id);
Jeej 22:f2b01e5e087e 15 }
Jeej 22:f2b01e5e087e 16
Jeej 22:f2b01e5e087e 17 void my_read_fprop(u8 fid, int id)
Jeej 22:f2b01e5e087e 18 {
Jeej 22:f2b01e5e087e 19 modem_respond(0, ALP_ERR_FILE_NOT_FOUND, id);
Jeej 22:f2b01e5e087e 20 }
Jeej 22:f2b01e5e087e 21
Jeej 22:f2b01e5e087e 22 void my_flush(u8 fid, int id)
Jeej 22:f2b01e5e087e 23 {
Jeej 22:f2b01e5e087e 24 modem_respond(0, ALP_ERR_FILE_NOT_FOUND, id);
Jeej 22:f2b01e5e087e 25 }
Jeej 22:f2b01e5e087e 26
Jeej 22:f2b01e5e087e 27 void my_delete(u8 fid, int id)
Jeej 22:f2b01e5e087e 28 {
Jeej 22:f2b01e5e087e 29 modem_respond(0, ALP_ERR_FILE_NOT_FOUND, id);
Jeej 22:f2b01e5e087e 30 }
Jeej 22:f2b01e5e087e 31
Jeej 22:f2b01e5e087e 32 void my_udata(u8 fid,void *data,u32 offset,u32 length, u8 i_type, u8 i_length, u8* i_data)
Jeej 22:f2b01e5e087e 33 {
Jeej 22:f2b01e5e087e 34 (void)data;
Jeej 22:f2b01e5e087e 35 (void)i_length;
Jeej 22:f2b01e5e087e 36 PRINT("Got UNS File[%3d]@%d %d Bytes\n",fid,offset,length);
Jeej 22:f2b01e5e087e 37 if (i_type == ALP_ITF_TYPE_D7A)
Jeej 22:f2b01e5e087e 38 {
Jeej 22:f2b01e5e087e 39 static union {
Jeej 22:f2b01e5e087e 40 u8 b[8];
Jeej 22:f2b01e5e087e 41 u32 w[2];
Jeej 22:f2b01e5e087e 42 } uid;
Jeej 22:f2b01e5e087e 43 d7a_sp_res_t* istat = (d7a_sp_res_t*) i_data;
Jeej 22:f2b01e5e087e 44 memcpy(uid.b,istat->addressee.id,8);
Jeej 22:f2b01e5e087e 45 PRINT("From UID: %08X%08X (snr:%d lb:%d)\n",
Jeej 22:f2b01e5e087e 46 HAL_U32_BYTE_SWAP(uid.w[0]), HAL_U32_BYTE_SWAP(uid.w[1]),
Jeej 22:f2b01e5e087e 47 istat->rxlev, istat->lb);
Jeej 22:f2b01e5e087e 48 }
Jeej 22:f2b01e5e087e 49 }
Jeej 22:f2b01e5e087e 50
Jeej 22:f2b01e5e087e 51 void my_lqual(u8 ifid, int per)
Jeej 22:f2b01e5e087e 52 {
Jeej 22:f2b01e5e087e 53 PRINT("Interface File [%3d] LQUAL : %d%% PER\r\n", ifid, per);
Jeej 22:f2b01e5e087e 54 }
Jeej 22:f2b01e5e087e 55
Jeej 22:f2b01e5e087e 56 void my_ldown(u8 ifid)
Jeej 22:f2b01e5e087e 57 {
Jeej 22:f2b01e5e087e 58 PRINT("Interface File [%3d] LDOWN\r\n", ifid);
Jeej 22:f2b01e5e087e 59 }
Jeej 22:f2b01e5e087e 60
Jeej 22:f2b01e5e087e 61 void my_reset(void)
Jeej 22:f2b01e5e087e 62 {
Jeej 22:f2b01e5e087e 63 NVIC_SystemReset();
Jeej 22:f2b01e5e087e 64 }
Jeej 22:f2b01e5e087e 65
Jeej 22:f2b01e5e087e 66 void my_boot(u8 cause, u16 number)
Jeej 22:f2b01e5e087e 67 {
Jeej 22:f2b01e5e087e 68 PRINT("Modem BOOT[%c] #%d\r\nRe-Init\r\n", cause, number);
Jeej 22:f2b01e5e087e 69
Jeej 22:f2b01e5e087e 70 // Modem re-booted, restart APP
Jeej 22:f2b01e5e087e 71 my_reset();
Jeej 22:f2b01e5e087e 72 }