реклама на сайте
подробности

 
 
4 страниц V   1 2 3 > »   
Closed TopicStart new topic
> ARM Cortex M3 + Linux
SiMiLya
сообщение Nov 4 2010, 07:46
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 4-11-10
Пользователь №: 60 641



Всем добрый день!

Возникла необходимость разработать один девайс на ARM Cortex под управлением Linux.
Ранее писал под ARM'ы, DSP, восьмибитники, но только на Си или ассемблере, т.е. дело с Линуксом и операционками в принципе не имел.

После исследования интернета нашёл кучу информации о том, как сконфигурировать ядро. Но, все статьи такого плана заканчивались словами а-ля "...теперь ядро благополучно залито, с чем мы вас и поздравляем". И всё.

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

Он пишется на стандартном С или нет? Как оформляются файлы проекта? Как происходит его интеграция в ОС? И т.д.

Подскажите, пожалуйста, в общих чертах, принцип разработки проекта после внедрения ядра в контроллер. Или/и направьте на хорошую тематическую литературу.

Всем большое спасибо заранее!
Go to the top of the page
 
+Quote Post
skripach
сообщение Nov 4 2010, 08:01
Сообщение #2


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Какой именно Cortex M3, не знаю таких который бы имел MMU, а без него только uClinux или что-то вроде UCOS. Раз вы раньше писали под ARM'ы, DSP, восьмибитники, то пора бы и знать об этом. Ну и поиск можно было бы..


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
SiMiLya
сообщение Nov 4 2010, 08:14
Сообщение #3





Группа: Новичок
Сообщений: 4
Регистрация: 4-11-10
Пользователь №: 60 641



Планировался STM32F103.
Дистрибутив роли совершенно не играет, единственным фактором, из-за чего необходимо использовать Линукс, является то, что к проекту нужно будет обязательно подключить некоторую математическую библиотеку под Линукс, предоставляемую заказчиком.

Т.е. задача сводится по сути к тому (насколько я смог для себя решить), чтобы использовать любую возможную вариацию Linux'а, которая позволила бы взаимодействовать с вышеуказанной сторонней линуксовой библиотекой.
Если бы такая необходимость не стояла, то ОС в этом проекте не использовалась бы.

Как вы считаете, в данной ситуации использование uClinux будет разумным?

P.S. Сейчас ещё раз воспользуюсь поиском, предыдущая попытка успехом не увенчалась. Если что, извиняюсь за дублирование темы.

Сообщение отредактировал SiMiLya - Nov 4 2010, 08:15
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Nov 4 2010, 08:19
Сообщение #4


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Что-то я не пойму, зачем математической библиотеке линукс.
И что такое библиотека?
Бинарник или исходники?
Если бинарник, то его полюбому надо компилировать под конкретное железо, если исходники - то можно переписать как надо без всяких линуксов.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
SiMiLya
сообщение Nov 4 2010, 08:23
Сообщение #5





Группа: Новичок
Сообщений: 4
Регистрация: 4-11-10
Пользователь №: 60 641



Короче, у заказчика есть какой то супер-пупер алгоритм комплексирования (задача по комплексированию курса, навигация) который он купил за большое бабло, и теперь хочет его внедрить в этот проект. А алгоритм сам представляет собой, как выразился мой коллега (не ручаюсь за смысловую правильность его слов) "закрытый объектный файл" для Линукса, который в качестве исходника, мол, мы увидеть не можем.
Посему надо изголятся, чтобы найти возможность использовать эту стороннюю математику в новом проекте.

P.S. Вкратце, этой сторонней математикой мы должны обрабатывать принятые показания двух приборов.

Сообщение отредактировал SiMiLya - Nov 4 2010, 08:26
Go to the top of the page
 
+Quote Post
Джеймс
сообщение Nov 4 2010, 08:57
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 462
Регистрация: 20-01-06
Пользователь №: 13 399



Цитата(SiMiLya @ Nov 4 2010, 10:46) *
Возникла необходимость разработать один девайс на ARM Cortex под управлением Linux.

Посмотрите Unison v4, v5
http://www.rowebots.com/products/unison_rtos
Ее можно запустить на ARM Cortex M3 без MMU. Но это не Linux. Но авторы обещают облегченный перенос Linux-приложений под нее.Кажется, это Ваш случай wink.gif

P.S. Она платная.
http://www.rowebots.com/khxc/index.php?app...sonarmcm3-stm32
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Nov 4 2010, 09:08
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(SiMiLya @ Nov 4 2010, 12:23) *
... "закрытый объектный файл" для Линукса ...

Вам пояснил MrYuran, что если файл бинарный (или объектный), то он уже скомпилирован под конкретное ядро. Linux - это просто система. Она может исполняться как под ARM так и под Intel, к примеру. Соответственно скомпилирована ваша библиотека под конкретное железо. И просто так вы эту библиотеку в любой проц не вставите.

Кроме того, если математика сложная, то производительность Cortex-M3 вас может не устроить. Учитывая тормоза самой системы на этом камне. Так что уточните свою задачу, возможно выбор уже будет само сабой разумеющимся.
Go to the top of the page
 
