|
2 / 2 / 0
Регистрация: 05.10.2015
Сообщений: 51
|
|
Как разместить переменную типа const uint8_t во флеше в секторе размером 16 килобайт, STM32f20515.11.2019, 13:45. Показов 4180. Ответов 10
Метки нет (Все метки)
Как разместить переменную типа const uint8_t во флеше в секторе размером 16 килобайт, STM32f205. В STM32f205, чтоб записать во флеш одну переменную один байт, надо запомнить в ОЗУ весь сектор, минимум 16 килобайт, затем стереть весь сектор (одну переменную стереть нельзя), в ОЗУ поменять один байт и затем записать весь сектор опять во флеш. Сектора бывают 16 64 и 128 килобайт. Первые четыре сектора как раз по 16 килобайт. И второй вопрос линкер в листинге пишет о какой-то памяти RW Data. Кто знает, что это за память и как с ней работать?
0
|
|
| 15.11.2019, 13:45 | |
|
Ответы с готовыми решениями:
10
Как воспроизвести аудио файлы размером 1 килобайт? Покажите, как динамически разместить переменную типа double и передать ей начальное значение -123.0987 Как вывести переменную формата const char* const |
|
2 / 2 / 0
Регистрация: 05.10.2015
Сообщений: 51
|
||||||
| 15.11.2019, 13:57 [ТС] | ||||||
|
Мне нужна перезаписываемая переменная. Сейчас я использую флеш
0
|
||||||
|
|
|
| 15.11.2019, 14:05 | |
|
Ок, перезаписываемая.
Проблема сделать её такой? Или разместить в нужной области памяти? Или и то, и другое? Добавлено через 1 минуту По первому вопросу смотрите эмуляцию eeprom: Эмуляция EEPROM во Flash-памяти программ По второму : см. линкер файл и атрибуты секций кода.
0
|
|
|
2 / 2 / 0
Регистрация: 05.10.2015
Сообщений: 51
|
|
| 15.11.2019, 14:07 [ТС] | |
|
Вот что мне пишет в листинге.
Code (inc. data) RO Data RW Data ZI Data Debug 59568 4640 20652 784 124144 588230 Grand Totals 59568 4640 20652 272 124144 588230 ELF Image Totals (compressed) 59568 4640 20652 272 0 0 ROM Totals То есть 59 килобайт кода во влеше, 20 килобайт данных во флеше, 784 байта RW Data , 124 килобайта ОЗУ. Вот что такое RW Data. Озу так много, потому, что я запоминаю весь сектор, перед тем как его стереть.
0
|
|
|
|
|
| 15.11.2019, 14:11 | |
|
Вероятно,
Ro data: константы во flash ; Rw data: переменные в озу; Zi data : инициализируемый нулями массив, который данных по умолчанию не предусматривает. Научитесь эмулировать eeprom, и тогда запоминать не придётся.
0
|
|
|
2 / 2 / 0
Регистрация: 05.10.2015
Сообщений: 51
|
||||||
| 15.11.2019, 14:23 [ТС] | ||||||
|
В этом микропроцессоре нет страниц (page), как в других. Тут вместо страниц сектора и стереть можно только сектор целиком. Такая микросхема, что сделаешь.
0
|
||||||
|
|
|||||||||||
| 15.11.2019, 15:47 | |||||||||||
|
Я в курсе. Это ничего не меняет.
Добавлено через 1 час 21 минуту По поводу размещения в нужном месте... Прописываете переменную в коде:
Кстати, в 0x08000000 обычно располагается таблица векторов прерываний. Вы уверены, что хотите её затереть?
1
|
|||||||||||
|
2 / 2 / 0
Регистрация: 05.10.2015
Сообщений: 51
|
||
| 15.11.2019, 16:10 [ТС] | ||
|
0
|
||
|
|
||
| 15.11.2019, 16:15 | ||
|
Keil не юзаю - дорого...
Пишут про какой-то scatter file http://www.keil.com/support/ma... 000009.htm http://www.keil.com/support/ma... 656353.htm Добавлено через 1 минуту Вот посередине
0
|
||
|
210 / 163 / 36
Регистрация: 15.11.2012
Сообщений: 788
|
|
| 18.11.2019, 00:51 | |
|
RO data - это данные "только чтение", но строго говоря они могут находиться и в ОЗУ (как и Code в принципе) - зависит от установок файла линковки.
0
|
|
| 18.11.2019, 00:51 | |
|
Помогаю со студенческими работами здесь
11
Как перевести переменную uint16_t, в две uint8_t ? РЕШЕНО! Как строку перевести в последовательность байт типа uint8_t? Как конвертировать переменную типа Double в переменную типа String? проблема при Чтении из файл массива структур размером от 4 килобайт Преобразование типа uint16_t в 2 uint8_t Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|