Apple ได้เปิดตัว Embedded Swift เป็น beta version ที่สามารถทำงานร่วมกับไมโครคอนโทรลเลอร์ไร้สาย Espressif ESP32-C6 ที่ใช้สถาปัตยกรรม RISC-V นอกจากนี้บริษัทสาธิตการพัฒนาอุปกรณ์ Matter โดยใช้ ESP-IDF และ ESP-Matter SDK ด้วย, Embedded Swift ไม่ได้จำกัดเฉพาะ ESP32-C6 เท่านั้น แต่ยังรองรับไมโครคอนโทรลเลอร์อื่นๆ จาก STMicro, Raspberry Pi, Nordic Semi และอื่นๆ
Swift เป็นภาษาในการเขียนโปรแกรมของ Apple ส่วนใหญ่ได้รับการออกแบบมาเพื่อการพัฒนาแอปมือถือ แต่เราเคยเห็นมันถูกใช้งานกับบอร์ด SwiftIO ของ Mad Machine ที่ใช้โปรเซสเซอร์ NXP i.MX RT1052 Arm Cortex-M7 crossover ที่มีความเร็ว 600 MHz แและ SwiftIO Micro ขนาดจิ่ว ขณะนี้บริษัทได้ตัดสินใจ subset ของภาษา Swift ซึ่งเหมาะสมกับไมโครคอนโทรลเลอร์หรือที่เรียกว่า Embedded Swift ซึ่งปัจจุบันสามารถทำงานได้กับ STMicro STM32F746, Raspberry Pi Pico, nRF52840 และ ESP32-C6
ในงาน WWDC 2024 มีการนำเสนอ “Go small with Embedded Swift” ได้สาธิตวิธีเริ่มต้นใช้งาน Embedded Swift โดยใช้บอร์ดพัฒนา ESP32-C6-DevKitC-1 ของ Espressif Systems มีการรรันตัวอย่างง่ายๆ เช่น “Hello world” และการเปลี่ยนสี RGB LED จนถึงการสาธิตที่ซับซ้อนมากขึ้นโดยใช้โปรโตคอล Matter สำหรับสมาร์ทโโอม
ตัวอย่างโค้ดสำหรับ RGB LED:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
let led = LED() @_cdecl("app_main") func app_main() { print("🏎️ Hello, Embedded Swift!") led.color = .red led.brightness = 80 while true { sleep(1) led.enabled = !led.enabled if led.enabled { led.color = .hueSaturation(Int.random(in: 0 ..< 360), 100) } } } |
มันดูคล้ายกับภาษา C แต่ไม่มีเครื่องหมายเซมิโคลอน (:) สามารถดูตัวอย่างโค้ดตัวอย่างการสาธิต Matter บน GitHub และตัวอย่าง Embedded Swift เพิ่มเติมสำหรับ ESP32-C6, STM32, RP2040 และ nRF52840 บน repository ที่แยกต่างหาก
Apple อธิบายว่า Embedded Swift เป็น subset ของภาษา Swift ทำให้โค้ดมีขนาดเล็กลงมาก (smaller footprint) ไบนารีอาจมีขนาดประมาณ 10KB ตามภาพไดอะแกรมด้านล่าง บริษัทได้ลบคุณสมบัติบางอย่างออก แต่เพิ่มคุณสมบัติอื่น ๆ ที่จำเป็นสำหรับฮาร์ดแวร์ระดับ MCU เช่นความสามารถในการเข้าถึงรีจิสเตอร์ที่แมปหน่วยความจำผ่าน ไลบรารี่ Swift MMIO, มีการสนับสนุน ผ่านฟอรัมออนไลน์
นักพัฒนาส่วนใหญ่ที่คุ้นเคยกับ ESP-IDF แล้วอาจจะไม่สนใจข่าวนี้ แต่สำหรับนักพัฒนาแอปพลิเคชันมือถือด้วย Swift อาจมีช่วงการเรียนรู้ที่สั้นกว่าในการใช้ Embedded Swift แทนที่จะต้องเรียนรู้การใช้เฟรมเวิร์ก ESP-IDF หรือการเขียนโปรแกรม Arduino แต่ Embedded Swift ยังอยู่ในขั้นตอนการพัฒนา สามารถดาวน์โหลด snapshots ของ Swift มาทดลองใช้เนื่องจากยังไม่มีการปล่อยเวอร์ชันที่เสถียรในตอนนี้
แปลจากบทความภาษาอังกฤษ : Apple’s Embedded Swift programming language supports ESP32-C6, Raspberry Pi RP2040, STM32F7, nRF52840 microcontrollers
บรรณาธิการข่าวและบทความภาษาไทย CNX Software ได้มีความสนใจในด้านเทคโนโลยี โดยเฉพาะ Smart Home และ IoT