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

 
 
> Выравнивание в gcc, Обращение по нечётным адресам
xelax
сообщение Sep 7 2007, 06:21
Сообщение #1


Местный
***

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



Есть задача перенести код с avr на arm (компилятор gcc). Люди, которые писали программу на avr активно использовали атрибут packed для структур, затем передавали данные структуры по сериальному интерфейсу.

При переходе на arm вот с чем столкнулся. Компилятор с дериктивой packed честно пакует данные без выравнивания, а далее при попытки записать и прочитать 16, 32 - разрядные переменные, запакованные по нечётным адресам вызывает переходя ядра arm в abort mode.

Есть ли какая возможность обойти данную особенность архитектуры с помощью компилятора. Например деректива какая-нибудь. Что бы он например при обращении по нечётным адресам, делал вычитывание побайтно, а затем собирал из них short или long.

Вообще кто-нибудь сталкивался с такой проблемой? И как решал её? help.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- xelax   Выравнивание в gcc   Sep 7 2007, 06:21
- - Puzan   Директивами не исправить. Попробуй сделать битовым...   Sep 7 2007, 06:36
|- - xelax   Цитата(Puzan @ Sep 7 2007, 10:36) Директи...   Sep 7 2007, 07:13
|- - abcdefg   Цитата(Puzan @ Sep 7 2007, 10:36) Директи...   Sep 7 2007, 08:16
- - amw   Цитата(xelax @ Sep 7 2007, 09:21) Есть за...   Sep 7 2007, 07:44
- - xelax   Код#define PACK __attribute__ ((__packed__...   Sep 7 2007, 07:53
|- - amw   ЦитатаА ваш пример действительно работает, так как...   Sep 7 2007, 08:18
||- - xelax   Цитата(amw @ Sep 7 2007, 12:18) Нет. Стру...   Sep 7 2007, 08:24
||- - amw   Цитата(xelax @ Sep 7 2007, 11:24) видимо ...   Sep 7 2007, 08:32
|- - Puzan   С указателями на поля по-любому не получится. С ук...   Sep 7 2007, 08:42
- - scifi   Если при попытке сделать чтение или запись по неро...   Sep 7 2007, 08:47
- - xelax   Цитата(scifi @ Sep 7 2007, 12:47) Если пр...   Sep 7 2007, 09:08
|- - scifi   Цитата(xelax @ Sep 7 2007, 13:08) Это г...   Sep 7 2007, 09:19
- - xelax   Цитата(scifi @ Sep 7 2007, 12:47) Если пр...   Sep 10 2007, 07:09
- - Alex03   Цитата(xelax @ Sep 10 2007, 13:09) А если...   Sep 10 2007, 07:34
- - xelax   Цитата(Alex03 @ Sep 10 2007, 11:34) Эт кт...   Sep 10 2007, 07:39
- - Gemm   Подскажите, пожалуйста, как делать выравненные стр...   Sep 11 2007, 10:39
- - Alex03   Цитата(Gemm @ Sep 11 2007, 16:39) Подскаж...   Sep 12 2007, 05:40
- - scifi   Цитата(Gemm @ Sep 11 2007, 14:39) Подскаж...   Sep 12 2007, 07:50


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

 


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


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