เครื่องยนต์การบริหารของ Intel ถูกทำลายหรือไม่?

กฎหมายของ Betteridge ของสถานะหัวข้อข่าว “พาดหัวใด ๆ ที่ลงท้ายด้วยเครื่องหมายข้อกังวลสามารถตอบได้ด้วยคำว่า” กฎหมายนี้ยังคงไม่สามารถใช้งานได้ อย่างไรก็ตามประกาศล่าสุดได้เรียกว่ามีความกังวลเกี่ยวกับกล่องดำที่ซ่อนอยู่ลึกเข้าไปในชิปเซ็ตของ Intel ทุกแห่งที่สร้างขึ้นในทศวรรษที่ผ่านมา

เมื่อวานนี้ในบล็อก Semiacuate [Charlie Demerjian] ประกาศการใช้ประโยชน์จากระยะไกลสำหรับ Engine Administration Engine (ME) การใช้ประโยชน์จากการใช้ประโยชน์จากแพลตฟอร์ม Intel ทุกแพลตฟอร์มที่มีนวัตกรรมการบริหารที่ใช้งานอยู่ (AMT) ที่จัดส่งเมื่อปี 2551 นี่เป็นส่วนเล็ก ๆ ของระบบทั้งหมดที่ใช้ชิปเซ็ต Intel เช่นเดียวกับการใช้ประโยชน์จากระยะไกลจะทำงานได้เฉพาะเมื่อเปิดใช้งาน AMT เท่านั้น [Demerjian] เช่นเดียวกันประกาศการดำรงอยู่ของการใช้ประโยชน์ในระดับภูมิภาค

ฉันเป็นของ Intel เช่นเดียวกับ AMT อธิบาย

เริ่มต้นในปี 2005 Intel เริ่มต้นรวมถึงนวัตกรรมการบริหารที่ใช้งานอยู่ในตัวควบคุมอีเธอร์เน็ต ระบบนี้ประสบความสำเร็จในไฟร์วอลล์รวมถึงเครื่องมือที่ใช้สำหรับแล็ปท็อปที่จัดเตรียมรวมถึงเดสก์ท็อปในสภาพแวดล้อมทางธุรกิจ ในปี 2008 ตัวประมวลผลร่วมใหม่ – Englace Engine – ถูกเพิ่มเข้ามา เครื่องยนต์การบริหารนี้เป็นโปรเซสเซอร์ที่เชื่อมโยงกับอุปกรณ์ต่อพ่วงทุกครั้งในระบบ ฉันมีการเข้าถึงหน่วยความจำของคอมพิวเตอร์ทั้งหมดการเชื่อมต่อเครือข่ายทั้งหมดรวมถึงอุปกรณ์ต่อพ่วงทุกชิ้นที่เชื่อมโยงกับคอมพิวเตอร์ ฉันทำงานเมื่อคอมพิวเตอร์ไฮเบอร์เนตรวมถึงสามารถสกัดกั้นการจราจร TCP / IP สามารถใช้เครื่องยนต์การบริหารเพื่อบูตคอมพิวเตอร์ผ่านเครือข่ายตั้งค่าระบบปฏิบัติการใหม่รวมถึงสามารถปิดการใช้งานพีซีหากไม่สามารถตรวจสอบเข้ากับเซิร์ฟเวอร์ในช่วงที่กำหนดไว้ล่วงหน้าได้ จากมุมมองด้านความปลอดภัยหากคุณเป็นเจ้าของเครื่องยนต์การบริหารคุณเป็นเจ้าของคอมพิวเตอร์รวมถึงข้อมูลทั้งหมดที่มีอยู่ภายใน

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

การเรียกร้องของ Semiacerate

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

การใช้ประโยชน์ครั้งที่สองที่รายงานโดยบล็อก SemiAcerate นั้นเป็นประโยชน์ในระดับภูมิภาคที่ไม่จำเป็นต้องใช้งานไม่ได้อย่างไรก็ตามต้องใช้บริการการจัดการในภูมิภาคของ Intel (LMS) ที่จะทำงาน นี่เป็นเพียงวิธีการอีกหนึ่งวิธีที่การเข้าถึงทางกายภาพการเข้าถึงการเข้าถึงรูท จากรายละเอียดเล็กน้อย [Demerjian] แบ่งปันการใช้ประโยชน์ในระดับภูมิภาคส่งผลกระทบต่อมูลค่าของชิปเซ็ตของ Intel ของทศวรรษ แต่ไม่ได้จากระยะไกล นี่เป็นเพียงสถานการณ์แม่บ้านที่ชั่วร้ายอีกอย่างหนึ่ง

คุณควรกังวลไหม

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

อย่างไรก็ตาม [Demerjian] ไม่มีรายละเอียดของการใช้ประโยชน์จากการใช้ประโยชน์ (ถูกต้องดังนั้น) เช่นเดียวกับ Intel ได้เปิดตัวที่ปรึกษา “ช่องโหว่นี้ไม่มีอยู่ในพีซีผู้บริโภคที่ใช้ Intel” ตามที่ Intel การใช้ประโยชน์นี้จะส่งผลกระทบต่อระบบของ Intel ที่จัดส่งด้วย AMT เช่นเดียวกับการเปิดใช้งาน AMT การใช้ประโยชน์ระดับภูมิภาคใช้งานได้เฉพาะเมื่อระบบใช้ LMS ของ Intel

การใช้ประโยชน์จากนี้ – ไม่ว่าจะเกิดอะไรขึ้นเนื่องจากไม่มีหลักฐานความคิด แต่ใช้งานได้เฉพาะเมื่อคุณใช้เครื่องยนต์การบริหารของ Intel รวมถึงนวัตกรรมการบริหารที่ใช้งานอยู่ นั่นคือหาก Guru ไอทีสามารถติดตั้ง Windows บนแล็ปท็อปของคุณจากระยะไกลได้ใช้ประโยชน์จากคุณ หากคุณไม่เคยได้ยินความสามารถนี้คุณน่าจะดีมากที่สุด

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

RSA Securid Breach นำไปสู่การบุกรุกที่ Lockheed Martin

