jcxz 242 8 марта, 2023 Опубликовано 8 марта, 2023 · Жалоба 1 час назад, makc сказал: В реальной практике (по крайней мере моей) есть дескриптор, дальше которого правильно написанный код не пойдет Вопрос на засыпку (из реальной же практики): Как собираетесь читать свою первую страницу флеши, при условии, что прошивка могла запуститься например после кратковременного импульса сброса, который был подан на устройство в момент выполнения стирания сектора (или всего чипа) флешь? Типа флеши вы не знаете, соответственно - определить формат регистра статуса и даже код команды его чтения - не можете. А значит и опеределить факт нахождения флеши в режиме стирания - тоже не можете. Ваши действия? (т.е. - действия программы по вашему сценарию?) PS: Да, если говорить точнее, то мои драйвера работы с флешь обычно начинают работу не с чтения JEDEC_ID, а с команды с кодом == 0xAB. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 231 8 марта, 2023 Опубликовано 8 марта, 2023 · Жалоба 22 минуты назад, jcxz сказал: Вопрос на засыпку (из реальной же практики): Как собираетесь читать свою первую страницу флеши, при условии, что прошивка могла запуститься например после кратковременного импульса сброса, который был подан на устройство в момент выполнения стирания сектора (или всего чипа) флешь? Типа флеши вы не знаете, соответственно - определить формат регистра статуса и даже код команды его чтения - не можете. А значит и опеределить факт нахождения флеши в режиме стирания - тоже не можете. Ваши действия? (т.е. - действия программы по вашему сценарию?) Будет выполнено несколько попыток чтения дескриптора с паузами и после этого, если чтение и проверку целостности дескриптора выполнить не удалось, то загрузка дальше не пойдёт. Если ресет прервал стирание сектора, то команда чтения будет проигнорирована и КС на заголовок не сойдется (и магическое число в нём не будет обнаружено), поэтому повторы должны дать в итоге возможность чтения заголовка. Иначе пользователю придётся выключить и ещё раз включить устройство, чтобы выполнить восстановление работоспособности после подобного сбоя. 28 минут назад, jcxz сказал: PS: Да, если говорить точнее, то мои драйвера работы с флешь обычно начинают работу не с чтения JEDEC_ID, а с команды с кодом == 0xAB. Если у вас используется команда power-down в паузах между работой с SPI Flash, то это логично и необходимо. У меня такой проблемы нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 8 марта, 2023 Опубликовано 8 марта, 2023 · Жалоба 6 минут назад, makc сказал: аргумент был высосан из пальца и по сути дело не во флешках, а в кривом коде, который шьёт OTP без разбора. Аргумент был из реальной жизни. А говорил он о необходимости идентифицировать чип до обращений к нему. Что не было выполнено тогда. 6 минут назад, makc сказал: Править рабочую прошивку нужно при вашем подходе (а может быть ещё и технологическую, если таковая есть). Появился новый тип флеши, которого ранее не было. Со своими особенностями. Рабочее ПО использовало довольно большой набор команд: чтение, запись, стирание, работа с регистрами защиты и перевод в сон. Чтение работало в режимах Dual-I/O и или даже Quad, может даже DDR режимы, на высоких SCLK. Т.е. - использовались возможности задания латентности. Что-то поменялось добавилось/убавилось - и неужто вот так прям сразу рабочее ПО заработет без возможной корректировки на ранее не известном типе флешь??? Не верю! 6 минут назад, makc сказал: Как минимум в объёме тестирования, т.к. нужно убедиться в работоспособности физики (интерфейса (Quad) SPI), а не логики (поведения прошивки после пересборки). Не верю! Достаточно хотя бы скорость работы по SPI-шине изменить и то это уже может привести к проблемам в работе не достаточно отлаженного кода. А абсолютно идеального кода не бывает, так как при современном объёме и сложности кода - в принципе невозможно отладить его работу при любых сочетаниях влияющих факторов. 6 минут назад, makc сказал: от технологического ПО уйти не получится от слова совсем. Но вы этот момент предпочитаете упорно незамечать. 😉 Странно - как же тогда мои устройства работают? У меня (сейчас) только одно ПО - рабочее. Никакого технологического нет. И это никак не мешает ему работать с SPI-флешкой. ЧЯДНТ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 231 8 марта, 2023 Опубликовано 8 марта, 2023 · Жалоба Только что, jcxz сказал: Аргумент был из реальной жизни. А говорил он о необходимости идентифицировать чип до обращений к нему. Что не было выполнено тогда. Жизнь она такая ... разная. Я говорил про вполне определённую логику использования команды чтения. Вы почему-то решили привести пример некорректного использования команды записи. Как это характеризует мой подход? Мне кажется ровным счётом никак. Каждый поговорил о своём. 🤦♂️ 1 минуту назад, jcxz сказал: Появился новый тип флеши, которого ранее не было. Со своими особенностями. Рабочее ПО использовало довольно большой набор команд: чтение, запись, стирание, работа с регистрами защиты и перевод в сон. Чтение работало в режимах Dual-I/O и или даже Quad, может даже DDR режимы, на высоких SCLK. Т.е. - использовались возможности задания латентности. Что-то поменялось добавилось/убавилось - и неужто вот так прям сразу рабочее ПО заработет без возможной корректировки на ранее не известном типе флешь??? Не верю! Всё зависит от требований. Для записи и работы в высокоскоростных режимах проблем больше, для чтения - меньше. У всех свои задачи, для моих задач этого хватает. Так же как вполне хватает для загрузки прошивок SOC и ПЛИС их встроенным BootROM или его аналогом в виде Configuration FSM. 4 минуты назад, jcxz сказал: Не верю! Достаточно хотя бы скорость работы по SPI-шине изменить и то это уже может привести к проблемам в работе не достаточно отлаженного кода. А абсолютно идеального кода не бывает, так как при современном объёме и сложности кода - в принципе невозможно отладить его работу при любых сочетаниях влияющих факторов. Ваше право неверить, но аккуратно написанный код с таймаутами и корректной проверкой готовности/завершения операций меня ещё ни разу не подводил при работе практически со всеми доступными на текущий момент видами флешек и с большой вероятностью с большинством будущих. Хотя я никак не могу получить на тестирование образцы от упомянутых выше китайцев, которые предлагают купить сразу 10к штук на пробу. 🙂 52 минуты назад, jcxz сказал: Странно - как же тогда мои устройства работают? У меня (сейчас) только одно ПО - рабочее. Никакого технологического нет. И это никак не мешает ему работать с SPI-флешкой. ЧЯДНТ? Расскажите, как ПО (прошивка) попадает во флеш-память в устройстве? Заказали плату, смонтировали на неё микросхемы и всё остальное, подключили питание и что дальше? Как происходит "оживление"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 8 марта, 2023 Опубликовано 8 марта, 2023 · Жалоба 14 минут назад, makc сказал: Я говорил про вполне определённую логику использования команды чтения. Вы почему-то решили привести пример некорректного использования команды записи. Ещё раз: В том примере я говорил о необходимости идентификации чипа при старте ПО. 16 минут назад, makc сказал: Ваше право неверить, но аккуратно написанный код с таймаутами и корректной проверкой готовности/завершения операций меня ещё ни разу не подводил Ну если вам на все случаи жизни хватает мееееееееедленного чтения командой 0x03... Но бывают и другие потребности. Бывает нужно как можно быстрее. А бывает нужно вперемежку - на разных режимах/скоростях. Бывает на SPI-шине сидят несколько разных устройств. И т.д. 22 минуты назад, makc сказал: Как происходит "оживление"? Прошили МК, включили, ПО запустилось, продетектировало флешку, обнаружило отсутствие/разрушенность данных - проинициализировало структуры данных во флешке. всё. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 231 8 марта, 2023 Опубликовано 8 марта, 2023 · Жалоба 3 минуты назад, jcxz сказал: Ещё раз: В том примере я говорил о необходимости идентификации чипа при старте ПО. Я вроде бы нигде не отрицал необходимости идентификации чипа и его возможностей, но предлагал выполнять эту идентификацию в более гибком и прогнозируемом/универсальном ключе. 4 минуты назад, jcxz сказал: Ну если вам на все случаи жизни хватает мееееееееедленного чтения командой 0x03... Но бывают и другие потребности. Бывает нужно как можно быстрее. А бывает нужно вперемежку - на разных режимах/скоростях. Бывает на SPI-шине сидят несколько разных устройств. И т.д. Вы снова передергиваете. Записываемый в начало флеша дескриптор, читаемый с помощью команды 0x03, как раз таки и позволяет выполнить вышеуказанную идентификацию с последующим выходом на более скоростной режим работы, которые поддерживаются в запаянном чипе SPI NOR Flash. Так что потребности вполне удовлетворяются, клиент доволен. 😄 6 минут назад, jcxz сказал: Прошили МК, включили, ПО запустилось, продетектировало флешку, обнаружило отсутствие/разрушенность данных - проинициализировало структуры данных во флешке. всё. "Прошили МК" без технологического ПО и оснастки в виде кабеля программирования? Не верю! (с) 😉 Да, я знаю что у некоторых МК есть DFU и т.п. средства, которые позволяют избавиться от зависимости от "кабеля программирования", но вот от технологического ПО, увы, это не избавляет. И несмотря на это вы продолжаете утверждать, что у вас при "Прошивке МК" технологическое ПО не используется? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 8 марта, 2023 Опубликовано 8 марта, 2023 · Жалоба 3 минуты назад, makc сказал: Вы снова передергиваете. Записываемый в начало флеша дескриптор, читаемый с помощью команды 0x03, как раз таки и позволяет выполнить вышеуказанную идентификацию с последующим выходом на более скоростной режим работы, которые поддерживаются в запаянном чипе SPI NOR Flash. Так что потребности вполне удовлетворяются, клиент доволен. 😄 Вы снова забываете о чём шла речь. Перечитайте ещё раз на что конкретно была ответом та моя фраза. А фраза была о том, что чем более сложный код, тем менее вероятно, что после замены одного компонента на другой, с другими характеристиками, не пришлось бы что-то править в программе. 39 минут назад, makc сказал: Ваше право неверить, но аккуратно написанный код с таймаутами и корректной проверкой готовности/завершения операций Любой код считается аккуратным (и даже рьяно утверждается об этом автором) ровно до того момента, пока в нём не будет найден баг. 12 минут назад, makc сказал: И несмотря на это вы продолжаете утверждать, что у вас при "Прошивке МК" технологическое ПО не используется? "Технологическое ПО собственного изготовления, которое нужно править после каждой новой впаянной флешки" - да, не используется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Точка Опоры 39 8 марта, 2023 Опубликовано 8 марта, 2023 · Жалоба Мимокрокодил: Мне кажется - тема топика забыта. Ну раз забыта, добавлю - SFDP (serial flash discoverable parameters). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 231 8 марта, 2023 Опубликовано 8 марта, 2023 · Жалоба 1 минуту назад, Точка Опоры сказал: Ну раз забыта, добавлю - SFDP (serial flash discoverable parameters). Они есть не везде. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexey_77 0 12 марта, 2023 Опубликовано 12 марта, 2023 · Жалоба https://github.com/Squonk42/V3s_Documentation/blob/master/Allwinner V3s SPI NOR Flash Support List_20150509 V1.0.pdf Файлик древний, но новее не нашлось.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 12 марта, 2023 Опубликовано 12 марта, 2023 · Жалоба 8 минут назад, Alexey_77 сказал: Файлик древний, но новее не нашлось.... Дак и сам проц уже далеко не новый, уже NRND скоро объявят версии с памятью 1.8В... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться