หากคุณไม่มีประสบการณ์ในด้านการเขียนโปรแกรมไมโครโปรเซสเซอร์ / ไมโครคอนโทรลเลอร์คุณควรเรียนรู้ C ก่อนเพื่อที่คุณจะได้เข้าใจว่าเมื่อใดและเพราะเหตุใด Java จึงเป็นตัวเลือกที่แย่สำหรับโครงการไมโครคอนโทรลเลอร์ส่วนใหญ่
คุณอ่านข้อ จำกัด ของ JVM ที่คุณเชื่อมโยงอยู่หรือไม่? มันรวมถึงปัญหาต่อไปนี้:
- หน่วยความจำโปรแกรมน้อย 512 ไบต์ (ไม่ใช่ KB และไม่ใช่ MB แน่นอน)
- RAM ขนาดเล็กเพียง 768 ไบต์ (ซึ่งตัวแปรของคุณไปคุณ จำกัด อักขระได้ไม่เกิน 768 ตัวอักษรโดยข้อ จำกัด นี้)
- ประมาณ 20k Java opcodes ต่อวินาทีบน 8 Mhz AVR
- รวมเฉพาะ java.lang.Object, java.lang.System, java.io.PrintStream, java.lang.StringBuffer, คลาสควบคุม JVM และคลาส IO ดั้งเดิม คุณจะไม่สามารถนำเข้า java.util. *; และรับคลาสทั้งหมดที่ไม่อยู่ในรายการนี้
หากคุณไม่คุ้นเคยกับความหมายของข้อ จำกัด เหล่านี้ตรวจสอบให้แน่ใจว่าคุณมีแผนขหากปรากฏว่าคุณไม่สามารถทำโครงการกับ Java ได้จริงเนื่องจากข้อ จำกัด ด้านพื้นที่และความเร็ว
หากคุณยังต้องการไปกับ Java อาจเป็นเพราะคุณคาดหวังว่าอุปกรณ์จะได้รับการตั้งโปรแกรมโดยผู้คนจำนวนมากที่รู้จัก Java เพียงอย่างเดียวฉันขอแนะนำให้ใช้ฮาร์ดแวร์ที่มีขนาดใหญ่กว่า ดูหน้านี้จาก Oracleเพื่อดูรายละเอียดที่จะยิงเพื่อใช้งาน JVM ในตัวในคำถามที่พบบ่อยของการสนทนาพวกเขาแนะนำ RAM ขั้นต่ำ 32MB และ 32MB ของ Flash นั่นคือประมาณ 32,000 เท่าของ RAM และ 1,0000 เท่าของแฟลช AVR ที่คุณกำลังดู หน้าJava Embedded Introของ Oracle มีรายละเอียดเพิ่มเติมเกี่ยวกับข้อ จำกัด ของ JVM น้ำเสียงของพวกเขาคืออย่างที่คุณคิดว่าเป็นมิตรกับ Java มากกว่าของฉัน โปรดทราบว่าฮาร์ดแวร์ประเภทนี้ออกแบบได้ยากกว่า AVR 8 บิต
ฉันเป็นนักเรียนวิศวกรรมคอมพิวเตอร์ที่มีวิทยาการคอมพิวเตอร์เล็กน้อย แผนก CS ของมหาวิทยาลัยของฉันเมา Java Kool-aid ดังนั้นนักเรียนในโปรแกรมวิศวกรรมจำนวนมากรู้เพียง Java (ซึ่งเป็นเรื่องเศร้าสำหรับโปรแกรมเมอร์อย่างน้อยเรียนรู้ Python หรือ C ++ บางอย่างถ้าคุณไม่ ต้องการเรียนรู้ C ... ) ดังนั้นหนึ่งในอาจารย์ของฉันจึงตีพิมพ์C Cheat Sheetสำหรับนักเรียนที่มีประสบการณ์เกี่ยวกับ Java เป็นเวลาหนึ่งปี เพียง 75 หน้าเท่านั้น ฉันแนะนำให้คุณอ่านหรืออ่านอย่างรอบคอบก่อนตัดสินใจ ในความคิดของฉัน C เป็นภาษาที่มีประสิทธิภาพทนทานและเป็นมืออาชีพมากที่สุดในการพัฒนาโครงการฝังตัว
ทางเลือกอีกทางที่ต้องพิจารณาคือเฟรมเวิร์กArduino มันใช้ภาษาWiringในเวอร์ชั่นที่แปลแล้วซึ่งคล้ายกับ C ++ ที่ไม่มีวัตถุหรือส่วนหัว มันสามารถทำงานบนชิป AVR หลายตัวได้แน่นอนไม่ได้ จำกัด อยู่ที่ฮาร์ดแวร์ของพวกเขา มันจะช่วยให้คุณเรียนรู้ได้ง่ายกว่าการกระโดดเข้าไปใน C โดยตรง
โดยสรุป
ข้อความ Alt: เอาฉันห้าพยายามหาหนึ่งที่เหมาะสม แต่ฉันพยายามกู้คืนของเราคืน - ถ้าไม่เรือ - ในท้ายที่สุด