MiklPolikov 0 11 июня, 2022 Опубликовано 11 июня, 2022 · Жалоба Глупый вопрос: Где в документации STM указан верхний адрес доступной памяти ? Карту памяти вижу, RAM начитается с 0x20000000 Размер "10КВ" вижу. А сам-то верхний адрес, в явном виде, без округления до "10КВ" где ? Заранее спасибо за подсказку ! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 11 июня, 2022 Опубликовано 11 июня, 2022 · Жалоба ST любят делать шаблонную документацию на серию - поэтому указывают начало и размер. В L100 все просто, а в других случаях нужно читать не только DS, но и RM (матрица шин, ремап, защита и т.п.) - т.к. SRAM бывает разная. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MiklPolikov 0 11 июня, 2022 Опубликовано 11 июня, 2022 · Жалоба On 6/11/2022 at 9:15 PM, adnega said: ST любят делать шаблонную документацию на серию - поэтому указывают начало и размер. В L100 все просто, а в других случаях нужно читать не только DS, но и RM (матрица шин, ремап, защита и т.п.) - т.к. SRAM бывает разная. А резмер-то где указан ? "10KB" это 0х2710 или 0x2709 ? или ещё сколько-то ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 11 июня, 2022 Опубликовано 11 июня, 2022 · Жалоба Я всегда использую 10 * 1024 = 10240 байт = 0x2800. В верхних адресах обычно стек. Адрес вершины нужно передать в первом слове прошивки - там должно быть 0x2000_2800. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MiklPolikov 0 11 июня, 2022 Опубликовано 11 июня, 2022 · Жалоба On 6/11/2022 at 9:28 PM, adnega said: Я всегда использую 10 * 1024 = 10240 байт = 0x2800. Делал так же. Но вот сейчас какой-то непонятный глюк при обращении к верхним адресам. Поэтому, хочу узнать из документации в явном виде, какой именно адрес считается границей сверху. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 11 июня, 2022 Опубликовано 11 июня, 2022 · Жалоба У меня с некратным объемом есть 6-килоБайтные - все норм. А в чем глюк? В скрипте линкера нет ошибки? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 180 11 июня, 2022 Опубликовано 11 июня, 2022 · Жалоба 10кБ это 10240 байт. В документации не найдете, просто верьте на слово Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardWareMan 2 12 июня, 2022 Опубликовано 12 июня, 2022 (изменено) · Жалоба On 6/12/2022 at 1:56 AM, Arlleex said: 10кБ это 10240 байт. В документации не найдете, просто верьте на слово Более того, если взять линковачный скрипт из того же кубика под выбранный МК, то там обычно так же тупо объём и ставится: // STM32F407VG /* Specify the memory areas */ MEMORY { FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 1024K RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K CCMRAM (xrw) : ORIGIN = 0x10000000, LENGTH = 64K MEMORY_B1 (rx) : ORIGIN = 0x60000000, LENGTH = 0K } И его нужно править, если ты часть памяти отдал под бутлодырь. Изменено 12 июня, 2022 пользователем HardWareMan Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MiklPolikov 0 13 июня, 2022 Опубликовано 13 июня, 2022 · Жалоба Спасибо всем ответившим ! И, посмотрите. Процессор STM32L100RBT6 RAM 10КБ = 0x2800 Забиваю память значением 0xAA. И, выше адреса 0x2573 оно почему-то не пишется! Более того, если взять значение не 0xAA, а 0x0, программа попадает в HardFault при записи выше 0x2573. Чем это можно объяснить ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 13 июня, 2022 Опубликовано 13 июня, 2022 · Жалоба Слишком вы дерзко на стек налезаете... У вас в верхних адресах стек и писать туда так просто данные нельзя - это служебная память + там и куча может находиться. Можно в startup-файле залить стек/ОЗУ каким-нить шаблоном, но просто сам факт, что стек настроен на 0x2000_2800, и функции в программе вызываются корректно, доказывает, что эта память рабочая. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться