|
Java на Cortex-M, в частности STM32F4 |
|
|
|
 |
Ответов
(1 - 99)
|
Jul 2 2015, 09:52
|

Гуру
     
Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463

|
M7 от STMа более заточены под это спецом, M4 едва, едва, медленноват будет, ... хотя смотря какая задача. Есть опыт юзания разных ембеддед яв. Удобств мого, на встроенную яву освоить некое время потратить нужно. - независимость от железа, да - графические примитивы и графика, да - простота написания кода, да - скорость разработки, непонятно, задач различных много. - сетевые приложения, да ...
|
|
|
|
|
Jul 2 2015, 09:56
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(k000858 @ Jul 2 2015, 12:33)  ...Опишу видимые мной плюсы: - скорость разработки (кучи полуфабриката) - высокая абстракция от внутренностей железа Из истории... Когда спустя более 10 лет люди произносили Java (это те кто сейчас произносит облака, нано и прочую маркетинговую муть), люди с сей занимались оптимизацией кода Джавы под ту или иную джава машину. Это так сказать логичный минус из универсальности языка джавы. Конечно-же воды утекло не мало с тех пор, и всё шагнуло далеко вперёд, но лично я верю в законы сохранения - универсализм за счёт чего??? По поводу скорости разработки. Стремление фирм разработчиков снизить затраты на производство - понятны. Отсюда потуги натянуть нечто низкоуровневое на простоту восприятия и использования. Но кризис в штатах, в сфере IT в 2001 дал понять, что не каждая домохозяйка может осмысленно нажимать кнопки и создавать алгоритмы и код. Это собственно лирика. По вектору дискуссии: Облегчая вхождение в создание софта для разрабатываемого девайса, Вы создаёте конструкцию для возможности использования девайса третьими лицами. И плавненько входите в сегмент существующих универсальных портативных систем, со всеми вытекающими. И я бы сказал, что грань очень тонкая - не свалиться в сегмент универсальности, где сильна конкуренция либо делать ставку на будущую популярность вашего брэнда. Если опираться на опыт пром. разработок - то собственно за работоспособность изделия отвечает и электроника и программное обеспечение. Т.е. завод изготовитель несёт ответственность за работоспособность изделия согласно документации перед заказчиком. В данных рамках универсальность требуется только во вспомогательном функционале. Ну типа настройки алгоритма дозвона до процессингового центра с утюга, для оплаты счетов за свет  При этом основной функционал утюга = гладить бельё. Именно это продаёт завод изготовитель. Наверное такой подход назреет в будущем... По вопросам... ээээээ программными средствами... тут вот боюсь даже ответить, потому как только типы их нужно долго и нудно выписывать. А уж названий и тем более больше. типы устройств разные. всё, что требуется заказчику и там где есть элементы электроники и программирования.
|
|
|
|
|
Jul 2 2015, 10:04
|

Местный
  
Группа: Участник
Сообщений: 319
Регистрация: 31-01-12
Пользователь №: 69 978

|
Цитата(Golikov A. @ Jul 2 2015, 14:03)  андроид годиться? cortex-m ? хотелось бы вести дискуссию в рамках микроконтроллеров (не процессоров)
Сообщение отредактировал k000858 - Jul 2 2015, 10:04
|
|
|
|
|
Jul 2 2015, 10:16
|

Местный
  
Группа: Участник
Сообщений: 319
Регистрация: 31-01-12
Пользователь №: 69 978

|
Цитата(scifi @ Jul 2 2015, 14:07)  Можете привести реальные примеры, иллюстрирующие вот эти два тезиса? Мне почему-то ничего в голову не приходит. Фантазии не хватает, наверное. если честно сам не успел разобраться, пока вижу все довольно абстрактно, размыто 1) На яве можно применить определенные библиотеки, реализующие такие вещи как "магазин приложений", "облачный сервис" и прочее прочее. Делать с 0 такое на Си займет кучу времени, а на яве уже есть готовое. 2) отдельные части (например элементы интерфейса, если речь идет о HMI устройстве) может разрабатывать любой ява-программер, которому ничего не известно о внутренностях контроллера. частично сейчас это реализуется с помощью всяких хард абстрактных библиотек на Си., но до хард-асбтракции явы далеко...
|
|
|
|
|
Jul 2 2015, 10:29
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(k000858 @ Jul 2 2015, 13:16)  1) На яве можно применить определенные библиотеки, реализующие такие вещи как "магазин приложений", "облачный сервис" и прочее прочее. Делать с 0 такое на Си займет кучу времени, а на яве уже есть готовое. Вы серьёзно? Магазин приложений и облачный сервис? На микроконтроллере? Это угар. Любая такая библиотека захочет многих мегабайтов. И сразу "зравствуй, настоящий взрослый линух". МК тут вообще ни с какого бока. Цитата(k000858 @ Jul 2 2015, 13:16)  2) отдельные части (например элементы интерфейса, если речь идет о HMI устройстве) может разрабатывать любой ява-программер, которому ничего не известно о внутренностях контроллера. Собственно, см. комментарий выше. Я думаю, вы долго будете втолковывать "любому ява-программеру", что нельзя просто так взять и создать любой объект, потому что пямяти всего 100 килобайт.
|
|
|
|
|
Jul 2 2015, 10:41
|

