เคล็ดลับ : หลังจาก EasyFlash v4.1 โครงการ FlashDB Open Source ที่ออกแบบใหม่และพัฒนาขึ้นอยู่กับ EasyFlash ได้เปิดตัวอย่างเป็นทางการแล้ว มันมีฟังก์ชั่นแบบรวมใหม่เช่นฐานข้อมูลกำหนดเวลาการจัดการหลายพาร์ติชันและอินสแตนซ์ฐานข้อมูลหลายอินสแตนซ์ซึ่งได้ปรับปรุงประสิทธิภาพโดยรวมในระดับหนึ่ง ยินดีต้อนรับสู่การติดตาม: https://github.com/armink/flashdb ในเวลาเดียวกัน EasyFlash ที่มีอยู่จะยังคงได้รับการดูแลต่อไป
EasyFlash เป็นไลบรารีหน่วยความจำแฟลชที่มีน้ำหนักเบาแบบโอเพนซอร์สซึ่งทำให้นักพัฒนาสามารถใช้การพัฒนาแอปพลิเคชันทั่วไปได้ง่ายขึ้นตามหน่วยความจำแฟลช เหมาะมากสำหรับบ้านอัจฉริยะการสวมใส่, การควบคุมอุตสาหกรรม, การดูแลทางการแพทย์, อินเทอร์เน็ตของสิ่งต่าง ๆ และผลิตภัณฑ์อื่น ๆ ที่ต้องใช้ฟังก์ชั่นการจัดเก็บพลังงาน มีการใช้ทรัพยากรต่ำมากและรองรับหน่วยความจำบนชิป MCU ต่างๆ ห้องสมุดนี้ส่วนใหญ่มี ฟังก์ชั่นการปฏิบัติสามอย่าง :
EasyFlash ไม่เพียง แต่สามารถรับรู้ฟังก์ชั่นการจัดเก็บข้อมูลแบบ power-down ของข้อมูลเช่น การ ตั้งค่าพารามิเตอร์ หรือ การใช้บันทึก ของผลิตภัณฑ์เท่านั้น ทำให้แฟลชเป็นฐานข้อมูลการจัดเก็บคีย์-ค่าขนาดเล็กที่เปลี่ยนแฟลชเป็นรุ่น NOSQL (ฐานข้อมูลที่ไม่ใช่ความสัมพันธ์)
ไลบรารีนี้ห่อหุ้มอินเทอร์เฟซที่ใช้กันทั่วไปของฟังก์ชั่น IAP (การเขียนโปรแกรมในแอปพลิเคชัน) รองรับการตรวจสอบ CRC32 และรองรับการอัพเกรด bootloader และแอปพลิเคชัน
เหมาะอย่างยิ่งสำหรับผลิตภัณฑ์ขนาดเล็กที่ไม่มีระบบไฟล์ทำให้นักพัฒนาสามารถค้นหาตำแหน่งได้อย่างรวดเร็วและค้นหาสาเหตุของการล่มของระบบหรือล่ม ในเวลาเดียวกันมันถูกใช้กับ EasyLogger (Open Source Ultra-Lightweight, Library C Lograry ที่มีประสิทธิภาพสูงซึ่งให้อินเทอร์เฟซที่ไร้รอยต่อกับ EasyFlash) และใช้ฟังก์ชั่นการจัดเก็บแฟลชของบันทึก C ได้อย่างง่ายดาย
ขณะนี้มีสองโหมดหลักของฟังก์ชัน ENV หนึ่งโหมดคือโหมด NG ที่นำมาสู่ v4.0 และอีกโหมดหนึ่งคือโหมด ดั้งเดิม ที่ดำเนินการต่อ v3.0
ไฟล์ซอร์สโค้ดที่เกี่ยวข้องคือ:
ef_env.c
นับตั้งแต่เทศกาลฤดูใบไม้ผลิในปี 2562 EasyFlash ได้เปิดตัวเวอร์ชั่น V4.0 ในที่สุดหลังจากการทำซ้ำมานานกว่า 4 ปีและรวมกับความต้องการและคำแนะนำของนักพัฒนาหลายคน ฟังก์ชั่น ENV ในเวอร์ชันนี้มีชื่อว่าโหมด NG (รุ่นต่อไป) นี่เป็นเวอร์ชันใหม่ที่ปรับปรุงใหม่อย่างสมบูรณ์พร้อมคุณสมบัติใหม่ต่อไปนี้:
V4.0 การออกแบบและหลักการภายในคู่มือการย้ายถิ่น v4.0 และอื่น ๆ โปรดอ่านส่วนเอกสารต่อไปนี้ต่อไป
หมายเหตุ : แฟลชบางอย่างไม่สามารถเขียนได้ตามลำดับย้อนกลับเช่น STM32L4 บนชิปแฟลชดังนั้นจึงไม่สามารถใช้โหมด NG ได้ ในกรณีนี้ขอแนะนำให้ใช้โหมดดั้งเดิมของ v3.0
ไฟล์ซอร์สโค้ดที่เกี่ยวข้องคือ:
ef_env_legacy.cและef_env_legacy_wl.c
โหมด เดิม ยังมีฟังก์ชั่นการป้องกันการสึกหรอและฟังก์ชั่นการป้องกันด้วยพลังงาน เมื่อเทียบกับโหมด V 4.0 ng การใช้โหมดดั้งเดิมต้องใช้พื้นที่ RAM เพิ่มเติมเพื่อแคชแต่ละครั้งชั่วคราวและในที่สุดเรียกอินเทอร์เฟซบันทึกลบภาคส่วนที่สม่ำเสมอแล้วเก็บไว้ในแฟลช
| โหมด v4.0 ng | โหมดมรดก v3.0 | |
|---|---|---|
| การใช้ทรัพยากร RAM | ต่ำ | สูง |
| รองรับแฟลชที่ครอบคลุม | แฟลชบางตัวถูก จำกัด : ตัวอย่างเช่น STM32L4 ในชิป | ครอบคลุมมากขึ้น |
| จำเป็นต้องมีการรวบรวม GC Garbage หรือไม่? | จำเป็นต้องใช้ GC ซึ่งทำให้ความเร็วในการเขียนช้าลงเมื่อ GC ถูกทริกเกอร์ | ไม่จำเป็น |
| ขีด จำกัด ประเภทค่า | ไม่ จำกัด | รองรับประเภทสตริงที่ดีกว่า |
| ปิดกั้นการป้องกัน | สนับสนุน | สนับสนุน |
| สึกหรอ | สนับสนุน | สนับสนุน |
| การอัพเกรดที่เพิ่มขึ้น | สนับสนุน | สนับสนุน |
最低要求: ROM: 6K bytes RAM: 0.1K bytes
ปัจจุบันแพลตฟอร์มฮาร์ดแวร์ได้รับการปลูกถ่ายรวมถึง stm32f10x และ stm32f4xx Series บนชิปแฟลชและ Flash Off-Chip SPI (ตาม SFUD) ซึ่งเป็นแพลตฟอร์มที่ใช้โดยผลิตภัณฑ์ของผู้เขียน การพอร์ตของแพลตฟอร์มอื่น ๆ นั้นไม่ยาก ในตอนต้นของการออกแบบโครงการปัญหาการปรับตัวสำหรับแพลตฟอร์มทั้งหมดได้รับการพิจารณา (ยกเว้น 64 บิต) ดังนั้นอินเทอร์เฟซการพอร์ตทั้งหมดจึงถูกสงวนไว้ ในพอร์ตคุณจะต้องปรับเปลี่ยนไฟล์ easyflashportef_port.c เพื่อตระหนักถึงฟังก์ชั่นของการลบการเขียนการอ่านและการพิมพ์
ยินดีต้อนรับสู่ Fork and Pull Request (GitHub | Oschina | การเข้ารหัส) หากคุณคิดว่าโครงการโอเพ่นซอร์สนี้ยอดเยี่ยมคุณสามารถคลิก ดาว ที่มุมบนขวาของหน้าแรกของโครงการและแนะนำให้เพื่อนที่ต้องการมากขึ้น
รูปต่อไปนี้เป็นอินเทอร์เฟซทั่วไปสำหรับตัวแปรสภาพแวดล้อมการโทรผ่านคอนโซล (เทอร์มินัล) มันแสดงให้เห็นถึงกระบวนการต่อไปนี้ซึ่งทั้งหมดสนับสนุนการโทรโดยตรงโดยเลเยอร์แอปพลิเคชัน
temp และกำหนดค่า 123 ;456 และบันทึกและรีสตาร์ท
รูปต่อไปนี้แสดงให้เห็นถึงกระบวนการอัพเกรดซอฟต์แวร์ IAP ผ่านคอนโซล มันใช้อินเทอร์เฟซฟังก์ชั่น IAP ที่มาพร้อมกับไลบรารีและการสาธิตใช้พอร์ตอนุกรม + YMODEM โปรโตคอล นอกจากนี้คุณยังสามารถตระหนักถึงการอัปเดตเครือข่ายระยะไกลผ่าน CAN, 485, Ethernet และรถโดยสารอื่น ๆ

