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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Выравнивание в gcc, Обращение по нечётным адресам
xelax
сообщение Sep 10 2007, 07:39
Сообщение #16


Местный
***

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



Цитата(Alex03 @ Sep 10 2007, 11:34) *
Эт кто такие данные предоставляет?

А это видимо в любом случае регистр. Какой? Кроме как из кода операции видимо никак не узнать.


Регистр статуса контроллера памяти Название регистра: MC_ASR
Регистр адреса аварийной ситуации Название регистра: MC_AASR
для at91sam7 см. либо user manual, либо
http://www.gaw.ru/html.cgi/txt/doc/micros/..._sam7s/19_3.htm

Очень хотелось бы избежать анализа кода инструкций, очень уж это по-линуксовски сложно.

Сообщение отредактировал xelax - Sep 10 2007, 07:42
Go to the top of the page
 
+Quote Post
Gemm
сообщение Sep 11 2007, 10:39
Сообщение #17


Участник
*

Группа: Свой
Сообщений: 61
Регистрация: 2-08-05
Из: Коломна
Пользователь №: 7 283



Подскажите, пожалуйста, как делать выравненные структуры в IAR? Например, хочу, чтобы следующая структура была длиной 12 байт, чтоб два первых shorta лежали с интервалом в 4 байта. Пробовал использовать #pragma pack(4) - не помогает....

Код
struct {
    unsigned short A;
    unsigned short B;
    unsigned long C;
} s_abc;
Go to the top of the page
 
+Quote Post
Alex03
сообщение Sep 12 2007, 05:40
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 359
Регистрация: 9-12-05
Пользователь №: 12 034



Цитата(Gemm @ Sep 11 2007, 16:39) *
Подскажите, пожалуйста, как делать выравненные структуры в IAR? Например, хочу, чтобы следующая структура была длиной 12 байт, чтоб два первых shorta лежали с интервалом в 4 байта. Пробовал использовать #pragma pack(4) - не помогает....

Код
struct {
    unsigned short A;
    unsigned short B;
    unsigned long C;
} s_abc;

Про IAR не скажу, но есть ли в вашем случае смысл использовать short вместо int/long?
Go to the top of the page
 
+Quote Post
scifi
сообщение Sep 12 2007, 07:50
Сообщение #19


Гуру
******

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



Цитата(Gemm @ Sep 11 2007, 14:39) *
Подскажите, пожалуйста, как делать выравненные структуры в IAR? Например, хочу, чтобы следующая структура была длиной 12 байт, чтоб два первых shorta лежали с интервалом в 4 байта. Пробовал использовать #pragma pack(4) - не помогает....

Код
struct {
    unsigned short A;
    unsigned short B;
    unsigned long C;
} s_abc;

Для этого делается заполнение:
Код
struct {
    unsigned short A;
    unsigned short padding1;
    unsigned short B;
    unsigned short padding2;
    unsigned long C;
} s_abc;

Или при помощи безымянных битовых полей (совсем красиво):
Код
struct {
    unsigned short A;
    unsigned short : 16;
    unsigned short B;
    unsigned short : 16;
    unsigned long C;
} s_abc;
Go to the top of the page
 
+Quote Post

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

 


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


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