ดูเหมือนว่า Lockheed Martin เป็นเหยื่อรายล่าสุดในสิ่งที่ดูเหมือนจะเป็นสตริงความปลอดภัยที่ไม่มีที่สิ้นสุด อย่างไรก็ตามเวลานี้มันไม่ได้ดูเหมือนว่าการขาดมาตรการรักษาความปลอดภัยนำไปสู่การละเมิด ในความเป็นจริงดูเหมือนว่าการดำเนินงานของ Lockheed ของเครื่องมือรักษาความปลอดภัยที่เชื่อถือได้อย่างกว้างขวางคือเวกเตอร์การโจมตีในครั้งนี้

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

ความกว้างของการบุกรุกไม่เป็นที่รู้จักในขณะนี้และกับทั้งเจ้าหน้าที่ RSA และ Lockheed การรักษาแม่อาจเป็นเวลาหนึ่งก่อนที่ทุกคนจะรู้ว่ามันร้ายแรงแค่ไหน เมื่อความลับทางทหารมีปัญหา แต่คุณรู้ว่ามันไม่ดี!

Apple Magsafe Protocol Hacking

[Ken Shirriff] สนใจว่า Apple MagSafe ทำงานอย่างไร โดยเฉพาะเขาต้องการที่จะรู้ว่าสิ่งที่ควบคุมไฟ LED บนตัวเชื่อมต่อเองดังนั้นเขาจึงฉีกหนึ่งเปิดเพื่อดูว่ามีอะไรอยู่ข้างใน มีชิพอยู่และเขาไม่ต้องเสียเวลาในการหาวิธีการทำงานของโปรโตคอลการสื่อสาร Magsafe

ชิป DS2413 ที่เขาพบใน PCB เล็ก ๆ ของ Magsafe มีเพียงหกพิน สองสิ่งเหล่านี้ควบคุม LED คู่หนึ่งซึ่งให้ตัวบ่งชี้ช่วงสีของมัน อีกพินใช้สำหรับการสื่อสาร 1 สาย เมื่อโพลที่ชาร์จจะส่งคืนหมายเลขประจำตัว 64 บิตที่มีข้อมูลที่หลากหลาย [เคน] มองว่าข้อมูลใดที่ใช้จากเครื่องชาร์จที่แตกต่างกันหลายแบบโดยใช้การตั้งค่า Arduino ด้านบน แต่ผลลัพธ์จะไม่ตรงไปตรงมาอย่างสิ้นเชิงในขณะที่เขาไปในบทความของเขา โปรโตคอล 1 สายยังใช้เพื่อเปลี่ยนไฟ LED กระบวนการนี้เป็นความรับผิดชอบของคอมพิวเตอร์ที่ถูกเรียกเก็บเงิน แต่ [KEN] แสดงให้เห็นว่าสีสามารถปั่นจักรยานโดยใช้ Arduino (มีสองสามโวลต์เป็นแหล่งที่มาแทนที่จะเชื่อมต่อกับเมน)

พัฒนาบน Hackaday: เวอร์ชันแรกของฮาร์ดแวร์

นักเขียนแฮ็กโฆษณารวมถึงผู้เข้าชมกำลังทำงานในมือในมือในการเก็บรหัสผ่านออฟไลน์ Mooltipass (คลิกเพื่อดูรายละเอียดงาน)

ต่อไปในการจัดตั้งขึ้นในซีรีส์ Hackaday เรานำเสนอเวอร์ชันแรกของแผนงานของเรา มีการอภิปรายอย่างมากในกลุ่ม Google ที่อุทิศตนเป็นหลักเกี่ยวกับฟังก์ชั่นพื้นฐานของโครงการ เนื่องจากนักออกแบบเฟิร์มแวร์ของเราต้องการทำงานเราเลือกที่จะส่งฮาร์ดแวร์รุ่นแรกของเราในการผลิตเมื่อไม่กี่วันที่ผ่านมา ก่อนที่จะไปกับแผนงานลองประเมินรายการที่จำเป็นของส่วนประกอบหลักของ mooltipass:

หน้าจอที่สามารถอ่านได้ง่าย

สมาร์ทการ์ดที่มีการป้องกันการอ่าน

หน่วยความจำแฟลชขนาดใหญ่เพื่อเก็บรหัสผ่านที่เข้ารหัส

ไมโครคอนโทรลเลอร์ที่รองรับ arduino พร้อมการเชื่อมต่อ USB

เราได้จมน้ำในคำแนะนำองค์ประกอบจากมือสมัครเล่นที่ได้แรงบันดาลใจดังนั้นเราจึงคิดว่าเราจะทำให้ mooltipass v1 ง่ายที่สุดเท่าที่จะเป็นไปได้เช่นเดียวกับการย้ายถิ่นฐานจากที่นั่น จาก Gadget นี้ก่อตั้งขึ้นที่ Hackaday เราเช่นเดียวกันกับบุคคลในอนาคตที่ต้องการปรับแต่งมันสร้างงานใหม่ทั้งหมดตามองค์ประกอบหลักเหล่านี้ อ่านต่อสำหรับแผนผังของเรา …

สำหรับแกนกลางของแพลตฟอร์มเราเลือก Atmega32u4 จาก Atmel มันเป็นไมโครคอนโทรลเลอร์เดียวกันที่ใช้ใน Arduino Leonardo ทำให้เราสามารถใช้ห้องสมุดต่าง ๆ ที่ได้รับการจัดตั้งขึ้น ในแผนการสุดท้ายเราจะเพิ่มตัวเชื่อมต่อการเติบโตเพื่อให้บุคคลอาจเชื่อมโยงอุปกรณ์ต่อพ่วงพิเศษ (เราอาจเปลี่ยนเป็น 4 ชั้น PCB ณ จุดนี้) บรรทัด USB ของไมโครคอนโทรลเลอร์มีความปลอดภัยจาก ESD โดย IP4234CZ6 จาก NXP

