Raspberry PI без ОС на ньому?


9

Я останнім часом багато працював з Ардуїно. Це дуже просто, оскільки ви можете безпосередньо виконувати на ньому код C ++, не потребуючи операційних систем або драйверів.

Я провів деякі дослідження та AFAIK, ви зазвичай встановлюєте Linux на Raspberry PI і створюєте на ньому сценарії python або бінарні файли C ++.

Запитання: Чи можна запускати на ньому код без будь-якої операційної системи, але все-таки мати можливість використовувати HDMI та SD карти?


2
Можливо, вам буде легше робити проекти з голими металами на меншому та менш здатному, але більш повністю документованому процесорі ARM. Хоча слідкуйте за погано реалізованими, власними адаптерами налагодження на дешевих плат розробниках - іноді вони отримують відкриті драйвери зворотного проектування, або ви можете придбати справжній jtag або використовувати серійний завантажувач. Принаймні, з пі, ви повинні мати можливість очікувати хорошої підтримки інструментарію.
Кріс Страттон

Відповіді:


16

Запустити код на RaPi без ОС: Немає проблем. Девід Уелч зробив бурхливу роботу, перевірив свій gitub . В основному, ви можете взяти стандартні файли запуску і замінити kernel.img на файл, який потрібно запустити. Щоб уникнути "танцю на SD-картці", ви можете запустити завантажувач, який отримує зображення для запуску через послідовну лінію. Я додав автоматичне перезавантаження, тож ви можете запустити нове зображення "від руки". Якщо ви хочете пройти цей маршрут, у мене є ще трохи інформації.

Запустіть власну програму з голого металу та використовуйте екран та SD-карту : це проблема. Вся інформація доступна глибоко в джерелах Linux, і люди працюють над цим (перевірити DexOs ?), Тож я припускаю, що через півроку або приблизно ця інформація буде загальновідома. Але зараз я б сказав, що це, мабуть, занадто багато роботи.


Цікаво, як ЦП може завантажувати ядро ​​з карти SD без відповідних драйверів для SD-карти та файлової системи?
bytecode77

1
Основні файли, які вам потрібні (і які можна завантажити з сайту RaPi, окремо або як частина дистрибутива Linux), містять файл запуску для GPU. Імовірно, GPU має деякий вбудований завантажувач, який дозволяє йому читати SD, завантажувати його код, завантажувати kernel.img та активувати процесор ARM.
Wouter van Ooijen

@DevilsChild - у багатьох процесорів вбудовані базові завантажувачі, частина TI Davinci, з якою я працюю, має "завантажувач ROM", який може працювати над серійною або з SD-карти. SD-карти використовують базовий інтерфейс SPI.
Джон У

5

Це завжди можливо, але вам доведеться написати власні драйвери для інтерфейсу HDMI та SD-інтерфейсу, а можливо, і файлової системи для останнього.


1
Насправді це було б дуже складно, оскільки це GPU, який запускається спочатку, а потім для завантаження процесора потрібно завантажити кілька двійкових крапок Broadcom. Крім того, якщо я добре пам’ятаю, драйвери GPU та прошивки теж є закритим джерелом.
AndrejaKo

Чи є драйвери, які можна включити, щоб вони працювали? Будь-яка ідея?
bytecode77

@Devils Child Я не впевнений, наскільки це було б легко або як все задокументовано. Я думаю, що, можливо, ви зможете використовувати наявний завантажувач для завантаження власного зображення ОС та запуску процесора, але тоді проблема, про яку писав Стівенх у відповіді, показує: Вам потрібно буде написати драйвери та більшу частину документації на них. t доступні.
AndrejaKo

@DevilsChild - існуючі драйвери, швидше за все, будуть написані для певної ОС, і якщо ви хочете інтегрувати їх у власне програмне забезпечення, йому знадобиться деяка його функціональність. Врешті-решт ви напишете (обмежену) копію ОС. Також AndrejaKo вказує, що це буде дуже важко, а прошивка із закритим кодом не полегшує справи. Чому ви не хочете ОС?
stevenvh

1
@DevilsChild Важливою відмінністю між одним бортовим комп'ютером та VM є те, що ви можете розмістити плату де-небудь, крім фізичного розташування машини, де розміщується VM; також воно має тенденцію до кращого введення-виводу в реальному світі. Але віртуальні машини та більш спеціалізовані емулятори чи тренажери часто виконують важливу роль, наприклад, дозволяти команді програмного забезпечення розпочати роботу до того, як апаратне забезпечення існує, або уникати того, щоб вони боролися за єдину плату-прототип, яку вручну переробляли на функціональність або працювали. регресійні тести, не пов'язуючи колекцію фізичних пристроїв ...
Кріс Страттон

3

Все, що вони сказали, але, найпростіший шлях - це запустити дистрибутив Linux, який виконує те, що ви хочете, і максимально мінімалістичний, а потім позбавити все, що ви не хочете.

Досить скоро він перестане бути Linux і стане завантажувачем із підтримкою SD та HDMI. Це по суті не відрізняється від того, про що ви просите в усіх відношеннях, за винятком того, що
це було витягнуто з дистрибутива Linux (але це вже не Linux), і
- ви цього не зробили самі.

Якщо це не зробити самостійно повністю, то це має надзвичайно важливе значення, це здається дуже логічним підходом.



0

Якщо ви хочете запрограмувати "Raspberry Pi як Arduino", перевірте проводкуPi. Перегляньте мою статтю за адресою http://www.jating.in/efyarticle/EFYArticle.pdf .

1) Я зробив це схожим на Arduino, використовуючи один кабель для перетворення USB в послідовне перетворення та забезпечення живлення плати. тому достатньо лише одного USB-кабелю, як і ардуїно.

2) Я зробив невелику утиліту, яка під час запуску завантажуватиме проводку Pi-коду через послідовний рядок (насправді будь-який текстовий файл :-)), компілювати та виконувати його.,

Якщо ви хочете, ви можете запускати його при кожному завантаженні, змінюючи .bashrc файл, тому кожен раз, коли він завантажується, він буде чекати нового файлу. Я не надав жодного посилання на корисний код, але ви можете знайти його за адресою http://www.jating.in/efyarticle/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.