emRun Runtime Library ของ SEGGER ที่ได้รับอนุญาตจาก SiFive

อัปเดต: 28 พฤษภาคม 2021

emRun Runtime Library ของ SEGGER ที่ได้รับอนุญาตจาก SiFive

emRun Runtime Library ของ SEGGER ที่ได้รับอนุญาตจาก SiFive

ไลบรารีรันไทม์ SEGGER emRun ได้รับอนุญาตจาก SiFive และขณะนี้พร้อมใช้งานโดยเป็นส่วนหนึ่งของการเปิดตัว SiFive 21G1 ที่เพิ่งประกาศเมื่อเร็วๆ นี้

SiFive ได้รับใบอนุญาต emRun ซึ่งเป็นส่วนหนึ่งของ Freedom Tools และแพ็คเกจ Freedom-E-SDK การผสานรวมนี้จะช่วยให้ผู้ออกแบบชิปสามารถบรรลุระดับของประสิทธิภาพที่ดีขึ้น ในขณะที่ลดขนาดโค้ดลงได้ถึง 25% สนับสนุนการมุ่งเน้นของ SiFive ที่การสนับสนุนทูลเชนและไลบรารีที่ลดขนาดโค้ดและลดรอยเท้าของหน่วยความจำ

ไลบรารีรันไทม์ SEGGER emRun จะช่วยให้ลูกค้า SiFive สามารถใช้ความสามารถใหม่ที่สำคัญของพอร์ต SiFive Core IP ที่เร็ว มีประสิทธิภาพมากขึ้น และมีความสามารถมากขึ้น

emRun เป็นไลบรารีรันไทม์ C ที่สมบูรณ์สำหรับใช้กับ toolchain ใดๆ ใช้ใน Embedded Studio IDE ของ SEGGER และได้รับการออกแบบและเขียนขึ้นตั้งแต่ต้นสำหรับอุปกรณ์ฝังตัวเพื่อให้ได้ประสิทธิภาพสูงโดยมีขนาดเล็ก

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

“การสนับสนุนอย่างต่อเนื่องจาก SEGGER ถือเป็นสินทรัพย์ที่ยอดเยี่ยมสำหรับระบบนิเวศ RISC-V” Drew Barbier ผู้อำนวยการอาวุโสฝ่ายการตลาดผลิตภัณฑ์ของ SiFive กล่าว “ SEGGER รองรับ SiFive RISC-V Core IP ตั้งแต่ปี 2017 และไลบรารี emRun แสดงถึงมูลค่าเพิ่มที่ยอดเยี่ยมสำหรับนักพัฒนาแบบฝังที่ทำงานกับ SiFive IP”

องค์ประกอบหลักของ emRun คือ emFloat ซึ่งเป็นไลบรารีจุดลอยตัวที่สอดคล้องกับ IEEE 754 ที่ได้รับการเพิ่มประสิทธิภาพสูงสุด ซึ่งได้รับการออกแบบมาตั้งแต่ต้นสำหรับระบบฝังตัว ได้รับการออกแบบมาให้มีทั้งความเร็วและขนาดเล็กมาก ทำให้มีประสิทธิภาพเหมือน FPU ในซอฟต์แวร์ล้วนๆ แม้ในกรณีที่มี FPU ก็ตาม emFloat ยังช่วยเพิ่มประสิทธิภาพของ FPU สำหรับฟังก์ชันทางคณิตศาสตร์ที่ซับซ้อน

emFloat สามารถกำหนดค่าได้สำหรับขนาดโค้ดที่เล็กหรือเพิ่มความเร็วในการดำเนินการหรือชุดค่าผสม โดยผลลัพธ์ที่คำนวณได้จะเหมือนกันในทุกโหมด