สำหรับที่เก็บข้อมูลรหัสผ่านที่เข้ารหัสเราค้นพบแฟลชราคาถูก 1Mbit AT45DB011D ซึ่งมีรุ่นที่เข้ากันได้ 2/4 / 16mbits หากผู้ทดสอบเบต้าของเราค้นพบว่า 1Mbit ไม่เพียงพอการอัพเกรด Mooltipass จะเป็นเรื่องง่าย ผู้เข้าชมบางรายอาจเข้าใจแล้วอย่างไรก็ตามเมื่อเลือกหน่วยความจำแฟลชดอกเบี้ยพิเศษควรจะจ่ายให้กับปริมาณข้อมูลขั้นต่ำที่สามารถลบในชิปได้ หากแฟลชไม่มีบัฟเฟอร์ภายใน (เช่นหนึ่งที่เราเลือก) ไมโครคอนโทรลเลอร์ควรตรวจสอบข้อมูลรวมทั้งหมดปรับแต่งส่วนที่เหมาะสมรวมทั้งส่งก้อนที่กำหนดเองไปยังหน่วยความจำ หาก ATMEGA32U4 มีเพียง 2.5kbytes ของ RAM ซึ่งอาจเป็นปัญหา

การค้นหาการ์ดสมาร์ทการ์ดที่อาจเสนอฟังก์ชั่นความปลอดภัยและความปลอดภัยที่ต้องการไม่ใช่ปัญหาอย่างไรก็ตามการค้นพบผู้ให้บริการที่อาจส่งปริมาณที่ค่อนข้างต่ำ (<1m) อย่างไรก็ตามเราค้นพบ AT88SC102 ที่ค่อนข้างเก่าแก่จาก Atmel ซึ่งเป็น 1024bits อ่าน / เขียน EEPROM ที่ปลอดภัย มันสามารถมาหาได้น้อยกว่าดอลลาร์รวมถึงผู้ประเมินความปลอดภัยและความปลอดภัยของเราไม่ได้มีรายการไปยังตัวเลือกนี้ ในทำนองเดียวกันมันใช้ประโยชน์จากรถบัสแปลก ๆ สำหรับการสื่อสาร (คล้ายกับสายข้อมูลแบบเปิดโล่ง) ซึ่งเป็นสาเหตุที่เราใช้ N-MOSFET Q2 หัวข้อร้อนในกลุ่ม Google เป็นตัวเลือกหน้าจอ แม้ว่าความคิดเห็นจะแตกต่างกัน แต่เราเห็นด้วยกับข้อ จำกัด หลักที่หน้าจอที่เลือกควรมีอย่างน้อย 2.8 "รวมถึงการตรวจสอบอย่างรวดเร็วภายใต้แสงที่สว่าง ไม่จำเป็นต้องมีความละเอียดสูงเช่นเดียวกับ RGB ไม่จำเป็นต้องใช้ครั้งแรกที่เราเลือกที่จะเลือกหน้าจอ OLED ที่แสดงในภาพถ่ายด้านบน (ภาพที่ถ่ายจาก YouTube) หลังจากหลายสัปดาห์ของการค้นหาหน้าจอ OLED สำรองที่ทำงานได้โดยไม่ต้องประสบความสำเร็จทุกสัปดาห์ขณะนี้เรากำลังคิดเกี่ยวกับการทำอีกหนึ่งรุ่น Mooltipass ด้วย IPS LCD นอกจากนี้ในปัจจุบันที่ผิดปกติ 3.12 "แนวทแยงมุมหมายถึงเราจะต้องมีแผงสัมผัสตัวต้านทานที่กำหนดเอง: คำพูดที่เราได้รับสำหรับคนที่มีความครอบคลุมนั้นมีราคาแพงเช่นกัน ตัวเลือกองค์ประกอบเหล่านี้ทำให้แรงดันไฟฟ้าอิเล็กทรอนิกส์ค่อนข้างง่าย บริการทั้งหมดขับเคลื่อนโดย ~ 5V ที่มาจาก USB รวมถึง ~ 3.3V ที่ต้องการทั้งแฟลชเช่นเดียวกับหน้าจอที่นำเสนอโดย ATMEGA32U4 ภายใน LDO Regulator (~ 55mA @ 3.0 ถึง 3.6V) + 12V ที่ต้องการในทำนองเดียวกันโดยหน้าจอที่ผลิตโดยปั๊มค่าธรรมเนียมควบคุม $ 1 DC-DC Converter หากเราต้องใช้ขั้นตอนแบบดั้งเดิมจำนวนองค์ประกอบ (และค่าใช้จ่าย) จะสูงขึ้นมาก แจ้งให้ทราบล่วงหน้าว่าเราใส่ P-MOSFET ในซีรีย์ที่มีหลังแรงดันเอาท์พุทเมื่อ DC-DC ไม่ทำงานไม่ใช่ 0V อย่างไรก็ตาม VCC (ที่นี่ + 5V) เราใช้ P-MOSFET อีกครั้งเพื่อสลับแหล่งจ่ายไฟที่จะไปยังการ์ดที่ชาญฉลาด เราใช้เครือข่ายตัวต้านทานสองตัว R6 & R7 (ง่ายต่อการบัดกรี) เป็นวงเวียนแรงดันไฟฟ้าเพื่อเปลี่ยนสัญญาณ 5V ของเราเป็น 3.3V โชคดีที่ ATMEGA32U4 สามารถรับสัญญาณ LVTTL ดังนั้นเราจึงไม่ต้องการข้อมูลจำแลงระดับเพื่อให้ข้อมูลมาจากหน่วยความจำแฟลชที่ใช้พลังงาน 3.3V ที่ล้อมรอบภาพรวมของ mooltipass schematics หากคุณมีข้อเสนอแนะประเภทใด ๆ คุณสามารถติดต่อกับทีมในกลุ่ม Google เฉพาะของเรา ของโปรแกรมที่เราต้องการฟังความคิดเห็นทั่วไปโปรดแบ่งปันด้านล่าง

GNU GPL เป็นสัญญาที่บังคับใช้ได้ในที่สุด

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