กระบวนการด้านล่างคือการส่งออกบันทึกผ่านคอนโซลและจัดเก็บบันทึกเอาต์พุตในแฟลช รีสตาร์ทและอ่านบันทึกล่าสุดที่บันทึกไว้และในที่สุดก็ล้างบันทึกแฟลช

docszhapi.mddocszhport.mddocszhv4_migrate.mddocszhdesign.mdให้แน่ใจว่าได้ใช้หลังจาก อ่านเอกสาร

หาก EasyFlash แก้ปัญหาของคุณคุณอาจสแกนรหัส QR ด้านบนเพื่อเชิญฉัน ให้ดื่มกาแฟสักถ้วย ~
ใช้โปรโตคอลโอเพนซอร์ส MIT โปรดอ่านเนื้อหาของไฟล์ใบอนุญาตในโครงการเพื่อดูรายละเอียด
EasyFlash เป็นไลบรารีหน่วยความจำแฟลชที่มีน้ำหนักเบาแบบโอเพ่นซอร์ส มันให้อินเทอร์เฟซแอปพลิเคชันที่สะดวกสำหรับ MCU (ชุดควบคุมไมโคร) นักพัฒนาสามารถบรรลุการพัฒนาแอปพลิเคชันที่มีประสิทธิภาพและทั่วไปมากขึ้นตามหน่วยความจำแฟลช ปัจจุบันห้องสมุดมี คุณสมบัติที่มีประโยชน์สามประการ :
EasyFlash สามารถจัดเก็บ พารามิเตอร์การตั้งค่า หรือ เรียกใช้บันทึก และข้อมูลอื่น ๆ ที่คุณต้องการเก็บไว้หลังจากปิดเครื่อง มันมีวิธีการเพิ่มลบแก้ไขและค้นหา ช่วยให้นักพัฒนาสามารถประมวลผลพารามิเตอร์ผลิตภัณฑ์และตรวจสอบให้แน่ใจว่าผลิตภัณฑ์มีความสามารถในการปรับขนาดได้ดีขึ้นหลังจากการอัพเกรด เปลี่ยนแฟลชเป็นโมเดล NOSQL ขนาดเล็ก (ฐานข้อมูลที่ไม่ใช่ความสัมพันธ์) และฐานข้อมูลการเก็บคีย์-ค่า
ไลบรารีห่อหุ้ม IAP (การเขียนโปรแกรมในแอปพลิเคชัน) อินเทอร์เฟซทั่วไป สนับสนุน CRC32 Checksum ในขณะที่รองรับการอัพเกรด bootloader และแอปพลิเคชัน
เหมาะมากสำหรับขนาดเล็กที่ไม่มีผลิตภัณฑ์ระบบไฟล์ นักพัฒนาสามารถค้นหาและค้นหาปัญหาได้อย่างง่ายดายเมื่อระบบล่มหรือค้าง คุณสามารถใช้ EasyLogger (ไลบรารีบันทึก C ที่มีน้ำหนักเบาและมีประสิทธิภาพสูงซึ่งโอเพ่นซอร์สโดยฉันมันให้อินเทอร์เฟซที่ไร้รอยต่อกับ EasyFlash) ในเวลาเดียวกัน ดังนั้นจึงง่ายมากที่จะเก็บบันทึกเพื่อแฟลช
Minimum : ROM: 6K bytes RAM: 0.2K bytes
แพลตฟอร์มฮาร์ดแวร์ได้รับการพอร์ต SPI Flash, stm32f10x และ stm32f4xx Series ของแฟลชบนชิป นี่คือแพลตฟอร์มผลิตภัณฑ์ของฉัน แพลตฟอร์มที่เหลืออยู่มีความยากลำบากน้อย ในการพอร์ตเพียงแค่แก้ไขไฟล์ easyflashportef_port.c ใช้งาน Erase, Write, Read, Print
ยินดีต้อนรับทุกคนสู่ ส้อมและดึงคำขอ (GitHub | Oschina | การเข้ารหัส) หากคุณคิดว่าโครงการโอเพ่นซอร์สนี้ยอดเยี่ยม คุณสามารถกด ดาว ที่มุมบนขวาของหน้าแรกของโครงการและแนะนำให้เพื่อนเพิ่มขึ้น
รูปด้านล่างแสดงอินเทอร์เฟซทั่วไปของ Env ถูกเรียกโดยคอนโซล (เทอร์มินัล) อินเทอร์เฟซเหล่านี้รองรับโดยเลเยอร์แอปพลิเคชันที่เรียกว่า
temp และค่าคือ 123 ;456 และบันทึกรีบูต;
รูปด้านล่างแสดงกระบวนการอัพเกรดซอฟต์แวร์ผ่านคอนโซลโดย IAP มันใช้ไลบรารีนี้มาพร้อมกับอินเตอร์เฟสฟังก์ชั่น IAP มันใช้โหมดโปรโตคอลพอร์ต Serial Port + Ymodem นอกจากนี้คุณยังสามารถทำได้ผ่านกระป๋อง 485, Ethernet Bus เพื่ออัพเกรดออนไลน์

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

เอกสารทั้งหมดอยู่ในโฟลเดอร์ docsen โปรด อ่านเอกสาร ก่อนพอร์ตและใช้งาน
การใช้ใบอนุญาต MIT Open Source โปรดอ่านไฟล์ใบอนุญาตโครงการ