Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Указатель-константа на функцию
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
Alex_rav(зеленинький я есть)
help.gif
Код
__root const void (*FuncTable)(void) = &Init_LED_WH;

ошибка:
Error[Pe144]: a value of type "void (*)()" cannot be used to initialize an entity of type "void const (*)()"

Компилятор IAR 4.42

Хочется разместить указатель на функцию в встроенном флэше

и не зависимо от результатов a14.gif a14.gif a14.gif
Dog Pawlowa
Цитата(Alex_rav(зеленинький я есть) @ Jun 10 2008, 14:03) *

Поиском искать пробовали?

Код
void fSelfTest(void) {...}

typedef void (*VECTORS)();

const VECTORS process[] =    
{      fSelfTest,

}
Палыч
Если - во флэше (т.е. значение не будет меняться), то зачем указатель заводить вообще? Где это нужно используйте напрямую вызов Init_LED_WH
Alex_rav(зеленинький я есть)
2Палыч:
Вообще то задача разместить один указатель не стоит, а стоит задача разместить массив указателей и работать с ним.

2Dog Pawlowa:
Спасибо, все заработало, только не понятно почему Иар не кушал предыдущее объявление. Ведь это же то же самое только разделенное на две строчки.
Палыч
Цитата(Alex_rav(зеленинький я есть) @ Jun 10 2008, 15:09) *
Вообще то задача разместить один указатель не стоит, а стоит задача разместить массив указателей и работать с ним.
Так бы и спрашивали...
Цитата(Alex_rav(зеленинький я есть) @ Jun 10 2008, 15:09) *
... только не понятно почему Иар не кушал предыдущее объявление. Ведь это же то же самое только разделенное на две строчки.
Не совсем... К чему относится "const" в первом и втором случае?
Сергей Борщ
Цитата(Alex_rav(зеленинький я есть) @ Jun 10 2008, 15:09) *
только не понятно почему Иар не кушал предыдущее объявление. Ведь это же то же самое только разделенное на две строчки.
Если вы посмотрите внимательно, то это не то же самое. Вы пытались присвоить указателю на функцию, возвращающую void const указатель на функцию, возвращающую void. Если бы вы написали
Код
__root void (*FuncTable)(void) = &Init_LED_WH;
или
Код
__root void (* const FuncTable)(void) = &Init_LED_WH;
то у вас бы получилось то же самое в одну строчку.
Alex_rav(зеленинький я есть)
Теперь понятно
Спасибо всем ответившим a14.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.