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

 
 
 
Reply to this topicStart new topic
> Размещение данных в flash пзу
alexsy
сообщение Sep 27 2011, 15:30
Сообщение #1





Группа: Validating
Сообщений: 2
Регистрация: 27-09-11
Пользователь №: 67 419



Для микроконтроллеров с флеш пзу более 64к. Наблюдаем проблему --- ме могу получить указатель на cstring который при линковке разместился за гранью 64К. Вернее адрес возвращается но он в перделах первой страници.
Go to the top of the page
 
+Quote Post
hd44780
сообщение Sep 27 2011, 15:42
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



И что, конструкции типа char *hello="Hello, world!"; не работают?

Вообще, это забота компилятора. Глючит один, пробуйте другой.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
Арк К
сообщение Sep 27 2011, 17:45
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 45
Регистрация: 8-05-08
Пользователь №: 37 363



Цитата(alexsy @ Sep 27 2011, 19:30) *
Для микроконтроллеров с флеш пзу более 64к.


А так не пробовали?
__farflash char str[]="Hello, world!"

указатель на строку должен иметь длину более двух байт
Go to the top of the page
 
+Quote Post
alexsy
сообщение Sep 28 2011, 04:57
Сообщение #4





Группа: Validating
Сообщений: 2
Регистрация: 27-09-11
Пользователь №: 67 419



Цитата(Арк К @ Sep 27 2011, 21:45) *
А так не пробовали?
__farflash char str[]="Hello, world!"

указатель на строку должен иметь длину более двух байт


Попробую. Заранее спасибо.

Go to the top of the page
 
+Quote Post
grv
сообщение Oct 3 2011, 20:03
Сообщение #5


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

Группа: Участник
Сообщений: 101
Регистрация: 28-04-06
Пользователь №: 16 592



Цитата(Арк К @ Sep 27 2011, 20:45) *
А так не пробовали?
__farflash char str[]="Hello, world!"

указатель на строку должен иметь длину более двух байт


Кстати недавно тоже приходилось прошивку EP1K30 пихать в mega128. __farflash не прокатило Помогло __hugeflash.
Причина вот

Note: When the __farflash memory attribute is used, the object cannot cross a 64-Kbyte boundary. Arithmetics will only be performed on the two lower bytes, except comparison which is always performed on the entire 24-bit address.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th June 2025 - 07:07
Рейтинг@Mail.ru


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