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

Tarbal

Свой
  • Постов

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

  • Посещение

Репутация

4 Обычный

1 Подписчик

Информация о Tarbal

  • Звание
    Профессионал
    Профессионал

Контакты

  • ICQ
    Array

Посетители профиля

8 840 просмотров профиля
  1. SFP кто-нибудь подключал?

    Я знаю, что бывают transceivers с PHY и без него. А устройство куда они вставляются вроде всегда имет PHY. Проблема такая. Построил Линукс. Драйвер ethernet встать попробовал, а PHY не видит. Плата KRIA KR260 имеет модуль, схемы которого нету. Непонятно есть ли там PHY или нету. Может оно будет работать только с трансивером с PHY. А как их отличить?
  2. Я о связи барметала и Линукса писал. Тригер внутри барметала. Там можно на прерывании таймера сделать. Можно подобрать частоту SPI так, чтобы читало без остановки, выдавая с нужной скоростью результат.Как раз время транзакции SPI совпадет с sampling rate.
  3. Это иначе делают. Надо настроить DMA (прямой доступ в память) чтобы из одного адреса (вход с порта) в область памяти писал. К порту GPIO подключить источник информации и сигнал готовности данных настроить, чтобы синхронизировал DMA. По заполнению буфера вызывать прерывание, в котором переключать буфер, перенастроив DMA.
  4. Вам надо еще определиться с тем, что у вас за SPI контроллер стоит. Найти в дереве устройств описание. Что за Линукс у вас? Линукс уже стоит на устройстве? Какие файлы в /boot/ директории? Примеры можно найти в коде ядра: https://elixir.bootlin.com/linux/latest/source/drivers/spi Инструкции там же: https://elixir.bootlin.com/linux/latest/source/Documentation/spi Вам с нуля все будет непонятно. Спрашивайте. Глобально выглядит так: Каждому устройству соответствует его описание в дереве устройств. Режимы работы, адреса регистров и т.д.. Если одинаковых устройств несколько, то каждому индивидуальное описание и регистры точно будут другими в этих описаниях одного и тогоже типа устройства. Еще есть драйвер, который для работы с этим устройством. Вам надо и драйвер и описание в дерево добавить. В описании и драйвере есть признак, по которому для каждого описания ищется драйвер. Если нашелся драйвер, то устройство может быть использовано. В директории /sys/ можно посмотреть. Там каждому драйверу и каждому описанию посвящена директория. Вот дерево для вашего процессора: https://elixir.bootlin.com/linux/latest/source/arch/arm/boot/dts/allwinner/suniv-f1c200s-lctech-pi.dts или https://elixir.bootlin.com/linux/latest/source/arch/arm/boot/dts/allwinner/suniv-f1c200s-popstick-v1.1.dts Найдите этот файл в вашем коде ядра. Там та же директория. Одно SPI устройство уже описано. &spi0 { pinctrl-names = "default"; pinctrl-0 = <&spi0_pc_pins>; status = "okay"; flash@0 { compatible = "spi-nand"; reg = <0>; spi-max-frequency = <40000000>; }; }; Где compatible = "spi-nand"; есть признак ("spi-nand" -- признак), который должен совпасть с драйвером. У вас будет другой признак. Можете поискать среди драйверов. Вдруг найдете подходящий, тогда из него признак возьмете и впишите в свое дерево. Можно любой признак вписать. Напишите имя микросхемы, например. Главное чтобы в обоих местах имя в точности совпадало. Там еще ножки описаны: spi0_pc_pins: spi0-pc-pins { pins = "PC0", "PC1", "PC2", "PC3"; function = "spi0"; }; Вот похожий драйвер: https://github.com/torvalds/linux/blob/master/drivers/iio/adc/ad7476.c Он с правильного источника. То, что я давал выше -- производный источник (https://elixir.bootlin.com). В структуре static struct spi_driver ad7476_driver = { .driver = { .name = "ad7476", }, .probe = ad7476_probe, .id_table = ad7476_id, }; .name = "ad7476" "ad7476" -- признак, по которому будет найдено описание в дереве устройств для этого драйвера. Когда добавите код драйвера в соответствующее место в директории ядра, надо будет добавить описание вашего драйвера в Kconfig и Makefile. Посмотрите как сделано здесь: https://github.com/torvalds/linux/tree/master/drivers/iio/adc Потом в окне, созданном командой make menuconfig добавьте этот драйвер. Там будет строка, что вы добавили в Kconfig Теперь при компиляции ядра ваш драйвер будет присутствовать. При запуске Линукса на вашем устройстве, в директории /sys/ будет добавлена соответствующая директория.
  5. Это за 2015. Я и за 2018 находил. Только не работало как я и написал. Вот то что посоветовал erikN сработало. Правда, немного пришлось подрихтовть. К тому же синтаксис поменялся. IMAGE_INSTALL_append = " fw_printenv" Теперь надо с ':' писать IMAGE_INSTALL:append = " fw_printenv" Да и fw_printenv неправильно, а вот так работает. IMAGE_INSTALL:append = " u-boot-fw-utils" Но есть другая проблема. Почему-то результат становится меньше размером, busybox отсутствует и криво стартует. Разбираюсь.
  6. Спасибо! А рецепт вы сами написали или следовали какой-то инструкции? Может есть скрипт какой? Поищу что ракое recipe-util IMAGE_INSTALL_append = " fw_printenv" Эту строку я вставил, но рецепта нету рабочего. Последую вашей рекомендации. А не лучше сделать пробел и перед последней кавычкой? Для надежности. Вдруг в следующей IMAGE_INSTALL_append забудете поставить пробел. Здесь от практики конечно зависит, о которой я не знаю из-за неопытности в Yocto. Потому и предлпочитаю все предусмотреть.
  7. Есть здесь спецы по Yocto?

    Я хочу построить fw_printenw и поместить ее в /usr/bin Для этого надо скомпилировать инструменты из пакета u-boot. Вот из этой директории: https://github.com/u-boot/u-boot/tree/master/tools/env Никак не могу уговорить Yocto это сделать. С рецептом никак не получается. Нашел много разных рецептов, но ни один не работает. Yocto же строит u-boot может есть какой-нибудь рецепт в стандартном наборе?
  8. Все определяется тем, что подразумевается под эффективным способом. Для некоторых задач вполне подойдет userspace решение. Ну наполовину задача уже решена будет. А потребуется, то и на винду драйверы пишут обычные люди.
  9. Кто-нибудь попробовал использовать? Может есть какие-нибудь пожелания насчет дополнительных возможностей? Думаю добавить две кнопки для листания дампа вперед и назад.
  10. Немного улучшил код и исправил ошибку в 64 битной архитектуре.
  11. Предупреждаю тех, кто не знает что они смотрят, что есть такие регистры, чтение которых может подвесить систему, а запись в некоторые (например, некоторые регистры PMIC) могут убить железо в компьютере. Используйте доступ только к тем регистрам, назначение которых вам известно. В описании это есть, но не грех и продублировать.
  12. Полностью с вами согласен. Не было времени думать. Надо было быстро что-то сотворить для того, кто со стороны FPGA работал. По стереотипу сделал. Раньше работал с подобными програмамми. Они использовали XML. Будет время, добавлю такую возможность. На самом деле я часто инструменты делаю пока работаю над проектом. Просто этот мне понравился своей простотой и гибкостью, потому его и выставил в гитхаб. Планы другие были пока делал его. Да и для практики в Питоне нужно было что-то сотворить. Питона я совсем не знаю.
  13. С этим я как раз согласен. Добавил описание работы с дополнительными окнами, создаваемыми при помощи простых XML файлов.
  14. Я в большинстве случаев пользуюсь конолью. Вы будете утверждать что ГУИ по информативности не лучше консоли? Когда клубоко в отладке надо набирать в нужном окне терминала нужные команды не сравнимо, на мой взглад, с простым нажатием кнопки и видением всей картины с одного взгляда. Но о вкусах не спорят.
×
×
  • Создать...