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

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

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

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

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

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


 
Опции темы

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

Непрочитано 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.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Как разместить программу в STM32F4xx начиная с сектора 1

В первом секторе вектора прерываний
Редактируй startup_stmXXX.S
niXto вне форума  
Непрочитано 27.09.2014, 22:37  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 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.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 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.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 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, время: 19:34.


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