Местный
  
Группа: Участник
Сообщений: 319
Регистрация: 31-01-12
Пользователь №: 69 978

|
Цитата(scifi @ Jul 2 2015, 14:29)  Любая такая библиотека захочет многих мегабайтов. И сразу "зравствуй, настоящий взрослый линух". МК тут вообще ни с какого бока. да лаааадно. не думаю, что библиотека сетевого приложения (TCP клиент для работы с облаком или магазином прилоежний) занимает магабайты. вряд ли вообще больше библиотек графических интерфейсов какие запускал на своих эвал платах сегодня. Цитата(scifi @ Jul 2 2015, 14:29)  Собственно, см. комментарий выше. Я думаю, вы долго будете втолковывать "любому ява-программеру", что нельзя просто так взять и создать любой объект, потому что пямяти всего 100 килобайт. наверное эти технические тонкости оговариваются на берегу, как типа "размер интерфейса" (ака экранчик у девайса маленький, а не как у планшетника на андройде"). не вижу тут вообще каких то трабл. в данный момент так и работаем: есть девайс, его пишет Си-программер, в проекте участвую веб-программеру (оттачивающие веб-морду) и тд. дак вот в примере с явой гораздо большую часть работы может выполнять чисто ява-программер, которому до фени, на чем там будет это работать, на андройде или на микро-контроллере. далее отказываюсь спорить на эту тему. хотел бы почитать об опыте реальных программеров реализующих такие задачи.
|
|
|
|
|
Jul 2 2015, 10:41
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(k000858 @ Jul 2 2015, 13:16)  ...На яве можно кто же спорит, что "можно". Если сейчас начнём перечислять что можно на том или ином языке - то свалимся в холифар длины органов. всё становится на свои места, когда речь заходит что НУЖНО заказчику. а на чём и с помощью чего делать - это то дело двадцать пятое = подсчитываешь плюсы и минусы и сравниваешь... Цитата(k000858 @ Jul 2 2015, 13:16)  ..."облачный сервис" ... вот объясните дураку - что такое "облако" ? А то до сих пор все только говорят как это круто. А что это такое - пока никто не сказал. Чем это например отличается от клиент-серверной технологии, с точки зрения определения этого понятия? Цитата(k000858 @ Jul 2 2015, 13:16)  ...на Си займет кучу времени... Как бы нет проблем позвать что то уже готовое и из сей и из азма. В конечном итоге-то внизу всё из-азм!  Цитата(k000858 @ Jul 2 2015, 13:16)  ...любой ява-программер, которому ничего не известно о внутренностях контроллера... Вы абсолютно правы конечно-же. В теории. Но на практике всё упирается в хозяйственные отношения. Закон КГБ рулит (качество-график-бюджет). Т.е. если требуемый функционал можно достичь на дохлом МК, с программой в двести строк... То разовая работа на азме дешевле миллионной партии железа, даже если на азме мегабайты кода... Да с возрастанием объёма на сцену выходят другие законы уже, и у азма они выйдут быстрее чем на сях либо джаве. Но это уже повод сделать итерацию в осмыслении и изменении платформы на более высокоуровневую.
|
|
|
|
|
Jul 2 2015, 11:08
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
я мучал пару лет назад c# под stm32f4 впечатления противоположные супер круто, однако не дотянуло до того, что я ожидал - фреймворк прилично урезан т.е. не всё идёт, нужно допиливать если писать с нуля, то конечно проще не было у меня стандартной сетевухи, а нестандартную я не смог, а так бы на нём остался если уж выбирать платформу, то дотнет - гораздо приятнее думаю, микрософт к осени допилит её под демоборду с новым stm32f7, с сеткой и дисплеем и будет вообще бомба Цитата(k000858 @ Jul 2 2015, 10:16)  любой ява-программер, которому ничего не известно о внутренностях контроллера и будет очередное "как зажечь три светодиода от 220 вольт", ага
|
|
|
|
|
Jul 2 2015, 11:14
|

Местный
  
Группа: Участник
Сообщений: 319
Регистрация: 31-01-12
Пользователь №: 69 978

|
Цитата(Огурцов @ Jul 2 2015, 15:08)  я мучал пару лет назад c# под stm32f4 впечатления противоположные супер круто, однако не дотянуло до того, что я ожидал - фреймворк прилично урезан т.е. не всё идёт, нужно допиливать если писать с нуля, то конечно проще не было у меня стандартной сетевухи, а нестандартную я не смог, а так бы на нём остался если уж выбирать платформу, то дотнет - гораздо приятнее думаю, микрософт к осени допилит её под демоборду с новым stm32f7, с сеткой и дисплеем и будет вообще бомба
и будет очередное "как зажечь три светодиода от 220 вольт", ага почему же. рядовой явер может отточить движок графического движка, ну там экранчик с менюшками управляшками и тд. на Си это займет кучу времени, а явер имхо и за пол дня справится. при том он и понятия не будет иметь как ЭТО управляет, ножками контроллера или по сети через другую железку. примеров можно массу привести, но далее уже коммерция :-P
|
|
|
|
|
Jul 2 2015, 11:23
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(Огурцов @ Jul 2 2015, 14:08)  ... дотнет - гораздо приятнее думаю, микрософт к осени допилит её под демоборду с новым stm32f7, с сеткой и дисплеем и будет вообще бомба.. про всё высокоуровневое и скорость... Из жизни... Был в гостях одной конторы, года три назад. Контора обеспечивала игрища на бирже. Обсуждали задачку обработки данных от/к клиентов без использования объектов синхронизации (Win32). В контексте беседы я задал вопрос - почему на сях пытаются делать(си плас плас точнее, не суть). Они честно ответили - переходят с си-бимоля. Наелись его тормозов, не устраивает по скорости их это решение. Контора прибанковская, денежная, в центре мсквы... Я о чём... Там где нет явной задачи универсальности для третьей стороны девайса - смысла нет крутить Джава машины либо домы дотнетов - в ущерб основных плюсов - скорости, реалтаймности.
Сообщение отредактировал kolobok0 - Jul 2 2015, 11:32
|
|
|
|
|
Jul 2 2015, 11:30
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(kolobok0 @ Jul 2 2015, 12:23)  Контора обеспечивала игрища на бирже вотжежблин, одно дело ui писать, другое потоковое взаимодействие серверов на сетке 10g какое к чорту си, там fpga не успевает - хотят быстрее Цитата(scifi @ Jul 2 2015, 12:28)  Любой нетривиальный апплет ожидает а если тривиальный ? если речь о связи мк 2 мк, зачем там нетривальности
|
|
|
|
|
Jul 2 2015, 11:35
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(Огурцов @ Jul 2 2015, 14:30)  ...если речь о связи мк 2 мк, зачем там нетривальности а зачем ява то тодысь? при некой похожей задачи делаю клиент на писюке броузер-мк1 вэб морда с JScript-модбас ethernet-мк2 или клиент на писюке exe-модбас Ethernet-мк1,мк2... или клиент Android-wifi-мк1 вэб морда с JScript-модбас с ethernet-мк2... а блин, Вам броузер на мк....кхм...кучеряво но возможно...
Сообщение отредактировал kolobok0 - Jul 2 2015, 11:40
|
|
|
|
|
Jul 2 2015, 12:26
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(Огурцов @ Jul 2 2015, 15:04)  и на пк, и на смартфоне и ещё чёрте где а мк - для гарантии надёжности Всё таки браузер в МК - это пока из области фантастики. Можно сделать в МК обычный сишный клиент, а в браузере (для ПК) - жабаскриптный, и заставить их разговаривать по одному протоколу. Это, конечно, подразумевает синхронизацию функционала клиентов. Если такая синхронизация кажется трудоёмкой, можно придумать псевдоязык, который будет одинаково интерпретироваться в МК (сишным интерпретатором) и в браузере (интерпретатором на жабаскрипте), и на этом языке сделать клиент, который будет работать одинаково и в МК, и в браузере. Это всё геморрой, конечно, и цель выглядить оч. сомнительно, чтобы его оправдать.
|
|
|
|
|
Jul 3 2015, 03:02
|

Профессионал
    
Группа: Свой
Сообщений: 1 003
Регистрация: 20-01-05
Пользователь №: 2 072

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

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(k000858 @ Jul 2 2015, 14:14)  почему же. рядовой явер может отточить движок графического движка, ну там экранчик с менюшками управляшками и тд. на Си это займет кучу времени, а явер имхо и за пол дня справится. при том он и понятия не будет иметь как ЭТО управляет, ножками контроллера или по сети через другую железку. примеров можно массу привести, но далее уже коммерция :-P Да ничего кроме пустословия вы не приведете в пример. Ява с GUI от Oracle закрытый продукт и обсуждать тут его нет никакого смысла. Других сравнимых embeddded Яв нв рынке нет. С тем же успехом можно обсуждать такие коммерческие движки как PEG, uC/GUI, emGUI, Inflexion UI ... В uC/GUI например с незапамятных времен есть и построитель экранов и редактор фонтов. Там также есть и оконный интерфейс, и прямое использование любых TTF фонтов без всяких конвертеров. В Яве до сих пор этого нет. Ну и кто круче?
|
|
|
|
|
Jul 3 2015, 12:59
|

Частый гость
 
Группа: Участник
Сообщений: 156
Регистрация: 27-09-06
Из: Irkutsk
Пользователь №: 20 747

|
Цитата ничего нового - IS2T Пардон, повторяюсь. Соглааситесь, за деньги немалый выбор GUI, IDE, RTOS, стеков, яв и прочего вкусного, но ждать подобного нахаляву глупо, быстрее С изучить )
--------------------
Блог о разработке на CC430, SIM900, GPS, ARM и не только...
|
|
|
|
|
Jul 3 2015, 13:17
|

