MPORT

Материал из WIKI ELVEES

Конфигурация полей CSBA и CSMASK регистров CSCON[2:0] для внешней памяти, подключённой к MPORT процессоров серии "Мультикор"

Для полного использования памяти, подключённой к MPORT процессоров серии "Мультикор" необходима правильная конфигурация регистров CSCON. Правильная конфигурация полей CSBA и CSMASK регистров CSCON для адресации к памяти поясняется на примере обращения к асинхронной статической ОЗУ, подключённой к MPORT процессора 1892ВМ10Я.

Согласно разделу "Регистр конфигурации CSCON0" руководства пользователя на микросхему (далее РП), сигнал nCS[0] формируется, если при E = 1 выполнено условие PHA[31:24] & CSMASK = CSBA, где PHA – 32-разрядный физический адрес, CSMASK – разряды 31:24 маски при определении базового адреса блока памяти, CSBA – разряды 31:24 базового адреса блока памяти (согласно таблице "Назначение разрядов регистра CSCON0" в РП).

При этом, минимальный размер блока – 16 МБ (при CSMASK = 0хFF). Для увеличения размера блока в младшие разряды поля CSMASK необходимо записать соответствующее число нулей. Например, для блока размером в 128 МБ, разряды 2:0 CSMASK должны быть равны нулю.


Предположим, планируется подключить блок 128МБ к nCS[0] по адресу 0х01000000. В этом случае PHA[31:24] = 0х01, CSMASK = 0хF8, CSBA = 0х01.

Как видим, PHA[31:24] & CSMASK = 0х01 & 0хF8 = 0x00, что не равно CSBA = 0х01.

Отсюда следует, что для корректной конфигурации CSCON0 необходимо либо уменьшить блок памяти до 16МБ (так как в этом случае последний разряд маски будет равен 1), либо подключать блок по другому адресу, например 0х08000000 (так как в этом случае PHA[31:24] = 0х08, CSMASK = 0хF8, CSBA = 0х08, PHA[31:24] & CSMASK = 0х08 & 0хF8 = 0x08).


Для считывания данных с памяти, подключённой к сигналу выбора nCS[0] по виртуальному адресу 0x84000000 (физический адрес 0x04000000), необходимо запрограммировать регистр CSCON0 = 0x1F04FC, при этом к сигналу выбора nCS[0] должна быть подключена память объёмом 64 МБ, тогда PHA[31:24] = 0х04, CSMASK = 0хFC, CSBA = 0х04, PHA[31:24] & CSMASK = 0х04 & 0хFC = 0x04.

Или в случае, если к сигналу выбора nCS[0] будет подключена память объёмом до 16 МБ, то можно запрограммировать регистр CSCON0 = 0x1F04FF.


Также в связи с преобразованием физических адресов в виртуальные в MIPS-совместимых процессорах, обращение по виртуальному адресу 0xA0000000 будет равноценно обращению по виртуальному адресу 0x80000000 и будет осуществляться к физическому адресу 0x00000000.


При записи конфигурации «CSCON0 = 0x1F20FF», подключённая к сигналу выбора nCS[0] память, объёмом до 16 МБ, доступна по адресу 0x20000000 (виртуальный адрес равен физическому).


Для других регистров конфигурации CSCON[1, 2, 4] справедливы те же условия. Преобразование виртуальных адресов физические рассмотрено в описании «Работа с памятью. Преобразование адресов и кэширование» выложенном на нашем сайте elvees.ru на странице «Микросхемы → Процессоры "Мультикор" → 1892ВМ10Я (4000 MFLOPs)» на дополнительной вкладке «Документация».

Подключение 8-разрядной энергонезависимой памяти к процессорам серии «Мультикор»

В связи с особенностями порта внешней памяти процессоров серии «Мультикор», подключение к ним флэш-памяти в режиме байтового доступа сопряжено с определёнными сложностями. Это требует отдельных усилий при написании программного обеспечения, а кроме того, для процессоров 1892ВМ3Т (MC-12), 1892ВМ2Т (MC-24), 1892ВМ5Я (MC-0226) – ещё и аппаратной обвязки. Поэтому если есть возможность – лучше использовать 32-разрядную флэш-память, или же две 16-разрядные микросхемы, подключённые «параллельно» (пример подобного подключения – в схеме отладочной платы MC-24RT3EM).

Что требуется для работы проекта из flash-памяти?

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

Для процессоров на базе ARM-ядер используется загрузчик U-boot.

Рекомендуется к ознакомлению: Загрузчик U-Boot.

Для процессоров на базе MIPS используется загрузчик ELF-объектов.

Для записи flash-памяти нами предоставляется утилита mcprog (смотрите MCPROG).