藍牙固件升級是使用手機給固件進行更新,以達到修復bug,完善功能的做用。升級的大概流程是:首先,當手環的固件須要升級時,由嵌入式開發人員提供新的固件,由服務器管理人員將固件放到服務器上,此時,用戶打開手機APP的時候會檢測到服務器有更新,請求更新手環固件,確認更新後,手機會從服務器下載固件。下載完畢後,APP會讀取固件內容,並根據升級協議將內容傳到手環裏,完成升級。服務器
各個藍牙設備不盡相同,如下是我測試設備的升級流程:測試
從雲端下載的固件爲.bin後綴的文件,文件名會有必定的格式,含有固件版本號和文件CRC32校驗值。cdn
規定一個數據塊大小好比2048字節,而後把升級數據進行分塊,不夠的就剩餘多少做爲一塊。藍牙一次發送的數據量是有限的,因此每次發送20字節的數據。這個數據要遵循升級數據格式,帶指令頭和校驗和,下載包的數據只是這20字節中的一部分。全部包內數據都攜帶在每條升級數據指令中。blog
藍牙升級最複雜的就在升級過程,大量的數據與藍牙交互,這時最好記錄發送到升級數據的那一部分,能夠給用戶展現升級的進程。進程