+Quote Post
SiMiLya
сообщение Nov 4 2010, 09:46
Сообщение #8





Группа: Новичок
Сообщений: 4
Регистрация: 4-11-10
Пользователь №: 60 641



Цитата(Джеймс @ Nov 4 2010, 10:57) *
Посмотрите Unison v4, v5
http://www.rowebots.com/products/unison_rtos
Ее можно запустить на ARM Cortex M3 без MMU. Но это не Linux. Но авторы обещают облегченный перенос Linux-приложений под нее.Кажется, это Ваш случай wink.gif

P.S. Она платная.
http://www.rowebots.com/khxc/index.php?app...sonarmcm3-stm32


Спасибо за интересную информацию, никогда ранее не слышал о подобных системах.
Но, зная этого заказчика, уверен на 200% что денег на описанный UNISON он не дастsmile.gif


Цитата(SasaVitebsk @ Nov 4 2010, 11:08) *
Вам пояснил MrYuran, что если файл бинарный (или объектный), то он уже скомпилирован под конкретное ядро. Linux - это просто система. Она может исполняться как под ARM так и под Intel, к примеру. Соответственно скомпилирована ваша библиотека под конкретное железо. И просто так вы эту библиотеку в любой проц не вставите.

Кроме того, если математика сложная, то производительность Cortex-M3 вас может не устроить. Учитывая тормоза самой системы на этом камне. Так что уточните свою задачу, возможно выбор уже будет само сабой разумеющимся.



Большое спасибо вам за ответ и разъяснение поста MrYuran!
Сегодня займусь разъяснением момента касательно этой "библиотеки", в каком формате нам её собрались передавать, и почему, в случае, если она являет собой объектный файл, не указали конкретную платформу.
По причине отсутствия знания Linux я не знаю многих основополагающих моментов...sad.gif

P.S. ТЗ я получал от человека, который, грубо говоря, занимается менеджментом, и в теме разработки (а в Линуксе и подавно) имеет оочень поверхностное представление. Возможно, идея "передать объектный файл с математикой" из уже ранее реализованного проекта, а не исходник, в корне не верна, и всё в конечном итоге сведётся к совсем другим вещам...


Только что задал этот вопрос заказчику.
Ответили, что мне вышлют объектный файл, скомпилированный под то ядро и железо, которое я выберу сам (!).
Короче, суть в том, чтобы любым путём не давать исходник. Отака фигня.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Nov 4 2010, 10:58
Сообщение #9


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(SiMiLya @ Nov 4 2010, 11:46) *
Только что задал этот вопрос заказчику.
Ответили, что мне вышлют объектный файл, скомпилированный под то ядро и железо, которое я выберу сам (!).
Короче, суть в том, чтобы любым путём не давать исходник. Отака фигня.

Правильный подход у тех, кто хочет сберечь интеллектуальную собственность.
Если Вам развязали руки в выборе ядра и железа, то всё упрощается. Составляйте ТЗ и вперёд. В плане ПО главное, чтобы у Вас с заказчиком тулчейны были одинаковые. Работать с подключенной библиотекой может любой вразумительный тулчейн, GCC в частности. Необходимости применять Linux, как и ОС вообще, нет никакой.
Go to the top of the page
 
+Quote Post
Jury093
сообщение Nov 4 2010, 11:16
Сообщение #10


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(SiMiLya @ Nov 4 2010, 12:46) *
Только что задал этот вопрос заказчику.
Ответили, что мне вышлют объектный файл, скомпилированный под то ядро и железо, которое я выберу сам (!).
Короче, суть в том, чтобы любым путём не давать исходник. Отака фигня.

никогда таким не занимался и надеюсь что не займусь smile.gif
предполагаю, что заказчик проекта не хочет давать исходники, т.к. он за них заплатил "кучу бабла" и это его право.
скорее всего вам будет выслана некая либа (библиотека), бинарник, скомпилированный под "выбранный вами АРМ и ОС"
думаю, что принцип работы с ней будем примерно как в Виндовс с DLL - ваша софтина открывает эту либу и пользуясь стандартными заголовками вызова функций взаимодействует с ней. Заказчик должен приложить к бинарнику некий файл хидера, где описаны имена и формат вызова этих функций.
Имхо, в сорцах главное не сам код, а алгоритм работы и логика работы. За это платят деньги - за "интеллектуальную собственность", ну а закодить может почти любой кодер. Разумеется с поправкой на вариации лучше/быстрее/компактнее..
Чужой бинарник почти всегда, при наличии доступа, можно попробовать дизассемблировать, отрассировать, пошагово отдебагить. В случае несложных подпрограмм восстановить алгоритм, ну и написать аналогичный код. Напротив, сорец написанный скажем на Си, использующий плавучку, шифрование и пр. хрень адски тяжело восстановить. (надеюсь это очевидно).
Ну и как написали выше - встает проблема оценки быстродействия. Понятно, что если система только тем и занята, что обсчитывает данные в супер-пупер либе и молчит на все запросы, то это фиговая система. Т.е. хорошо бы с заказчика вытрясти оценочное время работы его функций (в шагах, в тактах, во времени выполнения на тестовой системе)..
Далее можно пойти разными путями
- взгромоздить линукс под АРМ, получить с заказчика бинарник библиотеки, написать свою загружаемую софтину, которая будет делать требуемое
- занятся написанием т.н. стандалоне - единственная программа-прошивка под АРМ управляющая всем. В этом случае заказчик должен прислать либу, откомпиллированную видимо для определенного адреса и список функций с адресами, форматами ввода/вывода данных

