Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Java на Cortex-M
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Страницы: 1, 2, 3
k000858
Кто-нибудь разрабатывает что то на java?
поделитесь пожалуйста опытом:
- какими программными средствами пользуетесь
- какие типы устройств разрабатываются

В общем давайте подискутируем на тему перспективы разработки устройств на Java.

Опишу видимые мной плюсы:
- скорость разработки (кучи полуфабриката)
- высокая абстракция от внутренностей железа
Aner
M7 от STMа более заточены под это спецом, M4 едва, едва, медленноват будет, ... хотя смотря какая задача. Есть опыт юзания разных ембеддед яв. Удобств мого, на встроенную яву освоить некое время потратить нужно.
- независимость от железа, да
- графические примитивы и графика, да
- простота написания кода, да
- скорость разработки, непонятно, задач различных много.
- сетевые приложения, да
...
kolobok0
Цитата(k000858 @ Jul 2 2015, 12:33) *
...Опишу видимые мной плюсы:
- скорость разработки (кучи полуфабриката)
- высокая абстракция от внутренностей железа


Из истории...
Когда спустя более 10 лет люди произносили Java (это те кто сейчас произносит облака, нано и прочую маркетинговую муть), люди с сей занимались
оптимизацией кода Джавы под ту или иную джава машину.

Это так сказать логичный минус из универсальности языка джавы. Конечно-же воды утекло не мало с тех пор, и всё шагнуло далеко вперёд, но лично я
верю в законы сохранения - универсализм за счёт чего???

По поводу скорости разработки. Стремление фирм разработчиков снизить затраты на производство - понятны. Отсюда потуги натянуть нечто
низкоуровневое на простоту восприятия и использования. Но кризис в штатах, в сфере IT в 2001 дал понять, что не каждая домохозяйка может
осмысленно нажимать кнопки и создавать алгоритмы и код.

Это собственно лирика.
По вектору дискуссии:
Облегчая вхождение в создание софта для разрабатываемого девайса, Вы создаёте конструкцию для возможности использования девайса третьими
лицами. И плавненько входите в сегмент существующих универсальных портативных систем, со всеми вытекающими. И я бы сказал, что грань очень
тонкая - не свалиться в сегмент универсальности, где сильна конкуренция либо делать ставку на будущую популярность вашего брэнда.

Если опираться на опыт пром. разработок - то собственно за работоспособность изделия отвечает и электроника и программное обеспечение. Т.е.
завод изготовитель несёт ответственность за работоспособность изделия согласно документации перед заказчиком. В данных рамках универсальность
требуется только во вспомогательном функционале. Ну типа настройки алгоритма дозвона до процессингового центра с утюга, для оплаты счетов за светsm.gif
При этом основной функционал утюга = гладить бельё. Именно это продаёт завод изготовитель. Наверное такой подход назреет в будущем...

По вопросам...
ээээээ программными средствами... тут вот боюсь даже ответить, потому как только типы их нужно долго и нудно выписывать. А уж названий и тем более
больше.
типы устройств разные. всё, что требуется заказчику и там где есть элементы электроники и программирования.
k000858
буду премного благодарен за абстрактное краткое описание структуры проекта, из чего состоит, как и чем компилится.
хотелось бы получить начальные сведения "как это делается на яве" относительно имеющихся знаний "как это делается на С"

Golikov A.
андроид годиться?
k000858
Цитата(Golikov A. @ Jul 2 2015, 14:03) *
андроид годиться?

cortex-m ?

хотелось бы вести дискуссию в рамках микроконтроллеров (не процессоров)
scifi
Цитата(k000858 @ Jul 2 2015, 12:33) *
Опишу видимые мной плюсы:
- скорость разработки (кучи полуфабриката)
- высокая абстракция от внутренностей железа

Можете привести реальные примеры, иллюстрирующие вот эти два тезиса?
Мне почему-то ничего в голову не приходит. Фантазии не хватает, наверное.
Aner
QUOTE (Golikov A. @ Jul 2 2015, 14:03) *
андроид годиться?

Зачем вспоминать, линуксовую приблуду тут?
k000858
Цитата(scifi @ Jul 2 2015, 14:07) *
Можете привести реальные примеры, иллюстрирующие вот эти два тезиса?
Мне почему-то ничего в голову не приходит. Фантазии не хватает, наверное.