Гуру
     
Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463

|
Это кому как, если C/C++ освоен, то выбирать приходится между C# и Java, мой выбор (и многих кстати) за Java. Проще удобней, много наработок в инете. C#, с точкой нет - пока кошмарики, это все касаемо только ембеддеда. А если лень победила творчество и потребности в развитии, то да сиди на сях, строчи и отлаживай GUI, IDE, RTOS, стеки ...
|
|
|
|
|
Jul 4 2015, 03:51
|

Частый гость
 
Группа: Участник
Сообщений: 156
Регистрация: 27-09-06
Из: Irkutsk
Пользователь №: 20 747

|
Цитата вот программе на Java пофиг, мульти-платформенная она. Ага, только умные люди постарались сделать за вас всю гразную работу, чтоб вы даже не задумывались о выделении/освобождении памяти, зачем, ее же так много. Вот только тема о Cortex-Mx и в данном случае это пустая беседа из разряда "21 век на дворе, а почему вы пишите на C/C++". Умиляет
--------------------
Блог о разработке на CC430, SIM900, GPS, ARM и не только...
|
|
|
|
|
Jul 4 2015, 06:37
|

Частый гость
 
Группа: Участник
Сообщений: 156
Регистрация: 27-09-06
Из: Irkutsk
Пользователь №: 20 747

