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

 
 
> Хранение данных в Flash-памяти
Vadim.Dyachuk
сообщение Oct 21 2013, 12:55
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 9-10-13
Пользователь №: 78 662



Доброго времени суток!

Меня интересует такой вопрос: "Можно ли хранить в Flash-памяти большой объём информации (к примеру 8 кб) который не будет стерт при перезагрузке МК, если можно то как его туда записать ?"
Использую IAR EW, МК XMEGA 32A4.

Заранее спасибо!
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
ILYAUL
сообщение Oct 21 2013, 13:09
Сообщение #2


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Можно. Вы же написали boot , всё тоже самое


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Vadim.Dyachuk
сообщение Oct 21 2013, 13:24
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 9-10-13
Пользователь №: 78 662



Дело в том что boot секция занята bootloader'ом и мне не хватило бы этой памяти. И что значит
Цитата
всё тоже самое
?
Я хочу разместить по заданному адресу в Flash-памяти с помощью BootLoader'а данные , которые можно будет использовать после перезагрузки МК. Но это нужно сделать так что бы основная программа этих данных не видела и по этому не могла их изменить или стареть.

Сообщение отредактировал Vadim.Dyachuk - Oct 21 2013, 13:25
Go to the top of the page
 
+Quote Post
zombi
сообщение Oct 21 2013, 13:34
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(Vadim.Dyachuk @ Oct 21 2013, 16:24) *
Но это нужно сделать так что бы основная программа этих данных не видела и по этому не могла их изменить или стареть.

Видеть будет, а изменить не сможет.
Go to the top of the page
 
+Quote Post
Vadim.Dyachuk
сообщение Oct 21 2013, 13:49
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 9-10-13
Пользователь №: 78 662



Цитата(zombi @ Oct 21 2013, 16:34) *
Видеть будет, а изменить не сможет.

А как это можно реализовать?
Go to the top of the page
 
+Quote Post
zombi
сообщение Oct 21 2013, 14:19
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(Vadim.Dyachuk @ Oct 21 2013, 16:49) *
А как это можно реализовать?

Странный вопрос для автора USART-bootloaderа
Go to the top of the page
 
+Quote Post
Vadim.Dyachuk
сообщение Oct 22 2013, 06:33
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 9-10-13
Пользователь №: 78 662



То есть если просто зашить программу по заданному адресу (примерно в середину Appliction section) и при этом по нулевому адресу (в начале Appliction section) будит находится еще и главная программа - то при роботе главной программы, программа что находится в середине памяти не будет реагировать на прерывания и т.п.. Я правильно понял?
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Oct 22 2013, 07:47
Сообщение #8


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Правильно , пока вы ей не передадите управление


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Vadim.Dyachuk
сообщение Oct 22 2013, 08:12
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 9-10-13
Пользователь №: 78 662



Спасибо за помощь!
Но есть еще один вопрос: "Можно ли сделать все тоже самое только если вместо bootloader'а использовать программу не в Boot-секции, а в Application-секции?"
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Oct 22 2013, 08:17
Сообщение #10


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Обычно boot секция органично расположена в программной памяти и если она не нужна тои .. с ней


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Vadim.Dyachuk
сообщение Oct 22 2013, 08:24
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 9-10-13
Пользователь №: 78 662



Просто, насколько я знаю в МК с поддержкой Boot-секции на команду SPM накладываются ограничения - её можно выполнить только из BLS (Bootloader section). Есть ли способ записывать в флэш-память данные не используя команды SPM?
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Oct 22 2013, 08:33
Сообщение #12


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Всё таки интересно как Вы написали Boot loader
This instruction can address the entire program memory. А в вoot она не пишет ,что бы не затереть саму себя


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Vadim.Dyachuk
сообщение Oct 22 2013, 08:47
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 9-10-13
Пользователь №: 78 662



Как я понял, прямо Вы мне не ответите?
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Oct 22 2013, 09:01
Сообщение #14


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Description:
SPM can be used to erase a page in the program memory, to write a page in the program memory (that is already erased), and to set boot loader lock bits. In some devices, the program memory can be written one word at a time, in other devices an entire page can be programmed simultaneously after first filling a temporary page buffer. In all cases, the program memory must be erased one page at a time. When erasing the program memory, the RAMPZ and Z register are used as page address. When writing the program memory, the RAMPZ and Z register are used as page or word address, and the R1:R0 register pair is used as data. R1 determines the instruction high byte, and R0 determines the instruction low byte... When setting the boot loader lock bits, the R1:R0 register pair is used as data. Refer to the device documentation for detailed description of SPM usage. This instruction can address the entire program memory.

А для xmeg to` более конкретно

The SPM instruction can access the entire flash, including the boot loader section itself. The protection level for the boot loader
section can be selected by the boot loader lock bits. If this section is not used for boot loader software, application code
can be stored here.
Прикрепленные файлы
Прикрепленный файл  MANUAL_XMEGA_A_.rar ( 5.52 мегабайт ) Кол-во скачиваний: 21
 


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Vadim.Dyachuk
сообщение Oct 22 2013, 10:28
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 9-10-13
Пользователь №: 78 662



Спасибо за помощ!
Go to the top of the page
 
+Quote Post

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

 


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


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