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

 
 
> Перенос кода в среду IAR
Василий Зыков
сообщение Mar 14 2017, 09:45
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 11-11-06
Из: Екатеринбург
Пользователь №: 22 191



Добрый день, коллеги!
Переношу проект, написанный в AVR Studio 4 под WinAvr, в среду IAR
Столкнулся с тем, что IAR ругается на такую конструкцию (ошибка Pe513):

ssp.spiHwInit=(void *)atmega_spi_init;

где объявления даны следующим образом:

euint8 atmega_spi_init(atmegaSpiInterface *iface);

и
Код
struct SdSpiProtocol
{
    void *spiHwInterface;
    euint8 (*spiHwInit)(void* spiHwInterface);
    euint8 (*spiSendByte)(void* spiHwInterface,euint8 data);
};
typedef struct SdSpiProtocol SdSpiProtocol;
Подскажите, пожалуйста, как ее правильно описать в IAR?

Сообщение отредактировал IgorKossak - Mar 14 2017, 15:08
Причина редактирования: [codebox] для длинного кода. [code]-для короткого!!! Лишние пустые строки!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aiwa
сообщение Mar 14 2017, 15:29
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



Цитата(scifi @ Mar 14 2017, 16:05) *
Так это же совсем другая семантика. Не будет работать, короче.

Зависит от модели памяти: требуется совпадение физических размеров "DATA pointer" и "FUNC pointer", тогда будет работать.
Но пример приведен как альтернатива для понимания.
Правильно будет использовать Ваш вариант приведения.
Go to the top of the page
 
+Quote Post



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

 


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


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