|
Цитата реализуете исключения на си ? ExceptionHandler
--------------------
Блог о разработке на CC430, SIM900, GPS, ARM и не только...
|
|
|
|
|
Jul 4 2015, 07:42
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
мы ж говорили об утечке памяти мне кажется, что вы совсем не о тех исключениях пример, если что: Код try { File.createTempFile("prefix", ""); } catch (IOException e) { // Handle IOException } если что-то пошло не так: - освобождаем буферы - закрываем файлы - можем делать это вложенно внутри одной функции - можем откатываться на неопределённое количество уровней вызовов в разных функциях - можем проанализировать причину исключения, всех исключений и всё это в три строчки, без всякого шаманства, как в вашем примере
|
|
|
|
|
Jul 4 2015, 12:12
|

Частый гость
 
Группа: Участник
Сообщений: 156
Регистрация: 27-09-06
Из: Irkutsk
Пользователь №: 20 747

|
Мы о разных вещах говорим, в примере я вам показал саму кухню железячного механизма исключения на Cortex-M3/4. Спорить тут бесполезно, я не принижаю достоинства Java, напротив, высокий уровень абстракции и кроссплатформенность это гуд, возможно это стало не последней причиной в выборе Java как платформы для Android-приложений, но никто не знает что стоит за Java-машиной, и как она транслирует слой абстракции на платформу. Удобства оборачиваются повышенными требованиями к ресурсам платформы, от того для Cortex-M это пустой звон. А исключения на голом C обрабатываются макросами setjmp() и longjmp()
Сообщение отредактировал Mihey_K - Jul 4 2015, 12:29
--------------------
Блог о разработке на CC430, SIM900, GPS, ARM и не только...
|
|
|
|
|
Jul 6 2015, 04:38
|
Знающий
   
Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153

|
Цитата(Aner @ Jul 3 2015, 20:44)  вот программе на Java пофиг, мульти-платформенная она. Это не так. Программа на Яве мультиплатформенна до тех пор, пока мультифплатформенны библиотеки, на которые она опирается. С тем же успехом мультиплатформенна программа на Си. Т.е. хэлловорлд мультиплатформен и возможно даже переносим на уровне байт-кода, а вот что-то посложнее уже большой вопрос Цитата(Огурцов @ Jul 4 2015, 10:42)  Код try { File.createTempFile("prefix", ""); } catch (IOException e) { // Handle IOException } если что-то пошло не так: - освобождаем буферы - закрываем файлы - можем делать это вложенно внутри одной функции - можем откатываться на неопределённое количество уровней вызовов в разных функциях - можем проанализировать причину исключения, всех исключений и всё это в три строчки, без всякого шаманства, как в вашем примере Это ж все о С++, да?  Кстати в данном коде в Яве файл будет закрыт при сборке мусора (т.е. неизвестно когда), а в плюсах - при выходе из блока
|
|
|
|
|
Jul 6 2015, 05:58
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(Огурцов @ Jul 4 2015, 10:42)  если что-то пошло не так: - освобождаем буферы - закрываем файлы - можем делать это вложенно внутри одной функции - можем откатываться на неопределённое количество уровней вызовов в разных функциях - можем проанализировать причину исключения, всех исключений и всё это в три строчки, без всякого шаманства, как в вашем примере Это в исходном тексте 3 строчки. Но это всё должно обеспечиваться. Любой язык верхнего уровня не устраняет проблемы, а скрывает их. Чем больше возможностей, тем больше код который их обеспечивает. Но это ведь тоже кем-то написано. Не уверен, что без косяков. В случае чего запаришься искать. Вот и получается что вся эта многоплатформенность, как бы это сказать, не совсем полная. Например отладили Вы код на писишке и радуетесь. Запускаете на МК, компилируя той же студией и из того же проекта и те же исходники, - короче всё тоже.... И бац что-то не так. Потому что библиотеки разные движок разный, компилятор не тот на самом деле ... А что же тогда то? Да только среда разработки. К этому ли стремились?
|
|
|
|
|
Jul 6 2015, 06:56
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(Непомнящий Евгений @ Jul 6 2015, 07:38)  Кстати в данном коде в Яве файл будет закрыт при сборке мусора (т.е. неизвестно когда), а в плюсах - при выходе из блока Прям таки закрыт? С чего это он будет нормально закрыт если нормально не смог быть открыт. Вся эта мишура работает только на процессорах с виртуальной памятью. Где процесс можно взять и убить спокойно, а памяти море. На Cortex-M такой код неприемлем.
|
|
|
|
|
Jul 6 2015, 07:57
|
Знающий
   
Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153

|
Цитата(AlexandrY @ Jul 6 2015, 09:56)  Прям таки закрыт? С чего это он будет нормально закрыт если нормально не смог быть открыт. Я рассматривал случай нормальной работы, без вылета исключения. В Яве надо или явно закрывать файл в finally или использовать try-with-resources. В плюсах есть деструкторы, этот момент упрощается. Цитата Вся эта мишура работает только на процессорах с виртуальной памятью. Где процесс можно взять и убить спокойно, а памяти море. На Cortex-M такой код неприемлем. Тут выше приводили примеры микро JVM. Я с таким не сталкивался, интересно насколько существенные там ограничения Цитата(Aner @ Jul 2 2015, 12:52)  - независимость от железа, да А за счет чего эта независимость? Просто переферия даже в рамках STM32F1 - F2 - F3 - F4 местами довольно сильно отличается. Я уже молчу про STM - другой производитель. Там написан какой-то "толстый" слой совместимости, который эмулирует возможности, отсутствующие в железе? Или возможности по использованию железа ограничены? Или для использования железа мы пишем вставки на Си (прощай платформонезависимость) ? К примеру, в F373 есть автонастройка скорости УАРТа. А в F2/F4 ее нет. Что будет с кодом на Java, который использует эту функцию, при запуске на F4?
|
|
|
|
|
Jul 6 2015, 10:21
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(Непомнящий Евгений @ Jul 6 2015, 10:57)  К примеру, в F373 есть автонастройка скорости УАРТа. А в F2/F4 ее нет. Что будет с кодом на Java, который использует эту функцию, при запуске на F4? Ну это уж такая мелочь.... Там, например, явно указано что графика реализована путём формирования картинки в памяти МК. То есть максимально софтово. Понятно, что такой расклад обеспечивает максимальную совместимость между платами. Иначе куча контроллеров, и фич различных. Но этот подход является самым медленным. Цитата Предполагается, что качество библиотек выше качества прикладного кода sm.gif Их просто больше применяли и тестировали. Здесь с Вами соглашусь. 2500$ на экземпляр как бы обязывает ... Просто ограничения будут очень мелким почерком ... В принципе продукт есть - всё можно почитать, возможности оценить.
|
|
|
|
|
Jul 6 2015, 11:26
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(SasaVitebsk @ Jul 6 2015, 05:58)  Любой язык верхнего уровня не устраняет проблемы, а скрывает их да не важно это всё, главная задача любого языка облегчить написание и упростить понимание программы если в жабе обёртка исключения занимает три строчки и может быть вложенной, а в си, единственная - три страницы и три блока сигарет, то догадайтесь, какой язык победит если в дотнете фреймворк с любыми возможными классами и методами, обновляющийся регулярно, а в си - непонятно кем и как написанная библиотека десять лет назад, то возникает тот же вопрос хотя нет, не возникает - ответ ведь очевиден
Сообщение отредактировал Огурцов - Jul 6 2015, 11:28
|
|
|
|
|
Jul 6 2015, 11:30
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(Огурцов @ Jul 6 2015, 14:26)  если в жабе обёртка исключения занимает три строчки и может быть вложенной, а в си, единственная - три страницы и три блока сигарет, то догадайтесь, какой язык победит "Телевидение. Будет одно сплошное телевидение." Всё это интересно, конечно. Но если посмотреть вокруг, почему-то не видно оглушительной повсеместной победы жабы в мире МК. Наверное, на это есть какие-то причины, не правда ли? Кроме заговора сишников, конечно
|
|
|
|
|
Jul 6 2015, 20:08
|

Гуру
     
Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463

|
QUOTE (Огурцов @ Jul 2 2015, 23:24)  раз не хотите халявного дотнета, ну вот вам жаба: MicroEJ Home Automation application running on STM32F429-DISCOVERY http://www.is2t.com/portfolio-item/microej...f429-discovery/Повнимательнее посмотрел на эту бяку IS2T. Вообщем жуть. Явы виртуальной там оч и оч мало, что удивило можно сишные куски добавлять, отдельно компилить и тп. Вообщем солянка мультивитаминная какая-то у этих французов. Причем ява старая сановская вторая или третья 2006 года, не выше! То есть совсем не развитая, поэтому 29 кило всего. И классов не более 4Кило, что то еще от 8-битников осталось. Короче нет вам этой виртуальной явы как думалось. Хотя SDK полный всего. QUOTE (mantech @ Jul 6 2015, 23:01)  Ну да, вот пока не сделают аппаратную поддержку жабы в мелких мк - "кина не будет"  Это вы не понимаете о чем пишите. Аппаратная поддержа виртуальной ява машины делается легко почти на любом проце, начиная с 8-битников, а вот затем ... QUOTE (AlexandrY @ Jul 6 2015, 10:56)  Прям таки закрыт? С чего это он будет нормально закрыт если нормально не смог быть открыт.
Вся эта мишура работает только на процессорах с виртуальной памятью. Где процесс можно взять и убить спокойно, а памяти море. На Cortex-M такой код неприемлем. Начиная с Cortex-M4 все там нормально получается в тех рамках виртуальной ява машины. Гарбаш колектора там трудятся прилично. 65К классов вам думаю будет достаточно для многих задач. Многих привлекала простая реализация TCP/IP стака и его уровни.
|
|
|
|
|
Jul 7 2015, 02:41
|

Местный
  
Группа: Участник
Сообщений: 319
Регистрация: 31-01-12
Пользователь №: 69 978

|
Цитата(Aner @ Jul 7 2015, 00:08)  Повнимательнее посмотрел на эту бяку IS2T. мне эта SDK тоже жутко не понравилась есть альтернативы? как собрать аналог самостоятельно из классического эклипса? сейчас программлю под арм испод эклипса + GCC. Как это довести до "программить для явы"?
|
|
|
|
|
Jul 7 2015, 06:06
|

Гуру
     
Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463

|
QUOTE (_pv @ Jul 7 2015, 09:30)  уже делали, правда не в самых мелких МК - оказалось никому не нужно. да тут не нужно, там нужно. QUOTE (k000858 @ Jul 7 2015, 06:41)  мне эта SDK тоже жутко не понравилась есть альтернативы? как собрать аналог самостоятельно из классического эклипса? сейчас программлю под арм испод эклипса + GCC. Как это довести до "программить для явы"? Никак. Самому взять недоделаную виртуальную яву, из любимого GCC и сваять, ограничившись ненужным. QUOTE (_pv @ Jul 7 2015, 09:30)  уже делали, правда не в самых мелких МК - оказалось никому не нужно. Это вы про андройд, то что он никому не нужен? Ну не скажите ...
|
|
|
|
|
Jul 7 2015, 06:09
|
Знающий
   
Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153

|
Цитата(k000858 @ Jul 7 2015, 05:41)  как собрать аналог самостоятельно из классического эклипса? сейчас программлю под арм испод эклипса + GCC. Как это довести до "программить для явы"? А в чем вопрос то? Эклипс для явы умеет запускать тот же ant, а через него вы можете цеплять любые действия... Как я понимаю для начала вам надо определиться с JVM, а дальше смотреть инструкции к ней - стандартный ли там компилятор, как загружать полученное в процессор и т.п...
|
|
|
|
|
Jul 7 2015, 09:03
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(scifi @ Jul 6 2015, 14:30)  Всё это интересно, конечно. Но если посмотреть вокруг, почему-то не видно оглушительной повсеместной победы жабы в мире МК. Да и без МК тоже оглушительной победы не наблюдается... Оценивать язык, по простоте обработки исключений, как то не убедительно ... Как говорится: Женитьба существенно помогает решать проблемы, которых у неженатых вообще нет. Сначало вводим принцип написания, где реалтаймовое динамическое выделение памяти, а потом радуемся изяществу сборщика мусора.
|
|
|
|
|
Jul 7 2015, 09:19
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(Aner @ Jul 7 2015, 13:06)  Это вы про андройд, то что он никому не нужен? Ну не скажите ... я про Jazelle, которая в мелких МК (хоть ARM9х и похороненный атмелом AVR32AP нельзя назвать мелкими МК, линукс запустить могли, но судя по википедии даже был даже ARM7 c буквами EJ) как-то не прижилась, за ненадобностью. из кортексов -M выпилили совсем. в последних -А вроде бы тоже нету, им, как в анекдоте про лося и 50гр, похоже дури и так хватает, справятся и без аппаратного ускорения.
|
|
|
|
|
Jul 7 2015, 09:26
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(SasaVitebsk @ Jul 7 2015, 09:03)  Сначало вводим принцип написания, где реалтаймовое динамическое выделение памяти, а потом радуемся изяществу сборщика мусора. да, это было оригинальное решение - запретить явное уничтожение объектов в дотнете почему-то решили сделать так же криво в результате имеем полностью непредсказуемое, по задержкам, поведение программы хотя вот за остальное, типа качества сбора мусора, я не беспокоюсь
|
|
|
|
|
Jul 7 2015, 09:43
|
Знающий
   
Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153

|
Цитата(Огурцов @ Jul 7 2015, 12:26)  да, это было оригинальное решение - запретить явное уничтожение объектов в дотнете почему-то решили сделать так же криво в результате имеем полностью непредсказуемое, по задержкам, поведение программы Ну вот я явно уничтожил объект - а как быть со всеми ссылками на него? Получается, надо все эти ссылки обнаружить и обнулить? ИМХО, с GC это малосовместимо. А если исключить GC, то в чем преимущества Явы перед теми же С++? Цитата хотя вот за остальное, типа качества сбора мусора, я не беспокоюсь Сборка мусора приводит к остановке всей программы. В ряде применений это может быть критично
|
|
|
|
|
Jul 7 2015, 09:57
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(Aner @ Jul 7 2015, 09:41)  глючны пре-глючный весь. судя по вашим сообщениям - у вас минимум десятилетний стаж разработки на шарпе борланд си билдер был глючный преглючный почему-то в отличие от своей сестрёнки дельфи Цитата(Непомнящий Евгений @ Jul 7 2015, 09:43)  Ну вот я явно уничтожил объект - а как быть со всеми ссылками на него? Получается, надо все эти ссылки обнаружить и обнулить? при нормальном языке это как-то само собой получается и никогда не вызывало напрягов а когда вызывало - можно было отследить утёчку памяти и прибить проблемы в зародыше зачем придумали gc - я не хочу понимать, видимо для совсем безобразного программирования
Сообщение отредактировал Огурцов - Jul 7 2015, 09:57
|
|
|
|
|
Jul 7 2015, 10:13
|
Знающий
   
Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153

|
Цитата(Огурцов @ Jul 7 2015, 12:57)  при нормальном языке Это ж каком  ? Цитата зачем придумали gc - я не хочу понимать, видимо для совсем безобразного программирования Гм. Ну не хотите gc и хотите кидать исключения - плюсы вам в помощь. Цитата(Aner @ Jul 7 2015, 12:47)  Небыло такого никогда, ищите ошибку в проге. на самом деле зависит от сборщика мусора. Тот, который не стопает, захватывает глобальную критическую секцию на каждую запись ссылки - что вообще говоря тоже не гуд
|
|
|
|
|
Jul 7 2015, 14:26
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(Непомнящий Евгений @ Jul 7 2015, 12:43)  ...а как быть со всеми ссылками на него? Получается, надо все эти ссылки обнаружить и обнулить? ИМХО, с GC это малосовместимо.... Сборка мусора приводит к остановке всей программы.... подсчёт ссылок на объект - это тривиальная задача, успешно решённая до появления явы-какавы или си бимоля. см. COM технологию. Как это совмещать - рекомендую книгу Джэфри Элджера C++ = там очень интересное и побуждающее чтиво. сборщик мусора приводит не только к остановке программы (если рассматривать форточки). а приостанавливает работу многих сервисов из ядра системы. связано с тем, что мелкомягкие давно пытаются (не безуспешно) подсадить на си бимоль всех кто пишет под форточки, явно или не явно. Тут правильно прозвучало - там идёт ышо и дефрагментация. Точнее распределение памяти там хитропопно завёруто и в момент освобождения - идёт копирование объектов из освобождаемого пула в новый. Т.к. на этот срез времени доступ к таким объектам запрещён, отсюда и замирание системы (особенно если память под си бимолем и иже юзается интенсивно, а не на уровне хэйлохты мир)...
|
|
|
|
|
Jul 7 2015, 16:00
|

Гуру
     
Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463

|
QUOTE (Огурцов @ Jul 7 2015, 18:33)  я его раздавил Голова не болела? QUOTE (kolobok0 @ Jul 7 2015, 18:26)  подсчёт ссылок на объект - это тривиальная задача, успешно решённая до появления явы-какавы или си бимоля. см. COM технологию. Как это совмещать - рекомендую книгу Джэфри Элджера C++ = там очень интересное и побуждающее чтиво.
сборщик мусора приводит не только к остановке программы (если рассматривать форточки). а приостанавливает работу многих сервисов из ядра системы. связано с тем, что мелкомягкие давно пытаются (не безуспешно) подсадить на си бимоль всех кто пишет под форточки, явно или не явно.
Тут правильно прозвучало - там идёт ышо и дефрагментация. Точнее распределение памяти там хитропопно завёруто и в момент освобождения - идёт копирование объектов из освобождаемого пула в новый. Т.к. на этот срез времени доступ к таким объектам запрещён, отсюда и замирание системы (особенно если память под си бимолем и иже юзается интенсивно, а не на уровне хэйлохты мир)... kolobok0, тут ява и решетка та что на писюках не интересна никак, тут про JVM в основном речь то, на Cortex-M, точнее с M4 скорее всего. А этот кострат очень живучь для многих приложений, он же переполз на A8...11 и там стал андройдом.
|
|
|
|
|
Jul 7 2015, 21:49
|

Частый гость
 
Группа: Участник
Сообщений: 156
Регистрация: 27-09-06
Из: Irkutsk
Пользователь №: 20 747

|
Jazelle давно есть на жирных Cortex-Axx, но оно и понятно - для Далвика. Цитата при нормальном языке это как-то само собой получается и никогда не вызывало напрягов Неужели вы думаете, что вшивый МК без MMU будет все за вас чистить и даже дефрагменировать? Для них даже усеченная реализация malloc/free/new/delete используется, а тут такие замашки. Надо выбирать - или только чистим мусор или забиваем на "преимущества" и выполняем пользовательский код
--------------------
Блог о разработке на CC430, SIM900, GPS, ARM и не только...
|
|
|
|
|
Jul 7 2015, 22:44
|

Частый гость
 
Группа: Участник
Сообщений: 156
Регистрация: 27-09-06
Из: Irkutsk
Пользователь №: 20 747

|
Все косяки от того, что существование полноценной JVM без платформы ОС это абсурд. У Oracle нет пункта скачать под IA64 или под Sparc, есть только под ОС. JVM не работает с голым железом. Например, она лишь дополняет работу с памятью, но всё также работая в виртуальной памяти и обрабатывая исключения ОС, если программа полезла в запрещенную область. И память выделяет/чистит она силами ОС. С оборудованием работает через системные вызовы. Портировать JVM легче под ОС, чем под голое железо, хотя бы потому, что вариаций ОС меньше и для работы с ними требуется меньше asm. И, наверное, стека TCP нет в JVM, а есть лишь надстройка над ОС. Создавая C++ Страуструп не пошел на компромисс монструозность/скорость исполнения кода, и теперь мы пользуем C++ на самых маленьких МК. И да, в нем нет стека TCP/IP и сборщика мусора.
--------------------
Блог о разработке на CC430, SIM900, GPS, ARM и не только...
|
|
|
|
|
Jul 8 2015, 04:10
|
Знающий
   
Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153

|
Цитата(kolobok0 @ Jul 7 2015, 17:26)  подсчёт ссылок на объект - это тривиальная задача, успешно решённая до появления явы-какавы или си бимоля. см. COM технологию. Как это совмещать - рекомендую книгу Джэфри Элджера C++ = там очень интересное и побуждающее чтиво. Подсчет ссылок - это такая полуавтоматическая технология сборки мусора. Проблема номер 1 - она не разруливает циклы (но есть штуки вроде weak_ptr, которые помогают это делать вручную). Проблема номер 2 - она тоже не слишком шустрая, и в некоторых случаях проигрывает gc Цитата сборщик мусора приводит не только к остановке программы (если рассматривать форточки). а приостанавливает работу многих сервисов из ядра системы. Ну если сервис написан под .NET, то да, эпизодически в нем происходит сборка мусора
|
|
|
|
|
Jul 8 2015, 06:16
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Как то пошло на общее осуждение технологии, вместо конкретных решений. Не ясно, нужно ли это топикстартеру? Но если честно, то мне любопытно. В самом деле, хотелось бы по крайней мере знать общие тенденции... ))
Хотелось бы в целом понять. Что именно привлекает автора? Скажем исключения - для си и для плюсов задача не сказать чтобы архисложная. Здесь больше зависит от того, как написано всё. Если широко используется динамическое выделение памяти или, к примеру, внешние библиотеки ну например FAT, TCP/IP стеки, то действительно, для начала требуется глубоко залезть в эти библиотеки. Если пишешь всё сам и с нуля, то это вообще не проблема. Как преимущество промелькнула возможность предварительной отладки проекта под писишкой. Ну я тут от обратного иду. Замутил себе симулятор на QT и шпарю. Правда я только GUI и некоторые другие вещи отлаживал. Ну типа клаву, флэш память. Но по хорошему можно и другие вещи прикрутить. Тоже вариант.
Ну если задача браузер написать, то тогда не совсем понятно. Наверное тогда лучше смотреть на более жирные камни с Linux или другой полноценной осью. Мне кажется.
Хотелось бы более конкретно преимущества услышать.
|
|
|
|
|
Jul 8 2015, 07:37
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(SasaVitebsk @ Jul 8 2015, 09:16)  Хотелось бы более конкретно преимущества услышать. Думаю, под "преимуществами" большинство видит только простоту программирования, чтоб не сидеть с чтением даташитов на мк, а просто впиндюрить программу с псишки... Но легко ничего не бывает, вот и нет ничего путного пока, да и не будет наверно. Могу только предположить то время, когда камни типа аллвиннера,рокчипа и т.п. будут со встроенной памятью, флешкой и будут стоить 3 копейки, что можно будет пихать их в новогодние гирлянды, то тогда мигание этими лампочками можно будет писать на жабе, в браузере или на пхп.... Вот тогда заживем!  ЗЫ. самому как-то захотелось простоты, решил замутить свой мк с вирт. машиной, но только ориентированной на работу с периферией, это еще куда ни шло, а жаба, от нее в таком случае какой толк??
Сообщение отредактировал mantech - Jul 8 2015, 07:40
|
|
|
|
|
Jul 9 2015, 05:08
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(SasaVitebsk @ Jul 9 2015, 07:51)  А оно и сейчас уже так... Потребность embedded программистах невысокая, зарплата низкая. Рулят различные php, java, и т.п. И з/п у них значительно выше. По крайней мере у нас. Причина, наверное, в том, что этих программистов могут нанять конторы из-за бугра. Впрямую или ч/з национального посредника. Такой вариант с embedded не просматривается ... Вот сами и ответили, почему... Спрос на разработки железа вообще и промэлектроники в частности гораздо меньше, чем на инет-магазины соцсети и всякую развлекуху и всяческое сопутствующее по, которое делается на всяких пхп и жабах - отсюда и невысокий спрос и зп... Но это не означает, что весь этот "ширпотреб" ломанется во встраиваемые решения - это разные сектора, у кого-то спрос больше у кого-то меньше, но не более того..
Сообщение отредактировал mantech - Jul 9 2015, 05:10
|
|
|
|
|
  |
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|