แม้ว่าใบอนุญาตโอเพ่นซอร์สจะอยู่กับเรามานานหลายทศวรรษแล้ว แต่ก็มีช่วงเวลาที่พวกเขาได้รับการประเมินในศาล มีการละเมิดใบอนุญาตบ่อย ๆ ที่พบว่าผลิตภัณฑ์ปิดแหล่งที่มารวมถึงซอฟต์แวร์โอเพนซอร์ซ แต่พวกเขามีการตั้งถิ่นฐานมากขึ้นในการตั้งถิ่นฐานนอกศาลมากกว่าการต่อสู้ทางกฎหมายสาธารณะที่ยาวนาน ในบางกรณีชุมชนโอเพนซอร์ซได้รับโครงการปิดก่อนหน้านี้เนื่องจากการละเมิดใบอนุญาตมีซอฟต์แวร์ที่เกี่ยวข้องซึ่งมีข้อกำหนดใบอนุญาตรวมถึงข้อกำหนดสำหรับโครงการทั้งหมดที่รวมอยู่ในใบอนุญาตเดียวกัน ข้อกำหนดเหล่านี้อยู่ในบางกรณีที่อ้างถึงเป็นคำสั่งของ Viral โดย Detractors แบบโอเพ่นซอร์สและใบอนุญาตดังกล่าวเป็นที่รู้จักกันดีที่สุดคือ GNU GPL หรือใบอนุญาตสาธารณะทั่วไป หากคุณเคยติดตั้ง OpenWrt บนเราเตอร์คุณจะได้รับผลประโยชน์จากสิ่งนี้: โครงการมีรากฐานในเฟิร์มแวร์แบบปิดแหล่งที่มาสำหรับเราเตอร์ Linksys ที่พบว่ามีรหัส GPL

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

กรณีที่มีปัญหาเกี่ยวข้องกับการพัฒนาซอฟต์แวร์ในเกาหลีของซอฟต์แวร์ผลิตภาพ Hancom Office ซึ่งพบว่าได้รวม PostScript Open-Source และ PDF Encoder Ghostscript ลงในผลิตภัณฑ์ของพวกเขาโดยไม่ต้องจ่ายค่าธรรมเนียมผู้พัฒนา ดังนั้นการใช้ Ghostscript ของพวกเขาอยู่ภายใต้การอนุญาตของ GPL ของเวอร์ชั่นสาธารณะแบบโอเพ่นซอร์สและมันเป็นพื้นฐานที่ Artifex ผู้พัฒนา Ghostscript นำการกระทำมาใช้

จำเป็นที่จะต้องเข้าใจว่านี่ไม่ใช่การชนะสำหรับ Artifex มันเป็นเพียงการตัดสินใจเกี่ยวกับวิธีที่เกมสามารถเล่นได้ ตอนนี้พวกเขาควรออกไปและต่อสู้กับกรณี แต่พวกเขาสามารถทำได้บนพื้นฐานของการละเมิดสัญญามากกว่าการละเมิดลิขสิทธิ์ควรช่วยพวกเขารวมถึงนักพัฒนาที่ได้รับอนุญาตจาก GPL ในอนาคตทั้งหมดที่พบว่าตัวเองอยู่ในตำแหน่งเดียวกัน

เราไม่ใช่นักกฎหมายที่นี่ที่ Hackaday แต่ถ้าเราต้องเสี่ยงความคิดเห็นบนพื้นฐานของความรู้สึกของลำไส้ที่เราคาดหวังว่าเราจะคาดหวังว่ากรณีนี้จะจบลงด้วยวิธีเดียวกันกับคนอื่น ๆ ที่มีอยู่มากมาย การตั้งถิ่นฐานและข้อตกลงลิขสิทธิ์เชิงพาณิชย์ที่ทำกำไรได้สำหรับ Artifex แต่อย่างใดที่มันจะสิ้นสุดลงที่สำคัญที่สำคัญจะได้รับการตั้งค่า GNU GPL เป็นสัญญาบังคับใช้ในสายตาของกฎหมาย และนั่นอาจเป็นสิ่งที่ดีเท่านั้น

ผ่านข่าวแฮ็กเกอร์

โลโก้ GNU, CC-BY-SA 2.0

เครื่องพิมพ์ 3 มิติที่ใช้ทำระบบติดตั้งประเภทเซิร์ฟเวอร์ใบมีดที่กำหนดเอง

เราไม่มีปัญหาการแฮ็คอิเล็กทรอนิกส์เข้าด้วยกันเป็นสิ่งที่มีประโยชน์ แต่การค้นหาสิ่งที่แนบมาที่สมเหตุสมผลสำหรับการสร้างอาจเป็นการลากที่แท้จริง ในกรณีนี้ [Vincent Sanders] มีแขนทำงานอยู่แล้วสร้างฟาร์มที่ใช้ประโยชน์จากการทำงานของบอร์ดอาร์มหลายตัว แต่มันนอนอยู่ในกองที่มุมห้องและถ้ามันเคยใช้บริการหรือการขยายตัวมันจะสนุกไปกับการเจาะโพรง แต่ไม่อีกต่อไป เขาเอาแรงบันดาลใจจากการทำงานของ Blade Server Server และ 3D พิมพ์ระบบรถไฟแบบแยกส่วนของตัวเองสำหรับฮาร์ดแวร์

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

[ขอบคุณโทมัส]

FPV Drones ที่มี Oculus Rift

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

[Torkel] เป็นซีอีโอของอากาศที่ใช้งานง่ายผู้สร้างเกราะสีดำที่สำคัญของ Drone ซึ่งเป็น Hexacopter ที่พัฒนาขึ้นสำหรับการถ่ายภาพทางอากาศ ด้วย Rift FPV Rig, Drone นำมาซึ่งน้ำหนักบรรทุกที่สำคัญลงในอากาศรวมถึงกล้องสองตัวแล็ปท็อปรวมถึงการถือแบตเตอรี่ทั้งหมด วิดีโอจากกล้องคู่หนึ่งถูกเข้ารหัสบนแล็ปท็อปส่งไปยังสถานีฐานผ่าน WiFi รวมถึงการแสดงบน Oculus Rift

เวลาแฝงอยู่ในลำดับประมาณ 120 มิลลิวินาทีค่อนข้างยาว แต่ยังคงใช้งานได้อย่างมากสำหรับ FPV Flight [Torkel] รวมถึงทีมงานของเขากำลังทำงานเกี่ยวกับการทำซ้ำฮาร์ดแวร์ใหม่ซึ่งพวกเขาหวังว่าจะลดมวลน้ำหนักบรรทุกเพิ่มความหลากหลายของการส่งสัญญาณรวมถึงอัพเกรดกล้องรวมถึงเลนส์

การเพิ่มตัวจับเวลาแบบดิจิทัลเป็นลูกเบี้ยวปล่อยสายไฟ

