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

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

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

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

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

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


 
Опции темы

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

Непрочитано 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.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 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.RUN
 
Регистрация: 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, время: 04:01.


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