отака фигня smile.gif
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Nov 4 2010, 11:40
Сообщение #11


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(Jury093 @ Nov 4 2010, 13:16) *
- занятся написанием т.н. стандалоне - единственная программа-прошивка под АРМ управляющая всем. В этом случае заказчик должен прислать либу, откомпиллированную видимо для определенного адреса и список функций с адресами, форматами ввода/вывода данных

Выделенное не обязательно. Обьектные файлы, коими являются либы, являются перемещаемыми. Раздачей адресов занимается линкер при сборке всего проекта.
Go to the top of the page
 
+Quote Post
Jury093
сообщение Nov 4 2010, 12:07
Сообщение #12


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(IgorKossak @ Nov 4 2010, 14:40) *
Выделенное не обязательно. Обьектные файлы, коими являются либы, являются перемещаемыми. Раздачей адресов занимается линкер при сборке всего проекта.

Вполне можно и так, впрочем это на усмотрение ТС - как ему душить заказчика. smile.gif
И полная документация на работу с либой - формат и место входных данных, формат и место выходных данных, требования к памяти. Чем больше инфы тем легче разработка.

Сообщение отредактировал Jury093 - Nov 4 2010, 12:08
Go to the top of the page
 
+Quote Post
Andrey Vasilyev
сообщение Nov 4 2010, 15:04
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 5-12-08
Из: Санкт-Петербург
Пользователь №: 42 220



Цитата(SiMiLya @ Nov 4 2010, 11:14) *
Планировался STM32F103.


Линукс на нем запустить не удастся.
Первая причина - отсутствие в этих чипах, насколько я знаю, интерфейса к внешней памяти. Линуксу все-таки нужно хотя бы 4МБ ОЗУ.
Вторая причина - даже если найти чип на Cortex-M3 с интерфейсом SDRAM (например, дождаться LPC177x или LPC178x), линукс придется самостоятельно портировать на этот чип. Насколько я знаю, никто не портировал линукс на Cortex-M3. На Cortex-A8 - портировали, а на M3 - нет.

Цитата(SiMiLya @ Nov 4 2010, 11:14) *
Дистрибутив роли совершенно не играет, единственным фактором, из-за чего необходимо использовать Линукс, является то, что к проекту нужно будет обязательно подключить некоторую математическую библиотеку под Линукс, предоставляемую заказчиком.

Т.е. задача сводится по сути к тому (насколько я смог для себя решить), чтобы использовать любую возможную вариацию Linux'а, которая позволила бы взаимодействовать с вышеуказанной сторонней линуксовой библиотекой.
Если бы такая необходимость не стояла, то ОС в этом проекте не использовалась бы.

Как вы считаете, в данной ситуации использование uClinux будет разумным?


Вероятно, заказчик будет не очень рад необходимости портировать библиотеку на что-то экзотическое.
Значит, надо взять какой-нибудь более подходящий и хорошо известный процессор.
Возьмите AT91SAM9260, например. На нем прекрасно заработает линукс.
Или возьмите Blackfin BF51x - там uClinux нормально работает.
И то и другое экзотикой не является, и заказчик, скорее всего, сумеет без больших проблем собрать под эти процессоры бинарник своей библиотеки.
Go to the top of the page
 
+Quote Post
AVR
сообщение Nov 4 2010, 15:52
Сообщение #14


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



ARM Cortex M3 + Linux? Тогда уж uClinux...

Не согласится ли заказчик дать бинарник в виде LLVM-байткода? Тогда можно выбирать вообще любой процессор...


--------------------
Go to the top of the page
 
+Quote Post
Andrey Vasilyev
сообщение Nov 4 2010, 16:04
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 5-12-08
Из: Санкт-Петербург
Пользователь №: 42 220



Цитата(AVR @ Nov 4 2010, 18:52) *
ARM Cortex M3 + Linux? Тогда уж uClinux...


uClinux и linux - не велика разница, по большому счету. Наличие или отсутствие MMU на количество потребной RAM не влияет.
Кстати, основные uClinux-овские патчи уже несколько лет входят в ванильное ядро линукса, так что uClinux теперь - это система сборки да обозначение того, что MMU не используется, а вовсе не отдельный проект.
И в любом случае, порт на Cortex-M3 автор топика вряд ли осилит.
Go to the top of the page
 
+Quote Post

4 страниц V   1 2 3 > » 
Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 13:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01516 секунд с 7
ELECTRONIX ©2004-2016