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

 
 
> Как в IAR сделатькак в GCC?
inventor
сообщение Sep 5 2017, 14:36
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



делаю драйвер для русской ethernet микросхемы
микруха голая - может только отправлять/принимать
кадры ethernet. плюс broadcast /unicast и все.
есть микростек, написаный для GCC, но его прямое копирование
и простые замны вызывают hard fault из за чтения/записи
по адресам не выравненным на 4.
в GCC это как то обходится, не знаю правильно или нет.

вот что я хочу сделать в IAR как в GCC:
1)
CODE

#pragma pack(2)
typedef union {
uint8_t u8[6];
uint16_t u16[3];
}/* __attribute__ ((packed))*/ mac_addr_t;


#define MAC_ADDR( a, b, c, d, e, f ) { u8: { a, b, c, d, e, f }}

Это возможно?

2) даные , коорые пересылаются в сети, например ARP пакет

CODE
/**
* Заголовок ARP
*/
#pragma pack(2)
typedef struct {
uint16_t hw_type;
uint16_t prot_type;

uint8_t hw_len;
uint8_t prot_len;
uint16_t oper;

mac_addr_t s_mac;
ip_addr_t s_ip;
mac_addr_t t_mac;

ip_addr_t t_ip;
}/* __attribute__ ((packed))*/ arp_packet_t;


если я напрямую беру поля, как это сделано в GCC: например
CODE

p->oper = ARP_OPER_REPLY;
p->t_mac = p->s_mac;
p->s_mac = mac_addr[ ifc ];
p->t_ip = p->s_ip;
p->s_ip = ip_addr[ ifc ];

вызывает описанную ошибку.
я такие выборки элементов структуры сделал черем memcpy
но хотелось бы оставить как это сделано в GCC
возможно ли это?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- inventor   Как в IAR сделатькак в GCC?   Sep 5 2017, 14:36
- - VladislavS   Цитата(inventor @ Sep 5 2017, 17:36) возм...   Sep 5 2017, 16:57
|- - inventor   Цитата(VladislavS @ Sep 5 2017, 19:57) Ст...   Sep 5 2017, 16:59
- - VladislavS   Если вы уверены, что hard fault вызывает именно эт...   Sep 5 2017, 17:53
- - Сергей Борщ   Так, это, #pragma pack(2) на #pragma pack(1) замен...   Sep 5 2017, 17:59
|- - inventor   Цитата(Сергей Борщ @ Sep 5 2017, 20:59) Т...   Sep 5 2017, 20:39
|- - Сергей Борщ   QUOTE (inventor @ Sep 5 2017, 23:39) наве...   Sep 5 2017, 23:09
|- - Сергей Борщ   QUOTE (inventor @ Sep 5 2017, 23:39) если...   Sep 6 2017, 06:13
- - Timmy   Ваша ситуация выглядит очень странной, все структу...   Sep 7 2017, 12:04
|- - inventor   Цитата(Timmy @ Sep 7 2017, 15:04) Ваша си...   Sep 7 2017, 16:50
|- - VladislavS   Цитата(inventor @ Sep 7 2017, 19:50) доба...   Sep 7 2017, 18:03
- - inventor   еще один вопрос: ест ли в IAR какая нибудь опция ч...   Sep 27 2017, 15:58
|- - SSerge   Цитата(inventor @ Sep 27 2017, 22:58) еще...   Sep 28 2017, 09:51
|- - scifi   Цитата(SSerge @ Sep 28 2017, 12:51) Не ви...   Sep 28 2017, 10:08
|- - inventor   Цитата(SSerge @ Sep 28 2017, 12:51) Не ви...   Sep 28 2017, 12:29
- - Obam   Больше 20 лет контора компилятор делает (секту сво...   Sep 28 2017, 08:05
- - inventor   Цитата(Obam @ Sep 28 2017, 11:05) Больше ...   Sep 28 2017, 08:48
- - Obam   Цитата(inventor @ Sep 28 2017, 12:48) GCC...   Sep 28 2017, 11:06


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

 


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


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