Массив констант-указателей

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25292
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Массив констант-указателей

Сообщение КРАМ »

Коллеги, как будет выглядеть (в частности в Кейл) синтаксис объявления массива констант-указателей на массивы переменных?
Реклама
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25292
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Массив констант-указателей

Сообщение КРАМ »

Коллеги по работе подсказали (не без затруднений, правда):

Код: Выделить всё

uint16_t	buff_A[256], buff_B[256];
uint32_t *const ptr_buff_AB[2] = {&buff_A[0], &buff_B[0]};
:)
А я все пытался написать:

Код: Выделить всё

const uint32_t* ptr_buff_AB[2] = {&buff_A[0], &buff_B[0]};
И Кейл мне массив указателей размещал в ОЗУ... 8)
Реклама
Аватара пользователя
Myp3ik
Мучитель микросхем
Сообщения: 450
Зарегистрирован: Вс янв 09, 2011 23:05:37
Откуда: СССР

Re: Массив констант-указателей

Сообщение Myp3ik »

Недавно была похожая задача с массивами строк, сделал так:

Код: Выделить всё

static const char *const trmHeader[] =
{
	"WV,001E,",
	"AOK\r\n",
	"ERR\r\n",
	"Connected\r\n",
	"Connection End\r\n",
	"CMD\r\n",
	"Reboot\r\n",
	"WC,0019,0100.\r\n",
	"WC,001C,0100.\r\n"
};
Объявил константами и указатель, и сами данные.
Иван Сусанин - первый полупроводник :solder:
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25292
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Массив констант-указателей

Сообщение КРАМ »

Физически у Вас - это таблица во флеше с константой-указателем в коде.
А у меня таблица переключений двух массивов в ОЗУ во флеше.
Просто мне нужно переключать два массива ДМА в ОЗУ между процедурой расчета и периферией назначения поочередно и противофазно.
Один массив рассчитывается, а второй выводится. Смена массивов в прерывании от ДМА по завершению трансфера.
Выбор массивов через указатель в таблице из двух адресов.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Myp3ik
Мучитель микросхем
Сообщения: 450
Зарегистрирован: Вс янв 09, 2011 23:05:37
Откуда: СССР

Re: Массив констант-указателей

Сообщение Myp3ik »

Если в массивы нужно писать, то да, const нужен только справа от звезды.

У Вас получается массив константных указателей на uint32_t, а инициализируется он указателями на uint16_t. Может лучше объявить как массив указателей на uint16_t *const ?
Иван Сусанин - первый полупроводник :solder:
Реклама
Ответить

Вернуться в «ARM»