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

 
 
> И снова самопрограммирование Mega88, Нужно хранить и переписывать параметры во флэш.
EXeGLuMATOR
сообщение Jul 22 2013, 17:39
Сообщение #1


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

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Итак.
Имеется проектик на CodeVisionAVR, Mega88. Достался в наследство, портировать в другую среду категорически ломает, поэтому необходимо выжать максимум из того, что есть. Имеются некоторые параметры конфигурации, которые хотелось-бы хранить во флэш. Епром не подходит, поскольку имеется высокая вероятность его "слета" - питание батарейное и пользователи совсем не парятся с аккуратностью.
Проблема в следующем - памяти впритык,осталось около 256байт, т.е. хотелось бы использовать самые верхние адреса флэш, скажем с адреса 0xFE0. Но эта область уже вроде как определена под бутлоадер.
Вопрос: можно ли из своего кода сохранить параметры в этой области? Или это не возможно в принципе?
Пробовал писать в эту область - результат - 0. Впрочем как и в любую другую, даже в области памяти программ. Код для этого должен лежать в области бутлоадера? Если так - как затолкать туда функции для работы с флэш средствами CodeVision, чтобы основной код лежал в программной области, а нужное - в буте?

Еще вопрос. Пытаюсь прочитать те самые параметры конфигурации, да в прочем любые данные из флэш вот так:
Код
base_adress = (*(( unsigned char flash*) 0x0600));
результат - какая-то фигня. Хотя по смыслу вроде правльно. Адрес выбран произвольно и там другие значения.

Разместить изначально константы во флэш по нужным адресам CodeVision не дает.
Фузы - никаких ограничений нет.

Кто что подскажет?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
EXeGLuMATOR
сообщение Jul 29 2013, 13:34
Сообщение #2


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

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Да все это понятно. Но, девайс УЖЕ ЕСТЬ. Его очень много наделано. И в каждый нужно зашить его номер. Вариант с компиляцией под каждый экземпляр, что сейчас и делается, это очень долго.
Сейчас задача - сделать запись этих параметров во флэш.
Требования чтобы все сидело именно во флэш. Епром не использовать вообще. Ну вот так. Плюс проект уже в кодевижн. Переносить его мне крайне лениво, да и не целесообразно.
Так что именно нужно записать блок с параметрами конкретного устройства по каким-либо свободным адресам. Вопрос - как?
Опять-же, когда код лоадера сидит в своей области памяти - все ясно, более или менее, но тут нужно все объединить в проекте.
Go to the top of the page
 
+Quote Post
alexf
сообщение Aug 6 2013, 20:47
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608



Цитата(EXeGLuMATOR @ Jul 29 2013, 06:34) *
Вариант с компиляцией под каждый экземпляр, что сейчас и делается, это очень долго.


A зачем перекомпилировать? Написать программу в 3 стройчки которая заменяет несколько байт в HEX фаиле и соответственно checksum.
Go to the top of the page
 
+Quote Post
EXeGLuMATOR
сообщение Aug 8 2013, 04:22
Сообщение #4


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

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Цитата(alexf @ Aug 7 2013, 00:47) *
A зачем перекомпилировать? Написать программу в 3 стройчки которая заменяет несколько байт в HEX фаиле и соответственно checksum.


Так исторически сложилось. sm.gif Проект не мой. Допиливаю, доделываю, привожу в человеческий вид, по мере необходимости. Естестввенно писать просто так что-то - лениво. Да и это из разряда костылей.
Идеальный вариант - разобраться с самопрограммированием, в данном виде.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 24th August 2025 - 12:22
Рейтинг@Mail.ru


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