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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Разместить переменную во flash без модификатора const, Как?
V_G
сообщение Nov 15 2009, 00:16
Сообщение #31


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

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Цитата(Сергей Борщ @ Nov 14 2009, 23:58) *
Вот только с точностью до наоборот. EEPROM = Electricaly Erasable Programmable Read Only Memory. То есть флешь является одной из разновидностей общего понятия EEPROM, а не наоборот, как пытаетесь доказать нам вы.


Вопрос был совсем о другом.


Вопрос топикстартера:
Мне бы очень хотелось, чтобы во флаш можно было размещать переменные без модификатора соnst, это сильно упростило бы мне жизнь. Такое возможно?

Ответ zltigo по поводу возможности написания функции доступа к EEPROM любого контроллера как к ячейке памяти:
Почему не касаться? Уже существующие позволяют, а уж в C++ и сами можете написать функции и перегрузить нужные операторы.

Чем не ответ на вопрос? Особенно, если спрашивающему все-таки (случайно) удобнее держать константы на во флэше программ, а в EEPROM данных.
Хотя если задача состоит не в том, чтобы ответить на вопрос (может быть, даже начинающего), а пофлеймить, уличить участника в глупости и помериться ммм... интеллектами, то на здоровье!

Сообщение отредактировал V_G - Nov 15 2009, 00:20
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 15 2009, 00:34
Сообщение #32


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(V_G @ Nov 15 2009, 02:16) *
Хотя если задача состоит не в том, чтобы ответить на вопрос
... уличить участника

Да никто не хочет уличивать участника специально. Просто бывает некоторые участники пишут небрежно, неточно, что не соответвует действительности и может сбить с толку особенно начинающего.
Думайте перед тем как постить, проверяйте то, что Вы собрались запостить с документацией (или хотя бы с информацией с wiki) если действительно хотите помочь.


Цитата
Чем не ответ на вопрос?

Сейчас Вы демонстрируете, только то, что не в теме заданного автором топика вопроса. Потому что

Цитата
Особенно, если спрашивающему все-таки (случайно) удобнее держать константы на во флэше программ, а в EEPROM данных.

A. у контроллера который пользует автор топика нет EEPROM.
B. спрашивающего удивляет тот факт что линкер не хочет класть данные объявленные как Read-Write (RW), в ReadOnly (RO) память.

Изначальный вопрос автора - как заставить компилятор положить RW данные в RO регион памяти. Ответ - никак.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 15 2009, 17:56
Сообщение #33


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(V_G @ Nov 15 2009, 02:16) *
Вопрос топикстартера:
Мне бы очень хотелось, чтобы во флаш можно было размещать переменные без модификатора соnst, это сильно упростило бы мне жизнь. Такое возможно?
Ну и где здесь про необходимость модифицировать данные, размещенные во флешь? Вы ветку читали, или только первое и последнее сообщение? Автору надо передать в функцию указатель на данные, размещенные во флешь. Функция ингода (в зависимости от других параметров) может модифицировать передаваемые ей по указателю данные (поэтому автор не может объявить параметр как указатель на константу), но в моменты вызова функции с указателем на флешь другие параметры не допускают такой модификации.

Привет ассемблерщикам.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Nov 15 2009, 18:03
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Сергей Борщ @ Nov 15 2009, 20:56) *
Функция ингода (в зависимости от других параметров) может модифицировать передаваемые ей по указателю данные

Лично я такого не понял.
Цитата
(поэтому автор не может объявить параметр как указатель на константу)

Просто не догадался, потом наконец-то так сделал, отписал: "сейчас так и сделано", но продолжил наводить тень на плетень как "сделать, как я хочу" и "вопрос-то был не в том".


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 16 2009, 11:37
Сообщение #35


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(zltigo @ Nov 15 2009, 20:03) *
потом наконец-то так сделал, отписал: "сейчас так и сделано"
Я так понял, что это относилось к явному приведению константного указателя к неконстантному перед вызовом функции.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Nov 16 2009, 11:43
Сообщение #36


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Сергей Борщ @ Nov 16 2009, 14:37) *
Я так понял, что это относилось к явному приведению константного указателя к неконстантному перед вызовом функции.

Не знаю, я об этом:
Цитата
Ваша функция ( как это правильно сделано во всех библиотечных функциях), должна работать и соответственно в нее передаваться указатели на const. При этом любые передаваемые указатели будут преобразовываться к const * молча, бо сие безопасно.

Реакция:
Цитата
Да согласен 10 раз с этим, более того, сейчас так и сделано, но вопрос-то был не в том.

Впрочем, ввиду мутности "идеи" гадать можно долго.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Dreamer
сообщение Nov 17 2009, 10:57
Сообщение #37


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 13-01-06
Из: Санкт-Петербург
Пользователь №: 13 154



Сергей Борщ. Вы абсолютно правильно меня поняли.

Цитата
Автору надо передать в функцию указатель на данные, размещенные во флешь. Функция ингода (в зависимости от других параметров) может модифицировать передаваемые ей по указателю данные (поэтому автор не может объявить параметр как указатель на константу), но в моменты вызова функции с указателем на флешь другие параметры не допускают такой модификации.


Модифицировать эти данные мне действительно не нужно.

Цитата
Просто не догадался, потом наконец-то так сделал, отписал: "сейчас так и сделано"

Сначала (до поднятия темы на форуме) было сделано так:
1. Функции принимали значения на НЕ КОНСТАНТЫ, так как в зависимости от других параметров в ней возможна модификация.
2. Были объявлены дефолтные значения структур как const .
3. Перед вызовом функции делалось следующее - в стеке создавался экземпляр структуры НЕ константной, с помощью memcpy в него копировалось значение константной структуры, и вызывалась пресловутая функция.

Во многих местах, как выяснилось, мне оказалось достаточным дефолтных значений структуры, и создавать лишний объект в стеке (или в хипе) только лишь ради корректного приведения указателей мне показалось лишним, я хотел соптимизировать этот момент, перебрал несколько идей - в том чиле и этот пост, так как повторюсь, в Кейле для 51 процессоров, с которыми я работал до этого процессора, это прокатывало.
Приведение указателя "конст" к "не конст" с помощью круглых скобок при вызове функции мне не показалось лучшим решением.
Но на данный момент я оставил это место как есть и иду дальше, так как сроки проекта короткие, и если вдаваться в глубокие рассуждения на тему "кто круче, а кто дурак" - то так я точно в сроки не уложусь. Пусть лучше считают дураком, но при этом делается мое дело. А обсуждать что-либо на форуме больше не хочу. Перехожу обратно в разряд читателей.


--------------------
Все врут (с) /M.D.House/
Go to the top of the page
 
+Quote Post
zltigo
сообщение Nov 17 2009, 11:16
Сообщение #38


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Dreamer @ Nov 17 2009, 13:57) *
Сергей Борщ. Вы абсолютно правильно меня поняли.
...
Модифицировать эти данные мне действительно не нужно.

Э... вообще-то это взаимоисключающие утверждения sad.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Nov 17 2009, 13:59
Сообщение #39


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Не понял.
Если НЕ НУЖНО, то чего бы там const не вписать то?????


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post

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

 


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


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