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

Лидеры

Популярный контент

Показан контент с высокой репутацией 07.05.2024 во всех областях

  1. Ну я особо не вижу проблем уложить железо в себестоимости в 5к, например. Что там такого, что цену задерет?
    1 балл
  2. без, чисто "релейная" система нипель да, сбросит мгновенно , но как минимум пара ключей будут замкнуты, кроме момента квази-паузы (квази-dead_time) , когда короткий положительный импульс на входах "С" триггеров также замыкает все ключи скопом. подтяжки к логическому Vdd питанию неиспользуемых входов логики ток R1 полностью равен току пробника IProbe1, который фиолетовый на графике.
    1 балл
  3. Корень есть . Красный корень - чисто математический, Зелёный - напряжение на выходном конденсаторе. Ток дросселя постоянный .
    1 балл
  4. Пишите мне в личку.
    1 балл
  5. Так и напишите делаем каналы управления для дронов. И не не надо шифроваться тов майру уже доложили.
    1 балл
  6. Привет, друг! Стандартная схема не всегда катит. Есть другая более стандартная схема. Пиши в ЛС, если тут тебе сам автор схемы не ответит.
    1 балл
  7. Вместо SIM800C закладывайте A7682E. Загуглите аппнот A7682E_SIM800C_SIM868_ SIM7080G Compatible Design
    1 балл
  8. #include <stdint.h>
    1 балл
  9. А где она расположена? И что вы понимаете под термином "расположена"? И что значит "есть структура"? В приведенном вами коде есть объявление типа. Ни объявления (declaration), ни определения (definition) переменной, способной хранить этот тип, мы не видим (https://www.cprogramming.com/declare_vs_define.html). Откройте для себя заголовочные (header) файлы. Описание структуры вам нужно поместить в такой файл и включить этот файл в main.c и в тот файл, где определена переменная с типом этой структуры. Объявление переменной можно поместить либо в заголовочный файл либо в main.c.
    1 балл
  10. Цель обрезки У клиентов иногда есть определенные требования ко времени загрузки после включения, поэтому необходимо адаптировать ядро, чтобы оптимизировать время загрузки и сократить его. Низкое энергопотребление системы. Краткое введение в файлы Makefile, Kconfig и файлы .config Makefile: файл в текстовой форме, который компилирует исходные файлы. Kconfig: текстовый файл меню конфигурации ядра. .config: конфигурация, в которой скомпилировано ядро. Файлы Kconfig и Makefile обычно присутствуют в структуре каталогов ядра Linux. Распространяется на всех уровнях каталога. Kconfig представляет собой распределенную базу данных конфигураций ядра, где каждый Kconfig описывает ядро, связанное с исходными файлами каталога, к которому оно принадлежит. Меню конфигурации. Считайте меню конфигурации из Kconfig, когда ядро графически настраивает make menuconfig, и сохраните его в.config после того, как пользователь завершит настройку. Когда ядро скомпилировано, основной Makefile вызывает this.config, чтобы узнать, как пользователь настроил ядро. Введение в синтаксис Makefile и Kconfig ● Make-файл Подкаталог Makefile содержится в Makefile верхнего уровня. Он используется для определения того, что компилируется как модуль, а что компилируется условно. (1) Прямая компиляция obj-y +=xxx.o Это означает, что xxx.o компилируется из xxx.c или xxx.s и компилируется непосредственно в ядро. (2) Условная компиляция obj-$(CONFIG_HELLO) +=xxx.o CONFIG_XXX файла .config определяет, скомпилирован ли файл в ядро или нет. (3) Компиляция модуля obj-m +=xxx.o Это означает, что xxx компилируется как модуль, т.е. он компилируется при выполнении модуля make. ● Кконфиг Каждый пункт меню конфигурации имеет определение типа. bool: логический тип, tristate: три состояния (встроенный, модуль, удаление), string: последовательность символов, hex: шестнадцатеричный, целое число: целое число Функция: определение пункта меню, отображаемого при создании меню конфигурации. 1) НОВЫЕ _ светодиоды: название опции конфигурации. Префикс «CONFIG _» «опущен. 2) tristate: указывает, запрограммирован ли элемент в ядро или в модуль. Отображается как < >, если выбрана компиляция в качестве модуля ядра, будет сгенерирована конфигурация CONFIG_HELLO_MODULE=m в .config. Выбор Y приведет к прямой компиляции в ядро с созданием конфигурации CONFIG_HELLO_MODULE=y в .config. 3) bool: этот тип можно только отметить или снять. При настройке меню он отображается как [ ], то есть его нельзя настроить как модуль. 4) зависимость: эта опция зависит от другой опции, только если зависимость отмечена, появится сообщение с подсказкой текущего элемента конфигурации для установки текущего элемента конфигурации. 5) select: обратная зависимость: если этот параметр отмечен, элемент, определенный после выбора, также проверяется. 6) помощь: справочная информация. tristate и bool, за которыми следуют строки, — это имена элементов конфигурации, отображаемые в make menuconfig. Определения в Kconfig, такие как «menuconfig NEW_LEDS» или «меню «Поддержка видео для Sunxi»», обычно представляют собой каталоги верхнего уровня каталога, где в менюconfig вы можете напрямую обрезать соответствующий драйвер, выполнив поиск этого элемента конфигурации. Итерация иерархии каталога: В Kconfig есть такие операторы, как «source «drivers/usb/Kconfig»», используемые для включения (или вложения) новых файлов Kconfig, что позволяет каждому каталогу управлять своим собственным содержимым конфигурации без необходимости записи всех этих конфигураций в один и тот же файл, что делает его легче модифицировать и управлять. Частично управляемый пошив 1. Идеи пошива Если взять в качестве примера функцию GPADC, расположение драйвера в ядре исходного кода:drivers/input/sensor/sunxi_gpadc.c, Таким образом, мы можем перейти к файлу Kconfig по этому пути и напрямую выполнить поиск «меню» в файле Kconfig, который обычно соответствует каталогу верхнего уровня этого драйвера. Мы видим, что опция конфигурации называется INPUT_SENSOR, что соответствует названию «Датчики» в менюconfig. После этого мы можем напрямую найти этот параметр конфигурации в менюconfig. Выполните команду make menuconfig по пути к ядру. ARCH=arm64 Войдите в графический интерфейс конфигурации: На этом экране введите /, затем INPUT_SENSOR и нажмите Enter. Как показано на рисунке, этот элемент настраивается в разделе «Драйверы устройств ---> Путь поддержки устройств ввода» и «Общий». Для параметра конфигурации «входной слой (необходим для клавиатуры, мыши и т. д.)» установлено значение «y» (да). Отмените настройку датчиков, затем сохраните ее и выйдите в виде файла .config. После этого вернитесь к пути OKT507-linux-sdk, скомпилируйте ядро отдельно, а затем упакуйте образ. forlinx@ubuntu:~/work/OKT507-linux-sdk$ ./build.sh ядро forlinx@ubuntu:~/work/OKT507-linux-sdk$ ./build.sh пакет 2. Частичный путь проезда Устройство Расположение драйвера в исходном ядре Имя устройства Путь в Menuconfig Wi-Fi Wi-Fi wlan0 Драйверы устройств ---> Удалить: Поддержка сетевых устройств. Сетевая карта драйверы/сеть/ethernet/allwinner/ /sys/класс/сеть/эт* HDMI драйверы/видео/fbdev/sunxi/disp2/hdmi2/ /dev/fb1 Драйверы устройств ---> Поддержка графики ---> Устройства с буфером кадров ---> Поддержка видео для sunxi ---> Удалить: Поддержка драйвера HDMI2.0 (sunxi-disp2) (еще не полностью изменено) Usb-U диск драйверы/USB/хранилище/ /dev/sdx Драйверы устройств ---> Поддержка USB ---> Удалить: поддержка USB-накопителей USB-4G драйверы/USB/последовательный/ /dev/ttyUSB* Драйверы устройств ---> Поддержка USB ---> Удалить: Поддержка последовательного преобразователя USB USB-камера драйверы/медиа/usb/uvc/uvc_video.c Драйверы устройств ---> Поддержка мультимедиа ---> Мультимедийные USB-адаптеры ---> Удалить: Класс USB-видео (UVC) USB-камера драйверы/медиа/usb/uvc/uvc_video.c Драйверы устройств ---> Поддержка мультимедиа ---> Мультимедийные USB-адаптеры ---> Удалить: Класс USB-видео (UVC) Сторожевая собака драйверы/сторожевой таймер/sunxi_wdt.c /dev/сторожевой пес Драйверы устройств ---> Удалить: Поддержка сторожевого таймера Bluetooth драйверы/блютуз/ Поддержка сети ---> Поддержка подсистемы Bluetooth ---> Драйверы устройств Bluetooth ---> Снимите все флажки (не забудьте записать исходную конфигурацию) Аудио звук/соц/суньси /дев/снд/ Драйверы устройств ---> Поддержка звуковой карты ---> Расширенная звуковая архитектура Linux ---> Поддержка звука ALSA для SoC ---> Поддержка звука Allwinner SoC ---> Снимите все флажки (не забудьте записать исходную конфигурацию) ШИМ драйверы/pwm/pwm-sunxi.c /sys/класс/ШИМ/ Драйверы устройств ---> Удалить: Поддержка широтно-импульсной модуляции (ШИМ) OV5640_ДВП драйверы/медиа/платформа/sunxivin/модули/сенсор/ov5640.c /dev/видео* Драйверы устройств ---> Поддержка мультимедиа ---> Устройства платформы V4L ---> Удалить: драйвер видеовхода sunxi (камера csi/mipi isp vipp)Открыть OKT507-linux-sdk/kernel/linux-4.9/drivers/media/platform /Makefile, закомментируйте obj-y += OV5640_МИПИ драйверы/медиа/платформа/sunxivin/модули/сенсор/ov5640_mipi.c ТП2854М драйверы/медиа/платформа/sunxivin/модули/сенсор/tp2854_mipi.c sunxi_car_reverse/ Устройство Расположение драйвера в исходном ядре Путь в Menuconfig Имя устройства GT911 сенсорный драйверы/вход/сенсорный экран/gt911.c Драйверы устройств ---> Поддержка устройств ввода ---> Сенсорные экраны ---> Удалить: сенсорный экран Goodix I2C gt911, сенсорный экран Goodix I2C gt928, сенсорные экраны на базе TSC2007 /dev/input/event*Просмотр события с соответствующим именем evtest, например: Соответствующее имя GPADC — sunxi-gpadc0sunxi-gpadc1sunxi-gpadc2sunxi-gpadc3. GT928 сенсорный драйверы/вход/сенсорный экран/gt928.c TSC2007 сенсорный драйверы/вход/сенсорный экран/tsc2007.c ЛРАДК драйверы/вход/клавиатура/sunxi-keyboard.c драйверы/вход/клавиатура/sunxi-keyboard.c ГПАДК драйверы/вход/датчик/sunxi_gpadc.c Драйверы устройств ---> Поддержка устройств вводаУдалить: Датчики ИК драйверы/media/rc/sunxi-ir-dev.c Драйверы устройств ---> Поддержка мультимедиа Удалить: Декодеры пульта дистанционного управления、Устройства пульта дистанционного управления РТК драйверы/rtc/rtc-rx8010.c Драйверы устройств ---> Удалить: Часы реального времени /dev/rtc0 Выше приведена обрезка одного из драйверов, остальные функции можно урезать указанными ранее способами.
    -1 балл
×
×
  • Создать...