LINUX.ORG.RU

реально ли портировать linux на stm32 контроллер


0

1

Реально ли портировать linux на микроконтроллеры stm32 манипулируя исходниками по блочно и по файльно, особо не влезая в сам исходный код.

Например: есть контроллер stm32 и к нему подключено много датчиков температуры ds18b20 которые работают по протоколу 1-wire. Этот контроллер должен выдавать информацию то же по протоколу 1-wire. В ядре линукс есть поддержка протокола 1-wire как ведущего так и ведомого устройства. По идее можно только взять файлы которые отвечают за этот протокол, может ещё кое что..... Я понимаю что для такой задачи stm32 очень много, но это я для примера привёл.

Если это реально, где этому можно научиться или кто может научить.

★★
Ответ на: комментарий от Dark_SavanT

Не взлетит, там слишком мало ОЗУ для линукса.

Может я ошибаюсь, но вроде как то портируют.......

v4567 ★★
() автор топика

linux вряд ли заведется, но для такой задачи он и не нужен... Проще будет все реализовать на голом железе. ( тогда и контроллер можно будет взять попроще stm8 к примеру )

mike666
()
Ответ на: комментарий от mike666

( тогда и контроллер можно будет взять попроще stm8 к примеру )

я написал что для такой задачи stm32 очень много, но это может я неудачный пример привёл. Если очень серьёзная задача для которой stm32 как раз подходит, при этом программа должна быть очень большой. Как тогда быть. Не ужели линукс не стартанёт?

Тогда у меня вот какой вопрос, на какое минимальное железо можно портировать linux?

v4567 ★★
() автор топика

не взлетит, нет MMU. есть мизерный шанс на ucLinux, но рассчитывать на него не стоит. Конкретно для stm32 и DS1820 есть вагон и маленькая тележка библиотек в свободном доступе, а свой собственный велосипед пишется за 2 часа

marvin_yorke ★★★
()

Бери FreeRTOS. Это конечно в сто раз слабее чем Linux, но тоже вариант на безрыбье.

I-Love-Microsoft ★★★★★
()

ucLinux. для взрослого линукса в стм-ах не хватает MMU

посмотри в сторону freertos для твоей задачи. она работает на bare metal.

//тред не читал. надеюсь, всё это уже сказали ;)

aol ★★★★★
()
Ответ на: комментарий от Dark_SavanT

Из ядра можно смело выкидывать 80 % кода в таких случаях и оно будет приспокойно работать в режиме ядра, а не комбайна для всего и вся.

Dron ★★★★★
()
Ответ на: комментарий от splinter

Блин, не позорься, это совсем разные вещи и для разного нужны. Хотя да, uclibc умеет без MMU работать, но частично.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от marvin_yorke

на какое минимальное железо можно портировать linux?

ARM9

AVR8, см. выше.

anonymous
()
Ответ на: комментарий от anonymous

Ты почитай для начала что там было сделано.

В чистом виде, без написания какого-то отдельного эмулятора не взлетит. На Cortex R4 Может и взлететь, там sdram контроллер бывает.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от Dark_SavanT

Dron

Из ядра можно смело выкидывать 80 % кода в таких случаях и оно будет приспокойно работать в режиме ядра, а не комбайна для всего и вся.

Хорошо бы научиться этому где нибудь.........!!!

Ололо! На 8-ми битных AVR-ках взлетел, а на какой-то 32-х разрядной шняге - нет?

В интернете много разного видео с работой линукса на стм32 но как его туда портировать......???????????? Если бы кто рассказал, или в инете было бы где сообщество людей занимающихся этим.

Бери FreeRTOS. Это конечно в сто раз слабее чем Linux, но тоже вариант на безрыбье.

http://www.contiki-os.org/

Про FreeRTOS знаю, но более-менее с линксом совладал, не хотелось бы новое осваивать, времени нет.

v4567 ★★
() автор топика

Это уже сделали до тебя.
На «почти» любом Cortex-M3/M4 Линукс уже работает, как минимум до статического бизибокса. Но там от ванильного линукса рожки да ножки остались.

Jetty ★★★★★
()

Но советую конечно же взять человеческий Cortex-A5 или Cortex-A8

Jetty ★★★★★
()
Ответ на: комментарий от v4567

Что бы самому можно было взяв исходники ядра выкинуть ненужное, собрать его, собрать всё что нужно из программ и записать это всё на железку. Реально ли вообще этому научиться, или нужно быть по крайне мере разработчиком ядра...???? Можно ли осуществить такое портирование манипулируя поблочно и пофайльно?

v4567 ★★
() автор топика
Ответ на: комментарий от v4567

Вам в любом случае придется часть кода переписывать под конкретную железку. (ну точнее не переписывать, а дописывать, железозависимый код лежит в отдельных файлах).

RiseOfDeath ★★★★
()
2 октября 2014 г.

Отлично работает uclinux с разными сетевыми шутками, мы только дописали драйверы дисплея, цапа, выпускаем устройство на stm32f429. Функциональность примерно как у домашней точки доступа WiFi, но на борту большой tft, клавиатура, промышленные интерфейсы передачи данных, аудио. Сейчас делали бы на более мощном проце. aviaglaz@gmail.com

anonymous
()

Твоя задача элементарно решается. Я для 1-wire просто стырил в интернете готовье (USART+DMA), чуть допилил — вуаля!

Только 1-wire — слишком несерьезно, чтобы микроконтроллер с окружающим миром общался! Если не хочешь ethernet, то хотя бы CAN используй!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от v4567

как его туда портировать......???????????? Если бы кто рассказал

проще самому портировать, чем тебя учить

anonymous
()
Ответ на: комментарий от anonymous

Что значит "что подскажешь"? Просто берешь и реализуешь. В компьютер не обязательно дорогущий CAN-контроллер покупать, если скорость невелика: можно слепить недорогой переходник USB<->CAN (который будет как cdc-acm)

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

свой собственный велосипед меня перестал устраивать, как только встает вопрос интеграции с другими системами лучше иметь что-либо стандартное, вот и возник такой вопрос.

anonymous
()
Ответ на: комментарий от anonymous

Т.к. стандартного подхода нет, то придется подпиливать под конкретную систему, куда хочешь интегрироваться.

Но у STM32 с этим порядок. Это на PIC'ах CAN был кастрированный, но и то — для наших обычных задач его за глаза хватало!

А вообще же, народ потихоньку двигается в сторону "промышленного ethernet", т.к. там уровень абстракции выше, несмотря на более приличную устойчивость.

Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.