นี่คือแฮ็คที่ไม่รุกรานโดยสิ้นเชิงสำหรับกล้อง Minolta SLR แบบดั้งเดิม [Robby] ต้องการเพิ่มตัวเลือกที่นำเสนอเมื่อเกี่ยวข้องกับการปล่อยชัตเตอร์ระยะไกล เขาลงเอยด้วยการสร้าง Add-on ที่วางสายที่ติดตั้งบนรองเท้าร้อน

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

ศูนย์ระบบรอบไมโครคอนโทรลเลอร์ Attiny4313 มันให้ความคิดเห็นใช้ประโยชน์จากตัวละคร LCD ที่ด้านหลังของตัวแฟลชเสริม ร่างกายแฟลชนั้นใช้ช่องใส่แบตเตอรี่ที่ใช้พลังงานสำหรับการจัดการวงจรนอกเหนือไปจากเซอร์โวมอเตอร์ เหมาะอย่างยิ่งตอนนี้มันฟังก์ชั่นเป็นตัวจับเวลาที่นับถอยหลังเช่นเดียวกับในทำนองเดียวกันก็สามารถถือชัตเตอร์ตามจำนวนเวลาที่กำหนด อย่างไรก็ตามเราอาจเห็นว่าสิ่งนี้ยาวนานในการทำงานกับเซ็นเซอร์ภายนอกเพื่อเปิดใช้งานในระดับแสงที่ตั้งไว้เมื่อตรวจจับการเคลื่อนไหวหรือจากรีโมทคอนโทรล

ย้ายออกมาพร้อมกับ Mecrisp-Stellaris และ Embello

ในตอนสุดท้ายฉันสนับสนุนให้กับไมโครคอนโทรลเลอร์เล็กน้อยเป็นแพลตฟอร์มการพัฒนาที่ยังคงทำงานได้ไม่เพียง แต่สำหรับอุตสาหกรรมที่ปกติจะเห็นวันนี้ แต่สำหรับแฮกเกอร์ . ฉันอาจหลอกให้คุณได้รับฮาร์ดแวร์ราคาถูกสองชิ้น คราวนี้เราจะได้รับการตั้งค่าระบบ FORTH บนฮาร์ดแวร์นั้นและดำเนินการบังคับ “Hello World” และ LED Blinky แต่จากนั้นเราจะนำไปสู่การจิ้มเป็นหนึ่งในคุณสมบัติที่ทำจากไมโครคอนโทรลเลอร์ที่เรียบร้อยมาก: มัลติทาสกิ้งง่าย

ไปทำงาน!

ฮาร์ดแวร์

Mecrisp-Stellaris ออกมาบนไมโครคอนโทรลเลอร์แขนจำนวนมาก แต่ฉันจะมุ่งเน้นที่นี่ในชิป STM32F103 ที่มีให้สำหรับเงินน้อยเป็นพิเศษในรูปแบบของสำเนาทั่วไปของเมเปิ้ลมินิซึ่งมักเรียกว่า “STM32F103 ระบบขั้นต่ำ “หรือ” เม็ดยาสีน้ำเงิน “เนื่องจากปัจจัยปัจจัยและความจริงที่ว่ามีการใช้สีแดงสำหรับการขาย ไมโครคอนโทรลเลอร์บนบอร์ดสามารถทำงานได้ที่ 72 MHz มี RAM 20 KB และแฟลช 64 หรือ 128 KB มันมี pins มากมาย, คนเดียวเท่านั้นที่มีความอดทน 5 v และมีอุปกรณ์ต่อพ่วงไมโครคอนโทรลเลอร์ปกติทั้งหมด มันไม่ใช่ที่มีประสิทธิภาพมากที่สุดและไม่มีหน่วยจุดลอยตัวหรือ DAC แต่มันเป็นการออกแบบเก่าที่ขรุขระที่มีให้น้อยกว่าที่จะต้องเป็น

โปรแกรมเมอร์เชื่อมต่อพลังงานเหนือ USB
สิ่งมหัศจรรย์ที่คล้ายกันของการผลิตจำนวนมากสำหรับโปรแกรมเมอร์ที่คุณจะต้องใช้แฟลชชิปในตอนแรก โคลนนิ่งใด ๆ ของ st-link v2 จะทำงานได้ดี (พอเพียงฮาร์ดแวร์ภายในโปรแกรมเมอร์เกือบจะเหมือนกับเป้าหมาย) ในที่สุดเมื่อพิจารณาว่าการไหลออกมาเช่นเดียวกับในเปลือกแบบโต้ตอบคุณจะต้องเชื่อมต่อแบบอนุกรมกับบอร์ด STM32 ที่อาจระบุอะแดปเตอร์ USB / อนุกรม

การตั้งค่าทั้งหมดนี้จะไม่มีค่าใช้จ่ายมากไปกว่าอาหารฟาสต์ฟู้ดมากนักและโปรแกรมเมอร์และอะแดปเตอร์ USB / Serial เป็นสิ่งที่คุณต้องการที่จะมีในชุดของคุณต่อไปถ้าคุณยังไม่ได้

คุณสามารถเปิดเครื่องได้โดยตรงผ่านพิน 3.3 และ GND ต่าง ๆ กระจัดกระจายไปรอบ ๆ บอร์ดหรือผ่านพอร์ต Micro USB หรือพิน 5V บนกระดานเป้าหมาย สองตัวเลือกหลังผ่านตัวควบคุม 3.3 v ก่อนเข้าร่วมกับพิน 3.3 พินทั้งหมดมีการเชื่อมต่อกันดังนั้นจึงดีที่สุดถ้าคุณใช้แหล่งจ่ายไฟเพียงครั้งเดียวเท่านั้น

เฟิร์มแวร์: ระบบที่สี่

Go Get Super-Special-Edition Mecrisp Forth Package จาก GitHub รวมอยู่ในไดเรกทอรี “ROMS” เป็นระบบที่สี่ที่จะใช้งานได้สำหรับการสาธิตที่นี่ ฉันโหลดในฐานที่น่านับถือจากห้องสมุด Embello ที่ยอดเยี่ยมของ [JCW] รวมถึงการจัดหาสิ่งต่าง ๆ เช่นการกำหนดค่า GPIO ที่ง่ายฟังก์ชั่นล่าช้าและอื่น ๆ มีห้องสมุดมากขึ้นมากมายและเราจะมองเข้าไปในครั้งต่อไปเมื่อเราต้องการพวกเขา

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

