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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Разместить массив во Flash STM32, IAR ARM v6.21
bingo
сообщение May 18 2012, 10:40
Сообщение #16


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

Группа: Свой
Сообщений: 88
Регистрация: 9-04-12
Пользователь №: 71 256



Цитата(Dog Pawlowa @ May 18 2012, 10:43) *
Вы не поняли.
У меня никакого "FLASH" нет, это видно на картинке, и все работает правильно.
Что наводит на мысли, где же Вы свою переменную объявляете.


Хмм.... Вы правы!
Как ни странно, но массив оказался снова в RAM!!!
Хотя это, на мой взгляд, противоречит документации .

Так какое решение Вы видите?
Использовать принудительное указание места размещения, типа "... @ 0x80...005=.." ?
Это не очень удобно.
Использование const , как у Вас? Но про это явно написано в документации (я ее цитировал ранее).


В понедельник буду снова пытать программу/плату.

Сообщение отредактировал bingo - May 18 2012, 10:47
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение May 18 2012, 13:51
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(bingo @ May 18 2012, 13:40) *
Так какое решение Вы видите?

Я вижу единственный выход из тупика - покажите, где определена переменная.
Вас уже три раза подталкивали обратить на это внимание.

При чём тут фрагмент документации про volatile, мне непонятно.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
derstik
сообщение May 24 2012, 04:37
Сообщение #18





Группа: Новичок
Сообщений: 8
Регистрация: 3-11-11
Пользователь №: 68 115



Цитата(bingo @ May 17 2012, 08:16) *
Здравствуйте
Есть большой набор не изменяемых массивов байт (целевые команды). Размещать из в RAM- не рационально.
Подскажите пожалуйста как объявить в IAR ARM С инициализированный массив , так чтобы он был расположен во FLASH, а не в RAM. Естественно, массив только для чтения.

Ранее для IAR AVR я делал так:
__flash char* num1 = "58749455350";

Для IAR ARM v6.21 это не проходит.
Но и такие объявления не получаются:
uint8_t Cmd [] = {3,2,1} @ "FLASH";


В IAR есть #pragma location. Почитайте про нее. С её помощью я размещал во флэш серийный номер устройства
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 24 2012, 05:20
Сообщение #19


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Я поддерживаю сообщение №2. Нужно описывать в виде static const, и все будет хорошо.
Go to the top of the page
 
+Quote Post
muravei
сообщение Aug 17 2013, 09:45
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(ViKo @ May 24 2012, 09:20) *
Нужно описывать в виде static const, и все будет хорошо.

Сделал так в Кейл, получилось ,надеюсь во флеш. Теперь проблема , как туда лазать по указателю?
Кажется, какие-то идеологические противоречия.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 03:44
Рейтинг@Mail.ru


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