Адресные пространства для ПЗУ и определение виртуального адреса определенных файлов
Спасибо за чтение этого вопроса.
Я очень новичок в вооружении и компьютерной архитектуре в целом, так что извините, если это основной вопрос.
Я потратил много времени на чтение и изучение MMU и преобразования виртуальных адресов в физические. Я также узнал не об адресных пространствах. Просто чтобы быть уверенным, что все периферийные устройства io, такие как Ethernet и USB, имеют собственные адреса, а также внешнее ОЗУ и ПЗУ, верно? Поэтому я хотел узнать значения адресов специально, поэтому я прочитал этот PDF-документ здесь: http://infocenter.arm.com/help/topic/com.arm.doc.den0001c/DEN0001C_principles_of_arm_memory_maps.pdf, но это очень запутанно. Я не могу четко видеть, где написано точное адресное пространство для ПЗУ, и найденное мною адресное пространство не может превышать 128 ГБ, например, на некоторых мобильных телефонах.
Можете ли вы помочь мне разобраться во всем этом? Я все неправильно понимаю? И как мне узнать точные адреса для всех периферийных устройств, ОЗУ и ПЗУ, чтобы я мог выполнять некоторые функции загрузки и хранения этих адресов в моих кодах. Кроме того, как вы узнаете виртуальный адрес определенных файлов и документов, если я собираюсь возиться с кодированием одного из моих старых телефонов. Так для примера с адреса от 0x00BA FFFF до 0x0AFF FFFF было для определенного аудиофайла. Я многому учусь, хотя исследую таким образом.
Еще раз спасибо,
Уилл Смит
1 ответ
ARM делает процессорные ядра, а не чипы. У них было или было несколько периферийных устройств, но у производителей чипов, как правило, есть свои. Дело в том, что даже если у них одно и то же ядро, чипы разных производителей не имеют одинаковую карту памяти, гораздо меньше периферийных устройств и т. Д. Я не прочитал вашу ссылку (плохая идея, чтобы в качестве ссылки ссылаться на такие вопросы или ответы было бы плохо) содержимое не контролируется стековым потоком и может полностью исчезнуть, разрушая вопрос или ответ), но этот пример карты памяти в конце является лишь одним примером. Для получения полной карты физических адресов мира для этого одного чипа или системы требуется документация производителя микросхемы и иногда системы. Не пытайтесь повторно использовать эту карту где-либо еще. Информация доступна только для того, чтобы попросить или откопать ее, иногда защищенную NDA, которую вы можете или не можете получить. Также обратите внимание, что в ядре может быть более одной шины, и, несомненно, в системе имеется более одной шины вне ядра, поэтому существует несколько физических адресных пространств. И затем у вас есть MMU, который с точки зрения адресного пространства просто переводит некоторые из многих старших бит физического адреса в виртуальный адрес, и в этом режиме процессор / код работает с виртуальным адресом. (все приложения, работающие в операционной системе, такой как linux, могут, например, быть скомпилированы для работы по адресу 0x8000, mmu позволяет это сделать так, что все приложения думают, что они имеют одинаковое пространство, но ни один из их физических адресов не сталкивается)