Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/22: Рейтинг темы: голосов - 22, средняя оценка - 4.68
v_sshuryk
1

Хранение данных во внешнем ОЗУ (SRAM)

05.05.2015, 10:37. Показов 4155. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Уважаемые граждане и гости форума, прошу Вашего содействия.

Имеется платка, на которой установлены STM32F4 (144 ноги), внешняя SROM 256K x 16Byt, MicroSD и другие компоненты. SROM подключена по FSMC, все работает, проблем нет. Программируется все это дело в Keil 4.72.1.0.

Задача состоит в том, что в процессе работы устройства требуется осуществлять перенос информации из SD в SROM. Так вот столкнулся с тем, что не понимаю (и не могу найти толкового описания), как в SROM осуществлять запись двумерных массивов и разного рода структур. Как физически данные двумерного массива будут расположены по адресам, к примеру имеем массив uint16_t Massive [m][n] __attribute__((at(0x60000000))), где m=3, n=2. Начиная с адреса 0x60000000 каков порядок хранения данных?
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.05.2015, 10:37
Ответы с готовыми решениями:

Хранение данных на SSD или внешнем HDD - что лучше?
Добрый день. Недавно мною было принято решение взять себе ноутбук. Ну и приглянулась модель с...

Безопасное хранение данных в ОЗУ
Всем привет. Пишу что-то вроде шифровальной программы. Возник вопрос. Пользователь запрашивает...

Экранное ОЗУ - SDRAM или SRAM?
Всем снова привет! К STM32F429 подключен TFT-дисплей разрешением 800x480 точек по параллельному...

хранение вложений почты 1С во внешнем файле
Добрый день! Ситуация таков - справочник " Вложения электронных писем" превысил допустимый...

В каждом элементе массива, находящегося во внешнем ОЗУ, поменять местами тетрады байта
Assembler, ASM Для указанной задачи написать программу на ассемблере, оформив выполняемые...

4
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 931
05.05.2015, 10:48 2
Вообщем случае компилятор выделит последовательно 2?m?n байт ( 2 потому,что uint16) начиная с указанного адреса. А вот в каком порядке он их записывает, сначала строки или столбцы зависит от компилятора. Я бы создал тестовый масив,а потом отладчиком глянул как они выглядят в памяти.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,864
05.05.2015, 10:53 3
Если мне не изменяет память, порядок всё-таки жёстко определён (чтобы правильно работала адресная арифметика). Лучше всего полистать Кернигана + Ричи, но навскидку http://dfe.petrsu.ru/koi/posob/c/c.htm - со слов "Элененты двумерного массива хранятся по строкам". Но вообще я уже и не вспомню, когда пользовался двумерными массивами в Си - как-то обычно они неудобны.

Ну а проц + фичи компилятора (обычно что-то типа #pragma pack) нам задаёт платформенно-зависимые вещи, типа otygnment. Но тут по армам помочь не могу.

Да, и если вам не для связи с совсем другим устройством - может, вообще не разбираться с конкретным расположением, а просто взять (char*)Massive как указатель на начало данных и sizeof(Massive) как размер в байтах?
0
v_sshuryk
05.05.2015, 12:14 4
Для начала разобраться бы все-таки как создавать двумерный массив во внешней памяти, как в него осуществлять запись поэлементно и как считывать потом эти данные, никак не соображу. А знать точное расположение по адресам именно для связи в будущем со сторонним контроллером. память будет на два контроллера использоваться.
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 178
05.05.2015, 12:31 5
Используйте вместо массива структуры! Их можно переносить копировать итд - прямо блоками памяти. На йутупе даже дето ролик попадался с обьяснением!
0
05.05.2015, 12:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.05.2015, 12:31
Помогаю со студенческими работами здесь

Хранение файлов в ОЗУ
Всем привет! Возможно сморожу фигню, НО есть ли возможность перенести файлы (А лучше целую...

Хранение многострочного текста в ОЗУ
Здравствуйте форумчане. В текстовые поля на форме вводятся вопросы и варианты ответов, после...

Внешняя SRAM 512кбайт. Как обучить линкер оверлейным сегментам данных?
Ни разу не общался со сценариями линкера. Есть такая задача: Развел и изготовил плату расширения...

Перессылка массива данных из одного места ОЗУ в другое место ОЗУ
Есть ли какой-нибудь примерчик программки, которая выполняет пересылку массива данных размерностью...

Хранение файлов и файловый менеджер в файле(листе) Excel, Бинарное хранение данных в CustomProperty листа Excel
Всем привет! Хочу поделится наработками, которые получились в процессе реализации своих задач. ...

Потеря данных на внешнем диске
Здравствуйте уважаемые участники форума! Использую внешний диск Eaget 500gb. На оболочке...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru