Microsemi SmartFusion2 SoC FPGA โค้ดแชโดว์จาก SPI Flash ไปยังหน่วยความจำ DDR
คำนำ
วัตถุประสงค์
การสาธิตนี้มีไว้สำหรับอุปกรณ์ SmartFusion®2 system-on-chip (SoC) field programmable gate array (FPGA) โดยให้คำแนะนำเกี่ยวกับวิธีการใช้การออกแบบอ้างอิงที่เกี่ยวข้อง
กลุ่มเป้าหมาย
คู่มือสาธิตนี้มีไว้สำหรับ:
- นักออกแบบ FPGA
- นักออกแบบฝังตัว
- นักออกแบบระดับระบบ
อ้างอิง
ดูสิ่งต่อไปนี้ web หน้าสำหรับรายการเอกสารประกอบอุปกรณ์ SmartFusion2 ที่สมบูรณ์และเป็นปัจจุบัน:
http://www.microsemi.com/products/fpga-soc/soc-fpga/smartfusion2#documentation
เอกสารต่อไปนี้อ้างอิงในคู่มือสาธิตนี้
- UG0331: คู่มือผู้ใช้ระบบย่อยไมโครคอนโทรลเลอร์ SmartFusion2
- คู่มือผู้ใช้ตัวสร้างระบบ SmartFusion2
SmartFusion2 SoC FPGA – การแชโดว์โค้ดจาก SPI Flash ไปยังหน่วยความจำ DDR
การแนะนำ
การออกแบบสาธิตนี้แสดงความสามารถของอุปกรณ์ SmartFusion2 SoC FPGA สำหรับการแชโดว์โค้ดจากอุปกรณ์หน่วยความจำแฟลช Serial Peripheral Interface (SPI) ไปจนถึง Double Data Rate (DDR) Synchronous Dynamic Random Access Memory (SDRAM) และการรันโค้ดจาก DDR SDRAM
รูปที่ 1 แสดงแผนภาพบล็อกระดับบนสุดสำหรับการแชโดว์โค้ดจากอุปกรณ์แฟลช SPI ไปยังหน่วยความจำ DDR
รูปที่ 1 • บล็อกไดอะแกรมระดับบนสุด
การแชโดว์โค้ดเป็นวิธีการบูตที่ใช้ในการเรียกใช้รูปภาพจากหน่วยความจำภายนอก เร็วขึ้น และเปลี่ยนแปลงได้ (DRAM) เป็นกระบวนการคัดลอกโค้ดจากหน่วยความจำแบบไม่ลบเลือนไปยังหน่วยความจำชั่วคราวเพื่อดำเนินการ
จำเป็นต้องมีการแชโดว์โค้ดเมื่อหน่วยความจำแบบไม่ลบเลือนที่เกี่ยวข้องกับโปรเซสเซอร์ไม่รองรับการเข้าถึงโค้ดแบบสุ่มเพื่อดำเนินการแบบแทนที่ หรือมีหน่วยความจำเข้าถึงโดยสุ่มแบบไม่ลบเลือนไม่เพียงพอ ในแอปพลิเคชันที่เน้นประสิทธิภาพการทำงาน ความเร็วในการดำเนินการสามารถปรับปรุงได้โดยการแชโดว์โค้ด โดยที่โค้ดจะถูกคัดลอกไปยัง RAM ที่มีปริมาณงานสูงขึ้นเพื่อการดำเนินการที่เร็วขึ้น
หน่วยความจำ Single Data Rate (SDR)/DDR SDRAM ใช้ในแอปพลิเคชันที่มีอิมเมจที่สามารถเรียกใช้งานแอปพลิเคชันขนาดใหญ่และต้องการประสิทธิภาพที่สูงกว่า โดยทั่วไป รูปภาพที่ปฏิบัติการได้ขนาดใหญ่จะถูกจัดเก็บไว้ในหน่วยความจำแบบไม่ลบเลือน เช่น แฟลช NAND หรือแฟลช SPI และคัดลอกไปยังหน่วยความจำชั่วคราว เช่น หน่วยความจำ SDR/DDR SDRAM เมื่อเปิดเครื่องเพื่อดำเนินการ
อุปกรณ์ SmartFusion2 SoC FPGA ผสานรวม FPGA Fabric ที่ใช้แฟลชรุ่นที่สี่, โปรเซสเซอร์ ARM® Cortex®-M3 และอินเทอร์เฟซการสื่อสารประสิทธิภาพสูงบนชิปตัวเดียว ตัวควบคุมหน่วยความจำความเร็วสูงในอุปกรณ์ SmartFusion2 SoC FPGA ใช้เพื่อเชื่อมต่อกับหน่วยความจำ DDR2/DDR3/LPDDR ภายนอก หน่วยความจำ DDR2/DDR3 สามารถทำงานได้ที่ความเร็วสูงสุด 333 MHz โปรเซสเซอร์ Cortex-M3 สามารถเรียกใช้คำสั่งจากหน่วยความจำ DDR ภายนอกได้โดยตรงผ่านระบบย่อยไมโครคอนโทรลเลอร์ (MSS) DDR (MDDR) ตัวควบคุมแคช FPGA และบริดจ์ MSS DDR จัดการการไหลของข้อมูลเพื่อประสิทธิภาพที่ดีขึ้น
ออกแบบ ความต้องการ
ตารางที่ 1 แสดงข้อกำหนดการออกแบบสำหรับการสาธิตนี้
ตารางที่ 1 • ข้อกำหนดการออกแบบ
ข้อกำหนดด้านการออกแบบ | คำอธิบาย |
ข้อกำหนดด้านฮาร์ดแวร์ | |
ชุดพัฒนาขั้นสูง SmartFusion2: • อแดปเตอร์ 12 V • FlashPro5 • สาย USB A ถึง Mini – B |
Rev A หรือใหม่กว่า |
เดสก์ท็อปหรือแล็ปท็อป | ระบบปฏิบัติการ Windows XP SP2 – 32 บิต/64 บิต ระบบปฏิบัติการ Windows 7 – 32 บิต/64 บิต |
ข้อกำหนดของซอฟต์แวร์ | |
Libero® ระบบบนชิป (SoC) | v11.7 |
ซอฟต์แวร์เขียนโปรแกรม FlashPro | v11.7 |
ซอฟท์คอนโซล | v3.4 SP1* |
ไดร์เวอร์พีซี | ไดรเวอร์ USB ถึง UART |
ไคลเอนต์ Microsoft .NET Framework 4 สำหรับการเปิดตัว GUI สาธิต | _ |
บันทึก: *สำหรับบทช่วยสอนนี้ จะใช้ SoftConsole v3.4 SP1 สำหรับการใช้ SoftConsole v4.0 โปรดดูที่ TU0546: ซอฟท์คอนโซล บทช่วยสอน v4.0 และ Libero SoC v11.7. |
การออกแบบสาธิต
การแนะนำ
การออกแบบสาธิต files สามารถดาวน์โหลดได้จากเส้นทางต่อไปนี้ใน Micro semi webเว็บไซต์:
http://soc.microsemi.com/download/rsc/?f=m2s_dg0386_liberov11p7_df
การออกแบบสาธิต fileรวมถึง:
- โครงการ Libero SoC
- การเขียนโปรแกรม STAPL files
- GUI เรียกใช้งานได้
- Sampภาพแอปพลิเคชัน le
- สคริปต์ตัวเชื่อมโยง
- การกำหนดค่า DDR files
- อ่าน me.txt file
ดูที่ readme.txt file ให้ไว้ในการออกแบบ files สำหรับโครงสร้างไดเร็กทอรีที่สมบูรณ์
คำอธิบาย
การออกแบบสาธิตนี้ใช้เทคนิคการลงเงาโค้ดเพื่อบูตอิมเมจแอปพลิเคชันจากหน่วยความจำ DDR การออกแบบนี้ยังจัดเตรียมอินเทอร์เฟซโฮสต์บน SmartFusion2 SoC FPGA เครื่องรับ/ส่งสัญญาณแบบอะซิงโครนัส/ซิงโครนัสสากลหลายโหมด (MMUART) เพื่อโหลดอิมเมจปฏิบัติการของแอปพลิเคชันเป้าหมายลงในแฟลช SPI ที่เชื่อมต่อกับอินเทอร์เฟซ MSS SPI0
โค้ดแชโดว์ถูกนำมาใช้ในสองวิธีต่อไปนี้:
- มัลติ-เอสtagวิธีการบูตโดยใช้โปรเซสเซอร์ Cortex-M3
- วิธีการบู๊ตเอ็นจิ้นฮาร์ดแวร์โดยใช้แฟบริค FPGA
มัลติเอสtage วิธีกระบวนการบูต
อิมเมจของแอปพลิเคชันเรียกใช้จากหน่วยความจำ DDR ภายนอกในการบูตสองรายการต่อไปนี้tagใช่:
- โปรเซสเซอร์ Cortex-M3 บู๊ตซอฟต์บูตโหลดเดอร์จากหน่วยความจำถาวรแบบฝังตัว (eNVM) ซึ่งทำการถ่ายโอนรหัสอิมเมจจากอุปกรณ์แฟลช SPI ไปยังหน่วยความจำ DDR
- โปรเซสเซอร์ Cortex-M3 บูตอิมเมจแอปพลิเคชันจากหน่วยความจำ DDR
การออกแบบนี้ใช้โปรแกรม bootloader เพื่อโหลดอิมเมจปฏิบัติการของแอปพลิเคชันเป้าหมายจากอุปกรณ์แฟลช SPI ไปยังหน่วยความจำ DDR เพื่อดำเนินการ โปรแกรม bootloader ที่รันจาก eNVM จะข้ามไปยังแอปพลิเคชันเป้าหมายที่จัดเก็บไว้ในหน่วยความจำ DDR หลังจากอิมเมจแอปพลิเคชันเป้าหมายถูกคัดลอกไปยังหน่วยความจำ DDR
รูปที่ 2 แสดงแผนภาพบล็อกโดยละเอียดของการออกแบบสาธิต
รูปที่ 2 • การสร้างเงาโค้ด – Multi Stage ไดอะแกรมบล็อกสาธิตกระบวนการบูต
MDDR ได้รับการกำหนดค่าให้ DDR3 ทำงานที่ 320 MHz “ภาคผนวก: การกำหนดค่า DDR3” บนหน้าที่ 22 แสดงการตั้งค่าการกำหนดค่า DDR3 DDR ได้รับการกำหนดค่าก่อนที่จะรันโค้ดแอปพลิเคชันหลัก
บูตโหลดเดอร์
bootloader ดำเนินการต่อไปนี้:
- การคัดลอกอิมเมจแอปพลิเคชันเป้าหมายจากหน่วยความจำแฟลช SPI ไปยังหน่วยความจำ DDR
- ทำการแมปที่อยู่เริ่มต้นของหน่วยความจำ DDR ใหม่จาก 0xA0000000 เป็น 0x00000000 โดยการกำหนดค่าการลงทะเบียนระบบ DDR_CR
- การเริ่มต้นตัวชี้สแต็กโปรเซสเซอร์ Cortex-M3 ตามแอปพลิเคชันเป้าหมาย ตำแหน่งแรกของตารางเวกเตอร์แอปพลิเคชันเป้าหมายมีค่าตัวชี้สแต็ก ตารางเวกเตอร์ของแอปพลิเคชันเป้าหมายมีให้โดยเริ่มจากที่อยู่ 0x00000000
- กำลังโหลดตัวนับโปรแกรม (PC) เพื่อรีเซ็ตตัวจัดการของแอปพลิเคชันเป้าหมายสำหรับการรันอิมเมจแอปพลิเคชันเป้าหมายจากหน่วยความจำ DDR ตัวจัดการการรีเซ็ตของแอปพลิเคชันเป้าหมายมีอยู่ในตารางเวกเตอร์ที่อยู่ 0x00000004
รูปที่ 3 แสดงการออกแบบการสาธิต
รูปที่ 3 • ขั้นตอนการออกแบบสำหรับ Multi-Stage วิธีกระบวนการบูต
วิธีการบูตเครื่องฮาร์ดแวร์
ในวิธีนี้ Cortex-M3 บู๊ตอิมเมจแอปพลิเคชันเป้าหมายโดยตรงจากหน่วยความจำ DDR ภายนอก กลไกการบูตด้วยฮาร์ดแวร์จะคัดลอกอิมเมจแอปพลิเคชันจากอุปกรณ์แฟลช SPI ไปยังหน่วยความจำ DDR ก่อนที่จะปล่อยการรีเซ็ตโปรเซสเซอร์ Cortex-M3 หลังจากปล่อยการรีเซ็ต โปรเซสเซอร์ Cortex-M3 จะบู๊ตโดยตรงจากหน่วยความจำ DDR วิธีการนี้ต้องใช้เวลาบูตเครื่องน้อยกว่าหลายวินาทีtagขั้นตอนการบู๊ต e เนื่องจากหลีกเลี่ยงการบู๊ตหลายเครื่องtages และคัดลอกอิมเมจแอปพลิเคชันไปยังหน่วยความจำ DDR โดยใช้เวลาน้อยลง
การออกแบบสาธิตนี้ใช้ตรรกะของกลไกการบูตใน FPGA Fabric เพื่อคัดลอกอิมเมจที่ปฏิบัติการได้ของแอปพลิเคชันเป้าหมายจากแฟลช SPI ไปยังหน่วยความจำ DDR เพื่อดำเนินการ การออกแบบนี้ยังใช้ตัวโหลดแฟลช SPI ซึ่งสามารถดำเนินการโดยโปรเซสเซอร์ Cortex-M3 เพื่อโหลดอิมเมจที่ปฏิบัติการได้ของแอปพลิเคชันเป้าหมายลงในอุปกรณ์แฟลช SPI โดยใช้อินเทอร์เฟซโฮสต์ที่ให้ไว้บน SmartFusion2 SoC FPGA MMUART_0 สามารถใช้ DIP switch1 บน SmartFusion2 Advanced Development Kit เพื่อเลือกว่าจะตั้งโปรแกรมอุปกรณ์แฟลช SPI หรือรันโค้ดจากหน่วยความจำ DDR
หากแอปพลิเคชันเป้าหมายที่ปฏิบัติการได้มีอยู่ในอุปกรณ์แฟลช SPI โค้ดแชโดว์จากอุปกรณ์แฟลช SPI ไปยังหน่วยความจำ DDR จะเริ่มขึ้นเมื่อเปิดเครื่องอุปกรณ์ กลไกการบูตจะเตรียมข้อมูลเบื้องต้นให้กับ MDDR คัดลอกอิมเมจจากอุปกรณ์แฟลช SPI ไปยังหน่วยความจำ DDR และทำการแมปพื้นที่หน่วยความจำ DDR ใหม่เป็น 0x00000000 โดยคงการรีเซ็ตโปรเซสเซอร์ Cortex-M3 ไว้ หลังจากบูตเอ็นจิ้นปล่อยการรีเซ็ต Cortex-M3 แล้ว Cortex-M3 จะเรียกใช้งานแอปพลิเคชันเป้าหมายจากหน่วยความจำ DDR
FIC_0 ได้รับการกำหนดค่าในโหมด Slave เพื่อเข้าถึง MSS SPI_0 จาก FPGA Fabric AHB master อินเทอร์เฟซ MDDR AXI (DDR_FIC) ถูกเปิดใช้งานเพื่อเข้าถึงหน่วยความจำ DDR จาก FPGA Fabric AXI master
รูปที่ 4 แสดงแผนภาพบล็อกโดยละเอียดของการออกแบบสาธิต
รูปที่ 4 • การสร้างเงาโค้ด – ไดอะแกรมบล็อกการสาธิตกลไกการบูตฮาร์ดแวร์
บูตเครื่องยนต์
นี่เป็นส่วนสำคัญของการสาธิตการใช้โค้ดแชโดว์ซึ่งจะคัดลอกอิมเมจแอปพลิเคชันจากอุปกรณ์แฟลช SPI ไปยังหน่วยความจำ DDR เอ็นจิ้นการบู๊ตดำเนินการดังต่อไปนี้:
- การเริ่มต้น MDDR สำหรับการเข้าถึง DDR3 ที่ 320 MHz โดยคงการรีเซ็ตโปรเซสเซอร์ Cortex-M3 ไว้
- การคัดลอกอิมเมจแอปพลิเคชันเป้าหมายจากอุปกรณ์หน่วยความจำแฟลช SPI ไปยังหน่วยความจำ DDR โดยใช้ AXI ต้นแบบใน FPGA Fabric ผ่านอินเทอร์เฟซ MDDR AXI
- ทำการแมปที่อยู่เริ่มต้นของหน่วยความจำ DDR ใหม่จาก 0xA0000000 เป็น 0x00000000 โดยการเขียนไปยังการลงทะเบียนระบบ DDR_CR
- ปล่อยการรีเซ็ตเป็นโปรเซสเซอร์ Cortex-M3 เพื่อบูตจากหน่วยความจำ DDR
รูปที่ 5 แสดงขั้นตอนการออกแบบการสาธิต
รูปที่ 5 • บล็อกไดอะแกรมระดับบนสุด
รูปที่ 6 • ขั้นตอนการออกแบบสำหรับวิธีฮาร์ดแวร์บูตเอ็นจิ้น
การสร้างอิมเมจแอปพลิเคชันเป้าหมายสำหรับหน่วยความจำ DDR
จำเป็นต้องมีอิมเมจที่สามารถเรียกใช้งานจากหน่วยความจำ DDR เพื่อรันการสาธิต ใช้คำอธิบายลิงเกอร์ “production-execute-in-place-externalDDR.ld” file ที่รวมอยู่ในการออกแบบ fileเพื่อสร้างอิมเมจแอปพลิเคชัน คำอธิบายตัวเชื่อมโยง file กำหนดที่อยู่เริ่มต้นของหน่วยความจำ DDR เป็น 0x00000000 เนื่องจากโปรแกรมโหลดบูต/บูตทำการแมปหน่วยความจำ DDR ใหม่จาก 0xA0000000 ถึง 0x00000000 สคริปต์ตัวเชื่อมโยงจะสร้างอิมเมจแอปพลิเคชันพร้อมคำแนะนำ ข้อมูล และส่วน BSS ในหน่วยความจำซึ่งมีที่อยู่เริ่มต้นคือ 0x00000000 รูปภาพแอปพลิเคชันการสร้างอินเทอร์รัปต์แบบไดโอดเปล่งแสง (LED) แบบธรรมดาที่กะพริบ ตัวจับเวลา และสวิตช์ file มีให้สำหรับการสาธิตนี้
SPI แฟลชโหลดเดอร์
ตัวโหลดแฟลช SPI ถูกนำมาใช้เพื่อโหลดหน่วยความจำแฟลช SPI แบบออนบอร์ดด้วยอิมเมจแอปพลิเคชันเป้าหมายที่เรียกใช้งานได้จากพีซีโฮสต์ผ่านอินเทอร์เฟซ MMUART_0 โปรเซสเซอร์ Cortex-M3 สร้างบัฟเฟอร์สำหรับข้อมูลที่มาจากอินเทอร์เฟซ MMUART_0 และเริ่มต้นอุปกรณ์ต่อพ่วง DMA (PDMA) เพื่อเขียนข้อมูลที่บัฟเฟอร์ลงในแฟลช SPI ผ่าน MSS_SPI0
เรียกใช้การสาธิต
การสาธิตจะแสดงวิธีการโหลดอิมเมจของแอปพลิเคชันในแฟลช SPI และเรียกใช้อิมเมจของแอปพลิเคชันนั้นจากหน่วยความจำ DDR ภายนอก มันมีอดีตampรูปภาพแอปพลิเคชัน le “sample_image_DDR3.bin” รูปภาพนี้แสดงข้อความต้อนรับและข้อความขัดจังหวะตัวจับเวลาบนคอนโซลอนุกรม และกะพริบ LED1 ถึง LED8 บนชุดพัฒนาขั้นสูง SmartFusion2 หากต้องการดูข้อความขัดจังหวะ GPIO บนคอนโซลอนุกรม ให้กดสวิตช์ SW2 หรือ SW3
การตั้งค่าการออกแบบสาธิต
ขั้นตอนต่อไปนี้จะอธิบายวิธีการตั้งค่าการสาธิตสำหรับบอร์ด SmartFusion2 Advanced Development Kit:
- เชื่อมต่อโฮสต์พีซีเข้ากับตัวเชื่อมต่อ J33 โดยใช้สายเคเบิล USB A ถึง mini-B ไดรเวอร์บริดจ์ USB เป็น UART จะถูกตรวจพบโดยอัตโนมัติ ตรวจสอบว่ามีการตรวจพบในตัวจัดการอุปกรณ์ดังแสดงในรูปที่ 7 หรือไม่
- หากตรวจไม่พบไดรเวอร์ USB โดยอัตโนมัติ ให้ติดตั้งไดรเวอร์ USB
- สำหรับการสื่อสารของเทอร์มินัลอนุกรมผ่านสาย FTDI mini USB ให้ติดตั้งไดรเวอร์ FTDI D2XX ดาวน์โหลดไดรเวอร์และคู่มือการติดตั้งจาก:
http://www.microsemi.com/soc/documents/CDM_2.08.24_WHQL_Certified.zip.
รูปที่ 7 • USB to UART Bridge Drivers
- เชื่อมต่อจัมเปอร์บนบอร์ด SmartFusion2 Advanced Development Kit ดังแสดงในตารางที่ 2
คำเตือน: ปิดสวิตช์จ่ายไฟ SW7 ขณะเชื่อมต่อจัมเปอร์
ตารางที่ 2 • การตั้งค่าจัมเปอร์ชุดพัฒนาขั้นสูง SmartFusion2จัมเปอร์ พิน (จาก) พิน (ถึง) ความคิดเห็น D116, D353, D354, D54 1 2 นี่คือการตั้งค่าจัมเปอร์เริ่มต้นของบอร์ด Advanced Development Kit ตรวจสอบให้แน่ใจว่าจัมเปอร์เหล่านี้ได้รับการตั้งค่าตามนั้น เจ 123 2 3 เจ124 เจ121 เจ32 1 2 JTAG การเขียนโปรแกรมผ่าน FTDI เจ118, เจ119 1 2 การเขียนโปรแกรม SPI แฟลช - ใน SmartFusion2 Advanced Development Kit ให้เชื่อมต่อแหล่งจ่ายไฟเข้ากับขั้วต่อ J42
รูปที่ 8 แสดงการตั้งค่าบอร์ดสำหรับการรันโค้ดแชโดว์จาก SPI flash ไปจนถึงการสาธิต DDR3 บน SmartFusion2 Advanced Development Kit
รูปที่ 8 • การตั้งค่าชุดการพัฒนาขั้นสูง SmartFusion2
SPI Flash Loader และ Code Shadowing Demo GUI
จำเป็นต้องมี GUI เพื่อเรียกใช้การสาธิตการทำแชโดว์โค้ด SPI Flash Loader และ Code Shadowing Demo GUI เป็นอินเทอร์เฟซผู้ใช้แบบกราฟิกที่เรียบง่ายที่ทำงานบนโฮสต์พีซีเพื่อตั้งโปรแกรม SPI flash และรันการสาธิตการสร้างเงาโค้ดบน SmartFusion2 Advanced Development Kit UART เป็นโปรโตคอลการสื่อสารระหว่างโฮสต์พีซีและ SmartFusion2 Advanced Development Kit นอกจากนี้ยังมีส่วน Serial Console เพื่อพิมพ์ข้อความดีบักที่ได้รับจากแอปพลิเคชันผ่านอินเทอร์เฟซ UART
รูปที่ 9 แสดงหน้าต่างสาธิต SPI Flash Loader และ Code Shadowing Demo
รูปที่ 9 • หน้าต่างสาธิต SPI Flash Loader และ Code Shadowing
GUI รองรับคุณสมบัติต่อไปนี้:
- โปรแกรม SPI Flash: ตั้งโปรแกรมภาพ file ลงในแฟลช SPI
- โปรแกรมและโค้ดแชโดว์จาก SPI Flash เป็น DDR: ตั้งโปรแกรมอิมเมจ file ลงในแฟลช SPI คัดลอกไปยังหน่วยความจำ DDR และบูตอิมเมจจากหน่วยความจำ DDR
- โปรแกรมและโค้ดแชโดว์จาก SPI Flash เป็น SDR: ตั้งโปรแกรมรูปภาพ file ลงในแฟลช SPI คัดลอกไปยังหน่วยความจำ SDR และบูตภาพจากหน่วยความจำ SDR
- Code Shadowing เป็น DDR: คัดลอกอิมเมจที่มีอยู่ file จากแฟลช SPI ไปยังหน่วยความจำ DDR และบู๊ตอิมเมจจากหน่วยความจำ DDR
- Code Shadowing เป็น SDR: คัดลอกภาพที่มีอยู่ file จากแฟลช SPI ไปยังหน่วยความจำ SDR และบู๊ตภาพจากหน่วยความจำ SDR คลิกวิธีใช้เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับ GUI
เรียกใช้การออกแบบสาธิตสำหรับ Multi-Stage วิธีกระบวนการบูต
ขั้นตอนต่อไปนี้อธิบายวิธีรันการออกแบบสาธิตสำหรับหลายวินาทีtagวิธีกระบวนการบูต e:
- เปิดสวิตช์จ่ายไฟ SW7
- ตั้งโปรแกรมอุปกรณ์ SmarFusion2 SoC FPGA ด้วยโปรแกรม file ให้ไว้ในการออกแบบ files (SF2_CodeShadowing_DDR3_DF\การเขียนโปรแกรม Files\หลายStageBoot_meothod\CodeShadowing_top.stp โดยใช้ซอฟต์แวร์ออกแบบ FlashPro)
- เปิดใช้ SPI Flash Loader และ Code Shadowing Demo GUI ที่เรียกใช้งานได้ file ที่มีอยู่ในการออกแบบ files (SF2_CodeShadowing_DDR3_DF\GUI ปฏิบัติการ\SF2_FlashLoader.exe)
- เลือกพอร์ต COM ที่เหมาะสม (ซึ่งไดรเวอร์ USB Serial ชี้ไป) จากรายการดรอปดาวน์ พอร์ต COM
- คลิกเชื่อมต่อ หลังจากสร้างการเชื่อมต่อแล้ว Connect จะเปลี่ยนเป็น Disconnect
- คลิกเรียกดูเพื่อเลือกอดีตample กำหนดเป้าหมายรูปภาพที่เรียกใช้งานได้ file ให้กับการออกแบบ files
(SF2_CodeShadowing_DDR3_DF/Sampเลอรูปภาพแอปพลิเคชัน/sample_image_DDR3.bin)
บันทึก: เพื่อสร้างถังอิมเมจแอ็พพลิเคชัน fileโปรดดู “ภาคผนวก: การสร้าง Executable Bin File” ในหน้า 25 - เก็บที่อยู่เริ่มต้นของหน่วยความจำแฟลช SPI เป็นค่าเริ่มต้นที่ 0x00000000
- เลือกตัวเลือก Program and Code Shadowing from SPI Flash to DDR
- คลิกเริ่มดังแสดงในรูปที่ 10 เพื่อโหลดอิมเมจที่เรียกใช้งานได้ลงในแฟลช SPI และโค้ดแชโดว์จากหน่วยความจำ DDR
รูปที่ 10 • การเริ่มต้นการสาธิต
- หากอุปกรณ์ SmartFusion2 SoC FPGA ได้รับการตั้งโปรแกรมด้วย STAPL file MDDR ที่ไม่ได้กำหนดค่าสำหรับหน่วยความจำ DDR จะแสดงข้อความแสดงข้อผิดพลาด ดังแสดงในรูปที่ 11
รูปที่ 11 • อุปกรณ์หรือข้อความตัวเลือกไม่ถูกต้อง
- ส่วนคอนโซลอนุกรมบน GUI จะแสดงข้อความดีบักและเริ่มการเขียนโปรแกรม SPI flash เมื่อลบ SPI flash ได้สำเร็จ รูปที่ 12 แสดงสถานะของการเขียน SPI flash
รูปที่ 12 • กำลังโหลดแฟลช
- ในการตั้งโปรแกรมแฟลช SPI ได้สำเร็จ bootloader ที่ทำงานบน SmartFusion2 SoC FPGA จะคัดลอกอิมเมจแอปพลิเคชันจากแฟลช SPI ไปยังหน่วยความจำ DDR และบูตอิมเมจแอปพลิเคชัน หากภาพที่ให้มาampเลือก le_image_DDR3.bin คอนโซลอนุกรมจะแสดงข้อความต้อนรับ สวิตช์ขัดจังหวะ และข้อความขัดจังหวะตัวจับเวลา ดังแสดงในรูปที่ 13 ในหน้า 18 และรูปที่ 14 ในหน้า 18 รูปแบบ LED ที่ทำงานอยู่จะแสดงบน LED1 ถึง LED8 บน SmartFusion2 Advanced Development ชุด.
- กดสวิตช์ SW2 และ SW3 เพื่อดูข้อความขัดจังหวะบนคอนโซลซีเรียล
รูปที่ 13 • การรันอิมเมจแอปพลิเคชันเป้าหมายจากหน่วยความจำ DDR3
รูปที่ 14 • ตัวจับเวลาและข้อความขัดจังหวะในคอนโซลอนุกรม
เรียกใช้การออกแบบวิธีการบูตเครื่องฮาร์ดแวร์
ขั้นตอนต่อไปนี้อธิบายถึงวิธีการรันการออกแบบกลไกการบู๊ตฮาร์ดแวร์:
- เปิดสวิตช์จ่ายไฟ SW7
- ตั้งโปรแกรมอุปกรณ์ SmarFusion2 SoC FPGA ด้วยโปรแกรม file ให้ไว้ในการออกแบบ files (SF2_CodeShadowing_DDR3_DF\การเขียนโปรแกรม
Files\HWBootEngine_method\CodeShadowing_Fabric.stp โดยใช้ซอฟต์แวร์ออกแบบ FlashPro) - ในการตั้งโปรแกรม SPI Flash ให้ DIP สลับ SW5-1 ไปที่ตำแหน่ง ON การเลือกนี้ทำให้บูต Cortex-M3 จาก eNVM กด SW6 เพื่อรีเซ็ตอุปกรณ์ SmartFusion2
- เปิดใช้ SPI Flash Loader และ Code Shadowing Demo GUI ที่เรียกใช้งานได้ file ที่มีอยู่ในการออกแบบ files (SF2_CodeShadowing_DDR3_DF\GUI ปฏิบัติการ\SF2_FlashLoader.exe)
- เลือกพอร์ต COM ที่เหมาะสม (ซึ่งไดรเวอร์ USB Serial ชี้ไป) จากรายการดรอปดาวน์ พอร์ต COM
- คลิกเชื่อมต่อ หลังจากสร้างการเชื่อมต่อแล้ว Connect จะเปลี่ยนเป็น Disconnect
- คลิกเรียกดูเพื่อเลือกอดีตample กำหนดเป้าหมายรูปภาพที่เรียกใช้งานได้ file ให้กับการออกแบบ files
(SF2_CodeShadowing_DDR3_DF/Sampเลอรูปภาพแอปพลิเคชัน/sample_image_DDR3.bin)
บันทึก: เพื่อสร้างถังอิมเมจแอ็พพลิเคชัน fileโปรดดู “ภาคผนวก: การสร้าง Executable Bin File” ในหน้า 25 - เลือกตัวเลือก Hardware Boot Engine ใน Code Shadowing Method
- เลือกตัวเลือกโปรแกรม SPI Flash จากเมนูตัวเลือก
- คลิก Start ดังแสดงในรูปที่ 15 เพื่อโหลดอิมเมจปฏิบัติการลงในแฟลช SPI
รูปที่ 15 • การเริ่มต้นการสาธิต
- ส่วนคอนโซลอนุกรมบน GUI จะแสดงข้อความดีบักและสถานะของการเขียน SPI flash ดังแสดงในรูปที่ 16
รูปที่ 16 • กำลังโหลดแฟลช
- หลังจากตั้งโปรแกรมแฟลช SPI สำเร็จ ให้เปลี่ยนสวิตช์ DIP SW5-1 ไปที่ตำแหน่งปิด การเลือกนี้ใช้เพื่อบู๊ตโปรเซสเซอร์ Cortex-M3 จากหน่วยความจำ DDR
- กด SW6 เพื่อรีเซ็ตอุปกรณ์ SmartFusion2 เอ็นจิ้นการบู๊ตคัดลอกอิมเมจแอปพลิเคชันจากแฟลช SPI ไปยังหน่วยความจำ DDR และปล่อยการรีเซ็ตเป็น Cortex-M3 ซึ่งจะบู๊ตอิมเมจแอปพลิเคชันจากหน่วยความจำ DDR หากภาพที่ให้มา “sample_image_DDR3.bin” ถูกโหลดไปที่ SPI flash คอนโซลอนุกรมจะแสดงข้อความต้อนรับ สวิตช์ขัดจังหวะ (กด SW2 หรือ SW3) และข้อความขัดจังหวะตัวจับเวลาดังแสดงในรูปที่ 17 และรูปแบบ LED ที่ทำงานอยู่จะแสดงบน LED1 ถึง LED8 บน SmartFusion2 Advanced ชุดพัฒนา
รูปที่ 17 • การรันอิมเมจแอปพลิเคชันเป้าหมายจากหน่วยความจำ DDR3
บทสรุป
การสาธิตนี้แสดงให้เห็นถึงความสามารถของอุปกรณ์ SmartFusion2 SoC FPGA ในการเชื่อมต่อกับหน่วยความจำ DDR และการเรียกใช้อิมเมจที่ปฏิบัติการได้จากหน่วยความจำ DDR โดยการแชโดว์โค้ดจากอุปกรณ์หน่วยความจำแฟลช SPI นอกจากนี้ยังแสดงวิธีการใช้งานโค้ดแชโดว์สองวิธีบนอุปกรณ์ SmartFusion2
ภาคผนวก: การกำหนดค่า DDR3
รูปภาพต่อไปนี้แสดงการตั้งค่าการกำหนดค่า DDR3
รูปที่ 18 • การตั้งค่าการกำหนดค่า DDR ทั่วไป
รูปที่ 19 • การตั้งค่าการเริ่มต้นหน่วยความจำ DDR
รูปที่ 20 • การตั้งค่ากำหนดเวลาหน่วยความจำ DDR
ภาคผนวก: การสร้าง Executable Bin File
ถังปฏิบัติการ file จำเป็นต้องตั้งโปรแกรมแฟลช SPI สำหรับการรันการสาธิตโค้ดแชโดว์ เพื่อสร้างถังปฏิบัติการ file จาก “สample_image_DDR3” Soft Console ให้ทำตามขั้นตอนต่อไปนี้:
- สร้างโปรเจ็กต์ Soft Console ด้วยสคริปต์ตัวเชื่อมโยง Production-execute-in-place-external DDR
- เพิ่มเส้นทางการติดตั้ง Soft Console เช่นample, C:\Microsemi\Libero_v11.7\SoftConsole\Sourcery-G++\bin ไปยัง 'ตัวแปรสภาพแวดล้อม' ดังแสดงในรูปที่ 21
รูปที่ 21 • การเพิ่มเส้นทางการติดตั้ง Soft Console
- ดับเบิลคลิกที่แบตช์ file ถัง-File-Generator.bat อยู่ที่:
SoftConsole/CodeShadowing_MSS_CM3/Sampโฟลเดอร์ le_image_DDR3 ดังแสดงในรูปที่ 22
รูปภาพ 22 • ถังขยะ File เครื่องกำเนิดไฟฟ้า
- ถังขยะ-File-Generator สร้าง sample_image_DDR3.bin file.
ประวัติการแก้ไข
ตารางต่อไปนี้แสดงการเปลี่ยนแปลงที่สำคัญในเอกสารนี้สำหรับการแก้ไขแต่ละครั้ง
การแก้ไข | การเปลี่ยนแปลง |
การแก้ไขครั้งที่ 7 (มีนาคม 2016) |
อัปเดตเอกสารสำหรับซอฟต์แวร์ Libero SoC v11.7 (SAR 77816) |
การแก้ไขครั้งที่ 6 (ตุลาคม 2015) |
อัปเดตเอกสารสำหรับซอฟต์แวร์ Libero SoC v11.6 (SAR 72424) |
การแก้ไขครั้งที่ 5 (กันยายน 2014) |
อัปเดตเอกสารสำหรับซอฟต์แวร์ Libero SoC v11.4 (SAR 60592) |
การแก้ไขครั้งที่ 4 (พฤษภาคม 2014) |
อัปเดตเอกสารสำหรับการเผยแพร่ซอฟต์แวร์ Libero SoC 11.3 (SAR 56851) |
การแก้ไขครั้งที่ 3 (ธันวาคม 2013) |
อัปเดตเอกสารสำหรับซอฟต์แวร์ Libero SoC v11.2 (SAR 53019) |
การแก้ไขครั้งที่ 2 (พฤษภาคม 2013) |
อัปเดตเอกสารสำหรับซอฟต์แวร์ Libero SoC v11.0 (SAR 47552) |
การแก้ไขครั้งที่ 1 (มีนาคม 2013) |
อัปเดตเอกสารสำหรับการเผยแพร่ซอฟต์แวร์ Libero SoC v11.0 beta SP1 (SAR 45068) |
การสนับสนุนผลิตภัณฑ์
กลุ่มผลิตภัณฑ์ Microsemi SoC สนับสนุนผลิตภัณฑ์ของตนด้วยบริการสนับสนุนต่างๆ รวมถึงฝ่ายบริการลูกค้า ศูนย์สนับสนุนด้านเทคนิคของลูกค้า ก webเว็บไซต์ จดหมายอิเล็กทรอนิกส์ และสำนักงานขายทั่วโลก ภาคผนวกนี้มีข้อมูลเกี่ยวกับการติดต่อ Microsemi SoC Products Group และการใช้บริการสนับสนุนเหล่านี้
บริการลูกค้า
ติดต่อฝ่ายบริการลูกค้าสำหรับการสนับสนุนผลิตภัณฑ์ที่ไม่ใช่ด้านเทคนิค เช่น ราคาผลิตภัณฑ์ การอัพเกรดผลิตภัณฑ์ ข้อมูลอัปเดต สถานะการสั่งซื้อ และการอนุญาต
- จากอเมริกาเหนือ โทร 800.262.1060
- จากส่วนอื่นของโลก โทร 650.318.4460
- แฟกซ์จากทุกที่ในโลก 408.643.6913
ศูนย์สนับสนุนด้านเทคนิคของลูกค้า
กลุ่มผลิตภัณฑ์ Microsemi SoC มีเจ้าหน้าที่ศูนย์สนับสนุนด้านเทคนิคของลูกค้าพร้อมด้วยวิศวกรที่มีทักษะสูง ซึ่งสามารถช่วยตอบคำถามเกี่ยวกับฮาร์ดแวร์ ซอฟต์แวร์ และการออกแบบเกี่ยวกับผลิตภัณฑ์ Microsemi SoC ศูนย์สนับสนุนด้านเทคนิคของลูกค้าใช้เวลามากมายในการสร้างบันทึกการใช้งาน ตอบคำถามเกี่ยวกับวงจรการออกแบบทั่วไป เอกสารเกี่ยวกับปัญหาที่ทราบ และคำถามที่พบบ่อยต่างๆ ดังนั้น ก่อนที่คุณจะติดต่อเรา โปรดไปที่แหล่งข้อมูลออนไลน์ของเรา เป็นไปได้มากที่เราได้ตอบคำถามของคุณแล้ว
การสนับสนุนด้านเทคนิค
สำหรับการสนับสนุนผลิตภัณฑ์ Microsemi SoC โปรดไปที่
http://www.microsemi.com/products/fpga-soc/design-support/fpga-soc-support.
Webเว็บไซต์
คุณสามารถเรียกดูข้อมูลทางเทคนิคและไม่ใช่ทางเทคนิคที่หลากหลายได้จากโฮมเพจ Microsemi SoC Products Group ที่ http://www.microsemi.com/products/fpga-soc/fpga-and-soc.
การติดต่อศูนย์สนับสนุนด้านเทคนิคของลูกค้า
วิศวกรที่มีทักษะสูงเป็นเจ้าหน้าที่ของศูนย์สนับสนุนด้านเทคนิค สามารถติดต่อศูนย์สนับสนุนทางเทคนิคได้ทางอีเมลหรือผ่าน Microsemi SoC Products Group webเว็บไซต์.
อีเมล
คุณสามารถสื่อสารคำถามทางเทคนิคของคุณไปยังที่อยู่อีเมลของเราและรับคำตอบกลับทางอีเมล แฟกซ์ หรือโทรศัพท์ นอกจากนี้ หากคุณมีปัญหาด้านการออกแบบ คุณสามารถส่งอีเมลถึงการออกแบบของคุณได้ fileเพื่อรับความช่วยเหลือ เราตรวจสอบบัญชีอีเมลอย่างต่อเนื่องตลอดทั้งวัน เมื่อส่งคำขอของคุณถึงเรา โปรดตรวจสอบให้แน่ใจว่าได้ใส่ชื่อนามสกุล ชื่อบริษัท และข้อมูลติดต่อของคุณ เพื่อการดำเนินการตามคำขอของคุณอย่างมีประสิทธิภาพ
ที่อยู่อีเมลสนับสนุนทางเทคนิคคือ soc_tech@microsemi.com.
กรณีของฉัน
ลูกค้ากลุ่มผลิตภัณฑ์ Microsemi SoC สามารถส่งและติดตามกรณีทางเทคนิคทางออนไลน์ได้โดยไปที่ My Cases
นอกประเทศสหรัฐอเมริกา
ลูกค้าที่ต้องการความช่วยเหลือนอกเขตเวลาของสหรัฐอเมริกาสามารถติดต่อฝ่ายสนับสนุนด้านเทคนิคทางอีเมล (soc_tech@microsemi.com) หรือติดต่อสำนักงานขายในพื้นที่ เยี่ยมชมเกี่ยวกับเราสำหรับรายชื่อสำนักงานขายและผู้ติดต่อองค์กร
การสนับสนุนด้านเทคนิคของ ITAR
สำหรับการสนับสนุนทางเทคนิคเกี่ยวกับ RH และ RT FPGA ที่ควบคุมโดย International Traffic in Arms Regulations (ITAR) โปรดติดต่อเราทาง soc_tech@microsemi.com. หรือภายใน My Cases ให้เลือกใช่ในรายการแบบหล่นลงของ ITAR สำหรับรายการทั้งหมดของ Microsemi FPGA ที่ควบคุมโดย ITAR โปรดไปที่ ITAR web หน้าหนังสือ.
สำนักงานใหญ่ของ บริษัท Microsemi
One Enterprise, อลิโซ วีโจ,
CA 92656 สหรัฐอเมริกา
ภายในสหรัฐอเมริกา: +1 (800)
713-4113 ภายนอก
สหรัฐอเมริกา: +1 949-380-6100
ยอดขาย: +1 949-380-6136
แฟกซ์: +1 949-215-4996
อีเมล: sales.support@microsemi.com
© 2016 ไมโครเซมิ คอร์ปอเรชั่น
สงวนลิขสิทธิ์. Microsemi และโลโก้ Microsemi เป็นเครื่องหมายการค้าของ Microsemi Corporation
เครื่องหมายการค้าและเครื่องหมายบริการอื่นๆ ทั้งหมดเป็นทรัพย์สินของเจ้าของที่เกี่ยวข้อง
Microsemi Corporation (Nasdaq: MSCC) นำเสนอกลุ่มผลิตภัณฑ์เซมิคอนดักเตอร์และระบบที่ครอบคลุมสำหรับตลาดการสื่อสาร การป้องกันและความปลอดภัย การบินและอวกาศ และอุตสาหกรรม ผลิตภัณฑ์ต่างๆ ได้แก่ วงจรรวมสัญญาณผสมอนาล็อกแบบแอนะล็อกประสิทธิภาพสูงและเสริมความแข็งแกร่งด้วยรังสี, FPGA, SoC และ ASIC; ผลิตภัณฑ์การจัดการพลังงาน อุปกรณ์จับเวลาและการซิงโครไนซ์และโซลูชั่นเวลาที่แม่นยำซึ่งกำหนดมาตรฐานด้านเวลาของโลก อุปกรณ์ประมวลผลเสียง โซลูชั่น RF; ส่วนประกอบที่ไม่ต่อเนื่อง โซลูชันการจัดเก็บข้อมูลและการสื่อสารระดับองค์กร เทคโนโลยีความปลอดภัย และการป้องกันทีปรับขนาดได้ampเอ้อผลิตภัณฑ์; โซลูชั่นอีเทอร์เน็ต Power-over-Ethernet ICs และช่วงกลาง; รวมถึงความสามารถในการออกแบบและบริการที่กำหนดเอง Microsemi มีสำนักงานใหญ่ในเมืองอลิโซ เวียโฮ รัฐแคลิฟอร์เนีย และมีพนักงานประมาณ 4,800 คนทั่วโลก เรียนรู้เพิ่มเติมได้ที่ www.microsemi.com.
Microsemi ไม่รับประกัน รับรอง หรือรับประกันเกี่ยวกับข้อมูลที่มีอยู่ในที่นี้ หรือความเหมาะสมของผลิตภัณฑ์และบริการสำหรับวัตถุประสงค์เฉพาะใดๆ และ Microsemi จะไม่รับผิดใด ๆ ที่เกิดขึ้นจากการใช้งานหรือการใช้ผลิตภัณฑ์หรือวงจรใดๆ ผลิตภัณฑ์ที่จำหน่ายในที่นี้และผลิตภัณฑ์อื่นๆ ที่จำหน่ายโดย Microsemi ได้รับการทดสอบอย่างจำกัด และไม่ควรใช้ร่วมกับอุปกรณ์หรือการใช้งานที่มีความสำคัญต่อภารกิจ ข้อมูลจำเพาะด้านประสิทธิภาพใด ๆ ที่เชื่อว่าเชื่อถือได้แต่ไม่ได้รับการตรวจสอบ และผู้ซื้อต้องดำเนินการและดำเนินการตามประสิทธิภาพและการทดสอบผลิตภัณฑ์อื่นๆ ทั้งหมด เพียงอย่างเดียวและร่วมกับหรือติดตั้งในผลิตภัณฑ์ขั้นสุดท้ายใดๆ ผู้ซื้อจะไม่พึ่งพาข้อมูลและประสิทธิภาพการทำงานหรือพารามิเตอร์ใด ๆ ที่ Microsemi ให้มา เป็นความรับผิดชอบของผู้ซื้อในการพิจารณาความเหมาะสมของผลิตภัณฑ์ใดๆ อย่างอิสระ และเพื่อทดสอบและตรวจสอบสิ่งเดียวกัน ข้อมูลที่ Microsemi ให้ไว้ด้านล่างนี้มีให้ "ตามที่เป็นอยู่" และมีข้อบกพร่องทั้งหมด และความเสี่ยงทั้งหมดที่เกี่ยวข้องกับข้อมูลดังกล่าวตกอยู่ที่ผู้ซื้อทั้งหมด Microsemi ไม่ให้สิทธิ์ในสิทธิบัตร ใบอนุญาต หรือสิทธิ์ในทรัพย์สินทางปัญญาอื่นใดแก่ฝ่ายใด ไม่ว่าโดยชัดแจ้งหรือโดยปริยาย ไม่ว่าจะเกี่ยวกับข้อมูลดังกล่าวเองหรือสิ่งใด ๆ ที่อธิบายโดยข้อมูลดังกล่าว ข้อมูลที่ให้ไว้ในเอกสารนี้เป็นกรรมสิทธิ์ของ Microsemi และ Microsemi ขอสงวนสิทธิ์ในการเปลี่ยนแปลงข้อมูลในเอกสารนี้หรือผลิตภัณฑ์และบริการใดๆ ได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบ
เอกสาร / แหล่งข้อมูล
![]() |
Microsemi SmartFusion2 SoC FPGA โค้ดแชโดว์จาก SPI Flash ไปยังหน่วยความจำ DDR [พีดีเอฟ] คู่มือเจ้าของ SmartFusion2 SoC การเปลี่ยนเงาโค้ด FPGA จาก SPI Flash ไปยังหน่วยความจำ DDR, SmartFusion2 SoC, การเปลี่ยนเงาโค้ด FPGA จาก SPI Flash ไปยังหน่วยความจำ DDR, แฟลชไปยังหน่วยความจำ DDR |