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

 
 
 
Reply to this topicStart new topic
> weak alias, EWARM
drozel
сообщение Oct 14 2015, 10:28
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 2-02-11
Пользователь №: 62 650



Есть такой код:
Код
void blocking_handler(void)
{
    while (1);
}

#pragma weak nvic_wwdg_isr = blocking_handler

vector_table_t vector_table = {
    .irq = {
        nvic_wwdg_isr
    }

Дает ошибку
Цитата
Error[Pe020]: identifier "nvic_wwdg_isr" is undefined


Судя по хелпу IAR (EWARM 7.40) поддерживает такой алиас. Ниже - выдержка из хелпа
Цитата
To make NMI_Handler a weak alias for Default_Handler, write:
#pragma weak NMI_Handler=Default_Handler

Однако, компилятор не желает распознавать такой алиас при попытке использовать его адрес.
Где-то я ошибся или такой вот глюк?

Сообщение отредактировал drozel - Oct 14 2015, 10:37
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 14 2015, 11:34
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (drozel @ Oct 14 2015, 13:28) *
Где-то я ошибся или такой вот глюк?

Дурью от IAR маяться незачем совершенно sad.gif. Возьмите startup и напишите в нем, все что хотите.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
drozel
сообщение Oct 14 2015, 12:21
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 2-02-11
Пользователь №: 62 650



Цитата(zltigo @ Oct 14 2015, 17:34) *
Дурью от IAR маяться незачем совершенно sad.gif.

К сожалению, это дурь от разработчиков либы libopencm3.
Либа хорошая, написать стартап на асме можно, но хотелось бы сделать красиво и силами либы.
Но как запасной вариант, учту, спасибо
Go to the top of the page
 
+Quote Post
den_po
сообщение Oct 14 2015, 13:13
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 139
Регистрация: 9-11-12
Из: Санкт-Петербург
Пользователь №: 74 315



попробуйте добавить:
__weak void nvic_wwdg_isr(void);
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 14 2015, 13:42
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (drozel @ Oct 14 2015, 15:21) *
Либа хорошая, написать стартап на асме можно...

1)Для этого Corteх он на чистом Си.
2)Если Вы считаете, что он находтся в библиотеке, то к чему тогда читать хелпы к IAR?
3)И в том и другом случае исходники его есть - незачем читать хелпы, если можно читать исходники.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
drozel
сообщение Oct 15 2015, 01:24
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 2-02-11
Пользователь №: 62 650



Цитата(zltigo @ Oct 14 2015, 19:42) *
2)Если Вы считаете, что он находтся в библиотеке, то к чему тогда читать хелпы к IAR?

Библиотека написана для GCC, используются его раширения языка. Пытался разобраться, есть ли этот код - чистый си или опять прибамбас ГЦЦ. Выяснилось, что си, поддержку конструкции подтвердил хелп иара. Почему тогда не компилит? Задал вопрос сообществу. Вроде логично..

Цитата(den_po @ Oct 14 2015, 19:13) *
попробуйте добавить:
__weak void nvic_wwdg_isr(void);

Спасибо Вам огромное. Все получилось.

Сообщение отредактировал drozel - Oct 15 2015, 04:46
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 18:47
Рейтинг@Mail.ru


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