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

Какие SPI Flash поддерживаются Alwinner V3S, F1C100S и т.п.?

1 час назад, makc сказал:

В реальной практике (по крайней мере моей) есть дескриптор, дальше которого правильно написанный код не пойдет

Вопрос на засыпку (из реальной же практики): Как собираетесь читать свою первую страницу флеши, при условии, что прошивка могла запуститься например после кратковременного импульса сброса, который был подан на устройство в момент выполнения стирания сектора (или всего чипа) флешь? Типа флеши вы не знаете, соответственно - определить формат регистра статуса и даже код команды его чтения - не можете. А значит и опеределить факт нахождения флеши в режиме стирания - тоже не можете.

Ваши действия?  (т.е. - действия программы по вашему сценарию?)

 

PS: Да, если говорить точнее, то мои драйвера работы с флешь обычно начинают работу не с чтения JEDEC_ID, а с команды с кодом == 0xAB.  :wink:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

22 минуты назад, jcxz сказал:

Вопрос на засыпку (из реальной же практики): Как собираетесь читать свою первую страницу флеши, при условии, что прошивка могла запуститься например после кратковременного импульса сброса, который был подан на устройство в момент выполнения стирания сектора (или всего чипа) флешь? Типа флеши вы не знаете, соответственно - определить формат регистра статуса и даже код команды его чтения - не можете. А значит и опеределить факт нахождения флеши в режиме стирания - тоже не можете.

Ваши действия?  (т.е. - действия программы по вашему сценарию?)

Будет выполнено несколько попыток чтения дескриптора с паузами и после этого, если чтение и проверку целостности дескриптора выполнить не удалось, то загрузка дальше не пойдёт. Если ресет прервал стирание сектора, то команда чтения будет проигнорирована и КС на заголовок не сойдется (и магическое число в нём не будет обнаружено), поэтому повторы должны дать в итоге возможность чтения заголовка. Иначе пользователю придётся выключить и ещё раз включить устройство, чтобы выполнить восстановление работоспособности после подобного сбоя.

28 минут назад, jcxz сказал:

PS: Да, если говорить точнее, то мои драйвера работы с флешь обычно начинают работу не с чтения JEDEC_ID, а с команды с кодом == 0xAB.  :wink:

Если у вас используется команда power-down в паузах между работой с SPI Flash, то это логично и необходимо. У меня такой проблемы нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 минут назад, makc сказал:

аргумент был высосан из пальца и по сути дело не во флешках, а в кривом коде, который шьёт OTP без разбора.

Аргумент был из реальной жизни. А говорил он о необходимости идентифицировать чип до обращений к нему. Что не было выполнено тогда.

6 минут назад, makc сказал:

Править рабочую прошивку нужно при вашем подходе (а может быть ещё и технологическую, если таковая есть).

Появился новый тип флеши, которого ранее не было. Со своими особенностями. Рабочее ПО использовало довольно большой набор команд: чтение, запись, стирание, работа с регистрами защиты и перевод в сон. Чтение работало в режимах Dual-I/O и или даже Quad, может даже DDR режимы, на высоких SCLK. Т.е. - использовались возможности задания латентности. Что-то поменялось добавилось/убавилось - и неужто вот так прям сразу рабочее ПО заработет без возможной корректировки на ранее не известном типе флешь??? Не верю!

6 минут назад, makc сказал:

Как минимум в объёме тестирования, т.к. нужно убедиться в работоспособности физики (интерфейса (Quad) SPI), а не логики (поведения прошивки после пересборки).

Не верю! Достаточно хотя бы скорость работы по SPI-шине изменить и то это уже может привести к проблемам в работе не достаточно отлаженного кода. А абсолютно идеального кода не бывает, так как при современном объёме и сложности кода - в принципе невозможно отладить его работу при любых сочетаниях влияющих факторов.

6 минут назад, makc сказал:

от технологического ПО уйти не получится от слова совсем. Но вы этот момент предпочитаете упорно незамечать. 😉

Странно - как же тогда мои устройства работают? :unknw:  У меня (сейчас) только одно ПО - рабочее. Никакого технологического нет. И это никак не мешает ему работать с SPI-флешкой.

ЧЯДНТ?  :unknw:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Только что, jcxz сказал:

Аргумент был из реальной жизни. А говорил он о необходимости идентифицировать чип до обращений к нему. Что не было выполнено тогда.

Жизнь она такая ... разная. Я говорил про вполне определённую логику использования команды чтения. Вы почему-то решили привести пример некорректного использования команды записи. Как это характеризует мой подход? Мне кажется ровным счётом никак. Каждый поговорил о своём. 🤦‍♂️

1 минуту назад, jcxz сказал:

Появился новый тип флеши, которого ранее не было. Со своими особенностями. Рабочее ПО использовало довольно большой набор команд: чтение, запись, стирание, работа с регистрами защиты и перевод в сон. Чтение работало в режимах Dual-I/O и или даже Quad, может даже DDR режимы, на высоких SCLK. Т.е. - использовались возможности задания латентности. Что-то поменялось добавилось/убавилось - и неужто вот так прям сразу рабочее ПО заработет без возможной корректировки на ранее не известном типе флешь??? Не верю!

Всё зависит от требований. Для записи и работы в высокоскоростных режимах проблем больше, для чтения - меньше. У всех свои задачи, для моих задач этого хватает. Так же как вполне хватает для загрузки прошивок SOC и ПЛИС их встроенным BootROM или его аналогом в виде Configuration FSM.