ระบบสาธารณูปโภคของ Texane] เป็นวิธีที่ง่ายที่สุดในการออกไปยังชิปของคุณ ดาวน์โหลดจาก GitHub และสร้างตัวเองหรือลองเสี่ยงโชคด้วยผู้จัดการแพ็คเกจของ Distro (คน Windows คุณไม่ได้ถูกทิ้งไว้เลยแม้ว่าไบนารีจะไม่เห็นการอัปเดตในขณะที่มันจะทำ)

เชื่อมต่อสายการเขียนโปรแกรมในแฟชั่นที่ชัดเจนและออกคำสั่ง Magic Erease ST-Flash และ ST-Flash เขียน Mecrisp-Stellaris-Hackaday-Edition.bin 0x8000000 ในห้าวินาทีคุณจะพร้อมที่จะดังก้อง

gnd – gnd

SWCLK – CLK

SWSIO – DIO

ต้องได้รับโปรแกรมเมอร์เป็นเรื่องยุ่งยากหากคุณไม่มี แต่มันจะทำให้ชีวิตที่เหลือของคุณง่ายขึ้นและการได้รับหนึ่งเป็นพื้นฐานเท่ากับการคลิก “จ่าย” และรอ ของเราเอง [al williams] (ไม่มีความสัมพันธ์) มีโพสต์ล่าสุดเกี่ยวกับการใช้ซอฟต์แวร์เดียวกันสำหรับการดีบักรหัส C หรือ Arduino กับ GDB ดังนั้นจึงคุ้มค่ากับเวลาในการตั้งค่านี้

ซอฟต์แวร์

hookup อนุกรมขับเคลื่อนด้วยแล็ปท็อป
นำโปรแกรมเมอร์ออกไปตอนนี้และเชื่อมต่อกับ STM32 มากกว่าแบบอนุกรม อัตราการรับส่งข้อมูลเริ่มต้นต้องอยู่ที่ 115,200 หากคุณยังไม่ได้ถอดปลั๊กไฟคุณอาจต้องกดปุ่มรีเซ็ตบนบอร์ด STM32 ถ้าทุกอย่างเป็นไปด้วยดีคุณจะได้รับการต้อนรับจากกะโหลกศีรษะและประแจที่คุ้นเคย Mecrisp คาดหวังว่า Linefeed ในตอนท้ายของบรรทัดดังนั้นหากคุณกำลังส่ง LF + CR คุณจะได้รับการส่งคืนสองครั้ง

A9 TX – Serial Rx

A10 Rx – Serial TX

gnd – gnd

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

สวัสดีชาวโลก

ตอนนี้มันเป็นเวลา “Hello World” หากคุณเป็นคนใหม่ไปที่นี่แนะนำให้เลือกมาก พิมพ์ 2 2 + และกด Enter มันบอกว่าโอเค .. ที่ให้ความมั่นใจใช่มั้ย ตอนนี้พิมพ์ (อ่าน “Dot”) และจะพิมพ์ผลลัพธ์ที่ไม่น่าแปลกใจ DOT เป็นสัดส่วนการจดชวเลขที่ออกมาเป็นครั้งแรกที่คุณต้องการภายใน คำสั่งจำนวนมากที่มีจุดพิมพ์ผลลัพธ์ของพวกเขาทันที .s (dot-ess) พิมพ์เนื้อหาสแต็กเป็นต้น สำนวนสองอย่างที่เราจะเห็นมากคือ @ สำหรับการรับตัวแปรหรืออ่านอินพุตและ! สำหรับการตั้งค่าตัวแปรหรือเอาต์พุต อ่านสิ่งเหล่านี้เป็น “รับ” และ “ตั้งค่า” ในหัวของคุณเมื่อสแกนรหัส

ต่อไปเรามาดูวิธีการเขียนฟังก์ชั่น : เริ่มนิยามฟังก์ชั่นและ; สิ้นสุดลง ดังนั้น: สี่ 2 2 +; กำหนดฟังก์ชั่นที่เพิ่มสองและสองด้วยกัน (และรวบรวมแบบเรียลไทม์!) จากนั้นคุณสามารถเปิดและเรียกใช้ฟังก์ชั่นนี้ได้ทันที สี่ .. จะแสดงให้คุณเห็นว่าฟังก์ชั่นของเราได้ทิ้งผลรวมของสองและสองบนสแต็ก ในแง่นี้ฟังก์ชั่นออกมาไม่ได้ฟังก์ชั่นจริงๆ พวกเขาไม่ได้รับอาร์กิวเมนต์ที่ชัดเจนหรือส่งคืนค่าที่ชัดเจน พวกเขาใช้งานกับข้อมูลที่อยู่บนสแต็กและออกจากผลลัพธ์ที่นั่นด้วยเช่นกัน นั่นเป็นเหตุผลที่เรียกว่าฟังก์ชั่น “คำ” ฉันจะยึดครองอนุสัญญานี้จากนี้ไป

ในที่สุดก็คือ “Hello World” :: HW “สวัสดีโลก!” CR; “สตริงมีคี่เล็กน้อยส่วนใหญ่เป็นเพราะวิธีการแยกวิเคราะห์ – คอมไพเลอร์อ่านถึงช่องว่างแล้วดำเนินการสิ่งที่พบดังนั้นจะต้องมีช่องว่างระหว่างการพิมพ์ – A-string คำสั่ง (. “) และอักขระตัวแรกที่คุณต้องการพิมพ์ คำสั่งการพิมพ์สแกนไปข้างหน้าจนกว่าจะพบว่าการปิด “แม้ว่าคุณจะไม่ต้องการพื้นที่พิเศษที่นั่น CR ส่งคืนค่าขนส่งพิมพ์ HW ที่พรอมต์ Hello, World!

ไฟ LED กะพริบ

