Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 28.09.2014, 14:15  
neyvert
Прописка
 
Регистрация: 29.06.2010
Сообщений: 104
Сказал спасибо: 14
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
neyvert на пути к лучшему
По умолчанию Re: Как разместить программу в STM32F4xx начиная с сектора 1

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

Yurkin2014, А зачем каждый раз стирать 128 кило если можно один раз стереть а потом 128 раз писать по 1 кило, смещаясь соответственно!
neyvert вне форума  
Непрочитано 28.09.2014, 14:26  
Yurkin2014
Заблокирован
 
Регистрация: 21.01.2014
Сообщений: 589
Сказал спасибо: 7
Сказали Спасибо 267 раз(а) в 206 сообщении(ях)
Yurkin2014 на пути к лучшему
По умолчанию Re: Как разместить программу в STM32F4xx начиная с сектора 1

Сообщение от neyvert Посмотреть сообщение
А зачем каждый раз стирать 128 кило
Число стираний-записи во флеш ограничено, не более 10тыс. раз в одну и ту же ячейку.
Конечно, запись со сдвигом и стирание сектора только при заполнении доверху - это самый лучший способ. Тут я полностью согласен.

Проблема у ТС была со считыванием всего сектора и нехваткой ОЗУ.

Если константы изменяются редко, типа, раз в день, например при выключении прибора в конце смены, то можно оставить простой вариант. Писать на одно и то же место. Ресурса при такой ежедневной записи должно хватить на 30 лет.
Yurkin2014 вне форума  
Непрочитано 28.09.2014, 14:37  
vvv998
Временная регистрация
 
Регистрация: 19.08.2014
Сообщений: 60
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
vvv998 на пути к лучшему
По умолчанию Re: Как разместить программу в STM32F4xx начиная с сектора 1

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

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

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

http://amberclan.clan.su/publ/uroki_...2f4/11-1-0-121
Мда... Трудно с Вами беседовать. Вы даже не понимаете, что паказан массив rez1, в который считываются данные из записаной флеши.

Дерзайте! А лучше учитесь! Например, почитайте как работают с SSD - там много раз пишут в нее
Boba_spb вне форума  
Непрочитано 29.09.2014, 10:02  
vvv998
Временная регистрация
 
Регистрация: 19.08.2014
Сообщений: 60
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
vvv998 на пути к лучшему
По умолчанию Re: Как разместить программу в STM32F4xx начиная с сектора 1

Возможно я действительно не совсем понятно объяснил проблему, поэтому привожу скриношоты как разместить программу НЕ с адреса 0х0000 (начало Flash), а с другого адреса, например, с 0х0400 в Keil for C51.
То же самое нужно сделать для ST32F4xx , например, разместить программу с сектора 1 (начальный адрес сектора1 - 0x08004000). Дабы не уводить дискуссию в сторону причины рассматривать не будем. У меня это не получается ни в Keil 5.11 for ARM ни в СооСох ни в IAR. С другими не работал.
Миниатюры:
Нажмите на изображение для увеличения
Название: Keil C51_progr addr 0x0400.png
Просмотров: 35
Размер:	131.6 Кб
ID:	69976   Нажмите на изображение для увеличения
Название: Keil C51_progr addr 0x0400_1.png
Просмотров: 32
Размер:	138.2 Кб
ID:	69977   Нажмите на изображение для увеличения
Название: Keil C51_progr addr 0x0400_link.png
Просмотров: 36
Размер:	49.2 Кб
ID:	69978  


Последний раз редактировалось vvv998; 29.09.2014 в 10:06.
vvv998 вне форума  
Непрочитано 29.09.2014, 10:04  
vvv998
Временная регистрация
 
Регистрация: 19.08.2014
Сообщений: 60
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
vvv998 на пути к лучшему
По умолчанию Re: Как разместить программу в STM32F4xx начиная с сектора 1

А вот скриншоты для программы с адреса 0х0000 (начало Flash) в Keil for C51.
Миниатюры:
Нажмите на изображение для увеличения
Название: Keil C51_progr addr 0x0000.png
Просмотров: 27
Размер:	137.9 Кб
ID:	69979   Нажмите на изображение для увеличения
Название: Keil C51_progr addr 0x0000_link.png
Просмотров: 31
Размер:	49.0 Кб
ID:	69980  
vvv998 вне форума  
Непрочитано 29.09.2014, 12:12  
vvv998
Временная регистрация
 
Регистрация: 19.08.2014
Сообщений: 60
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
vvv998 на пути к лучшему
По умолчанию Re: Как разместить программу в STM32F4xx начиная с сектора 1

Да и еще:
Конечно я, например, в СооСох View-›Configuration[/i] вкладка Link пробовал устанавливать сектор 1 и сектор 2 и т.д.
Но :
- после программирования кода программа не работает;
- отладчик ее тоже не берет (выдает ошибку)

Я знаю, что с сектора 0 (0x08000000) размещается startup и таблица прерываний.
Но программа написана на С. Корректировку startup (адрес перехода на тело программы) и корректировку таблицы прерываний (точки входа) должен делать линкер.

Проблема в том, что и в Keil 5 для ST32 этого тоже зделать не могу (подобно как это делается в Keil C51).
vvv998 вне форума  
Непрочитано 29.09.2014, 12:50  
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Как разместить программу в STM32F4xx начиная с сектора 1

Сообщение от vvv998 Посмотреть сообщение
Да и еще:
- после программирования кода программа не работает;
- отладчик ее тоже не берет (выдает ошибку)
Естественно программа работать не будет - по адресу 0x08000000 должен быть расположен загрузчик, который будет запускать вашу программу.
Сообщение от vvv998 Посмотреть сообщение
Корректировку startup (адрес перехода на тело программы) и корректировку таблицы прерываний (точки входа) должен делать линкер.
Линкера не достаточно. Нужна вторая программа - загрузчик(bootloader).
_Артём_ вне форума  
 

Закладки
Опции темы

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

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, время: 01:04.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot