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

Dubov

Участник
  • Постов

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

  • Посещение

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


  1. в menuconfig вообще нету упоминания про мой драйвер(ethernet для STM32), а в исходниках есть файл драйвера и в Makefile прописана зависимость от дефайнов (как писал ранее). Значит, могу предположить, что при сборке ядра сам модуль собирается, а как он должен монтироваться непонятно. Обычно монтировнаие драйвера вручную приводит к автоматическому созданию нода? (вопрос не касательно моей системы где корневая read only)
  2. так как у меня рутовая толкьо для чтения, то в /sys/class/net я должен создать файлы сам. как это сделать и что именно нужно создать.
  3. дабы не плодить темы решил спросить тут. Прогу посоветовать источник информации, где бы объяснялись принципы начальной загрузки системы. Например: 1) у меня есть файловая система (папки dev, sys, etc...), при этом в папке sys лежит один пустой файл "placeholder". Когда эту файловую систему собираю в бинарник через buildroot и прошиваю на контроллер, вижу, что в папке sys создано множество папок (dev, devices, platform...). Кто добавил новые папки? 2) в исходниках ядра есть ethernet драйвер eth_driver.c, в Makefile в папке драйвера есть: obj-$(CONFIG_ETH_DRIVER) += eth_driver.c CONFIG_ETH_DRIVER в конфиге ядра включён. Но в логах загрузки ядра о дрйвере нет упоминаний... и я дро весит одинаково, что с драйвером что без. Где в ядре происходит подключение драйвера (insmode, modpobe) ? 3) в buildroot включён mdev (аналог udev). Но у меня корневая файловая система только для чтения, соответственно автоматически нод не появится. Верно? Какие ноды надо сощдать для сетевого утсройства? Вопросов много, поэтому прошу отослать к... источнику инфомрации. Спасибо.
  4. initramfs это файловая система в RAM. у меня сейчас файловая система на внутренней flash, с неё и работаю. а в busybox у меня mdev, вместо udev
  5. большое спасибо. всё получилось. Интересно, а если расположить файловую систему на mmc, как тогда система определит dev/mmcblk0p1, если сейчас последовательность такая: сначала инициализируется файловая система, а потом уже "цепляется" mmc и раздел. получается существует какой-то промежуточный механизм, который должен создать dev/mmcblk0p1 ещё до загрузки файловой системы. как это происходит? где об этом можно почитать?
  6. можно немного раскрыть вопрос, что такое нода и как её создать? p.s. не стыдно не знать, стыдно не спрашивать :)
  7. удалось "подцепить" файловую систему из флешь. Теперь найти проблему должно быть проще. Вижу в логе загрузки ядра: VFS: Mounted root (romfs filesystem) readonly on device 31:0. Freeing init memory: 16K mmc0: host does not support reading read-only switch. assuming write-enable. mmc0: new SD card at address 0002 mmcblk0: mmc0:0002 00000 1.86 GiB mmcblk0: p1 mbcache: exports duplicate symbol mb_cache_entry_find_next (owned by kernel) kmem_cache_create: duplicate cache ext2_xattr полагаю, что карта определилась, вот только в /dev/ нет mmcblk0p1. Файловая система на внутренней влешке Read only file system. Возможно ли, что именно поэтому не появляестя карточка в /dev ?
  8. что так и есть? простите не понял...
  9. Нужно сделать разнесённую микросхему(DD1.1, DD1.2...) на схеме, чтобы разные сегменты микросхемы(DD1.1 например) можно было свободно перетаскивать по схеме(независимо от DD1.2), при это чтобы футпринт был один и тот же. Такое можно сделать в Altium? если да, то какими средствами?
  10. мудрёная схема. не могу понять, что именно переключает мультиплексор. цепь обратной связи?
  11. Изучаю схему измерителя мощности. Заинтересовала схемотехника цепей измерения тока и напряжения. Непонятно, зачем нужна гирлянда из конденсаторов (C10-C16) и резистор R26 в цепях напряжения, а так же назначение гирлянды резисторов R13-R17 в цепях тока. DG409 - это, как я понял, аналоговый мультиплексор для управления делителем. Верно? Схемы прилагаю.
  12. Спасибо всем ответившим. По поводу HSE. Странно когда полностью затирал прошивку на STM32F429I-Discovery, то генерация на кварце всё равно была. Моя проблема решилась так: та плата на которой не было генерации была куплена на алибабе у китайцев. Так те просто перепутали ноимналы нагрузочных конденсаторов. Вместо 22пФ поставили 2.2мкФ.
  13. конечная цель: выбрать из пяти датчиков тока один, с наиболее линейной характеристикой.
  14. имеется преобразователь ток-напряжение. нужно измерить нелинейность зависимости выходного напряжения от входного тока. Есть два набора данных: 1) идеальная прямая (как должно быть) 2) прямая снятая непосредственно с датчика (реальная линия) Как измерерить нелинейность, и в чём она измеряется?
  15. Спасибо за ответ! у меня на mmc карте раздел всего один и карта одна. Поэтому указываю mmcblk0p1 Использую u-boot, строка загрузки: bootargs=stm32_platform=stm32429-disco mem=31M console=ttyS0,115200n8 rootfstyp=ext2 consoleblank=0 root=/dev/mmcblk0p1 rootfstype=ext2 debug rw rdinit=/sbin/ когда включил опцию debug, увидел немного больше информации в консоли: mmci-pl18x mmci0: designer ID = 0x80 mmci-pl18x mmci0: revision = 0x4 mmci-pl18x mmci0: clocking block at 25000000 Hz mmc0: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0 timing 0 mmci-pl18x mmci0: mmc0: MMCI rev 4 cfg 10 at 0x0000000040012c00 irq 49,-1 mmc0: clock 0Hz busmode 1 powermode 1 cs 0 Vdd 21 width 0 timing 0 sdhci: Secure Digital Host Controller Interface driver sdhci: Copyright© Pierre Ossman ARMv7-M VFP Extension supported mmc0: clock 400000Hz busmode 2 powermode 2 cs 0 Vdd 21 width 0 timing 0 VFS: Cannot open root device "mmcblk0p1" or unknown-block(0,0) Please append a correct "root=" boot option; here are the available partitions: Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) не могу понять, что не так
  16. получаю такой лог в загрузке ядра: ... mmci-pl18x mmci0: mmc0: MMCI rev 4 cfg 10 at 0x0000000040012c00 irq 49,-1 sdhci: Secure Digital Host Controller Interface driver sdhci: Copyright(c) Pierre Ossman ARMv7-M VFP Extension supported VFS: Cannot open root device "mmcblk0p1" or unknown-block(0,0) Please append a correct "root=" boot option; here are the available partitions: Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) и всё. это Please append a correct "root=" boot option; here are the available partitions: , как я понимаю, говорит о том что ядро не видит разделов на mmc каковы могут быть причины такого поведения ядра?
  17. Имеется плата с STM32F439 и PHY. Phy тактируется от 25Mhz кварца. STM32 от 24Mhz кварца. На кварце PHY после подачи питания наблюдается хороший сигнал 25Mhz. кварце MCU нет сигнала - просто постоянное смещение. Попробовал поставить кварц от PHY на место кварца MCU. Наблюдаю странный сигнал: пачками импульсов. В чём может быть проблема?
  18. STM32F429 SDRAM

    как узнать адрес начала SD-RAM? у меня подключена на SDRA_CS1 память 32MB. Каков её начальный адрес?
  19. U-boot и Linux на STM32

    спасибо за ответ. Образ лежит во флеши по адресу 08040000. Я наверное я путаюсь сильно по неопытности, но, если я правильно понял, точка входа - это адрес куда грузится образ из флеш. Сейчас понял что если это так, то у меня образ с адреса 08040000 на флеш грузится в 08020000. Это чушь. У меня на плате стоит SD-RAM на 32MB, в u-boot указал SYS_RAM_BASE 0xD0000000 Если я правильно понял, то надо указать точку входа как 0xD0000000. Так?
  20. U-boot и Linux на STM32

    Пытаюсь запустить ucLinux на STM32F429 За основу взял проект от Emcraft. Подправил в конфигах тайминги для своего чипа SDRAM и пытаюсь загрузить linux из u-boot. В консоли получил: U-Boot 2010.03 (Aug 31 2014 - 13:29:45) CPU : STM32F4 (Cortex-M4) Freqs: SYSCLK=16MHz,HCLK=16MHz,PCLK1=16MHz,PCLK2=16MHz Board: STM32F429-DISCOVERY Rev 1.A DRAM: 32 MB *** Warning - bad CRC, using default environment Net: STM32_MAC Hit any key to stop autoboot: 0 ## Booting kernel from Legacy Image at 08040000 ... Image Name: Linux-2.6.33-arm1 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 772448 Bytes = 754.3 kB Load Address: 08020040 Entry Point: 08020041 Verifying Checksum ... OK Loading Kernel Image ... OK OK Starting kernel ... UNHANDLED EXCEPTION: HARD FAULT R0 = 00000000 R1 = 00000ea6 R2 = d0000000 R3 = 00000003 R12 = 00000020 LR = 0000dddd PC = 08020040 PSR = 61000000 по этим данным что-то можно сказать о причине проблемы?
  21. Читаю об устройствах определения места повреждения волновым методом. Суть метода: по обоим концам линии устанавливается по одному терминалу. При возникновении повреждения линии (КЗ) образуется бегущая волна. с Терминалы на концах линии фиксируют время прихода волны. На основании того, что скорость прохождения волны известна и известно время прихода волны на обоих концах, можно сделать вывод о расстоянии до места повреждения от каждого конца линии. У меня возник вопрос: что представляет из себя бегущая волна ?
  22. Хорошо, сложить в прерывании байтик в буфер через DMA, а потом, накопив данные за несколько таких прерываний, выдать сигнал пользовательскому приложению. Но ессли задача: получив прерывание, положить в буфер, и, до прихода следующего прерывания, произвести ДПФ и получить результат... думаю Linux тут будет иметь проблемы... в standalone (в том же DSP/BIOS) это решается без проблем. Кстати в материалах TI видел таблицу сравнения Linux и DSP/BIOS. Там упоминалось что Linux работает с событиями от 1мс, а DSP/BIOS в наносекундном масштабе... (прошу сильно не пинать, не помню точно формулировку, возможно, имелось ввиду разрешение системного таймера...) иными словами в Linux - это не RTOS, а DSP/BIOS - RTOS.
  23. мне думается, что не сможет Linux прерывание обработать на высокой частоте, в этом его и проблема. Помню пытался запустить драйвер AD7606. Драйвер был написан представителями AD. Так вот они использовали как вариант тригера для АЦП софтварное дёргание GPIO (идиотизм конечно, так как джиттер там был бешеный), но, после запуска триггера всё как-то работало, стоило лишь запустить какой-то непрерывный вывод в консоль, как триггер змалокал, вообще замолкал... наверное это проблемы самого драйвера и кривости рук его писавших...
  24. Тупыми и дубовыми? Нуну... поддержка 61850 как нельзя лучше отражает дубовость современных устройств. :)) сейчас архитектура "дубовых" устройств выглядит так: dsp/fpga(bare metall) + host(от arm и влоть до x86 c операционной системой на борту). Хотя знаю решение где все(математическая обработка и интерфейсная часть) сделано на sam9260+ecos. Вот и думаю, можно ли взять мощный современный процессор с linux и сделть все на нем.
×
×
  • Создать...