если честно сам не успел разобраться, пока вижу все довольно абстрактно, размыто
1) На яве можно применить определенные библиотеки, реализующие такие вещи как "магазин приложений", "облачный сервис" и прочее прочее. Делать с 0 такое на Си займет кучу времени, а на яве уже есть готовое.
2) отдельные части (например элементы интерфейса, если речь идет о HMI устройстве) может разрабатывать любой ява-программер, которому ничего не известно о внутренностях контроллера. частично сейчас это реализуется с помощью всяких хард абстрактных библиотек на Си., но до хард-асбтракции явы далеко...
Aner
QUOTE (scifi @ Jul 2 2015, 14:07) *
Можете привести реальные примеры, иллюстрирующие вот эти два тезиса?
Мне почему-то ничего в голову не приходит. Фантазии не хватает, наверное.

Для этого яву нужно знать хотя бы и все окружение. На постсовдепии с этим туго было, не популярны были саны. У которых уже ява была вместо бейсика.
scifi
Цитата(k000858 @ Jul 2 2015, 13:16) *
1) На яве можно применить определенные библиотеки, реализующие такие вещи как "магазин приложений", "облачный сервис" и прочее прочее. Делать с 0 такое на Си займет кучу времени, а на яве уже есть готовое.

Вы серьёзно? Магазин приложений и облачный сервис? На микроконтроллере? Это угар.
Любая такая библиотека захочет многих мегабайтов. И сразу "зравствуй, настоящий взрослый линух". МК тут вообще ни с какого бока.

Цитата(k000858 @ Jul 2 2015, 13:16) *
2) отдельные части (например элементы интерфейса, если речь идет о HMI устройстве) может разрабатывать любой ява-программер, которому ничего не известно о внутренностях контроллера.

Собственно, см. комментарий выше. Я думаю, вы долго будете втолковывать "любому ява-программеру", что нельзя просто так взять и создать любой объект, потому что пямяти всего 100 килобайт.
_pv
не взлетело, а ведь были же и ARM9 с буковкой J, и AVR32 (AP который, а не то что сейчас осталось).
кстати, где они? © sm.gif

так что либо андроед, но это уже совсем не cortex-M,
либо что-нибудь по-легче - lua например.
k000858
Цитата(scifi @ Jul 2 2015, 14:29) *
Любая такая библиотека захочет многих мегабайтов. И сразу "зравствуй, настоящий взрослый линух". МК тут вообще ни с какого бока.

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

Цитата(scifi @ Jul 2 2015, 14:29) *
Собственно, см. комментарий выше. Я думаю, вы долго будете втолковывать "любому ява-программеру", что нельзя просто так взять и создать любой объект, потому что пямяти всего 100 килобайт.

