• Составное устройство USB на STM32. Часть 1: Предпосылки
    0

    Не могу не спросить… А почему лежу ?

  • Почему линукс использует swap-файл
    0

    По-моему вы не до конца прочитали комментарий — я ЗА swap, а meminfo с моей домашней/рабочей машины.

  • Почему линукс использует swap-файл
    +2
    malloc

    image

  • Почему линукс использует swap-файл
    +1

    Спор древний, как сам swap :). Автору спасибо за пост, навевает ностальгию.
    Я просто оставлю это тут:


    cat /proc/meminfo

    MemTotal: 65775944 kB
    MemFree: 7217460 kB
    MemAvailable: 63834360 kB
    Buffers: 7088764 kB
    Cached: 46322704 kB
    SwapCached: 0 kB
    Active: 33390252 kB
    Inactive: 20965760 kB
    Active(anon): 513356 kB
    Inactive(anon): 505112 kB
    Active(file): 32876896 kB
    Inactive(file): 20460648 kB
    Unevictable: 8276 kB
    Mlocked: 8276 kB
    SwapTotal: 134217724 kB
    SwapFree: 134216180 kB
    Dirty: 64 kB
    Writeback: 0 kB
    AnonPages: 952856 kB
    Mapped: 449444 kB
    Shmem: 71196 kB
    KReclaimable: 3899904 kB
    Slab: 3965808 kB
    SReclaimable: 3899904 kB
    SUnreclaim: 65904 kB
    KernelStack: 13280 kB
    PageTables: 16960 kB
    NFS_Unstable: 0 kB
    Bounce: 0 kB
    WritebackTmp: 0 kB
    CommitLimit: 167105696 kB
    Committed_AS: 5746280 kB
    VmallocTotal: 34359738367 kB
    VmallocUsed: 57500 kB
    VmallocChunk: 0 kB
    Percpu: 8256 kB
    DirectMap4k: 277680 kB
    DirectMap2M: 16408576 kB
    DirectMap1G: 50331648 kB

  • Нам нужно поговорить про Linux IIO
    0

    Вот, как то я не подскажу. Документация явно намекает, что можно
    https://www.kernel.org/doc/html/latest/driver-api/iio/hw-consumer.html, но сам я такого не делал, поэтому что-либо утверждать не берусь.

  • Создание образа Ubuntu для ARM «from scratch»
    0

    Вы похоже не поняли: BINFMT нужен на хост машине, а не целевой платформе.

  • Создание образа Ubuntu для ARM «from scratch»
    0

    Ну тогда можно так:


    cat /boot/config-$(uname -r) | grep BINFMT
    CONFIG_BINFMT_ELF=y
    CONFIG_COMPAT_BINFMT_ELF=y
    CONFIG_BINFMT_SCRIPT=y
    CONFIG_BINFMT_MISC=m
  • Создание образа Ubuntu для ARM «from scratch»
    0

    Встречал, но там как правило конфиг кладеться в boot (например у debian), или есть еще способы. Но у таких дистрибов пользователи ядра сами не собирают и у них есть все "из коробки".

  • Руководство по Git. Часть №1: все, что нужно знать про каталог .git
    0
  • ROS2 vs ROS1.Установка ROS2 на Ubuntu 18.04
    0
    Я пытаюсь снизить порог входа.

    Если это являеться вашей целью — то я готов вам помочь.


    Как бы минимальная сборка Ubuntu Core весит ~800М, так может надо научить людей не ставить ROS на убунту, а научить собирать ROS ?

  • ROS2 vs ROS1.Установка ROS2 на Ubuntu 18.04
    0

    Цитату пожалуйста из которой вы сделали такие глубоко идущие выводы, я перечитал не раз и не два, чтобы убедится. Я често говоря думал, что вы заблуждаетесь, теперь я думаю, что вы просто не разбираетесь в предмете.


    И цитату конкретную, а не ссылку на всё что оказалось в радиусе действия.

  • ROS2 vs ROS1.Установка ROS2 на Ubuntu 18.04
    0

    "Да, статья техлида имеет место быть."


    То есть marketing bullshit?


    Простите, а вы тогда в статьях про ROS тележку какое участие принимали ?

  • ROS2 vs ROS1.Установка ROS2 на Ubuntu 18.04
    0

    И нет. Я вообще то пошел вам навстречу — вы могли сказать "корова не моя" — ну ок.


    В каком месте про ROS 1/2 поднимается вопрос в одном контексте real-time и Wifi, Ethernet?


    Вас не смущает то что это физический уровень транспорта, а ROS как бы надстройка и использует возможности ОС ?

  • ROS2 vs ROS1.Установка ROS2 на Ubuntu 18.04
    0

    Real-time это прежде всего ОС. Еще раз официальная цитата:


    Support for real-time
    ROS 1 does not support writing real-time code but relies on external frameworks like Orocos. In ROS 2 it will be possible to write real-time nodes when using a proper RTOS and with carefully written user code.

    в данном направлении еще ведется

    В каком "данном" — они собираються писать свою операционную систему ?

  • ROS2 vs ROS1.Установка ROS2 на Ubuntu 18.04
    0

    И заметьте я обошел вниманием фразы про "отчасти касается возможностей Wi-Fi, Ethernet". Потому что первый мой вопрос будет, "А что именно вы понимаете под этими терминами ?"

  • ROS2 vs ROS1.Установка ROS2 на Ubuntu 18.04
    0

    Первая ссылка (https://design.ros2.org/articles/realtime_background.html) которую вы дали это просто одно из определений системы реального времени (далеко не самое правильно кстати), и рекомендации по написанию программ в user-space, это к ROS отношение не имеет. ROS не являеться ОС — это фактически просто набор программ.


    Вторая ссылка — извините не увидел ничего существенного.

  • ROS2 vs ROS1.Установка ROS2 на Ubuntu 18.04
    0

    Сударь, мне очень понравились ваши статьи ваши статьи про ROS тележку и я очень благодарен за ваш вклад, но эта статья выглядить как marketing bullshit.


    Откуда вы вообще взяли эту картинку?


    Разбираем по полкам (http://design.ros2.org/articles/changes.html):


    C++ standard
    The core of ROS 1 is targeting C++03 and doesn’t make use of C++11 features in its API. ROS 2 uses C++11 extensively and uses some parts from C++14. In the future ROS 2 might start using C++17 as long as it is supported on all major platforms.

    Официальная цитата. Ключевое major platforms — ну и собственно что? Свой узел я могу написать на любом стандарте, который позволяет мне компилятор — сейчас gcc 10.0, если что вышел, рабочий 9.4. Опять же компилятор вместе с ROS не ходит.


    Support for real-time
    ROS 1 does not support writing real-time code but relies on external frameworks like Orocos. In ROS 2 it will be possible to write real-time nodes when using a proper RTOS and with carefully written user code.

    Сам по себе ROS никакой "real-time" дать не может, слова Windows 10!!! и real-time по крайней мере вызывают недоумение. Ключевые слова "proper RTOS" и "carefully written user code". Даже Linux является реалтайм системой со знаменитыми патчами (которые уже вроде полностью в ядре) только сферическим в вакууме, не говорю, что это вообще не возможно, но кланяюсь людям, которые действительно его сделали для целевых задач real-time.


    Python packages
    In ROS 1 a package with Python code can only use a small subset of the features available in setup.py files since the setup.py file is being processed by custom logic from within CMake. In ROS 2 a Python package can use anything in setup.py files, e.g. entry points since they are being invoked with python3 setup.py install.

    Здесь пояснять не надо.


    — реализуется уровень ROS архитектуры для работы с «железом» напрямую

    Этот момент даже комментировать не хочется. Прерывания тоже в user-space будете обрабатывать?

  • ROS2 vs ROS1.Установка ROS2 на Ubuntu 18.04
    0
    И третье, пожалуй, основное ограничение ROS1 — данная система не является real-time системой. Это в первую очередь проявляется в том, что скорость работы в сети различна, в зависимости от того, используется ли Ethernet или WI-FI.

    А вот тут поподробнее пожалуйста, причем тут Ethernet или WI-FI? Вы таки хотите сказать что по uart данные не теряются? Абсолютно неочевидно, что всякий Ethernet быстрее всякого WI-FI.


    А если все узлы на одной машине то ROS1 сразу становиться real-time ?


    Что в свою очередь, приводит к задержкам в получении данных и их потере.

    Каким образом? Там UDP что ли использован для передачи?


    А TCP/IP в приципе не может быть real-time by design.


    И какой real-time имеется ввиду ?

  • Моя реализация кольцевого буфера в NOR flash
    +1
    Не хотелось составлять длинный нудный список использованных работ, в конце концов гугл есть у всех.

    А вот этого не могу одобрить. Список литературы — это может быть еще и список рекомендуемый автором к ознакомлению по данной теме.

  • Функция buildargv с помощью Ragel
    +1

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

  • История одного удачного применения SRP в Legacy проекте
    0

    Вы уверены, что это должно быть в хабе "Системное программирование" ?


    system programming

  • Buildroot — часть 2. Создание конфигурации своей платы; применение external tree, rootfs-overlay, post-build скриптов
    0
    Ну вообще да. Просим статью.
  • Buildroot — часть 2. Создание конфигурации своей платы; применение external tree, rootfs-overlay, post-build скриптов
    0
    Но вообще говоря сильно зависит от производителя камня. У texas отличные инструменты для pinmux, NXP тоже догоняет. А вот если плохо с документацией на камень, тогда все очень печально.
  • Buildroot — часть 2. Создание конфигурации своей платы; применение external tree, rootfs-overlay, post-build скриптов
    0
    Ну вот тогда вам и флаг в руки :-D со статьёй. В моей практике не так часто приходится, что-то принципиально новое разводить.
  • Buildroot — часть 2. Создание конфигурации своей платы; применение external tree, rootfs-overlay, post-build скриптов
    0
    Так большинство, по-моему, идет. На самом деле если глянуть, то все SoM, SoC в большинстве своем калька с Evaluation Board.
    Не так уж много делают новых плат — да и зачем.
  • Buildroot — часть 2. Создание конфигурации своей платы; применение external tree, rootfs-overlay, post-build скриптов
    0
    Я вас понял. Да такую статью я бы и сам почитал :-D.
  • Buildroot — часть 2. Создание конфигурации своей платы; применение external tree, rootfs-overlay, post-build скриптов
    0
    А что конкретно в Device Tree вас интересует? Что именно непонятно?
  • Создаём процедурные глобусы планет
    0
  • Пользовательское вознаграждение авторам Хабра
    0
    В порядке бреда — развивая тему:

    1) Ввести возможность ежемесячной платной подписки на хаб.
    2) В рамках определенного периода распределять «призовой фонд» пропорционально вкладу в рейтинг Хаба.
  • Перенос Alpine Linux на RISC-V
    0
    В общем поскольку народ совсем не в теме позволю себе маленькую ремарку:

    — RISC-V это набор ISA (instruction set architecture) открытых спецификаций, которые небходимо соблюдать, что быть RISC-V совместимыми
    — есть открытые реазизации процессоров соответвующих данным спецификациям (открытые — есть код, бери и заливай на FGPA или запекай, участвуй в разработке)
    — доподлинно известно, что микроконтроллеры по RISC-V уже используют NVIDIA и Western Digital
    — Собственно V — означает пятую попытку :-D

    Данная инициатива интересна своей открытостью, то есть все открыто и бесплатно.
  • Перенос Alpine Linux на RISC-V
    0
    Вы просто не в теме. HiFive Unleashed — это первая борда на которую можно поставить Linux. Сами процессоры по RISC-V или залитые на FGPA есть уже давно. Собственно уже есть выбор «микроконтроллеров» на RISC-V.
  • Перенос Alpine Linux на RISC-V
    +1
    Покупали или бесплатно получили?

    Не заметил, что это перевод — прошу пардона.
  • AXIS M3046-V vs IDIS DC-D3212X: Сравниваем камеры видеонаблюдения
    +1
    Очень странно сравнивать:

    AXIS M3046-V: Защита от внешней среды IP42, IK08
    IDIS DC-D3212X: нет

    Потом идем и смотрим AXIS:
    Approvals:
    EMC EN 55032 Class B, EN 55024, EN 61000-6-1,
    EN 61000-6-2, FCC Part 15 Subpart B Class A and B,
    ICES-003 Class B, VCCI Class B, RCM AS/NZS CISPR 22 Class B,
    KCC KN32 Class B, KN35
    Safety IEC/EN/UL 60950-1
    Environment IEC/EN 60529 IP42, IEC/EN 62262 Class IK08, RoHS, WEEE
    Network NIST SP500-267

    Это может быть решающим при выборе.

    У IDIS DC-D3212X не нашёл информацию по этому поводу.

    В общем кто ставит AXIS тот и будет ставить AXIS (как и оборудование Cisco и прочее) потому как корпоративный стандарт (не буду тыкать пальцем, сами знаете кто).

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

  • Изучаем процессы в Linux
    +9
    image
  • Пишем модуль ядра Linux: GPIO с поддержкой IRQ
    0
    Во-первых, да это закрытая разработка, а во-вторых детальное описание не приводится для того, чтобы не привязываться к конкретной платформе.


    Это очень смелое заявление. Что тогда по-вашему «привязка» к конкретной платформе?
  • Пишем модуль ядра Linux: GPIO с поддержкой IRQ
    0
    Почему слабо — можете посмотреть:

    Драйвер виртуальных GPIO с контроллером прерываний на базе QEMU ivshmem для Linux
    Использование gpio-generic и irq_chip_generic для драйвера gpio
    Заметка о новом интерфейсе linux kernel — gpio uapi

    А пристал я потому, что
    разработанный GPIO блок для нового процессора «зашитый» на ПЛИС

    Без описания этого блока, данная работа лишена смысла. А что за блок? А он открытый? А скачать можно? А какие типы прерываний поддерживает?

    А что за процессор?

    Если все это закрытая разработка, то какой в этом во всем смысл?
  • Пишем модуль ядра Linux: GPIO с поддержкой IRQ
    0
    Так что ваше утверждение о том, что статья не расскрывает вопрос создания драйвера, по моему мнению, очень натянуто.

    То есть вы хотите сказать, что в вашей статье есть что-то новое, что нельзя прочитать в официальной документации?
    https://www.kernel.org/doc/Documentation/gpio/

    Тогда уж многое не упомянуто из того, что там уже есть.
  • Пишем модуль ядра Linux: GPIO с поддержкой IRQ
    +1
    Я хорошо разбираюсь в данной теме. Можете почитать мои статьи. Поэтому и делаю замечания, поскольку ваша статья не раскрывает вопрос создания драйвера, можно открыть любой драйвер gpio поверх mmio и мы получим, более внятное представление, как стоит писать gpio драйвер:

    1) для mmio можно использовать bgpio_init (написанный кстати нашим соотечественником еще аж в 2010 году), и тогда не надо самому писать однотипные в принципе функции write, read, direction и прочие.

    2) для irq в большинстве случаев сгодится irq_chip_generic

    3) Их, простите меня, не «разбивают» на банки они уже по банкам находятся.

    А оправная точка для любого драйвера GPIO, это не подсматривание в готовую реализацию, а вдумчивое изучения документации на железо.
  • Пишем модуль ядра Linux: GPIO с поддержкой IRQ
    +1
    1) Если говорить про принцип создание драйвера с нуля, то стоило бы начать с описания железа и его регистров управления.

    2) Если вы затронули тему идентификации gpio, то стоило бы изучить вопрос с наименованием, вы например в курсе, что экспортированный контакт не обязательно будет иметь имя вида gpioN?

    3) Присутвующие в системе gpio надо смотреть исходя из приципиальной схемы и документации. Номера gpio в системе присваиваються по системе «кто первый встал тог и тапки», это раз, во-вторых номера абсолютно не обязательно идут подряд. Тогда уж надо смотреть base для gpiochip и делать экспорт по числу контактов на чипе, для каждого чипа.
  • Пишем модуль ядра Linux: GPIO с поддержкой IRQ
    –1
    А еще раньше достать такую же железку как у вас…

    То есть стоит написать, что пример не воспроизводим.