แม้ว่าอินพุตและเอาต์พุตแบบอนุกรมนั้นง่ายมากกะพริบเป็นไฟ LED เป็นมาตรฐาน “Hello World” มาตรฐานของไมโครคอนโทรลเลอร์ดังนั้นจึงถึงเวลาสำหรับ GPIO บางตัว เนื่องจากระบบได้รับการกำหนดค่าไว้สำหรับบอร์ดไมโครคอนโทรลเลอร์นี้โดยเฉพาะการเปลี่ยน LED เป็นเรื่องง่ายเหมือนการพิมพ์ LED.on ที่พรอมต์ ต้องการปิดหรือไม่ LED.OFF การกะพริบด้วยตนเองจะได้รับเก่าค่อนข้างเร็ว แต่ลองเขียนคำกะพริบ : กะพริบตา LED.On 100 MS LED.OFF 200 MS; จะทำเคล็ดลับ ลองกะพริบกะพริบกะพริบกะพริบกะพริบ ดูรหัสการสาธิต Blink ของฉันสำหรับการทำอย่างละเอียด (เพิ่มเติมใน MS ในสองสามพันมิลลิวินาที)

รายละเอียดของการเริ่มต้น GPIO ถูกซ่อนอยู่ใน Core / Hackaday / LED.fs และใน STM32F1 / IO.FS ของ Embello ตามลำดับ การขุดผ่านคุณจะเห็นขั้นตอนการเริ่มต้นมาตรฐาน: PIN เฉพาะถูกตั้งเป็นเอาต์พุตโดยการพลิกบิตบางบิตในการลงทะเบียนการควบคุมอุปกรณ์ต่อพ่วงของ STM32 [JCW] ได้กำหนดจำนวนพวงของสิ่งเหล่านี้ทำให้การตั้งค่า PIN เป็นเอาต์พุตด้วยไดรเวอร์ Push-Pull เหมือนกับ PC13 Omode-PP io-mode! (จำไว้ว่า “!” บ่งชี้กำหนดค่าในตัวแปรหรือลงทะเบียน)

ในการกำหนดค่า PIN PA7 สำหรับ ADC INPUT: PA7 IMODE-ADC IO-MODE! ปุ่มทดสอบโดยใช้ตัวต้านทานแบบ pullup หรือ pulldown ในตัว: PA3 iMode-pull io-mode! จากนั้นตั้งค่าเอาต์พุตเพื่อดึงขึ้นหรือลงโดยใช้ True PA3 IO! หรือ PA3 iOS! จากนั้นคุณจะสามารถอ่านสถานะของปุ่มด้วย PA3 IO @ (“IO Get”) ในภายหลัง

GPIO บนชิป STM32 มีความยืดหยุ่นมากและหากคุณต้องการที่จะลึกลงไปในตัวเลือกการกำหนดค่าในแผ่นข้อมูลคุณสามารถตั้งค่าทั้งหมดนี้ได้อย่างง่ายดายโดยใช้รหัส IO.fs ของ JCW] ของ [JCW] ตัวอย่างเช่น io.all พิมพ์การลงทะเบียน GPIO ทั้งหมดและค่าของพวกเขาซึ่งเป็นความช่วยเหลือที่ดีสำหรับการดีบักแบบโต้ตอบ ที่กล่าวว่ามีห้องพักที่นี่สำหรับชั้นฮาร์ดแวร์ที่เป็นมิตรกับผู้ใช้ที่ใช้งานง่ายมากขึ้นหากคุณต้องการมีส่วนร่วม

มัลติทาสกิ้งอย่างรวดเร็ว

ดังนั้นตอนนี้เรามีไฟ LED กะพริบและการพิมพ์แบบอนุกรม “Hello World” ไม่ใช่การเริ่มต้นที่ไม่ดีและทั้งสองอย่างนี้เป็นการใช้งานที่ดีของการโต้ตอบของ Forth: ไฟ LED สว่างขึ้นเมื่อคุณพิมพ์กะพริบตา หนึ่งในเอกสิทธิ์ของคุณธรรมสำหรับฉันคือความสะดวกในการดำเนินการระหว่างการทดสอบคำแบบโต้ตอบเช่นนี้แล้วการปรับใช้ฟังก์ชันการทำงานในระบบการทำงาน เหตุผลหนึ่งคือเกือบทั้งหมดจะสนับสนุนมัลติทาสกิ้งสหกรณ์ขั้นพื้นฐาน นี่คือสิ่งที่ฉันหมายถึง

ก่อนอื่นให้ลู๊กฟังก์ชั่นการกะพริบของเราเพื่อให้เราไม่ต้องพิมพ์มากนัก : BB เริ่มกะพริบอีกครั้ง สร้างฟังก์ชั่น BB สำหรับ “Bad Blink” ที่จะทำงานตลอดไป ปัญหาเกี่ยวกับ “Run Forever” ใน Forth คือคุณไม่เคยกลับไปที่บรรทัดคำสั่งของล่ามโดยไม่ต้องกดปุ่มรีเซ็ตแล้วทุกอย่างที่คุณทำงานใน RAM จะหายไป

แทนที่จะกระพริบในลูปด้วยทางออก : GB เริ่มกะพริบคีย์? จนกระทั่ง ; สร้างฟังก์ชั่นที่จะเรียกใช้คำสั่งกะพริบกะพริบของเราจนกว่าจะมีการป้อนข้อมูลจากแป้นพิมพ์ – กดแบบย้อนกลับแบบย้อนกลับ โครงสร้างการวนลูปนี้เป็นประโยชน์อย่างมากสำหรับการทดสอบฟังก์ชั่นที่คุณต้องการทำงานอย่างต่อเนื่องโดยไม่ต้องแขวนระบบ เก็บไว้ฉันใจ.

เมื่อเราปรับแต่งฟังก์ชั่นการกะพริบตาของเราให้ทำงานตามที่เราต้องการเรามาสร้างงานพื้นหลังเพื่อให้สามารถกระพริบได้

งาน: Blinktask
: กะพริบ &
Blinktask เปิดใช้งาน
เริ่มกะพริบอีกครั้ง
;
มัลติทาสก์
กะพริบ &