4 минуты назад, jcxz сказал:

Не верю! Достаточно хотя бы скорость работы по SPI-шине изменить и то это уже может привести к проблемам в работе не достаточно отлаженного кода. А абсолютно идеального кода не бывает, так как при современном объёме и сложности кода - в принципе невозможно отладить его работу при любых сочетаниях влияющих факторов.

Ваше право неверить, но аккуратно написанный код с таймаутами и корректной проверкой готовности/завершения операций меня ещё ни разу не подводил при работе практически со всеми доступными на текущий момент видами флешек и с большой вероятностью с большинством будущих. Хотя я никак не могу получить на тестирование образцы от упомянутых выше китайцев, которые предлагают купить сразу 10к штук на пробу. 🙂

52 минуты назад, jcxz сказал:

Странно - как же тогда мои устройства работают? :unknw:  У меня (сейчас) только одно ПО - рабочее. Никакого технологического нет. И это никак не мешает ему работать с SPI-флешкой.

ЧЯДНТ?  :unknw:

Расскажите, как ПО (прошивка) попадает во флеш-память в устройстве? Заказали плату, смонтировали на неё микросхемы и всё остальное, подключили питание и что дальше? Как происходит "оживление"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 минут назад, makc сказал:

Я говорил про вполне определённую логику использования команды чтения. Вы почему-то решили привести пример некорректного использования команды записи.

Ещё раз: В том примере я говорил о необходимости идентификации чипа при старте ПО.

16 минут назад, makc сказал:

Ваше право неверить, но аккуратно написанный код с таймаутами и корректной проверкой готовности/завершения операций меня ещё ни разу не подводил

Ну если вам на все случаи жизни хватает мееееееееедленного чтения командой 0x03... Но бывают и другие потребности. Бывает нужно как можно быстрее. А бывает нужно вперемежку - на разных режимах/скоростях. Бывает на SPI-шине сидят несколько разных устройств. И т.д.

22 минуты назад, makc сказал:

Как происходит "оживление"?

Прошили МК, включили, ПО запустилось, продетектировало флешку, обнаружило отсутствие/разрушенность данных - проинициализировало структуры данных во флешке. всё.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 минуты назад, jcxz сказал:

Ещё раз: В том примере я говорил о необходимости идентификации чипа при старте ПО.

Я вроде бы нигде не отрицал необходимости идентификации чипа и его возможностей, но предлагал выполнять эту идентификацию в более гибком и прогнозируемом/универсальном ключе.

4 минуты назад, jcxz сказал:

Ну если вам на все случаи жизни хватает мееееееееедленного чтения командой 0x03... Но бывают и другие потребности. Бывает нужно как можно быстрее. А бывает нужно вперемежку - на разных режимах/скоростях. Бывает на SPI-шине сидят несколько разных устройств. И т.д.

Вы снова передергиваете. Записываемый в начало флеша дескриптор, читаемый с помощью команды 0x03, как раз таки и позволяет выполнить вышеуказанную идентификацию с последующим выходом на более скоростной режим работы, которые поддерживаются в запаянном чипе SPI NOR Flash. Так что потребности вполне удовлетворяются, клиент доволен. 😄

6 минут назад, jcxz сказал:

Прошили МК, включили, ПО запустилось, продетектировало флешку, обнаружило отсутствие/разрушенность данных - проинициализировало структуры данных во флешке. всё.

"Прошили МК" без технологического ПО и оснастки в виде кабеля программирования? Не верю! (с) 😉
Да, я знаю что у некоторых МК есть DFU и т.п. средства, которые позволяют избавиться от зависимости от "кабеля программирования", но вот от технологического ПО, увы, это не избавляет.
И несмотря на это вы продолжаете утверждать, что у вас при "Прошивке МК" технологическое ПО не используется?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 минуты назад, makc сказал:

Вы снова передергиваете. Записываемый в начало флеша дескриптор, читаемый с помощью команды 0x03, как раз таки и позволяет выполнить вышеуказанную идентификацию с последующим выходом на более скоростной режим работы, которые поддерживаются в запаянном чипе SPI NOR Flash. Так что потребности вполне удовлетворяются, клиент доволен. 😄

Вы снова забываете о чём шла речь. Перечитайте ещё раз на что конкретно была ответом та моя фраза. А фраза была о том, что чем более сложный код, тем менее вероятно, что после замены одного компонента на другой, с другими характеристиками, не пришлось бы что-то править в программе.

39 минут назад, makc сказал:

Ваше право неверить, но аккуратно написанный код с таймаутами и корректной проверкой готовности/завершения операций

Любой код считается аккуратным (и даже рьяно утверждается об этом автором) ровно до того момента, пока в нём не будет найден баг.  :biggrin:

12 минут назад, makc сказал:

И несмотря на это вы продолжаете утверждать, что у вас при "Прошивке МК" технологическое ПО не используется?

"Технологическое ПО собственного изготовления, которое нужно править после каждой новой впаянной флешки" - да, не используется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мимокрокодил:

  • Мне кажется - тема топика забыта.
  • Ну раз забыта, добавлю - SFDP (serial flash discoverable parameters).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 минуту назад, Точка Опоры сказал:

Ну раз забыта, добавлю - SFDP (serial flash discoverable parameters).

Они есть не везде.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 минут назад, Alexey_77 сказал:

Файлик древний, но новее не нашлось....

Дак и сам проц уже далеко не новый, уже NRND скоро объявят версии с памятью 1.8В...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...