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

 
 
> PIC24F Записать строку в память программ
Andrey_M
сообщение Jan 24 2013, 06:16
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 56
Регистрация: 11-03-05
Из: Подмосковье
Пользователь №: 3 260



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

Помогите разобраться с записью во FLESH.
MPLAB V8.88
Компилятор MPLAB C30 V3.30
процессор PIC24FJ128GA006

Есть переменная char buff [14]={"Slovo "}; //
Текст в переменной изменяется в ходе программы (получается от другого процессора).
Требуется сохранить его в памяти программ чтобы можно было восстановить после снятия питания.
С чтением из программной памяти проблем нет а вот записать никак не могу.
Подскажите какую библиотеку для этого надо и если не составит труда накидайте пример как это делается.

Заранее спасибо за любую помощь.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
Danis
сообщение Jan 24 2013, 10:29
Сообщение #2


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Цитата(Andrey_M @ Jan 24 2013, 09:16) *
Подскажите какую библиотеку для этого надо и если не составит труда накидайте пример как это делается.
Заранее спасибо за любую помощь.


Просто записывать несколько байт строки не получится, нужно будет сначала стереть страницу памяти flash, а это может быть 1024 byte или более, надо смотреть на чип. Поэтому нужно

1 – Разместить буфер по указанному адресу во flash, размер буфера должен быть кратен размеру стираемой странице.

__attribute__((space(psv),address (0x7000)))
volatile const unsigned char Buff[1024];

2 – Пишите / считывайте flash.

Тут вам в помощь

MPLAB® C30 C COMPILER USER’S GUIDE
и даташит на Ваш контроллер.


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
skyv
сообщение Jan 24 2013, 11:01
Сообщение #3


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

Группа: Участник
Сообщений: 181
Регистрация: 26-07-10
Пользователь №: 58 606



Цитата(Andrey_M @ Jan 24 2013, 10:16) *
Доброго времени суток!

Помогите разобраться с записью во FLESH.
..


Посмотрите статьи по реализации загрузчиков (Bootloader) для PIC.
Там все подробно описано. Примеры рабочие.


Go to the top of the page
 
+Quote Post
Andrey_M
сообщение Jan 24 2013, 11:46
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 56
Регистрация: 11-03-05
Из: Подмосковье
Пользователь №: 3 260



Спасибо откликнувшимся.
Стирание и запись массивов в память программ у меня получается с помощью
_init_prog_address(p,Flash_var); //
_erase_flash(p); //
_write_flash16(p,Var); //
но это массивы int, а функции работающие с текстом требуют char.
при попытке передать на запись переменную строки char компилятор ругается и после стирания ничего не пишет во FLESH.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 06:58
Рейтинг@Mail.ru


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