สั้น ๆ งาน: Word สร้างพื้นที่หน่วยความจำบางอย่างสำหรับงานพื้นหลังที่กะพริบของเราที่เราเรียกว่า BlinkTask ฟังก์ชั่นกะพริบและทำงานในพื้นหลัง กะพริบตาและเริ่มโดยการประกาศว่ามันจะใช้บริบทงาน BlinkTask และต้องเริ่มทำงาน จากนั้นมันก็กลายเป็นวงที่กะพริบที่ไร้ขีด จำกัด ซึ่งไม่เคยออกไป มัลติทาสก์เปลี่ยนเป็นมัลติทาสก์และกะพริบและเรียกใช้งานของเรา เรียกใช้และไฟ LED กะพริบขณะที่คุณยังสามารถโต้ตอบกับคอนโซลได้ หวาน. ประเภทงานและคุณจะเห็นว่ามีสองใช้งานอยู่: หนึ่งคือไฟกระพริบของเราและอีกอันคือล่ามแบบโต้ตอบ

แต่งานกะพริบเป็นอย่างไรต้องรู้ว่าจะให้ผลใด ๆ กับกระบวนการพร้อมกันอื่น ๆ ? ออกมาคำชั่วคราวหยุดให้ผลผลิตจากบริบทปัจจุบันและย้ายไปยังมัลติทาสกิ้งรอบต่อไป Round-Robin ฟังก์ชั่น MS ซึ่งรวมถึงคำสั่งหยุดชั่วคราวดังนั้นสิ่งที่ดูเหมือนว่าการปิดกั้นการบล็อกในการตั้งค่างานเดียวจะจบลงด้วยการเล่นอย่างน่าอัศจรรย์ด้วยงานอื่น ๆ ของคุณ

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

จุดที่แท้จริงของการทำงานหลายอย่างของ Multitasking on Forth คือมันทำให้เวิร์กโฟลว์ที่ยอดเยี่ยมสำหรับการเขียนการทดสอบและการปรับใช้ Daemons เล็กน้อย: ฟังก์ชั่นที่ต้องการเป็น “อยู่เสมอ” ก่อนอื่นให้เขียนฟังก์ชั่นที่กระทำครั้งเดียว ประการที่สองทดสอบในลูปด้วยฟักหลบหนี ประการที่สามเมื่อมันทำงานให้ลบการหลบหนีและสร้างงานพื้นหลังให้ จากนั้นคุณสามารถเปิดและปิดโดยใช้การใช้งานและตื่นจากภายในงานอื่น ๆ ดู Mecrisp’s Multitask.txt แหล่งที่มาสำหรับรายละเอียดเพิ่มเติมมากมาย

อะไรต่อไป?

จนถึงตอนนี้เราได้ตั้งค่า Mecrisp-Stellaris โดยมีห้องสมุดเพิ่มเติมจากกรอบการเกษตรของ Jeelabs และเรียกใช้การสาธิตที่รวดเร็ว หากสิ่งนี้ทำให้คุณสนใจฉันจะพาคุณไปที่การสร้างซอฟต์แวร์จริงในครั้งต่อไป มีอีกมากที่จะพูดเกี่ยวกับวิธีการที่ Mecrisp จัดการความแตกต่างของแฟลชกับ RAM, อินพุตและเอาต์พุตและการปฏิบัติของการพัฒนาแบบโต้ตอบ บางแง่มุมของการทำงานที่แปลกประหลาดบางอย่างจะเพิ่มหัวรูปตลกของพวกเขาและเราจะเรียนรู้ที่จะรักพวกเขาต่อไป

ในขณะเดียวกันรับบอร์ด STM32F103 ราคาถูกของคุณกระพริบด้วยไบนารีของเราและใช้งานเล็กน้อยเพื่อเล่นในสภาพแวดล้อมที่สี่บนชิป กะพริบไฟ LED บางดวง มองไปรอบ ๆ อภิธานศัพท์ Mecrisp-Stellaris และเอกสารประกอบของ Embello API หรือเพียงพิมพ์รายการเพื่อดูคำสั่งทั้งหมดที่การกำจัดของคุณและเริ่มแฮ็คออกไป

ไขควง Sonic ชีวิตจริงสำหรับบ้านอัตโนมัติ

หมอใครที่มีแฟน ๆ ออกไปที่นั่น? [Pat] เพียงแค่ส่งโครงการของเขาบนระบบอัตโนมัติในบ้าน … การใช้ไขควงโซนิค!

เคยพิจารณาว่าเขาสั่งซื้อราสเบอร์รี่ปี่ของเขาที่จุดเริ่มต้นของเดือนกุมภาพันธ์ 2555 เขารู้ว่าเขาต้องการลองใช้มืออัตโนมัติในบ้าน วิธีที่ง่ายคือการใช้ X10 Outlets แต่ที่ $ 20 + Outlet ไม่ใช่ว่าราคาไม่แพง แต่เขาจัดการเพื่อหาระบบที่ค่อนข้างต่ำในร้านที่ควบคุมด้วย Amazon – RF พวกเขามีค่าใช้จ่ายประมาณ $ 35 สำหรับ 5 แพ็ค!

มันเป็นระบบพื้นฐานมาก: ห้าร้านที่มีห้าปุ่มบนรีโมท สิ่งที่เขาต้องทำคือลวด Raspberry PI เพื่อจำลองการกดปุ่มโดยการตั้งค่าพิน GPIO สูงและ Presto การตั้งค่าระบบอัตโนมัติที่มีประสิทธิภาพพื้นฐาน แต่มีประสิทธิภาพ

นี่คือที่ที่มันเริ่มสนุก น่าเสียดายที่ซึ่งแตกต่างจากลอร์ดเรียลไทม์ [Pat] ไม่ได้สร้าง Sonic จาก Scratch แต่เขาพบการควบคุมระยะไกลสากล – สไตล์หลังจาก Sonic ของ Smith] เพิ่มตัวรับสัญญาณ RF อีกตัวไปที่ PI อินเทอร์เฟซบนเว็บเพื่อขยายช่วงและ BAM คุณได้รับหนึ่ง Geeky แต่ยอดเยี่ยมการตั้งค่าอัตโนมัติอัตโนมัติ

ติดหลังจากหยุดเพื่อดูมันในการดำเนินการ!

Kinda เตือนเราถึง Sonic RFID ของฉันฉันใช้ที่ทำงาน! ฉันชอบรุ่นเทนนตแม้ว่า …