|
Раздельная инициализация константного массива |
|
|
|
Aug 8 2012, 10:53
|
Профессионал
    
Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364

|
Похоже у меня прогрессирует склероз.  Не могу вспомнить и найти как можно инициализировать конкретные ячейки массива в флаш-памяти. Т.е. не забивать все сразу __root __flash const char __flash *in_name_table[] = { DoorSw, DriverSw, HoodSw, TrunkSw}; А сперва объявить __root __flash const char __flash *in_name_table[4]; а потом указать содержимое каждой конкретной ячейки по ее номеру. in_name_table[0]=DoorSw; in_name_table[1]=DriverSw; in_name_table[2]=HoodSw; in_name_table[3]=TrunkSw; Как собственно заставить IAR понять что я от него хочу?
|
|
|
|
|
 |
Ответов
|
Aug 8 2012, 12:52
|
Профессионал
    
Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528

|
Конкретные ячейки инициализировать можно таким способом Код __root __flash const char __flash *in_name_table[] = { [2]=HoodSw, [3]=TrunkSw, [0]=DoorSw, [1]=DriverSw}; но только одновременно с объявлением переменной, потом указать уже не получится, нет таких средств.
--------------------
Russia est omnis divisa in partes octo.
|
|
|
|
|
Aug 8 2012, 13:48
|
Профессионал
    
Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364

|
Цитата(SSerge @ Aug 8 2012, 15:52)  Конкретные ячейки инициализировать можно таким способом Код __root __flash const char __flash *in_name_table[] = { [2]=HoodSw, [3]=TrunkSw, [0]=DoorSw, [1]=DriverSw}; но только одновременно с объявлением переменной, потом указать уже не получится, нет таких средств. О, большое спасибо! Это хоть и не совсем то что я хотел, но с этим уже можно работать.
|
|
|
|
|
Aug 8 2012, 13:52
|

Гуру
     
Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659

|
Цитата(ArtemKAD @ Aug 8 2012, 19:48)  О, большое спасибо! Рад за Вас. На самом деле криво объявлять Код __root __flash const char __flash *in_name_table[] = { DoorSw, DriverSw, HoodSw, TrunkSw}; На много лучше Код __root __flash const char __flash *in_name_table[] = { [2]=HoodSw, [3]=TrunkSw, [0]=DoorSw, [1]=DriverSw};
--------------------
|
|
|
|
|
Aug 8 2012, 14:38
|
Профессионал
    
Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364

|
Цитата(prottoss @ Aug 8 2012, 16:52)  На много лучше Код __root __flash const char __flash *in_name_table[] = { [2]=HoodSw, [3]=TrunkSw, [0]=DoorSw, [1]=DriverSw}; Если заметить 2,3,0,1 на #define - объявленные константы, для меня этот вариант становится действительно намного лучше. Цитата элемент используется 1 раз при запуске задачи и дальше не нужен. Элемент используется КАЖДЫЙ раз при запуске задачи. А задача запускается каждый раз, когда диспетчер доходит до активного байта статуса задачи во втором массиве.
|
|
|
|
|
Aug 8 2012, 14:44
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(ArtemKAD @ Aug 8 2012, 17:38)  Элемент используется КАЖДЫЙ раз при запуске задачи. Согласен. Цитата(ArtemKAD @ Aug 8 2012, 17:38)  А задача запускается каждый раз, когда диспетчер доходит до активного байта статуса задачи во втором массиве. Получается что задача запускается всегда сначала? Адрес-то константный. Зачем такое может понадобится?
|
|
|
|
Сообщений в этой теме
ArtemKAD Раздельная инициализация константного массива Aug 8 2012, 10:53 Непомнящий Евгений __flash char a1 = 1;
__flash char a2 = 2;
__flash ... Aug 8 2012, 10:58 prottoss Так не возможно.
В первом случае Вы объявляете кон... Aug 8 2012, 10:59 ArtemKAD Цитата__flash char a1 = 1;
__flash char a2 = 2;
__... Aug 8 2012, 11:16 prottoss Цитата(ArtemKAD @ Aug 8 2012, 17:16) Я зн... Aug 8 2012, 12:57    prottoss Цитата(ArtemKAD @ Aug 8 2012, 20:38) Если... Aug 8 2012, 14:53     ArtemKAD Цитата(prottoss @ Aug 8 2012, 17:53) Код.... Aug 8 2012, 15:30      prottoss Цитата(ArtemKAD @ Aug 8 2012, 21:30) Так,... Aug 8 2012, 15:36 jcxz Цитата(SSerge @ Aug 8 2012, 18:52) Конкре... Aug 10 2012, 17:01  SSerge Цитата(jcxz @ Aug 11 2012, 00:01) Очень и... Aug 10 2012, 20:46   _Артём_ Цитата(SSerge @ Aug 10 2012, 23:46) Ну, д... Aug 10 2012, 21:35 IgorKossak Только я здесь вижу лишний __flash? Aug 8 2012, 13:54 ArtemKAD ЦитатаМне все таки не понятна Ваша идея: зачем сна... Aug 8 2012, 14:15 _Артём_ Цитата(ArtemKAD @ Aug 8 2012, 17:15) Перв... Aug 8 2012, 14:20 ReAl Цитата(ArtemKAD @ Aug 8 2012, 17:15) В фл... Aug 8 2012, 18:30 ArtemKAD ЦитатаПолучается что задача запускается всегда сна... Aug 8 2012, 15:09 _Артём_ Цитата(ArtemKAD @ Aug 8 2012, 18:09) Да в... Aug 8 2012, 15:29 ArtemKAD ЦитатаЧтобы не настолько в голову, можно как-то та... Aug 9 2012, 05:55 ArtemKAD ЗЫ. Кстати, для обламывания головы можно добавить ... Aug 10 2012, 06:43 ReAl В С++, увы, этого нет :-( и прочие смайлики, утир... Aug 11 2012, 07:34 _Артём_ Цитата(ReAl @ Aug 11 2012, 10:34) В С++,... Aug 11 2012, 12:18 GetSmart Спасибо начитанным людям. Подсказали как в констан... Sep 2 2012, 08:16
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|