0 / 0 / 0
Регистрация: 12.12.2014
Сообщений: 50
1

Не нахожу в PonyProg записанные flash-данные

10.01.2015, 15:55. Показов 3003. Ответов 5
Метки нет (Все метки)

Здравствуйте! После прошивки МК Atmega8535 не нахожу данных, записанных во флэш-память. Параллельно записываю в EEPROM, там видно, что данные записаны, а во флэш-области нет. Помогите пожалуйста.

Код
#include <avr/io.h> //подключение стандартной библиотеки ввода/вывода
#define F_CPU 8000000UL //определение тактовой частоты микроконтроллера для корректной работы функций задержки
#include <util/delay.h> //подключение библиотеки для генерации задержек
#include <avr/eeprom.h> //подключение библиотеки работы с EEPROM
#include <avr\pgmsposi.h>
#include <avr\boot.h>

int main(void)
{
int i;
DDRD=0xFF; //порт D работает как выход
eeprom_write_word((uint16_t*)0,0x8100); //запись байта 0x81 по адресу 0
eeprom_write_word((uint16_t*)2,0xC301); //запись байта 0xC3 по адресу 1
eeprom_write_word((uint16_t*)4,0xE702); //запись байта 0xE7 по адресу 2
eeprom_write_word((uint16_t*)6,0x7E03); //запись байта 0x7E по адресу 3
eeprom_write_word((uint16_t*)8,0x3C04); //запись байта 0x3C по адресу 4
eeprom_write_word((uint16_t*)10,0x1805); //запись байта 0x18 по адресу 5
eeprom_write_word((uint16_t*)12,0x00); //запись байта 0x00 по адресу 6

boot_page_fill((uint16_t*)200,0x8100); // заполнение страницы временного буфера данными с 32го адреса
boot_page_write((uint16_t*)200);

pgm_read_word((uint16_t*)200);

while(1) //бесконечный цикл (основная программа)
{
for (i=0;i<7;i++) //цикл чтения байтов с адресами от 0 до 6
{
PORTD = eeprom_read_word((uint16_t*)i); //чтение байта данных по адресу i и запись значения в порт D
// _delay_ms(100); //задержка 100 мс
}
}
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2015, 15:55
Ответы с готовыми решениями:

Прочитать уже записанные данные в файле
Вот имею код который формирует файл. После того как я ввожу данные (окончание ввода результат=1)...

Триггер игнорирует только что записанные данные
У меня в проекте есть БД на MSSQL и проект на Visual studio 2012. Программа прекрасно считывает...

Переписать данные, записанные в строку, в виде столбца
Здравствуйте, помогите пожалуйста, нужно разделить данные из txt, вот пример:...

Программа с применением файлового дескриптора не показывает записанные данные
Здравствуйте уважаемые форумчане ! Помогите пожалуйста. Я написал маленькую программку с...

5
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,044
11.01.2015, 01:03 2
Я никогда не пробовал писать во flash, но точно знаю, что должно быть разрешение записи во flash. Ищите регистры, разрешающие запись во flash.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,483
11.01.2015, 02:38 3
Обычно запись во Ftosh разрешена коду, исполняемому из BOOT-области. И только в некоторых AVR команды записи не ограничены BOOTом (не проверял, как с этим у Вашего Atmega8535, посмотрите в datasheetе сами).
0
0 / 0 / 0
Регистрация: 12.12.2014
Сообщений: 50
12.01.2015, 09:03 4
Может у Кого-нибудь есть исходники по записи и чтению flash-области Атмеги?
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,483
12.01.2015, 17:40 5
Цитата Сообщение от TYRYK
Может у Кого-нибудь есть исходники по записи и чтению flash-области Атмеги?
По чтению: ничего специального не требуется. На ассемблере инструкция LPM, а на Си соответствующая ассемблерная вставка или зависящая от компилятора форма обращения по адресу Ftosh (например, в CVAVR - ключевое слово "flash" перед переменной или указателем).

По записи: откуда будет исполняться код, из bootа?
Предыдущий пост прочитайте.
0
0 / 0 / 0
Регистрация: 12.12.2014
Сообщений: 50
13.01.2015, 08:23 6
Цитата Сообщение от OtyxPM
Цитата Сообщение от TYRYK
Может у Кого-нибудь есть исходники по записи и чтению flash-области Атмеги?
По чтению: ничего специального не требуется. На ассемблере инструкция LPM, а на Си соответствующая ассемблерная вставка или зависящая от компилятора форма обращения по адресу Ftosh (например, в CVAVR - ключевое слово "flash" перед переменной или указателем).

По записи: откуда будет исполняться код, из bootа?
Предыдущий пост прочитайте.

Да, исполнение из бутлоадера. Компилятор - WinAVR.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.01.2015, 08:23

Получить данные из буфера обмена, записанные сторонним приложением
Такая вот ситуация в чужом приложении, в CorelDRAW (вект. редактор), я нажимаю кнопку копировать. И...

Все данные, записанные в формы, записать в текстовый файл
Нужно все данные записанные в формы записать в текстовый файл. При этом не использовать язык PHP и...

Пропали данные, записанные на диск, после его отмонтирования
Здравствуйте! Совсем запутался. Нужен ликбез или направление где почитать. Поднял Samba4 Server...

Как перенести данные записанные в multiline textbox в excel?
Добрый вечер! Никак не могу найти ответ как перенести данные записанные в multiline textbox в...

Сформировать файл, содержащий данные первого файла, но записанные в обратном порядке
Задано текстовый файл. Сформируйте второй файл, содержащий данные первого файла, но записанные в...

Как записать в файл перенос строки и не удалять ранее записанные данные
Сейчас есть такой код for (int NP = 0; NP &lt; NbitIn1OFDM / 3 * NProc; NP = NP+NbitIn1OFDM / 3) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.