реклама на сайте
подробности

 
 
> STR71xF and access to External memory, Некоректная запись...
Странник
сообщение Nov 12 2007, 09:43
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 10-05-06
Из: Киев
Пользователь №: 16 944



Устройство состоит из STR71xF и CMOS Static RAM K6F8016V3A.
Доступ к SRAM отконфигурирован через 16 бит шину данных.
В программе инициализированно куча структур и масивов расположенных в этой памяти, в том числе и char типа.
Работа с memcpy затруднена, работает не так как надо

.....
char ext_array[5]; // ext. memory
char intern_array[3]={1,2,3}; //internal memory
.....
memcpy(ext_array,intern_array,3);

В результате копирования 2 затирается.
Проблема в том что переконфигурировать память нельзя (заказчик не согласен).

Может есть какие то опции компилятора для решения данного вопроса?


help.gif

P.S используется RealView® Developer Kit V2.1

Сообщение отредактировал Странник - Nov 12 2007, 09:56
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Leen
сообщение Nov 12 2007, 10:32
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 172
Регистрация: 5-08-06
Из: Владивосток
Пользователь №: 19 343



у него вроде только __packed. Попробуйте объявить так:
Код
__packed char ext_array[5]; // ext. memory
__packed char intern_array[3]={1,2,3}; //internal memory
и посмотреть в дизассемблере, что делается в мемкопи.
Go to the top of the page
 
+Quote Post
Странник
сообщение Nov 12 2007, 12:29
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 10-05-06
Из: Киев
Пользователь №: 16 944



Цитата(Leen @ Nov 12 2007, 14:32) *
у него вроде только __packed. Попробуйте объявить так:
Код
__packed char ext_array[5]; // ext. memory
__packed char intern_array[3]={1,2,3}; //internal memory
и посмотреть в дизассемблере, что делается в мемкопи.


Тут обнаружилась вот ещё какая штука:
когда в дебагере меняешь значение четного адреса ext. memory то автоматически меняется значение следующего нечетного.
Это может на что то говорить?

По поводу _packed:
действительно есть такая штука, но как то результатов не получил sad.gif
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 12 2007, 12:34
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Странник @ Nov 12 2007, 14:29) *
Тут обнаружилась вот ещё какая штука:
когда в дебагере меняешь значение четного адреса ext. memory то автоматически меняется значение следующего нечетного.
Как у вас подключена внешняя память? У вас ведь 16-битная микросхема, обычно при подключении 16-битных памятей ее вывод A0 идет на A1 процессора, A1 на A2 и т.д, вывод A0 процессора остается свободным, а выбор младшего/старшего осуществляется линиями UB/LB. Не знаю, как реализован интерфейс внешней памяти у STR, в даташите должны быть схемы.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Странник
сообщение Nov 12 2007, 13:07
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 10-05-06
Из: Киев
Пользователь №: 16 944



Цитата(Сергей Борщ @ Nov 12 2007, 16:34) *
Как у вас подключена внешняя память? У вас ведь 16-битная микросхема, обычно при подключении 16-битных памятей ее вывод A0 идет на A1 процессора, A1 на A2 и т.д, вывод A0 процессора остается свободным, а выбор младшего/старшего осуществляется линиями UB/LB. Не знаю, как реализован интерфейс внешней памяти у STR, в даташите должны быть схемы.


Так и есть, только UB/LB сидят на земле
Go to the top of the page
 
+Quote Post
scifi
сообщение Nov 12 2007, 13:20
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Странник @ Nov 12 2007, 16:07) *
Так и есть, только UB/LB сидят на земле

К чему подключены выходы микроконтроллера WE.0 и WE.1?
Возможно, у Вас при подключении памяти не была предусмотрена побайтовая запись. С этим, конечно, можно жить, просто в программе геморроя добавится.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 12:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01409 секунд с 7
ELECTRONIX ©2004-2016