Pull to refresh

Comments 21

Я уж думал, что SPI NOR Flash — это рудимент, который канул в лету. Ан нет, всё ещё используют. А какой практический толк в использовании этого мамонта?

Ну что Вы, еще как используется. Например вы можете на ARM-борде использовать в качестве загрузчика EDK II, записав его в SPI флешку. Тогда вы будете иметь возможность загружаться с дисков GPT/UEFI. Как, например, Baikal M1000.

Да и нельзя забывать про BIOS и BMC.

Просто на смену ему пришла eMMC, которая не имеет тех проблем, которая имеет NOR Flash. Там надо ФС иметь соответствующие, типа jffs2, и прочие грабли и гемморои. Вспомнить ещё всякие области расширения. В общем, я не вижу смысла в её использовании.

Я про загрузчик, который вы описываете, ничего не знаю. Знаю u-boot, но что мешает спроектировать схемотехнику так, чтобы использовать eMMC?

eMMC лучше использовать как системный диск, ведь eMMC теперь впаивают большого объема. И при наличии EDK в SPI, еММС станет для пользователя обычным диском, как HDD на его лаптопе, куда он может инсталлировать OS (и ему не надо будет думать о Flash Layout и по каким адресам писать u-boot).

А какая религия мешает всё разместить на одной микросхеме? Просто я пока не понимаю преимуществ NOR Flash, кроме явных недостатков.

Вот неплохая обзорная статья по верхам:

https://embeddedcomputing.com/technology/storage/a-comparison-of-flash-devices-for-embedded-system-booting

Просто я пока не понимаю преимуществ NOR Flash, кроме явных недостатков.

  • EOL (цикл жизни)

  • SPI NOR может быть реально быстрее eMMC

  • Как я уже говорил XIP

  • Сильно проще разводка на плате

In conclusion, although SLC NAND, eMMC, and UFS have a lower cost per bit, NOR Flash devices can still be the best choice for an embedded system booting device, especially in applications that require very fast system boot-up time.


Вновь возвращаемся к вопросу, что это вымирающий мамонт. Ибо дорого.

Вот если бы вопрос был NAND vs eMMC вот тогда я бы согласился с каждым тезисом, а так нет неправда.

недостатки скорей у EMMC, нежели у SPI NOR Flash - старо, медленно, ненадежно, принципиально не нужно в ноутбуках, материнках и микрокомпьютерах (тенденция повсеместного внедрения NVME накопителей в качестве "взрослого диска", а для SPI NOR остается UEFI и прочие "начальные инициализации").

Тут вопрос сильно сложнее:

1) eMMC еще надо настроить (включить тактирование)

2) После включения доступна не вся память (основную еще надо настроить)

и т.д.

Это делает ZSBL (Zero-stage bootloader), который опять же надо откуда-то загрузить, а настроенной памяти может не хватать для всего функционала.

Тогда грузиться загручик следующего уровня (условно First stage bootloader) который настраивает память и допустим eMMC и т.д.

Получаеться, что SPI NOR настроить сильно проще это раз, во-вторых, как правило они обладают свойством XIP (Execute In Place), что вообще позволяет исполнять код прямо из флэшки.

Там надо ФС иметь соответствующие, типа jffs2, и прочие грабли и гемморои

Нет не нужно, для u-boot, kernel, initrd не нужно, там поиск и метка badblock's происходит при erase.

Для rootfs раздела - да нужно, если он не RO.

) eMMC еще надо настроить (включить тактирование)

2) После включения доступна не вся память (основную еще надо настроить)

и т.д.

Это делает ZSBL (Zero-stage bootloader), который опять же надо откуда-то загрузить, а настроенной памяти может не хватать для всего функционала.


Тут согласен, предзагрузчик надо куда-то записать. Но разве современные камни не имеют на борту памяти для такого старта?

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

Тут согласен, предзагрузчик надо куда-то записать. Но разве современные камни не имеют на борту памяти для такого старта?

Зависит от... eMMC контроллер стоит всего бакс, но бакс это бакс =) Так же и с памятью.

А еще вопрос ножек остро стоит, SPI условно 4ре ножки - а eMMC ?

Так что скорее не "старые", "современные", а hight-end, low-end, мне так кажется.

У многих современных SoC есть встроенный bootloader для загрузки из eMMC. И тогда U-Boot и rootfs можно разместить на одном eMMC или SD-карте. Иногда так делают.

Но первичная загрузка из SPI-флэш распространена больше. Как минимум из-за большей надёжности и "дуракостойкости". Если eMMC откажет, будет перетёрта по ошибке и т.д., загрузчик в SPI останется и поможет восстановить устройство или хотя бы диагностировать проблему.

Срок жизни современных еммц на тлц памяти - полтора-три года. NOR живут десятилетиями без питания.

Кому мамонт, а кому насущная необходимость. Есть системы на основе ПЛИС, где нужна скорость загрузки и важен объем флешки. Вот там-то NOR и работает. И поверьте, таких задач очень много, где нужно работать сразу после подачи питания. С процессорами то же самое.
Номинал токоограничивающих резисторов на схеме всего 33 Ом. При напряжении 3,3 В ток составит 100 мА. Такой ток не сможет обеспечить ни CH341A, ни целевая плата.
Или расчет на то, что нужно каждый раз отсоединять разъем программатора?

Два разъема как раз для того, чтобы быстро переключать плату то на программатор, но на целевую машину. Держать программатор подключенным постоянно практически не удобно.

Хм, а мне кажется наоборот — ведь при отладке постоянно приходится модифицировать прошивку, и частое подключение/отключение программатора быстро выведет из строя (позолоченные) контакты разъема.

Также в этом случае возникает другой вопрос: зачем вообще нужны резисторы 33 Ом? Ведь они лишь загрубляют фронты, укорачивая допустимую длину шлейфа.
Sign up to leave a comment.

Articles