наверное эти технические тонкости оговариваются на берегу, как типа "размер интерфейса" (ака экранчик у девайса маленький, а не как у планшетника на андройде"). не вижу тут вообще каких то трабл.
в данный момент так и работаем: есть девайс, его пишет Си-программер, в проекте участвую веб-программеру (оттачивающие веб-морду) и тд.

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

далее отказываюсь спорить на эту тему.
хотел бы почитать об опыте реальных программеров реализующих такие задачи.
kolobok0
Цитата(k000858 @ Jul 2 2015, 13:16) *
...На яве можно


кто же спорит, что "можно". Если сейчас начнём перечислять что можно на том или ином языке - то свалимся в холифар длины органов.
всё становится на свои места, когда речь заходит что НУЖНО заказчику. а на чём и с помощью чего делать - это то дело двадцать пятое =
подсчитываешь плюсы и минусы и сравниваешь...

Цитата(k000858 @ Jul 2 2015, 13:16) *
..."облачный сервис" ...


вот объясните дураку - что такое "облако" ?
А то до сих пор все только говорят как это круто. А что это такое - пока никто не сказал.
Чем это например отличается от клиент-серверной технологии, с точки зрения определения этого понятия?

Цитата(k000858 @ Jul 2 2015, 13:16) *
...на Си займет кучу времени...


Как бы нет проблем позвать что то уже готовое и из сей и из азма. В конечном итоге-то внизу всё из-азм! sm.gif

Цитата(k000858 @ Jul 2 2015, 13:16) *
...любой ява-программер, которому ничего не известно о внутренностях контроллера...


Вы абсолютно правы конечно-же. В теории. Но на практике всё упирается в хозяйственные отношения. Закон КГБ рулит (качество-график-бюджет).
Т.е. если требуемый функционал можно достичь на дохлом МК, с программой в двести строк... То разовая работа на азме дешевле миллионной партии
железа, даже если на азме мегабайты кода... Да с возрастанием объёма на сцену выходят другие законы уже, и у азма они выйдут быстрее чем на
сях либо джаве. Но это уже повод сделать итерацию в осмыслении и изменении платформы на более высокоуровневую.


k000858
лично для себя расцениваю вектор "stm32 -> java" как один из инструментов (как осциллограф или паяльная станция), а не как замена существующего. работаете без них - флаг вам в руки. меня опыт "без опыта" не интересует. никого пролечивать ни на что не планирую. меня интересует ОПЫТ тех, кто такое делает, а не мнение "с дивана"
без обид
Aner
Что то было у французов, и даже на русском описание встроенной явы лет 5-6 назад. Надо поискать.
Тут ссылки на ранние 2007-2008 год https://community.oracle.com/thread/1757359
http://ricquebourg.iut-amiens.fr/2006_2007...t_IPJV/IPJV.pdf
https://www.yumpu.com/fr/document/view/8337...alogue-f1chf/65
Огурцов
я мучал пару лет назад c# под stm32f4
впечатления противоположные
супер круто, однако не дотянуло до того, что я ожидал - фреймворк прилично урезан
т.е. не всё идёт, нужно допиливать
если писать с нуля, то конечно проще
не было у меня стандартной сетевухи, а нестандартную я не смог, а так бы на нём остался
если уж выбирать платформу, то дотнет - гораздо приятнее
думаю, микрософт к осени допилит её под демоборду с новым stm32f7, с сеткой и дисплеем и будет вообще бомба


Цитата(k000858 @ Jul 2 2015, 10:16) *
любой ява-программер, которому ничего не известно о внутренностях контроллера

и будет очередное "как зажечь три светодиода от 220 вольт", ага
Aner
Ява все же получше будет, этих недопиленных микрософтом решеток и точками нет.
k000858
Цитата(Огурцов @ Jul 2 2015, 15:08) *
я мучал пару лет назад c# под stm32f4
впечатления противоположные
супер круто, однако не дотянуло до того, что я ожидал - фреймворк прилично урезан
т.е. не всё идёт, нужно допиливать
если писать с нуля, то конечно проще
не было у меня стандартной сетевухи, а нестандартную я не смог, а так бы на нём остался
если уж выбирать платформу, то дотнет - гораздо приятнее
думаю, микрософт к осени допилит её под демоборду с новым stm32f7, с сеткой и дисплеем и будет вообще бомба



и будет очередное "как зажечь три светодиода от 220 вольт", ага

почему же.
рядовой явер может отточить движок графического движка, ну там экранчик с менюшками управляшками и тд.
на Си это займет кучу времени, а явер имхо и за пол дня справится. при том он и понятия не будет иметь как ЭТО управляет, ножками контроллера или по сети через другую железку. примеров можно массу привести, но далее уже коммерция :-P
Огурцов
Цитата(k000858 @ Jul 2 2015, 11:14) *
на Си

си и c# - это какбэ совершенно разные вещи, я вам тут даже спорить не буду, c# - просто энтер

а вот что интересно, есть ли какие-нибудь браузеры под мк, с джавой естественно ?
мне сейчас только этого для полного счастья не хватает
kolobok0
Цитата(Огурцов @ Jul 2 2015, 14:08) *
... дотнет - гораздо приятнее
думаю, микрософт к осени допилит её под демоборду с новым stm32f7, с сеткой и дисплеем и будет вообще бомба..


про всё высокоуровневое и скорость...

Из жизни...
Был в гостях одной конторы, года три назад.
Контора обеспечивала игрища на бирже. Обсуждали задачку обработки данных от/к клиентов без использования объектов синхронизации (Win32).
В контексте беседы я задал вопрос - почему на сях пытаются делать(си плас плас точнее, не суть). Они честно ответили - переходят с си-бимоля.
Наелись его тормозов, не устраивает по скорости их это решение. Контора прибанковская, денежная, в центре мсквы...

Я о чём...
Там где нет явной задачи универсальности для третьей стороны девайса - смысла нет крутить Джава машины либо домы дотнетов - в ущерб
основных плюсов - скорости, реалтаймности.
scifi
Цитата(Огурцов @ Jul 2 2015, 14:22) *
а вот что интересно, есть ли какие-нибудь браузеры под мк, с джавой естественно ?
мне сейчас только этого для полного счастья не хватает

Браузер (урезанный) под МК - это я кое-как могу себе представить с точки зрения как востребованности, так и технической возможности.
Но вот джава в нём - зачем? Любой нетривиальный апплет ожидает, что он будет запускаться на ПК, то есть на МК у него нет никаких шансов запуститься.
Огурцов
Цитата(kolobok0 @ Jul 2 2015, 12:23) *
Контора обеспечивала игрища на бирже

вотжежблин, одно дело ui писать, другое потоковое взаимодействие серверов на сетке 10g
какое к чорту си, там fpga не успевает - хотят быстрее


Цитата(scifi @ Jul 2 2015, 12:28) *
Любой нетривиальный апплет ожидает

а если тривиальный ? если речь о связи мк 2 мк, зачем там нетривальности
kolobok0
Цитата(Огурцов @ Jul 2 2015, 14:30) *
...если речь о связи мк 2 мк, зачем там нетривальности


а зачем ява то тодысь?
при некой похожей задачи делаю
клиент на писюке броузер-мк1 вэб морда с JScript-модбас ethernet-мк2
или
клиент на писюке exe-модбас Ethernet-мк1,мк2...
или
клиент Android-wifi-мк1 вэб морда с JScript-модбас с ethernet-мк2...


а блин, Вам броузер на мк....кхм...кучеряво но возможно...
Огурцов
javascript, скрипты ж надо на чём-то пускать
да проверки полей ввода перед отправкой данных хотя бы сделать
клиент на stm32f4/stm32f429/stm32f7 c эзернетом и дисплеем
scifi
Цитата(Огурцов @ Jul 2 2015, 14:40) *
javascript, скрипты ж надо на чём-то пускать
да проверки полей ввода перед отправкой данных хотя бы сделать
клиент на stm32f4/stm32f429/stm32f7 c эзернетом и дисплеем

Ну так жабаскрипт и жаба - это две большие разницы laughing.gif
А зачем браузер? Чтобы на ПК тоже запускалось?
Огурцов
и на пк, и на смартфоне и ещё чёрте где
а мк - для гарантии надёжности
scifi
Цитата(Огурцов @ Jul 2 2015, 15:04) *
и на пк, и на смартфоне и ещё чёрте где
а мк - для гарантии надёжности

Всё таки браузер в МК - это пока из области фантастики.
Можно сделать в МК обычный сишный клиент, а в браузере (для ПК) - жабаскриптный, и заставить их разговаривать по одному протоколу. Это, конечно, подразумевает синхронизацию функционала клиентов. Если такая синхронизация кажется трудоёмкой, можно придумать псевдоязык, который будет одинаково интерпретироваться в МК (сишным интерпретатором) и в браузере (интерпретатором на жабаскрипте), и на этом языке сделать клиент, который будет работать одинаково и в МК, и в браузере.
Это всё геморрой, конечно, и цель выглядить оч. сомнительно, чтобы его оправдать.
Огурцов
вот какая-то фигня в исходниках http://www.chromium.org/chromium-os что за, подойдёт ?
scifi
Цитата(Огурцов @ Jul 2 2015, 15:28) *
вот какая-то фигня в исходниках http://www.chromium.org/chromium-os что за, подойдёт ?

Для чего подойдёт? Для изучения принципов построения оч. больших программных систем? Конечно, подойдёт.
Имеет ли эта штука какое-либо отношение к МК? Нет, естественно.
Огурцов
да, там линух
Golikov A.
в соседней ветке про кортекс м7 было видео с выставки, там яву на м7 показывали....
Огурцов
раз не хотите халявного дотнета, ну вот вам жаба:

MicroEJ Home Automation application running on STM32F429-DISCOVERY
http://www.is2t.com/portfolio-item/microej...f429-discovery/
Aner
Она Java давно есть у них, и опять таки это французы. Любят они её почемуто, в универах преподают, эмбедед яв у них много.
halfdoom
Цитата(k000858 @ Jul 2 2015, 14:14) *
рядовой явер может отточить движок графического движка, ну там экранчик с менюшками управляшками и тд.
на Си это займет кучу времени, а явер имхо и за пол дня справится. при том он и понятия не будет иметь как ЭТО управляет, ножками контроллера или по сети через другую железку. примеров можно массу привести, но далее уже коммерция :-P

Использовать яву только для того, чтобы нанять десктопного ява-программиста? Спешу вас разочаровать - чтобы что-то шевелилось надо ориентироваться на 512кБ ОЗУ - это абсолютный минимум. Замечу, что писатель менюшек на С/C++ тоже не должен знать где и какие ножки контроллера дергаются, все это может быть абстрагировано с гораздо меньшими накладными расходами, чем на яве. Но если хочется пощупать, то велкам на http://www.stm32java.com/products/
AlexandrY
Цитата(k000858 @ Jul 2 2015, 14:14) *
почему же.
рядовой явер может отточить движок графического движка, ну там экранчик с менюшками управляшками и тд.
на Си это займет кучу времени, а явер имхо и за пол дня справится. при том он и понятия не будет иметь как ЭТО управляет, ножками контроллера или по сети через другую железку. примеров можно массу привести, но далее уже коммерция :-P


Да ничего кроме пустословия вы не приведете в пример.
Ява с GUI от Oracle закрытый продукт и обсуждать тут его нет никакого смысла.
Других сравнимых embeddded Яв нв рынке нет.
С тем же успехом можно обсуждать такие коммерческие движки как PEG, uC/GUI, emGUI, Inflexion UI ...

В uC/GUI например с незапамятных времен есть и построитель экранов и редактор фонтов.
Там также есть и оконный интерфейс, и прямое использование любых TTF фонтов без всяких конвертеров.
В Яве до сих пор этого нет.
Ну и кто круче?
Aner
Все же ембедед ява круче, просто вы не разобрались еще с ней, пока только поверхностно это все, однобоко.
Огурцов
в дотнете построитель экранов с рождения
это как со старыми камнями - сломать себя, выбросить их и перейти на новые
Aner
QUOTE (Огурцов @ Jul 3 2015, 12:40) *
в дотнете построитель экранов с рождения
это как со старыми камнями - сломать себя, выбросить их и перейти на новые

Зачем нужен дотнет это та же ява, только от микрософта, причем сильно недоделаная.
Огурцов
чтобы быстро разрабатывать приложения, на нескольких (не менее четырёх) языках
в т.ч. включая яву
бесплатно, в отличие от
Aner
QUOTE (Огурцов @ Jul 3 2015, 12:56) *
чтобы быстро разрабатывать приложения, на нескольких (не менее четырёх) языках
в т.ч. включая яву
бесплатно, в отличие от

Это таки не получится, программеры, почти все ругают эту глючную дотнет. Похоже вы не разобрались с этим.
Огурцов
работодатели с вами не согласны
Aner
QUOTE (Огурцов @ Jul 3 2015, 13:02) *
работодатели с вами не согласны

А с вами не согласна тема топика, читаем: Java на Cortex-M, в частности STM32F4
Огурцов
жаба есть в дотнете
Mihey_K
Пожалуйста, покупайте. С тем же успехом можно купить GUI, RTOS c TCP стеком, но уже на C, и в ус не дуть sm.gif
Видео
Aner
Ну это все те же французы, ничего нового - IS2T. Да с ними можно не дуть в ус, а вот с покупкой GUI, RTOS c TCP стеком, но уже писать на C и оч сильно дуть в ус и ковырять железо, драйвера и тд.
Mihey_K
Цитата
ничего нового - IS2T
Пардон, повторяюсь. Соглааситесь, за деньги немалый выбор GUI, IDE, RTOS, стеков, яв и прочего вкусного, но ждать подобного нахаляву глупо, быстрее С изучить )
Aner
Это кому как, если C/C++ освоен, то выбирать приходится между C# и Java, мой выбор (и многих кстати) за Java. Проще удобней, много наработок в инете. C#, с точкой нет - пока кошмарики, это все касаемо только ембеддеда. А если лень победила творчество и потребности в развитии, то да сиди на сях, строчи и отлаживай GUI, IDE, RTOS, стеки ...
Mihey_K
Мне кажется как раз лень порождает желание писать на Java и т.д. Если не секрет, на какой втраиваемой системе вы писали на Java?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.