Понимание ПЗУ / ОЗУ в микроконтроллерах ARM

32-битный ARM SAM3X8E имеет 512 КБ ПЗУ и 96 КБ ОЗУ на борту. Это означает, что если я прошиваю на него двоичный файл размером, скажем, 400 КБ и который потребляет, скажем, 80 КБ ОЗУ (макс.) во время выполнения, то этот двоичный файл «подойдет» для этого MCU. Однако я не смог бы прошить на чип двоичный файл размером 800 КБ, а также не смог бы запустить двоичный файл, который потребляет 1 МБ ОЗУ во время выполнения. Имеет смысл.

Затем есть последний Raspberry Pi с 32-битным ARM A7 с 1 ГБ ОЗУ (я не смог найти размер его ПЗУ). Это заставило меня задуматься о том, что за вуду и колдовство связано с этими микроконтроллерами ARM, которые находятся в RPi:

  • Действительно ли ARM A7 намного мощнее (1 ГБ против 96 КБ ?!?!), чем SAM3X8E?; или
  • Есть ли у RPi какое-то «вспомогательное оборудование», которое помогает масштабировать / расширять ARM A7 за пределы его обычных возможностей масштаба КБ?; или
  • Я совершенно неправильно понимаю возможности A7 в 1 ГБ, и, возможно, этот 1 ГБ исходит от комбинации RPI A& плюс память вне MCU, где-то еще на плате? В этом случае мне интересно, каковы на самом деле ограничения ПЗУ / ОЗУ MCU RPi и почему вместо этого нельзя было использовать SAM3X8E.

Во всяком случае, я сократил это, это просто не складывается или не имеет смысла для меня. Как один продукт ARM кажется в 10 000 раз больше (по объему памяти), чем другой?!?

Обратите внимание, что вся эта оперативная память потребляет энергию. Запуск RaspberryPi от батареи означает использование блока питания мобильного телефона и его разрядка в течение нескольких часов, в то время как небольшие микроконтроллеры могут работать от нескольких ячеек AAA в течение нескольких недель (очевидно, не вся разница заключается в мощности, потребляемой оперативной памятью).

Ответы (1)

Оперативная память на Raspberry Pi отключена от процессора. На оригинальных моделях это было в упаковке на упаковке — в более новых моделях она установлена ​​под процессором, на другой стороне платы.

Вы вполне можете обнаружить, что вы можете расширить SAM3X8E таким же образом — большинство микроконтроллеров имеют интерфейс внешней памяти для такого рода вещей — поищите в таблице данных EMIF.

Причина, по которой вы не можете найти размер ПЗУ Raspberry Pi, заключается в том, что он имеет небольшой двоичный объект на процессоре, который затем поддерживает загрузку с флэш-памяти — опять же внешней и в виде карты micro SD.

О, и почему Raspberry Pi использует тот же процессор? Эбен Аптон работает в Broadcom...

Спасибо @stefandz (+1) - справедливо ли будет сказать, что ARM A7 - это микропроцессор, который имеет распиновку для внешней шины памяти и поэтому может интегрироваться с внешней оперативной памятью? И что ARM SAM3X8E — это микроконтроллер , который не имеет таких возможностей внешней шины памяти и поэтому ограничен встроенной памятью? Если оба эти понимания верны, то, пожалуйста, просто подтвердите их, и я с радостью дам вам «зеленый чек»! И если я все еще неправильно понимаю их разницу, пожалуйста, просто поясните мне. Еще раз спасибо!
Технически (и это тонкое, но важное различие) Broadcom BCM2835 является SOC — en.wikipedia.org/wiki/System_on_a_chip В этой статье Wiki рассматривается разница между MCU и SOC, но границы могут быть размыты. У SAM3X8E есть EMIF, поэтому при желании он может взаимодействовать с внешней памятью. В целом SAM3X8E имеет более общее назначение, тогда как BCM2835 адаптирован для конфигурации типа мини-ПК с Linux и выходным дисплеем — немного похоже на Pi!
Спасибо @stefandz (еще раз +1) - извините за невежественные вопросы здесь, последние 2 продолжения (обещаю): (1) можете ли вы подтвердить, что то, что я называю «A7», это то, что вы называете « BCM2835"? И (2) Не могли бы вы указать мне направление документации, в которой говорится, что SAM3X8E имеет интерфейс внешней памяти (кажется, я не могу его найти)? Еще раз спасибо!
(1): Извините, на самом деле это BCM2836, который является A7 (если вы прокрутите страницу вики, на которую вы ссылаетесь, вы увидите ее упоминание вместе с Raspberry Pi 2, являющимся целью). Меня бросило то, что вы изначально упомянули Pi 1 (с ядром ARM11). A7 и ARM11 — это ядра (реализации технологии центрального процессора) — BCM2835 и BCM2836 — это конкретные части, которые используют эти ядра. (2): atmel.com/devices/sam3x8e.aspx «16-битный интерфейс внешней шины поддерживает SRAM, PSRAM, NOR и NAND Flash с коррекцией кода ошибки». SRAM/PSRAM — это память, поэтому интерфейс шины — это EMIF.