Simok 0 29 января, 2009 Опубликовано 29 января, 2009 · Жалоба Привет, проблема такова: Я храню некоторые нужные мне настройки в eeprom, естественно я знаю с какими адресами мне работать, чтобы считать,записать нужные мне данные, а можно ли нужные мне данные записывать во flash и в нужный мне момент считать их или изменить? Если я знаю объем свободного места и нужные мне адреса в eeprom, то как работать с Flash? Ведь я когда пишу программу и компилирую ее, то объем прошивки естественно каждый раз разный, а это ведь место программы во flash. Как можно использовать флеш и под основную программу и под временные данные, но которые не стираются при сбросе процессора. Может не все так сложно, как кажется? Камень AT90CAN128, флеш там приличная, а потому нет смысла использовать eeprom, да и запись в еепром очень медленная. 4кб за 50 сек. Работаю в CodeVision. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aesthete Animus 0 29 января, 2009 Опубликовано 29 января, 2009 · Жалоба Если вообще стоит делать так, как говорите... первое что приходит в голову, это разместить основной код в boot-секции (она там, afair, довольно большая, afair 8кб). А все остально место таким образом оставить под данные. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Simok 0 29 января, 2009 Опубликовано 29 января, 2009 · Жалоба Если вообще стоит делать так, как говорите... первое что приходит в голову, это разместить основной код в boot-секции (она там, afair, довольно большая, afair 8кб). А все остально место таким образом оставить под данные. Не прокатит, у меня в формате hex 33кб файл, и это еще не все, текст для дисплея отнимает много места, потому мне нужно то, что выше я написал. Внешняя память также отметается по понятным причинам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
pochta 0 29 января, 2009 Опубликовано 29 января, 2009 · Жалоба Как можно использовать флеш и под основную программу и под временные данные, но которые не стираются при сбросе процессора. Может не все так сложно, как кажется? Камень AT90CAN128, флеш там приличная, а потому нет смысла использовать eeprom, да и запись в еепром очень медленная. 4кб за 50 сек. Работаю в CodeVision. Значит так у меня такой же камень! Так вот во влэш там писать из программы нельзя, вот. Разве что из загрузчика после ребута. А так читайте батенька pgmspace. И всё. RTFM как говорится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Simok 0 29 января, 2009 Опубликовано 29 января, 2009 (изменено) · Жалоба Значит так у меня такой же камень! Так вот во влэш там писать из программы нельзя, вот. Разве что из загрузчика после ребута. А так читайте батенька pgmspace. И всё. RTFM как говорится. Это как так? Почему же нельзя то )) Значит зря пишут в литературе, типа "копируем строку из еепром во флеш"....? Просто в литературе нет адресов расположения свободной емкости и как узнать эти адреса к конкретному камню, а копировать можно и еще как, а вот перезаписать сама себя основная программа не может, согласен, для это и есть область загрузчика под эти нужды. Изменено 29 января, 2009 пользователем Simok Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
singlskv 0 29 января, 2009 Опубликовано 29 января, 2009 · Жалоба Значит так у меня такой же камень! Так вот во влэш там писать из программы нельзя, вот. Разве что из загрузчика после ребута.А разместить процедуры записи содержащие инструкции SPM в памяти бутлодыря и вызывать их нельзя? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 30 января, 2009 Опубликовано 30 января, 2009 · Жалоба Просто в литературе нет адресов расположения свободной емкости и как узнать эти адреса к конкретному камню,А зачем вам произвольные адреса и вся доступная емкость? Вам нужно 8К? Вот и отсчитайте эти 8К от конца памяти. А вот как указать CV конкретные получившиеся адреса или область памяти - поздравляю! Вы прошли игру "CV" до конца. Нет линкера - нет возможности управления размещением. Точнее есть, но через такой зад... Может в 2.хх что-то и поменялость, но в 1.хх это было нетривиальной задачей Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Simok 0 30 января, 2009 Опубликовано 30 января, 2009 · Жалоба А зачем вам произвольные адреса и вся доступная емкость? Вам нужно 8К? Вот и отсчитайте эти 8К от конца памяти. А это вариант. В голову не пришло. Тогда можно и указывать конкретные адреса, и работать с участком Flash, как с eeprom, верно? А вот как указать CV конкретные получившиеся адреса или область памяти - поздравляю! Вы прошли игру "CV" до конца. Нет линкера - нет возможности управления размещением. Точнее есть, но через такой зад... Может в 2.хх что-то и поменялость, но в 1.хх это было нетривиальной задачей К сожалению CodeVision хоть и второй версии, и конечно есть новшества от версии 1.25, но этого не достаточно, а перевести проект в AVR-GCC не вариант. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Simok 0 30 января, 2009 Опубликовано 30 января, 2009 · Жалоба Тем не менее есть у кого пример записи и чтения во Flash хотя бы на ассемблерной вставке? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 30 января, 2009 Опубликовано 30 января, 2009 · Жалоба Тем не менее есть у кого пример записи и чтения во Flash хотя бы на ассемблерной вставке?Чтение - обращение по указателю (указатель на данные с модификатором __flash). Описание указателей - в любой книжке по С (напрмер, K&R "язык программирования Си", второе издание). Пример записи на асме - в даташите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Simok 0 30 января, 2009 Опубликовано 30 января, 2009 · Жалоба Чтение - обращение по указателю (указатель на данные с модификатором __flash). Описание указателей - в любой книжке по С (напрмер, K&R "язык программирования Си", второе издание). Пример записи на асме - в даташите. Все понял, по указателю нет проблем, решается легко. Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться