Перейти к содержанию
    

Olej

Свой
  • Постов

    365
  • Зарегистрирован

  • Посещение

Весь контент Olej


  1. Мысль такая, что юные дарования валом "задавались вопросом" как защитить их "гениальные творения" :santa2: ещё со времён раннего MS-DOS. Вы находитесь в разделе Linux, и в мире Linux, который является, вообще-то говоря open+free, где действуют GPL-лицензии в разных вариантах, которые, кстати, предписывают и что вы со своим "гениальным творением" имеете право делать, а чего нет ... раз уж вы опираетесь на Linux ... да ещё и на другие GNU инструменты.
  2. Это всё (Orange Pi vs Nano Pi ... или vs Rapsberry Pi) к самому типу SBC/SoC не имеет никакого отношения: - для того же Orange Pi есть ... ну не меньше 2-х десятков авторов-технологий сборки OS, и каждая ведёт себя по-разному - есть постоянно обновляемые сборки от независимого проекта Armbian - очень приличные сборки и очень умный проект ... не в пример "оригинальной" сборке от производителя Orange Pi - я сам с помощью BuildRoot, простейшими усилиями, собирал 3-4 вариантов минимальных конфигураций CLI Linux ... всё очень адекватно.
  3. Собирать рабочий образ realtime системы с Xenomai довольно противное занятие, и описано здесь - Installing Xenomai 3.x: 1. Нужен патч ipipe исходников майнлайнового ядра (с kernel.org), патч проекта . Берётся здесь - Index of /downloads/ipipe/v4.x, под свою процессорную архитектуру: [DIR] arm/ 12-Jun-2018 19:15 - [DIR] arm64/ 08-Apr-2018 16:47 - [DIR] blackfin/ 26-Mar-2018 09:31 - [DIR] powerpc/ 26-Mar-2018 09:31 - [DIR] x86/ 26-Mar-2018 17:54 - Это патчи проекта Adeos (Adaptive Domain Environment for Operating Systems) (любопытно почитать). Патчи изготавливаются далеко не под все версии ядра, например для ARM: [TXT] ipipe-core-4.14.36-arm-1.patch 12-Jun-2018 19:12 587K [TXT] ipipe-core-4.4.71-arm-9.patch 03-Oct-2017 12:35 672K [TXT] ipipe-core-4.9.51-arm-4.patch 26-Mar-2018 09:16 700K [DIR] older/ 12-Jun-2018 19:13 - 2. Собрать новое ядро и установить в системе Linux... 3. Скачать Xenomai real-time core, собрать из исходников и установить... 4. Писать свои realtime task в Posix-нотации (это новинка в Xenomai, они называют это skin-ы), но компилировать специфичным Makefile: XENO_DIR = /usr/xenomai XENO_CONFIG := $(XENO_DIR)/bin/xeno-config CFLAGS := `$(XENO_CONFIG) --posix --cflags` LDFLAGS := `$(XENO_CONFIG) --posix --ldflags` CC := `$(XENO_CONFIG) --cc` all: main_posix lb1 main_posix: main_posix.c $(CC) -Wall $(CFLAGS) $< $(LDFLAGS) -o $@ -lanalogy -ltrank -lmodechk -lcopperplate ... И запускать потоки с realtime диспетчированием Linux (естественно, это потребует root): ... struct sched_param sparam; sparam.sched_priority = 99; rc = pthread_create( &thread, NULL, TaskCode, NULL ); assert( 0 == rc ); rc = pthread_setschedparam( thread, SCHED_FIFO, &sparam ); ... К счастью, на "попробовать" есть готовые публично доступные образы системы, от одного из голландских университетов, которые они используют в учебном спецкурсе по embedded системам: - образ SD-карты для Rapsberry Pi: Raspberry Pi image for the Pi zero,1,2,3 with Xenomai 3.0.5 on Raspbian linux 4.1.y Debian 8 jessie - образ виртуальной машины под VirtualBox: VirtualBox Images for Xenomai 3.0 and Xenomai 2.4 И тот, и другой вариант мной проверен на работоспособность и адекватность.
  4. Не грузится linux

    Если бы так! :crying: В mainline ядре поддержки Н3 до сих пор нет. Сейчас пока всё у Allwinner делается через U-Boot, он сам настраивает HDMI, создает под это фреймбуфер и передает его ядру в готовом виде... (только мне никто не может подсказать как эта технология называется). Ядро работает только с /dev/fb*. Свежий BuildRoot прекрасно поддерживает эту плату (это команда в корневом каталоге BuildRoot): [olej@xenix buildroot-master]$ make list-defconfigs | grep orangepi orangepi_lite_defconfig - Build for orangepi_lite orangepi_one_defconfig - Build for orangepi_one orangepi_pc2_defconfig - Build for orangepi_pc2 orangepi_pc_defconfig - Build for orangepi_pc orangepi_pc_plus_defconfig - Build for orangepi_pc_plus orangepi_plus_defconfig - Build for orangepi_plus orangepi_prime_defconfig - Build for orangepi_prime orangepi_win_defconfig - Build for orangepi_win orangepi_zero_defconfig - Build for orangepi_zero orangepi_zero_plus2_defconfig - Build for orangepi_zero_plus2 Проблема в том, что сборка BuildRoot создаёт компактный (~75Mb) образ для embedded применений, работающий через UART отладочную консоль, но не инициализирует, локальный дисплей Orange Pi на HDMI. См. сюда: Buildroot: создание образа Orange Pi
  5. В модели NAPI есть такой важный параметр как счётчик числа сетевых пакетов, при приёме меньше которого драйвер возвращается из режима программного пулинга и переходимт в режим ожидания прерываний. Поиграйтесь с этим параметром. P.S. Может подскажет какую мелочь, из об ласти сетевых драйверов или модулей фильтров сетевых протоколов вот этот текст: Практикум по Linux Kernel. Ну и Сетевое программирование в Linux - здесь о стыке сокетных буферов в ядре с сокетами простанства пользователя.
  6. Raspberrypi: RASPBIAN

    Господи! :crying: Пацаны ... Rapspbian и все подобные сборки под Rapsberry Pi, Orange Pi и др. - это всё такой же Linux, как он есть в любых ... бубунтах, дебианах или разных красных шапках... И в Linux есть уже за 28 лет сложившиеся технологии, привычки и инструменты. Что ж вас так преёт в ту "выньду"?! Чтоб заниматься с Linux "через жопу". :crying: Почитайте тут: Разработка программных проектов в Linux.
  7. Здесь есть рядом похожая тема Buildroot: создание образа и перепрошивка i.MX6ULL, но ... не хочется сорить - там немного о другом. Вопрос: в BuildRoot (последних) есть дефаултные конфигурации: [olej@xenix buildroot-master]$ make list-defconfigs | grep orangepi orangepi_lite_defconfig - Build for orangepi_lite orangepi_one_defconfig - Build for orangepi_one orangepi_pc2_defconfig - Build for orangepi_pc2 orangepi_pc_defconfig - Build for orangepi_pc orangepi_pc_plus_defconfig - Build for orangepi_pc_plus orangepi_plus_defconfig - Build for orangepi_plus orangepi_prime_defconfig - Build for orangepi_prime orangepi_win_defconfig - Build for orangepi_win orangepi_zero_defconfig - Build for orangepi_zero orangepi_zero_plus2_defconfig - Build for orangepi_zero_plus2 Заказываем дефаултный конфиг: [olej@xenix buildroot-master]$ make orangepi_one_defconfig mkdir -p /home/olej/buildroot-master/output/build/buildroot-config/lxdialog PKG_CONFIG_PATH="" make CC="/usr/bin/gcc" HOSTCC="/usr/bin/gcc" \ obj=/home/olej/buildroot-master/output/build/buildroot-config -C support/kconfig -f Makefile.br conf /usr/bin/gcc -D_GNU_SOURCE -D_DEFAULT_SOURCE -DCURSES_LOC="<ncurses.h>" -DNCURSES_WIDECHAR=1 -DLOCALE -I/home/olej/buildroot-master/output/build/buildroot-config -DCONFIG_=\"\" /home/olej/buildroot-master/output/build/buildroot-config/conf.o /home/olej/buildroot-master/output/build/buildroot-config/zconf.tab.o -o /home/olej/buildroot-master/output/build/buildroot-config/conf # # configuration written to /home/olej/buildroot-master/.config # А дальше правим конфигурации под свои потребности... Образ .img собран, накатан на SD-карточку, загружен... Вся загрузка через UART идёт на отладочную консоль ... до login и далее ... Но локальный монитор при этом глухо не инициализируется, только UART-консоль. В обсуждениях (на вопрос "куда копать") пишут: Может кто прояснить происходящее? Как называется эта технология? :laughing: ... Куда копать?
  8. Может кому-то пригодится: - кроме форвардинка X-протокола, данные X11 можно просто тунеллировать в SSH протогол; - в Linux это делается просто, при открытии сессии SSH, типа: $ ssh -X [email protected] - и наслаждайтесь... ;) - что там и как у вас в Windows, не скажу, не знаю ... Windows уже лет 15 в руках не держал... - но там в инструменте SSH, putty какого-нибудь, будет такая опция... P.S. Это гораздо проще.
  9. У make существует огромное число внутренних (дефаултных) правил, переменных, суффиксов и т.д. Вы их можете все посмотреть так: $ make -p > make.suffix ... (я потому и советую переадресовать в файл, а потом изучить, что их число огромное) Здесь вам перевод (не самый свежий, но достаточно ... для беглого чтения, там объём большой): GNU Make. Программа управления компиляцией. GNU make Версия 3.79. Апрель 2000, авторы: Richard M. Stallman и Roland McGrath, перевод: Владимир Игнатов, 2000. Подробнее про идеологию технику сборки под Linux можете почитать здесь: Разработка программных проектов в Linux.
  10. Кто использует? Кто что может сказать по этому поводу? Начну с вот этого: How fast is fast enough? Choosing between Xenomai and Linux for real-time applications Это Кембриджкий университет, 17 стр., с результатами тестирования. И это очень похоже на правду. И это результаты не уступающие хвалёной OS QNX. Там же - сравнения с более традиционным RTLinux с CONFIG PREEMPT RT - который не идёт ни в какое сравнение. Кто собирал ядро Linux с патчами под Xenomai Cobalt (3.05-3.07)? В принципе, ядро с Xenomai для embedded применений позволяют собрать последние версии BuildRoot. Есть у кого опыт и успехи в этом деле? А я потом :biggrin: поделюсь своими знаниями и находками относительно Xenomai.
  11. В Linux обычно (для обычных потоков) вообще особая политика шедулирования, O(0) как они её называют и которой сильно гордятся :biggrin: Даже с RR шедулирование "по кругу" происходит по системному тику ядра, переменная HZ ядра, обычно равная 1000, а это значит 1 ms, ... тогда совершенно не понятно ваши "~550мс". У вас точно расставлены потокам приоритеты реального времени, а не nice? Проверяли ли вы отладкой, что они действительно приняты потоками? (нет ошибки при установке).
  12. Информация любопытная... познавательная... Только вряд ли "кому-нибудь поможет", ... потому как OS QNX на сегодня, на 36-м году своей жизни (с 1982) - абсолютно мёртвое изделие, конченое ... и даже не только в преждних версиях 6.5.Х, а даже в 7.0 от марта 2017 - это всё "потуги". Проторговались, прожлобились... :santa2: ... при активной помощи питерской "СВД Встраиваемые системы" :wacko:
  13. Абсолютно верно сформулировано. На самое главное, как и сказано в конце: "языки базовые разные". - Qt - GUI придаток к C++ - это инструментарии для промышленных разработок, для публичных проектов широкого использования и т.д., инструментарий на котором выполнено и используются многими сотни и тысячи проектов; - Delphi + Pascal - главным образом ориентация - обучение, Pascal, возможно, один из лучших существовавших учебных языков, но на нём и его расширениях практически не создано ни единого проекта широкого применения (а если и есть, то настолько единичные, что их можно сосчитать на пальцах одной руки).
  14. Может проще ... заменить Windows? :cranky: И не " в глубине кишок windows", а в внутри своей собственной библиотечной реализации. И что в том плохого? gmtime - POSIX стандартная функция, которая не одно десятилетие всех удовлетворяла. Так что не нужно там ничего "заменить" Код есть в любой POSIX реализации open source. А для thread safe реализации есть стандартизованная функция struct tm *gmtime_r(const time_t *timep, struct tm *result); P.S. А что у вас там за приблуда gmtime_s ? ... так я и не соображу
  15. BUILDROOT

    В отношении BuildRoot гляньте сюда: Linux для embedded применений Может то-то в мелочах подскажет. И здесь: Linux на платформах MIPS
  16. Вы указатели и то на что они указывают - различаете? :laughing: Есть. Читайте матчасть. :smile3046:
  17. Linux по-русски Linux для программиста Зачем вам один? Здесь нет реестров, ульев, здесь не водятся пчёлы ... одним словом "здесь вам не вынь-да" :laughing: Основные принципы UNIX (а Linux один из них), сформулированные лет 45 назад: 1. все конфигурации (настройки) хранятся в текстовых файлах 2. в форматах по принципу: <имя_параметра> = <значение> 3. конфигурации каждой подсистемы хранятся в своём отдельном файле конфига
  18. libusb именно и сделан как юзерспейс подсистема, полностью выносящая обслуживание USB устройств из ядра (kernel часть реализуется внутри libusb, а внаружу торчит только юзерспейс). И сделано это так, чтобы не зависеть от операционной системы где это используется (т.е. именно скрыть детали kernel особенностей). На libusb на сегодня реализованы десятки, точнее сотни проприетарных и фирменных подсистем поддержки самого разнообразного USB-оборудования (фотоаппараты, диктофоны, видеокамеры и мн. мн. другое). Если им все оно годилось, то не думаю что у вас что-то такое "военное" :laughing: , что вам оно будет "в облом". P.S. И чуть-чуть по поводу терминологии... libusb - это серьёзно проработанный и массово используемый проект. Поэтому вряд ли к нему применим термин "коряга". А "коряга" - это что-то такое, что вы будете писать, возможно используя libusb, а возможно и нет :1111493779:
  19. Комментарии говорят совсем о другом, о том, что очередь сокетных буферов может быть изменена (переставлена, перетасована). Но это вовсе не значит, что изменится хоть один конкретный struct sk_buff*. Но! Кроме того, если вы лезете в такую глубину, то: - должны бы знать, что API ядра, начинающиеся с __ (2-х _) предназначены для внутреннего использования, а не для сторонних вызовов в качестве API; - должны бы прочитать, в тех же комментариях, что это вызов сложный, экзотика и вызывается только в исключительных случаях.
  20. Не знаю, нужно ли отдельную тему, а всё, что меня интересовало в последние 2-3 года (или больше) описано и свободно доступно здесь: Linux для программиста. Пользуйтесь на здоровье. :rolleyes:
  21. Спрос определяет предложение! 10 самых полезных скрытых функций Андроида А сколько миллиардов своих свистелок с перделками, дружище, вы, вместе с окружающими вас "разработчиками на ПЛИС" собираетесь произвести в текущем году? :1111493779:
  22. Мы с вами ... и все остальные читатели темы (потому что вы персонально мне абсолютно не актуальны, дружище :1111493779:) находимся в здоровенном разделе форума: Операционные системы (тут, правда, так и принято, что раздел по операционным системам модерируют наколеночные самоделкины систем противопожарной автоматики :w00t: ). Вы хотите пообсуждать операционные системы для Arduino? Так флаг вам в руки ... и с песнями! :laughing:
  23. Ну так и "MS VS" вам в руки :1111493779: Это же не для таких написано... - вам не стоит так сильно беспокоиться.
  24. Это не для вас было написано :1111493779: :santa2: Они вовсе не "замахнулись" на Java :laughing: Они создали систему совместимую с Java на этапе исполнения (можно совместно компоновать Java-код и Java-модули), но радикально поменяв синтаксис Java + дополнив его многими новыми возможностями, ставшими популярными в последние лет 7-10. Вообще то, интересно, что движение развития Java -> Scala -> Kotlin идёт в ту же сторону, что и C -> C++ -> Go, очень многие (большинство?) новых конструкций Kotlin заимствованы из Go (это IMHO, только моё предположение :laughing: ). А чего бы не взять, просто, и попробовать ... как там в рекламе?: А по поводу "пару лет" ... неужели у вас с обучаемостью так уж худо? Для того, что знает технологию Java, писать более-менее на Kotlin можно через пару ... но не лет, а дней. :santa2: А для тех кто не знает ничего про Java ... так тем уже ничем не поможешь - те продолжают уродоваться на Delphi. :crying: Компания как-раз "проворачивает этот объем работ" - их среда разработки IDEA принята как официальная среда для Android (составная часть Android SDK), а теперь вот уже язык Kotlin включён в официальный список (совсем небольшой) языков разработки для Android.
×
×
  • Создать...