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

 
 
> проблемы с выравниванием ARM7
dimka76
сообщение Jun 25 2009, 05:59
Сообщение #1


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Есть такой код для процессора ARM7
Код
char     data[256];

void foo(void)
{
   int parametr = 0xAA55BBCC;
   char*   ptr = data;

   //если сделать так
  *((int*)(ptr+1)) = paramtr;
  // то прцессор вылетет в DataAbort

  // можно сделать конечно так
  memcpy(ptr+1, &parametr, sizeof(parametr));

}


Последний вариант конечно работоспособный, но может быть есть какие-то более изящные решения?


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
3 страниц V  < 1 2 3  
Start new topic
Ответов (30 - 33)
defunct
сообщение Jun 25 2009, 17:04
Сообщение #31


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(xelax @ Jun 25 2009, 18:45) *
В упор не вижу своих слов... memcpy глючит. Ненадо за меня додумывать.

Мы же тут не в политику играем и не в лингвистике упражняемся.

я не люблю недомолвок, каких-то закрученных фраз и пр., а стараюсь называть вещи своими именами.
То что вы пытались сказать: когда memcpy приводит в abort'у, а цикл с побайтовым копированием тех же самых данных к abort'у не приводит - иными словами кроме как memcpy глючит - более точно и прямо назвать нельзя.

Хотите чтобы за вас "не додумывали" - попробуйте выражайться всегда точно и прямо.
Go to the top of the page
 
+Quote Post
dimka76
сообщение Jun 26 2009, 05:13
Сообщение #32


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Тут на форуме промелькивала фраза, что Cortex-M3 не требует выравнивания (сам я документацию на него не читал ).
Так, получается, что у него вообще DataAbort не существует?


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
xelax
сообщение Jun 26 2009, 06:30
Сообщение #33


Местный
***

Группа: Свой
Сообщений: 370
Регистрация: 7-11-06
Пользователь №: 22 035



Цитата(zltigo @ Jun 25 2009, 20:56) *
5, 6, 7, 8, 9...... а еще начинающиеся с 0,1,2,.... а еще заканчивающиеся на 0,1,2,3.... smile.gif smile.gif


С каждым новом постом у меня всё более нелепо отвечать получается.
Доводы у всех высказывающихся весомые, в отличие от моего "а я видел" smile3046.gif

Могу только добавить, что если вдруг моя "галюцинация" с data abort внутри memcpy повторится, обязательно сделаю скриншот дебагера и приатачу сюда. rolleyes.gif
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jun 26 2009, 07:37
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(dimka76 @ Jun 26 2009, 09:13) *
Тут на форуме промелькивала фраза, что Cortex-M3 не требует выравнивания (сам я документацию на него не читал ).

В некоторых случаях - LDM/STM/LDRD/STRD - требует. Кроме того, можно принудительно включить проверку выравнивания для любых операций.

Цитата(xelax @ Jun 26 2009, 10:30) *
Могу только добавить, что если вдруг моя "галюцинация" с data abort внутри memcpy повторится, обязательно сделаю скриншот дебагера и приатачу сюда. rolleyes.gif

Это не пройдет. Нужен отчет с причиной возникновения abort'а внутри memcpy, причем нужен в первую очередь Вам.
Go to the top of the page
 
+Quote Post

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

 


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


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