7.5. ROMFS¶
ROMFS คือระบบไฟล์แบบอ่านอย่างเดียวที่ฝังอยู่ใน cam ตั้งแต่ compile time และถูก mount ที่ /rom/ บล็อกไฟล์อยู่ในแฟลชและถูกแมปเข้าสู่พื้นที่ address ดังนั้นการเปิดไฟล์ที่นั่นจะเปิดเผยไบต์ของไฟล์นั้นโดยตรงจากแฟลชโดยไม่ต้องคัดลอกเข้า RAM โมเดล ไฟล์ป้ายกำกับ และ Haar cascade เป็นเนื้อหาทั่วไป
7.5.1. เหตุใดโมเดลจึงอยู่ที่นี่¶
มีสองเหตุผล เหตุผลแรกคือการแลกเปลี่ยน RAM ที่ได้กล่าวถึงไปแล้ว: โมเดลบน /rom/ อ่านจากแฟลชโดยตรงและไม่ใช้ RAM เกินกว่า tensor arena ในขณะที่โมเดลบน /sdcard/ ถูกคัดลอกเข้า RAM เมื่อโหลดและมีค่าใช้จ่ายเท่ากับขนาดไฟล์บวกกับ arena บน cam ขนาดเล็กความแตกต่างนี้มักเป็นความแตกต่างระหว่างการพอดีและการไม่พอดี
เหตุผลที่สองคือ NPU NPU ของ N6 และ Ethos-U บน AE3 คาดหวังให้น้ำหนักของมันอยู่ในพื้นที่ที่สามารถระบุที่อยู่หน่วยความจำได้พร้อมการจัดวางที่ถูกต้อง และ build tooling ที่ compile โมเดลสำหรับ accelerator เหล่านั้น (STEdgeAI สำหรับ NPU ของ N6, Vela สำหรับ Ethos-U ของ AE3) จะวางผลลัพธ์ไว้ใน ROMFS ด้วย layout นั้น โมเดลที่โหลดจาก /sdcard/ จะลงใน heap RAM ซึ่งใช้งานได้ดีสำหรับเส้นทาง CPU ที่ H7 และ RT1062 ใช้ แต่จะสูญเสียเส้นทาง NPU direct-from-flash ที่ cam ความเร็วสูงได้รับการออกแบบมา
7.5.2. ระบบไฟล์ MicroPython ปกติ¶
ในระหว่าง runtime ROMFS จะทำงานเหมือนระบบไฟล์ MicroPython ที่ mount อยู่อื่น ๆ: os.listdir() นับรายการใน /rom/, builtins.open() เปิดไฟล์ในนั้น และเส้นทางใต้มันสามารถส่งไปยัง API ใด ๆ ที่รับเส้นทางได้ ข้อจำกัดเดียวคือสคริปต์ไม่สามารถเขียนลงในมันได้ -- พาร์ติชันนี้เป็นแบบอ่านอย่างเดียวในระหว่าง run time
IDE สามารถ แก้ไข ROMFS ได้ มันแสดงเนื้อหาของพาร์ติชันในตัวเรียกดูไฟล์และรองรับการเพิ่ม ลบ และแทนที่ไฟล์ที่นั่นในลักษณะเดียวกับที่ทำกับ SD card การใช้งานที่ต้องการคือการเพิ่มโมเดลที่กำหนดเอง ไฟล์ป้ายกำกับ สคริปต์ช่วยเหลือ หรือทรัพยากรอื่น ๆ ที่แอปพลิเคชันต้องการจัดส่งพร้อมกับ cam สิ่งใดก็ตามที่ถูกวางลงใน /rom/ ผ่าน IDE จะได้รับพื้นที่จัดเก็บแบบ direct-from-flash ที่ NPU เข้าถึงได้เช่นเดียวกับโมเดลที่ติดตั้งมาล่วงหน้า