มีบริการคลาวด์หรือกรอบงานที่พร้อมสำหรับการอัพเดตเฟิร์มแวร์ทางอากาศหรือไม่?


9

ฉันมีต้นแบบของอุปกรณ์ที่ จำกัด ทรัพยากร (8-bit MCU ที่ไม่มีเฟิร์มแวร์ระบบปฏิบัติการ) ซึ่งโต้ตอบกับเว็บเซิร์ฟเวอร์ ฉันสงสัยว่ามีวิธีแก้ปัญหาเฟรมเวิร์กหรือบริการคลาวด์สำหรับการอัปเดตเฟิร์มแวร์อุปกรณ์ของฉันจากเว็บหรือไม่ จากการวิจัยของฉันมี Microsoft IoT Hub แต่ฉันเกรงว่าจะไม่เหมาะกับอุปกรณ์ที่ จำกัด ทรัพยากรดังกล่าว มีอีกหนึ่งวิธีที่ฉันพบ - พอร์ทัล mbed Cloud แต่ฉันไม่แน่ใจว่ามันทำงานอย่างไร มีใครบ้างที่สามารถช่วยฉันได้ผ่านคำแนะนำใด ๆ อาจมีแนวทางปฏิบัติที่ดีที่สุดในการใช้การอัพเกรดเฟิร์มแวร์ผ่านทางอากาศสำหรับอุปกรณ์ฝังตัวในวิธีที่ปลอดภัยและมีประสิทธิภาพ


ไม่มีบริการดังกล่าวอย่างน้อยตอนนี้ การใช้งานโดยทั่วไปนั้นน่าเบื่อมากการกำหนดเป้าหมายตามอุปกรณ์เฉพาะสามารถนำไปใช้งานได้
bravokeyl

มีmender.ioซึ่งเป็นสิ่งที่คุณต้องการ แต่ฉันเชื่อว่ามันเป็นเป้าหมายของอุปกรณ์ฝังตัว "ระดับไฮเอนด์" และสำหรับโหนด 8 บิต
พรม

คำตอบ:


4

ฉันจะตอบเฉพาะส่วนนี้เพราะฉันรู้ว่าไม่มีระบบ 'ออกจากกล่อง' สำหรับเฟิร์มแวร์ที่ไม่รู้จัก

อาจมีวิธีปฏิบัติที่ดีที่สุดในการใช้การอัพเกรดเฟิร์มแวร์ทางอากาศสำหรับอุปกรณ์ฝังตัวในวิธีที่ปลอดภัยและมีประสิทธิภาพหรือไม่

ในแง่ของการปฏิบัติสิ่งที่ฉันจะทำคือ:

1) มีบูตโหลดเดอร์ที่น้อยที่สุดบางสิ่งที่โง่ที่สุดเท่าที่จะเป็นไปได้เท่านั้นที่รับผิดชอบในการโหลดเฟิร์มแวร์โดยมีข้อ จำกัด ดังต่อไปนี้:

  • ความสามารถในการบันทึกความสำเร็จในการบูตครั้งล่าสุด / ล้มเหลว (เพื่อย้อนกลับไปเป็นเวอร์ชั่นที่ใช้งานได้ในกรณีที่เกิดข้อผิดพลาด)
  • กระบวนการฉุกเฉินบางประเภทเพื่อยอมรับเฟิร์มแวร์ใหม่ในกรณีที่เกิดความล้มเหลวรุนแรง (ไม่บังคับสามารถหลีกเลี่ยงได้หากอนุญาตให้ใช้อุปกรณ์ "ก่ออิฐ")

2) ตั้งค่าที่เก็บข้อมูลของคุณให้มีขนาด "บูตธนาคาร" สองขนาดที่เหมาะสมเพื่อรองรับวิวัฒนาการในอนาคตและการเติบโตของเฟิร์มแวร์

3) ตรวจสอบภาพเฟิร์มแวร์หลังจากดาวน์โหลดเพื่อให้แน่ใจว่าถูกต้องก่อนการเผาไหม้ตรวจสอบธนาคารปลายทางหลังจากทำการเบิร์นอีกครั้งเพื่อให้แน่ใจว่ามันจะไม่ล้มเหลวในการบูทบิตที่หายไป

