PDA

Просмотр полной версии : ПЛК304. Пропадает флэшка.



arsenius
23.02.2016, 00:02
Всем привет! Пишу файлы рутинно при помощи команд SysFileOpen и SysFileWrite. Каждый час меняю имя файла. Всё пишется нормально несколько часов, потом сбой. SysFileOpen возвращает 16#FFFFFFFF. При просмотре с помощью WinSCP папка sda1 по mnt/ufs/media/ не обнаруживается, хотя никто флэшку не трогал из разъёма.
Какие будут рекомендации?

capzap
23.02.2016, 09:01
этого описания проблемы мало, сохраните в файл вывод команды dmesg, это как минимум

arsenius
23.02.2016, 11:47
Эту команду после очередного сбоя ввести через гипертерминал и кабель КС-06?

capzap
23.02.2016, 11:56
я пользусь езернетом и прогой putty

arsenius
23.02.2016, 14:55
Да, какие-то подозрительные буковки про USB были в логе, но для чистоты эксперимента перевключил контроллер. Пока мониторю.

arsenius
23.02.2016, 19:24
Поймал пока это, но до этого лог был информативнее. Половлю ещё. 22814
Со строки 313 по 330 - реакция на нажатие правой кнопкой мыши. Далее повторная команда dmesg.
По состоянию файлов на момент сбоя система отработала три часа.
22815 Это лог при нормальной работе.

capzap
23.02.2016, 20:01
ошибки чтения могут возникнуть если в проге какой то баг, пытающийся каждый цикл читать файл,недождавшись завершения предыдущей операции чтения. Попытайтесь создать проект с нуля с одним только чтением файла, строго соблюдая условия однократного выполнения функции чтения, если ошибка себя не проявит, значит нужно пересматривать построение основного проекта

arsenius
23.02.2016, 20:11
В проекте происходит только запись файла. Если не считать попытку открытия. Шаблон взял из примера http://www.owen.ru/forum/showthread.php?t=23369&page=4
Tenzo_chemodan_final.projectarchive. Ничего принципиально не менял, кроме добавления дополнительных колонок данных.

arsenius
23.02.2016, 23:14
Пока два предположения. 1. Пишу раз в пять секунд - предыдущая операция однажды не успевает завершиться. Время до сбоя всё время разное. 2. Что-то с флэшкой. Перед использованием форматировал, но быстрым форматированием. Может и размер флэшки превышает допустимый?

arsenius
24.02.2016, 10:53
22826 другая флэшка, тоже на 4Гб, но форматированная не быстрым способом. Сбой после двух с половиной часов работы.

Изменил период записи до 20сек и параллельно начал аналогичную операцию на microSD, но с прежним периодом - 5сек. Мониторю...

arsenius
24.02.2016, 13:04
С 20сек USB-flash проработала полтора часа. Лог поинтереснее, даже кажется с демонтированием флэшки системой. 22831
MicroSD пока пишется.

arsenius
24.02.2016, 15:12
MicroSD пишет до сих пор. Причём даже после того как я её на горячую вытащил и обратно вставил.
USB не радует. А нужна работа именно с USB флэшкой...

arsenius
25.02.2016, 08:42
MicroSD отработала всю ночь без вопросов. USB отвалилась через полтора часа работы.

capzap
25.02.2016, 08:55
попробуйте записывать файл посредством линукса, через бибку sysexec, например http://www.owen.ru/forum/showthread.php?t=16717&p=130917&viewfull=1#post130917

arsenius
25.02.2016, 14:58
А теперь самое интересное. Выдохнули? Не пишу на флэшку вообще ничего. Отваливается. 22856
Круг поиска сузился?

arsenius
26.02.2016, 13:49
Пробовал другую флэшку. Пробовал вместо FAT32 форматировать в FAT. Ничего не помогает. Отваливается и всё. Смотрю в WinSCP. После включения есть папка sda1 и содержимое. Пара часов работы, сперва пропадает содержимое, а затем и сама папка исчезает. Не может быть, что это только у меня такое. Или это брак?

capzap
26.02.2016, 14:01
не пропай встречается в 304-ых, возможно при продолжительной работе от нагрева что то отслаивается из контактов

arsenius
26.02.2016, 15:13
Ого! Ну если только непропай во флэшках. Ведь контроллер обесточивался на секунду перед очередным тестом, и флэшка не вытаскивалась. Но в экспериментах применяются две флэшки. И говорит ли о чём нибудь лог линукса? Не уж то непропай можно прочитать между его строк?

capzap
26.02.2016, 16:16
так задайте строчку из лога
irq 23 nobody cared (try booting with the irqpoll option)в гугле и посмотрите

arsenius
26.02.2016, 16:50
Ну уж нет. Не полезу я паяльником тыкать в кортекс. Надеюсь техподдержка прольёт свет.
Кстати, залил пустой проект. Флэшка держится три часа. Но в экспериментальном проекте операции обращения к ней я обходил жёстким условием, так что не знаю в чём тут разница. Рухнет она тут в выходные на работе или нет, но проект позже тут выложу. Я уж даже стал надеяться на кривизну рук.

arsenius
03.03.2016, 09:47
Итак. Провёл серию экспериментов с ожиданием результата не менее 8 часов работы контроллера. Выходит, что к "отваливанию" USB-носителя приводит просто использования функций из библиотеки SysFile. Причем работа функций успешна на microSD. Вот проект 22957. В подпрограмме Archive2 вызывается кусок кода Archiv в котором пишется архив на microSD. В первой строке стоит условие. Когда я его задаю жёстко на обход кода записи, тогда USB флешка не вылетает. По крайней мере с конца рабочего дня до его начала. Если ставлю как стоит в этом проекте, то есть как и положено, USB отлетает. На какой час не скажу, рядом нет, но я думаю через 2-3 часа, как это было ранее.
Лог puttyна прилагаю. 22958

Что скажете, господа специалисты?

capzap
03.03.2016, 10:00
там бибку sysexec так значит и не попробовали, раз считаете что sysfile виноват

arsenius
03.03.2016, 10:20
Дело не в интересе - "заработает или нет". Как альтернативу ArchivatorLib мне предложили вариант с sysfile. С примером. К сожалению я не гений программирования и ограничен во времени. Насколько я понял sysexec это выполнение консольных команд из runtime моего кода. На мой взгляд это выход в космос, не исследовав атмосферы. А в этом космосе может быть всё что угодно. Я б с удовольствием, если бы работал инженером проекта по разработке и поддержке ПЛК304 :)

capzap
03.03.2016, 10:33
какой космос, за Вас в файл будет писать сам Линукс, от Вас требуется только составить строку данных, в переди добавить команду эхо, а в конце в какой файл и каким образом писать. Вы уже неделю экспериментами занимаетесь на пустом месте,хотя хватило бы часа освоить простейшие команды линуксе и работы с другой бибкой

arsenius
03.03.2016, 10:49
Я уже подчёркивал, что не на пустом. Эксперименты - залил утром, в конце дня проверил. Сильно не напрягаюсь. Выходить за рамки runtime не хочу, суеверен. Хочу услышать мнение разработчиков.