ราสเบอร์รี่ PI โดยไม่มีระบบปฏิบัติการกับมัน?


9

เมื่อไม่นานมานี้ฉันได้ทำกับ Arduino มากมาย มันง่ายมากเพราะคุณสามารถรันโค้ด C ++ ได้โดยตรงโดยไม่จำเป็นต้องใช้ระบบปฏิบัติการหรือไดรเวอร์

ฉันได้ทำการค้นคว้าแล้วและ AFAIK คุณมักจะติดตั้ง Linux บน Raspberry PI และสร้างสคริปต์ไพ ธ อนหรือ C ++ ไบนารีในนั้น

คำถาม: เป็นไปได้ไหมที่จะรันโค้ดบนมันโดยไม่มีระบบปฏิบัติการใด ๆ แต่ยังสามารถใช้การ์ด HDMI และ SD ได้?


2
คุณอาจพบว่าการทำโครงการโลหะเปลือยบนโปรเซสเซอร์ ARM ที่เล็กลงและมีความสามารถน้อยลง แต่มีเอกสารที่สมบูรณ์กว่า แม้ว่าระวังการใช้งานไม่ดีอะแดปเตอร์ตรวจแก้จุดบกพร่องที่เป็นกรรมสิทธิ์ในบอร์ด dev ราคาถูก - บางครั้งสิ่งเหล่านี้ได้รับไดรเวอร์ที่เปิดใช้งานแบบวิศวกรรมย้อนกลับหรือคุณสามารถซื้อ jtag จริงหรือใช้ bootloader อนุกรม อย่างน้อยด้วย pi คุณควรคาดหวังการสนับสนุน toolchain ที่ดี
Chris Stratton

คำตอบ:


16

เรียกใช้รหัสบน RaPi โดยไม่มีระบบปฏิบัติการ: ไม่มีปัญหา David Welch ได้ทำเสียงฮึดฮัดแสดงความผิดพลาด โดยทั่วไปคุณสามารถใช้ไฟล์เริ่มต้นมาตรฐานและแทนที่ kernel.img ด้วยไฟล์ที่คุณต้องการเรียกใช้ เพื่อหลีกเลี่ยงการ 'SD card dance' คุณสามารถเรียกใช้ bootloader ที่ได้รับภาพที่จะเรียกใช้ผ่านสายอนุกรม ฉันได้เพิ่มการรีบูตอัตโนมัติเพื่อให้คุณสามารถเรียกใช้ภาพใหม่ 'แฮนด์ออฟ' หากคุณต้องการไปเส้นทางนี้ฉันมีข้อมูลเพิ่มเติม

เรียกใช้แอปพลิเคชันโลหะเปลือยของคุณเองและใช้หน้าจอและการ์ด SD : นั่นเป็นปัญหา ข้อมูลทั้งหมดมีอยู่ในแหล่งลึกของ Linux และมีบุคคลที่ทำงานเกี่ยวกับเรื่องนี้ (ตรวจสอบDexOs ?) ดังนั้นฉันคิดว่าในครึ่งปีหรือดังนั้นข้อมูลนี้จะเป็นความรู้ทั่วไป แต่สำหรับตอนนี้ฉันจะบอกว่านี่อาจจะเป็นงานที่มากเกินไป


ฉันสงสัยว่า CPU สามารถโหลดเคอร์เนลจากการ์ด SD โดยไม่มีไดรเวอร์ที่เหมาะสมสำหรับการ์ด SD และระบบไฟล์ได้อย่างไร
bytecode77

1
ไฟล์พื้นฐานที่คุณต้องการ (และสามารถดาวน์โหลดได้จากไซต์ RaPi เพียงอย่างเดียวหรือเป็นส่วนหนึ่งของการแจกจ่าย Linux) รวมถึงไฟล์เริ่มต้นสำหรับ GPU สมมุติว่า GPU มี bootROM ในตัวบางตัวที่ช่วยให้สามารถอ่าน SD โหลดรหัสโหลด kernel.img และเปิดใช้งาน CPU ARM
Wouter van Ooijen

@DevilsChild - ซีพียูจำนวนมากมี bootloaders พื้นฐานในตัวส่วน TI Davinci ที่ฉันทำงานด้วยมี "ROM bootloader" ที่สามารถทำงานกับซีเรียลหรือจากการ์ด SD ได้ การ์ด SD ใช้อินเตอร์เฟส SPI พื้นฐาน
John U

5

เป็นไปได้เสมอ แต่คุณจะต้องเขียนไดรเวอร์ของคุณเองสำหรับ HDMI และ SD-interface และอาจเป็นระบบไฟล์สำหรับรุ่นหลังด้วย


1
ที่จริงแล้วมันจะซับซ้อนมากเนื่องจากเป็น GPU ที่เริ่มต้นก่อนแล้วจึงต้องโหลด blobs ไบนารีของ Broadcom เพื่อเริ่ม CPU นอกจากนี้ถ้าฉันจำได้อย่างถูกต้องไดรเวอร์ GPU และเฟิร์มแวร์ก็เป็นแหล่งข้อมูลปิดเช่นกัน
AndrejaKo

