ad
Пользователь
Сообщений: 70
|
|
« : 22 Февраль, 2016, 22:59:24 » |
|
Есть загрузочный образ (bsp) для процессора на базе ARM Cortex A8. Этот образ успешно использовался и менялся какое-то время. Затем была создана какая-то версия, для которой сохранился исполняемый файл и исходники (точно знаю, что исходники от этой версии исполняемого файла). Затем bsp менялся и, в итоге, обнаружилось, что при запуске драйвера devb-mmcsd-jacinto5 для NANВ-flash устройство в /dev/ не создается. Для sd-карты создается, я для NAND - нет. Проблема заключается в том, что тот исходник, из которого получился рабочий bsp, в котором создаются оба раздела, создает теперь bsp, в котором раздел для NAND не создается. Первоначальный исходный код, с которым я начинал вообще работать, и я точно знаю, что он был нормальным, тоже теперь создает образ без второго раздела в /dev/. Пробовал собрать на 5 компьютерах. Результат - один и тот же. Сможете подсказать, как вернуть вариант исходников, для которых bsp будет с работающим 2-ым разделом? Проверил, что на всех компьютерах, где производилась сборка есть SP1 для QNX6.5.0/
|
|
|
Записан
|
|
|
|
gordeev_as
Пользователь
Сообщений: 32
|
|
« Ответ #1 : 24 Февраль, 2016, 07:30:40 » |
|
А что пишется в sloginfo после запуска драйвера? Просто NAND и SD это разные физически устройства, может драйвер чего то не находит. Для NAND обычно используется отдельный драйвер типа fs-etfs-??, например fs-etfs-at91sam9xx идет в BSP для AT91sam9263. Поищите что то подобное.
|
|
|
Записан
|
|
|
|
ad
Пользователь
Сообщений: 70
|
|
« Ответ #2 : 24 Февраль, 2016, 20:13:43 » |
|
Этот драйвер запускается после mmc и немцы в ответах на вопросы по поводу драйвера приводили запуск именно указанного драйвера. Устройства разные, но запускаются на одной шине, если я правильно расшифровываю mmc.
|
|
|
Записан
|
|
|
|
gordeev_as
Пользователь
Сообщений: 32
|
|
« Ответ #3 : 25 Февраль, 2016, 07:06:42 » |
|
SD и MMC могут работать на одной шине. MMC это MultiMediaCard, потоньше чем SD. Имеет SPI интерфейс (почитайте википедию). У NAND же интерфейс параллельный. Конечно разработчики драйвера могли запихнуть поддержку обоих устройств в один драйвер, но это не логично. Так что запустите старый образ в котором NAND подключается и работает и смотрите какие драйверы запущены. Думаю, через pidin fds можно найти какой именно отвечает за NAND, у него будет дескриптор открыт NAND устройства. Можете вставить кусок кода где происходит запуск всех драйверов и какой процессор у Вас стоит на плате, а лучше весь скрипт?
|
|
|
Записан
|
|
|
|
ad
Пользователь
Сообщений: 70
|
|
« Ответ #4 : 27 Февраль, 2016, 16:18:25 » |
|
SD и MMC могут работать на одной шине. MMC это MultiMediaCard, потоньше чем SD. Имеет SPI интерфейс (почитайте википедию). У NAND же интерфейс параллельный. Конечно разработчики драйвера могли запихнуть поддержку обоих устройств в один драйвер, но это не логично. Так что запустите старый образ в котором NAND подключается и работает и смотрите какие драйверы запущены. Думаю, через pidin fds можно найти какой именно отвечает за NAND, у него будет дескриптор открыт NAND устройства. Можете вставить кусок кода где происходит запуск всех драйверов и какой процессор у Вас стоит на плате, а лучше весь скрипт?
Ну тем не менее запихнули. Вот привожу ответ немцев по поводу запуска драйверов. Ровно так, как в ответе, драйвера в скрипте запуска и запускаются: the NAND on the TQMa335x is a eMMC. Find below the commands to start the driver and examples to format the eMMC for use with QNX6 filesystem or FAT.
# MMC1 eMMC devb-mmcsd-jacinto5 mmcsd ioport=0x481D8100,irq=28,ioport=0x49000000,dma=2,dma=3,bw=8,clock=50000000 waitfor /dev/hd1 5
Ну и на всякий случай, привожу то, как запускаются в скрипте драйвера: ####################################################################### ## MMC/SD driver ####################################################################### display_msg Starting MMC/SD driver... # MMC0 SD card devb-mmcsd-jacinto5 cam blk automount=hd0t12:/fs/sd0 mmcsd ioport=0x48060100,irq=64,ioport=0x49000000,dma=24,dma=25
# MMC1 eMMC devb-mmcsd-jacinto5 mmcsd ioport=0x481D8100,irq=28,ioport=0x49000000,dma=2,dma=3,bw=8,clock=50000000 waitfor /dev/hd1 5
|
|
|
Записан
|
|
|
|
ad
Пользователь
Сообщений: 70
|
|
« Ответ #5 : 27 Февраль, 2016, 16:22:07 » |
|
По поводу pidin fds спасибо. Посмотрю. Ну и постараюсь еще сохранить sloginfo на работающем и неработающем bsp.
|
|
|
Записан
|
|
|
|
gordeev_as
Пользователь
Сообщений: 32
|
|
« Ответ #6 : 29 Февраль, 2016, 08:42:42 » |
|
Тогда все понятно, это не NAND ,а eMMC (embedded MMC). В таком случае конечно это может быть один драйвер. Тогда ждем что пишется в sloginfo в обоих случаях. Видно что для каждого устройства (SD, eMMC) запускается свой экземпляр драйвера, поэтому в sloginfo будет видно что не нравится новому драйверу.
|
|
|
Записан
|
|
|
|
Владимир Махилёв
Сотрудник СВД ВС
Старожил
Сообщений: 704
|
|
« Ответ #7 : 29 Февраль, 2016, 12:28:03 » |
|
Для подробного лога нужно указать дополнительный параметр драйверу, что-нибудь вида cam verbose или mmcsd verbose=9 (если такая опция у драйвера есть).
Настоятельно рекомендую обратить внимание на то, что могло измениться в исходных кодах всего BSP, а не только в одном конкретном драйвере. Компонентов которые можно было поломать достаточно много (startup, общие заголовочные файлы, общие библиотеки).
Возьмите рабочую старую версию BSP и новую. Оба BSP полностью пересоберите (не только драйвер SD, но и startup и другие драйверы) и проверьте работу на плате. Чтобы не было путаницы рекомендую сделать это в консоли. Удостоверьтесь, что в старом BSP драйвер работает. Сравните исходные коды по всему BSP. Удобно сравнивать какой-либо внешней графической программой, показывающей различия (meld, kdiff, kompare или аналоги для Windows)
|
|
|
Записан
|
|
|
|
ad
Пользователь
Сообщений: 70
|
|
« Ответ #8 : 01 Март, 2016, 22:52:15 » |
|
Спасибо огромное за советы. Мы собираем в консоли в QNX 6.5.0. Привыкли уже использовать VIM, MQC и MED. Пересборка проекта, как правило, полная, а не только драйвера.
|
|
|
Записан
|
|
|
|
ad
Пользователь
Сообщений: 70
|
|
« Ответ #9 : 01 Март, 2016, 22:57:03 » |
|
Проблема обнаружена и решена. Оказалось, что контроллер ARM, не смотря на неправильный uEnv.txt для запуска с eMMC, умудрялся запускаться с eMMC или NAND и, пока по не совсем понятным причинам, не монтировал именно флеш-карту, а не eMMC. В sloginfo писал как раз-таки о некорректности карты. Выдавал сообщение: Unsupported card inserted! С карточкой теперь разбираемся. Пока что такой оказалась лишь одна штука. Но вполне возможно, тут дело в кривых ручках и что-то неправильно делали. Думаю... разберемся. Еще раз СПАСИБО.
|
|
|
Записан
|
|
|
|
gordeev_as
Пользователь
Сообщений: 32
|
|
« Ответ #10 : 02 Март, 2016, 07:21:36 » |
|
Ну что же приятно слышать, что причина установлена. После того как разберетесь окончательно, напишите в чем именно была проблема и как решили, для истории.
|
|
|
Записан
|
|
|
|
ad
Пользователь
Сообщений: 70
|
|
« Ответ #11 : 15 Март, 2016, 22:52:01 » |
|
Ну что же приятно слышать, что причина установлена. После того как разберетесь окончательно, напишите в чем именно была проблема и как решили, для истории.
Ну остановились на том, что при проверке надо смотреть какие устройства загрузились, если что-то не загрузилось, то искать в sloginfo фразу, указанную выше и в этом случае, менять flash-карту.
|
|
|
Записан
|
|
|
|
|