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

 
 
> спецы по sparc32! вопрос по alignment!, не грузится ядро Linux на sparc32 изза неправильной выровненности 64-б
vv40in
сообщение Oct 9 2008, 13:01
Сообщение #1





Группа: Новичок
Сообщений: 8
Регистрация: 4-06-08
Пользователь №: 38 047



sparcv8.pdf (p.46):
help.gif
Alignment Restrictions:

Halfword accesses must be aligned on a 2-byte boundary, word accesses (which include instruction fetches) must be aligned on a 4-byte boundary, and doubleword accesses must be aligned on an 8-byte boundary. An improperly aligned address causes a load or store instruction to generate a mem_address_not_aligned trap.

то, о чем говорится ниже - найдено в ядре Linux!

в моем случае, как я вижу из лога, 8-байтная величина располагается по адресу не кратному 8. после обращения к такой переменной происходит зависание.

даже если аллокатор выделит память с указателем кратным 8, то при копировании такой структуры в др.область, которая не выровнена по 8, при обращении к переменной опять же произойдет трап!

я не специалист в sparc, не знаю возможно ли обработать trap так, чтобы заполнить переменную правильным значением и вернуться на следующий шаг.
(да и вообще не знаю как писать обработчики tarp-ов help.gif )

и я уверен, что 64-битная проблема встретится и дальше.
спаркологи! поможите чем можете! что мне делать? help.gif
как добиться загрузки ядра?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 14:09
Рейтинг@Mail.ru


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