มีไดรเวอร์ให้ใช้งานซึ่งอาจรวมอยู่ด้วยจึงจะใช้งานได้ ความคิดใด ๆ
bytecode77

@Devils Child ฉันไม่แน่ใจว่ามันง่ายแค่ไหนหรือเป็นเอกสารทุกอย่าง ฉันคิดว่าคุณอาจจะสามารถใช้ bootloader ที่มีอยู่เพื่อโหลดอิมเมจระบบปฏิบัติการของคุณเองและเริ่มต้นซีพียู แต่แล้วปัญหาที่ Stevenvh เขียนไว้ในคำตอบแสดงให้เห็น: คุณจะต้องเขียนไดรเวอร์และเอกสารส่วนใหญ่สำหรับพวกเขาไม่ใช่ ' ไม่มีให้
AndrejaKo

@DevilsChild - ไดรเวอร์ที่มีอยู่ส่วนใหญ่จะถูกเขียนขึ้นสำหรับระบบปฏิบัติการที่เฉพาะเจาะจงและถ้าคุณต้องการที่จะรวมพวกเขาในซอฟต์แวร์ของคุณเองก็จะต้องมีฟังก์ชั่นบางอย่างของมัน ในที่สุดคุณจะได้เขียน (จำกัด ) สำเนาของระบบปฏิบัติการ นอกจากนี้ AndrejaKo ระบุว่ามันจะเป็นเรื่องยากมากและเฟิร์มแวร์ที่มาปิดไม่ทำให้อะไรง่ายขึ้น ทำไมคุณไม่ต้องการระบบปฏิบัติการ
stevenvh

1
@DevilsChild ความแตกต่างที่สำคัญระหว่างคอมพิวเตอร์บอร์ดเดี่ยวและ VM คือคุณสามารถวางบอร์ดไว้ที่อื่นนอกเหนือจากที่ตั้งทางกายภาพของเครื่องที่โฮสต์ VM มันก็มีแนวโน้มที่จะมี I / O ในโลกแห่งความเป็นจริงที่ดีกว่า แต่ VMs และผู้เลียนแบบหรือผู้เชี่ยวชาญเฉพาะด้านอื่น ๆ มักมีบทบาทสำคัญเช่นให้ทีมซอฟต์แวร์เริ่มทำงานก่อนที่ฮาร์ดแวร์จะมีอยู่หรือหลีกเลี่ยงการต่อสู้กับบอร์ดต้นแบบเพียงตัวเดียวที่ได้รับการปรับแต่งให้ทำงานหรือทำงาน ทดสอบการถดถอยโดยไม่ต้องผูกคอลเลกชันของอุปกรณ์ทางกายภาพ ...
คริสแตรทตัน

3

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

ไม่ช้ามันก็จะหยุด Linux และกลายเป็น bootloader ด้วยการรองรับ SD และ HDMI นั่นเป็นสิ่งที่แยกไม่ออกจากสิ่งที่คุณขอทุกประการยกเว้น
- มันได้รับการสกัดจากดิสทริบิวเตอร์ลินุกซ์ (แต่ไม่ใช่ลินุกซ์อีกต่อไป) และ
- คุณไม่ได้ทำเอง

นอกจากว่าการทำด้วยตัวคุณเองอย่างสมบูรณ์นั้นมีความสำคัญที่สุดสิ่งนี้ดูเหมือนจะเป็นแนวทางที่สมเหตุสมผล



0

หากคุณต้องการตั้งโปรแกรม "Raspberry Pi เป็น Arduino" ให้ตรวจสอบ wiringPi ตรวจสอบบทความของฉันที่http://www.jating.in/efyarticle/EFYArticle.pdf

1) ฉันทำให้มันดูและทำงานเหมือน Arduino โดยใช้สายเคเบิลเส้นเดียวในการแปลง USB เป็นอนุกรมและให้พลังงานแก่บอร์ดเช่นกัน ดังนั้นสาย usb เพียงอันเดียวก็เพียงพอแล้วเช่นเดียวกับ arduino

2) ฉันทำยูทิลิตี้ขนาดเล็กซึ่งเมื่อทำงานจะโหลดรหัส Pi สายไฟมากกว่าสายอนุกรม (จริง ๆ แล้วไฟล์ข้อความใด ๆ :-)) รวบรวมและดำเนินการ

หากคุณต้องการคุณสามารถเรียกใช้มันได้ในทุก ๆ การบู๊ตโดยการแก้ไขไฟล์. bashrc ดังนั้นทุกครั้งที่บูทมันจะรอไฟล์ใหม่ ฉันไม่ได้ให้ลิงค์ของรหัสยูทิลิตี้ใด ๆ แต่คุณสามารถค้นหาได้ที่http://www.jating.in/efyarticle/

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.