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

 
 
> исключительные ситуации
dimka76
сообщение Dec 19 2007, 06:52
Сообщение #1


developer
****

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



в арме есть исключительная ситуация - ошибка данных.
Объясните пожалуйста, что это такое?


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GetSmart
сообщение Dec 19 2007, 10:03
Сообщение #2


.
******

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



В 7-ом АРМе можно без проблем читать невыровненные адреса. Делал так в LPC21xx.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
xelax
сообщение Dec 19 2007, 12:09
Сообщение #3


Местный
***

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



Цитата(GetSmart @ Dec 19 2007, 13:03) *
В 7-ом АРМе можно без проблем читать невыровненные адреса. Делал так в LPC21xx.


Я бы не стал так утверждать. Например SAM7 генерирует исключения.

К стати Вы ассемблерной код смотрели такого чтения. Может просто компилятор за Вас побайтовое чтение организовал smile.gif

Цитата(Dron_Gus @ Dec 19 2007, 13:51) *
ОФФ: А что делает линух в этой ситуации? Убивает поток, вызвавший ошибку, или останавливается полностью?


Линукс по коду команды определяет что надо было сделать.

вот исходник
http://www.gelato.unsw.edu.au/lxr/source/a.../mm/alignment.c

Сообщение отредактировал xelax - Dec 19 2007, 12:00
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Dec 20 2007, 09:53
Сообщение #4


.
******

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



Цитата(xelax @ Dec 19 2007, 17:09) *
К стати Вы ассемблерной код смотрели такого чтения. Может просто компилятор за Вас побайтовое чтение организовал smile.gif

Смотрел. Компилятор понятия не имел откуда я буду читать и читал 4 байта в одной команде. При этом он читал LONG с адреса (addr & ~3) и сдвигал его вправо на ((addr & 3) << 3) бит.

Точнее сдвигал вправо по кругу. Можно сказать на (addr & 3) байт.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post



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

 


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


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