จุดที่มองข้ามมักจะเป็นจุดตรวจสอบของภาพที่ดาวน์โหลดมาก่อนและหลังการเบิร์นส่งผลให้ระบบที่เขียนบนอุปกรณ์เสียหาย การใช้สองธนาคารและการสลับมักจะทำให้กระบวนการอัปเดตง่ายขึ้น


5

mbed cloud มีฟังก์ชั่นอัพเดทเฟิร์มแวร์เต็มรูปแบบ แต่ฉันคิดว่าคุณมีปัญหาในการย้ายพอร์ตไปยังแพลตฟอร์มของคุณหากคุณใช้งานโดยไม่มีระบบปฏิบัติการ ฉันไม่คิดว่าแหล่งข้อมูลจะเปิดในวันนี้ดังนั้นคุณจึงไม่สามารถใช้เพื่อการอ้างอิงได้ ฉันยังไม่แน่ใจว่าเกณฑ์สำหรับการเข้าถึงตอนนี้คืออะไร

คุณต้องคิดเกี่ยวกับคุณสมบัติที่คุณต้องการ - นี่เป็นการปรับใช้ขนาดใหญ่ที่คุณจำเป็นต้องใช้ในการทำเฟิร์มแวร์ตามขั้นตอนหรือไม่คุณสนใจที่จะลงนามในเฟิร์มแวร์หรือแพลตฟอร์มของคุณเปิดให้ทุกคน คุณสนใจเกี่ยวกับความสามารถในการกู้คืนอุปกรณ์บริกที่ไม่มี JTAG เท่าไหร่?

คุณสมบัติเช่นการอัปเดต OTA อาจเป็นสิ่งที่ผลักดันระบบปฏิบัติการและการเลือกอุปกรณ์ของคุณ - เมื่อคุณคำนึงถึงต้นทุนการพัฒนา


5

ตรวจสอบ OTA ซึ่งเป็นตัวย่อของ Over The Air Arduino มีคุณสมบัติดังกล่าว

คุณสามารถทำการอัพเดทด้วย Arduino IDE, เว็บเบราว์เซอร์หรือเซิร์ฟเวอร์ HTTP

ตัวเลือก Arduino IDE มีวัตถุประสงค์หลักสำหรับขั้นตอนการพัฒนาซอฟต์แวร์ ตัวเลือกอื่น ๆ ที่สองจะมีประโยชน์มากขึ้นหลังจากการปรับใช้เพื่อให้โมดูลที่มีการปรับปรุงแอปพลิเคชันด้วยตนเองด้วยเว็บเบราว์เซอร์หรือโดยอัตโนมัติโดยใช้เซิร์ฟเวอร์ http


หนึ่งในสิ่งที่ไม่พึงประสงค์ที่สุดเกี่ยวกับห้องสมุดและ Arduino โดยทั่วไปคือการขาดความปลอดภัย โซลูชันนี้เหมาะสำหรับโครงการ DIY หรือโรงเรียน แต่ไม่เหมาะสำหรับอุปกรณ์เชิงพาณิชย์ สิ่งที่ฉันไม่ชอบคือขาดการรับรองความถูกต้อง: ไม่มีการป้องกันจากการเปลี่ยนเฟิร์มแวร์ด้วยอันที่เป็นอันตราย
Vadimchik

4

คุณอาจจะดูที่อนุภาค (IOT) ฉันไม่แน่ใจว่าพวกเขาสนับสนุน Arduino แต่พวกเขามีบอร์ดฝังตัวราคาถูกบางตัวเอง


3

หนึ่งในแพลตฟอร์มที่น่าสนใจอื่น ๆ อีกมากมายที่ผมค้นพบคือDeviceDrive นี่คือวิดีโออธิบายการทำงานของสิ่งต่าง ๆ ระบบ OTA ของพวกเขาดูเหมือนจะยืดหยุ่นดี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.