BLE 空中升級談
-- CC2541 的產品開發中OAD注意事項
現在的智能設備(可穿戴,智能家居,智能玩具等)是越來越多了,大公司的產品顏值高,功能強大而完備的應該說是比比皆是,這里不談論它是滿足所謂的剛性需求。許多新(shan)創(zhai)公司做的產品就只能憑一面之緣了,要是喜歡你就買下,反正后面覺得哪里不好,用着不爽就扔掉便是,看官自是不缺這幾十一百塊錢。比如像小米的一代手機 Mi BNAD(現售69),電子稱Mi Scale(現售99)。雖說便宜事實上這確是匠心之作,就本人了解,從空中升級來看,它們就很棒,設備它的目前的程序存在嚴重問題,或者它的功能在現有硬件資源還能進行合理的擴增,小米會在后續推出相應的firmware,就算產品已經到了用戶手上也可以得到升級,這一切都是免費的,甚至是不知不覺的,要不怎么說相信大公司呢。所以有着完美主義情節的在下總覺得空中升級就應該是此類設備必備的功能(之一)。
前言說小米是大公司,產品有帶空中升級,話外音就是想說當前市面上許多眾籌,或者外貿品牌轉內銷,一些剛開創的小牌產品,基於快速上市這一當前市場的最高原則,幾乎把這個“不(hen)起(zhong)眼(yao)”的功能給選擇性忽略了。話說在這里,不怕磚塊。事實上這個功能之於產品是非常重要的, 對於這些很容易就被棄之不用的小物件是極重/相當重要的!
這么重要的功能,如何開發呢,以低功耗藍牙來說,本人最早自TI BLE Stack 1.4.0開始了解,也基於這里開始開發。而這個版本的協議棧,就已經自帶了空中升級的例程,並且編寫了相當不錯的boot,這是從IC原廠的角度來看,也是IC原廠的態度,一個小的智能設備本來就應當具備空中升級。沒錯,不用懷疑,必須的特性。雖然原廠給了這么大力的支持,還是很遺憾,現在市面還是有不(zhu)少(duo)產品就是沒有空中升級的,讓人難予置信。除了TI, 其他原廠比如NODIC也有,這是半導體大廠的共識。
有了這么好的基礎,想演示空中升級已經是極其容易了,於是應該也出現了按照這個demo水准而推出的“產品”,但我沒有去一一驗證過,相信找找肯定還是會有的。有的產品根本沒有,有的也只是一個demo,這讓趟這行渾水的人總覺得世間坑無數,此處再添來的感慨。好了,牢騷發完,謝謝各位的耐心,我再接着講講這個空中升級也稱Upgarade over the air(簡記為OTA), Over Air Download(簡記為OAD),大概怎么來做,原諒這里也不會太詳細,詳細的部分各方案的開發向導中就有,可能是英文的,但也容易讀懂。以TI的CC2541為例,對於其他IC請舉一反三。
第一條是了解原廠的空中升級方案,作為一線開發者,要達到深入的理解,只是了解還不夠的。TI的OAD方案大致是使用 boot + image A + image B這樣的方式,boot負責啟動系統,image A能更新image B, 反過來image B也能更新Image A,這樣設備就可以反復進行OAD了, Image A/B的作用是完全等同的。而通常在實際的開發中, image B才是設備正常使用時運行的程序, Image A僅是用來更新Image B會更好,一來安全,再者可以讓Image B有更多的空間。按照后面的設計它們分別占用三個分區,僅image B區域是可以擦除的。另外還有一個區域是前面三者共同使用的,用於存儲用戶信息等,這個空間是共享的。具體的解讀可以找度娘。
STEP BY STEP 1, http://bbs.ednchina.com/BLOG_ARTICLE_3019402.HTM
干貨在后面。未完待續。。。
