Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум


 
Опции темы

Как разместить программу в STM32F4xx начиная с сектора 1

Непрочитано 28.09.2014, 00:49  
vvv998
Временная регистрация
 
Регистрация: 19.08.2014
Сообщений: 60
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
vvv998 на пути к лучшему
По умолчанию Re: Как разместить программу в STM32F4xx начиная с сектора 1

"Быть не может" - НО ТАК ОНО И ЕСТЬ. Такова физическая организация Flash. Попробуйте сами.
Реклама:
vvv998 вне форума  
Непрочитано 28.09.2014, 00:53  
vvv998
Временная регистрация
 
Регистрация: 19.08.2014
Сообщений: 60
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
vvv998 на пути к лучшему
По умолчанию Re: Как разместить программу в STM32F4xx начиная с сектора 1

"быть не может" - НО ТАК ОНО И ЕСТЬ. ТАКОВА физическая организация Flash. Попробуйте на ЛЮБОМ микроконтроллере.
vvv998 вне форума  
Непрочитано 28.09.2014, 01:00  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Как разместить программу в STM32F4xx начиная с сектора 1

А вы сами попробуте - сотрите страницу, запишите в в 0 адрес страницы 1. Завершите запись. А потом, не стирая, запишите,например, В адрес 100 стрницы 2. И помотрите что будет.
Boba_spb вне форума  
Непрочитано 28.09.2014, 10:11  
vvv998
Временная регистрация
 
Регистрация: 19.08.2014
Сообщений: 60
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
vvv998 на пути к лучшему
По умолчанию Re: Как разместить программу в STM32F4xx начиная с сектора 1

Я хочу отвести под константы, например, сектор 11 (128Кб). Туда нужно писать константы типа сhar, int, float. Для записи каждой ОТДЕЛЬНОЙ константы нужно сперва ПРОЧИТАТЬ содержимое сектора 1 в БУФЕР, изменить в БУФЕРЕ содержимое по необходимым адресам, СТЕРЕТЬ сектор 1 (после стирания во всех ячейках сектора - 0хFF), записать в сектор 1 ВСЕ содержимое БУФЕРА. Поэтому нужно выбирать Flash c минимальными по объему секторами. Так реализуется запись в Flash.
vvv998 вне форума  
Непрочитано 28.09.2014, 11:05  
neyvert
Прописка
 
Регистрация: 29.06.2010
Сообщений: 104
Сказал спасибо: 14
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
neyvert на пути к лучшему
По умолчанию Re: Как разместить программу в STM32F4xx начиная с сектора 1

Главное условие для записи, что бы по адресу записи было FF, и для этого нет необходимости стирать всю страницу! можно лишь смещать адрес для предстоящей записи! а вот как лучше и где сохранять адрес последней записи сократив число стираний не врублюсь! кто то это решал?
neyvert вне форума  
Непрочитано 28.09.2014, 11:36  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Как разместить программу в STM32F4xx начиная с сектора 1

Через счётчик в первом байте пакета констант
Программа последовательно ищет максимальное значение - там и будут самые свежие данные
niXto вне форума  
Сказали "Спасибо" niXto
neyvert (28.09.2014)
Непрочитано 28.09.2014, 11:55  
neyvert
Прописка
 
Регистрация: 29.06.2010
Сообщений: 104
Сказал спасибо: 14
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
neyvert на пути к лучшему
По умолчанию Re: Как разместить программу в STM32F4xx начиная с сектора 1

Спасибо! теперь врубился!
neyvert вне форума  
Непрочитано 28.09.2014, 12:07  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Как разместить программу в STM32F4xx начиная с сектора 1

Сделал для Вас кусочек проги.
И что Вы теперь скажите?
Миниатюры:
Нажмите на изображение для увеличения
Название: flash1.JPG
Просмотров: 64
Размер:	244.9 Кб
ID:	69954   Нажмите на изображение для увеличения
Название: flash2.JPG
Просмотров: 50
Размер:	244.4 Кб
ID:	69955  
Boba_spb вне форума  
Непрочитано 28.09.2014, 12:11  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Как разместить программу в STM32F4xx начиная с сектора 1

Ну да, еще текст, а то подумаете что при записи считываю в буфер ))
PHP код:
void ClearFlash()
{
 FLASHStatus = FLASH_COMPLETE;
 FLASH_Unlock();
 FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR |FLASH_FLAG_WRPRTERR);
 if (FLASH_ErasePage(FLASH_W_ADDR )== FLASH_COMPLETE)
 FLASH_Lock();
 
  
  
}

void  ReadFlash(uint32_t adr,uint32_t *dat,int n )
{
  for(int i=0;i‹n;i++)
  {
   dat[i] = *(__IO uint32_t *)(FLASH_W_ADDR+adr+i*4) ;
  }
}
void WriteFlash(uint32_t adr, uint32_t *dat,uint32_t n)
{
 FLASHStatus = FLASH_COMPLETE;
 FLASH_Unlock();
 FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR |FLASH_FLAG_WRPRTERR);
     for(int i=0;i‹n;i++)
     {
      FLASH_ProgramWord(FLASH_W_ADDR+adr+i*4, dat[i]);
     }
 FLASH_Lock();
}

///////++++++++++++
int ncol=0;
char *txk="RGY";
int main()
{
InitDev();
ClearFlash();
uint32_t rez1[8];

uint32_t rez[8]={1,2,3,4,5,6,7,8};

WriteFlash(0,rez,4); // Записали 16 байт с адреса 0
ReadFlash(0,rez1,8); // посмотрели
WriteFlash(20,&rez[4],4); // Записали еще 16 байт, но через дырочку по адресу 16
ReadFlash(0,rez1,8); // посмотрели что там у нас 
Boba_spb вне форума  
Непрочитано 28.09.2014, 12:47  
vvv998
Временная регистрация
 
Регистрация: 19.08.2014
Сообщений: 60
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
vvv998 на пути к лучшему
По умолчанию Re: Как разместить программу в STM32F4xx начиная с сектора 1

Вы показали пример отладки в RAM (0x20000000). В ФИЗИЧЕСКОЙ Flash все по другому, нашел ссылку (если не верите мне) :

http://amberclan.clan.su/publ/uroki_...2f4/11-1-0-121

Последний раз редактировалось vvv998; 28.09.2014 в 12:49.
vvv998 вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Решено] Так, рассказик :)) Я долго ржал :)) DK Отвлекитесь, эмбеддеры! 7 31.08.2007 22:33
[Решено] Сборник перлов любителей кабельщины mikesmith Отвлекитесь, эмбеддеры! 135 14.08.2007 15:49
[Решено] Всем эмбеддерам посвящается... Decan Отвлекитесь, эмбеддеры! 0 24.10.2005 14:43


Часовой пояс GMT +4, время: 05:45.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.