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

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

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

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

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

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


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

Проблема возникла в связи с необходимостью размещения констант (которые меняются в процессе работы устройства) в программной памяти. В STM32F407 FLASH с адреса 0х8000000. В линкере (например Keil) устанавливаю начало с адреса 0x08004000 (сектор 1). По идее по адресу 0х8000000 должен быть переход на ячейку 0x08004000, и программа должна размещаться с этого адреса. Вроде все просто, но ничего не выходит. Программа на С. Можно использовать для констант последние сектора, но они начиная с сектора 5 по 128Кб и работать с ними невозможно (нужен большой буфер RAM - на 128Кб).
Реклама:
vvv998 вне форума  
Непрочитано 27.09.2014, 22:28  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Как разместить программу в STM32F4xx начиная с сектора 1

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

Сообщение от vvv998 Посмотреть сообщение
Можно использовать для констант последние сектора, но они начиная с сектора 5 по 128Кб и работать с ними невозможно (нужен большой буфер RAM - на 128Кб).
Это для каких нужд такой буфер в RAM нужен?
Boba_spb вне форума  
Непрочитано 27.09.2014, 22:44  
vvv998
Временная регистрация
 
Регистрация: 19.08.2014
Сообщений: 60
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
vvv998 на пути к лучшему
По умолчанию Re: Как разместить программу в STM32F4xx начиная с сектора 1

Дело в том, что в проекте Keil 5 (взял пример Blink) нету файла startup.
Есть только STM32F40xxx_41xxx_OPT.s в котором не указана точка входа.
vvv998 вне форума  
Непрочитано 27.09.2014, 22:46  
vvv998
Временная регистрация
 
Регистрация: 19.08.2014
Сообщений: 60
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
vvv998 на пути к лучшему
По умолчанию Re: Как разместить программу в STM32F4xx начиная с сектора 1

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

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

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

Сообщение от vvv998 Посмотреть сообщение
Буфер выбирается для чтения содержимого ВСЕГО сектора перед стиранием.
Запись даже одного байта требует стирания всего сектора и его перезаписи.
Вы уверены в этом? Перезапись. а не запись (чувствуете разницу ?) по одному и тому же адресу требует стирания сектора. Что мешает писать последовательно до конца сектора, затем на следующий сектор, а предыдущий стереть ?
Boba_spb вне форума  
Непрочитано 28.09.2014, 00:24  
vvv998
Временная регистрация
 
Регистрация: 19.08.2014
Сообщений: 60
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
vvv998 на пути к лучшему
По умолчанию Re: Как разместить программу в STM32F4xx начиная с сектора 1

Такова природа записи информации в Flash. Запись производится ТОЛЬКО посекторно. Записать можно ТОЛЬКО в стертый (все ячейки 0хFF) сектор. Если надо записать один байт, то необходимо прочитать содержимое ВСЕГО сектора в буфер, изменить в буфере нужную ячейку, стереть сектор, переписать содержимое буфера в сектор. Иначе НЕЛЬЗЯ.
vvv998 вне форума  
Непрочитано 28.09.2014, 00:30  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Как разместить программу в STM32F4xx начиная с сектора 1

да не может бытьтакого
Boba_spb вне форума  
 

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

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

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


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