Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.95/39: Рейтинг темы: голосов - 39, средняя оценка - 4.95
4 / 4 / 1
Регистрация: 24.04.2022
Сообщений: 79

Реальные адреса из МК

05.05.2022, 11:00. Показов 9642. Ответов 99
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как найти реальные адреса под которыми всё находится в МК?
Ассемблер я не понимаю.

Две программы (STM32 ST-LINK Utility и STM32CubeProgrammer) показывают один и тот же результат. Не похоже на то чтоб это была только интерпретация отдельной программы.
Может это реальные адреса и расположение внутри МК?
Миниатюры
Реальные адреса из МК  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.05.2022, 11:00
Ответы с готовыми решениями:

Показывать реальные IP адреса пользователей
Добро день ув. знатоки. Вопрос по настройке open servera или CMS Drupal. У меня есть сайт, который работает на Open servre, все...

Можно ли отдавать реальные IP адреса при проксировании в Apache?
Здравствуйте. Имеется Ubuntu Server, на нём Apache2. Apache2 проксирует некое веб-приложение, которое находится на другом сервере в...

Реальные/ виртуальные
Купил ноутбук. там процессор Intel core i5 460M 2.53 ГГц. Продовец-консультант сказал что процессор четырёх ядерный, дома посмотрел...

99
87 / 86 / 4
Регистрация: 20.11.2016
Сообщений: 271
08.05.2022, 15:45
Лучший ответ Сообщение было отмечено getstm32 как решение

Решение

Студворк — интернет-сервис помощи студентам
Сообщение от getstm32

С какого адреса во флеш можно писать, не опасаясь затереть что то нужное?
после компиляции нашего проекта находим бинарный файл с нашей прошивкой, открываем его, вот например последняя строка в моем бинарном файле имеет адрес 0x4BC0. Это значит что моя прошивка занимает 20Кб памяти.
Если вы хотите поместить какую то константу во флеш, вы можете записать ее по адресу (0x0800'0000 + 0x4BC0)
Вся остальная флэш-память начиная от (0x0800'0000 + 0x4BC0) до ее конца, в вашем распоряжении
1
Эксперт по электронике
7199 / 3376 / 346
Регистрация: 28.10.2011
Сообщений: 13,289
Записей в блоге: 7
08.05.2022, 16:02
Цитата Сообщение от getstm32 Посмотреть сообщение
Значит мне надо узнать где заканчивается прошивка и туда писать?
Как это можно сделать?
Пишите в последнюю страницу флеш-памяти.

Цитата Сообщение от getstm32 Посмотреть сообщение
Читаю я документацию по мере понимания, но надо сначала понимать что читаешь.
Нужно также понимать что делаешь. Если пока что не понимаете, не стоит делать.

Цитата Сообщение от getstm32 Посмотреть сообщение
Я подразумеваю что границы стека в которых он может расти составляют 16 бит судя по адресу 00 20 00 10
Причем здесь 16 бит?
0
4 / 4 / 1
Регистрация: 24.04.2022
Сообщений: 79
08.05.2022, 16:05  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
Нужно также понимать что делаешь. Если пока что не понимаете, не стоит делать.
Ага, пойду пока могилку выкопаю за одно. спс за совет. Не подскажете где гробик купить?
0
Эксперт по электронике
7199 / 3376 / 346
Регистрация: 28.10.2011
Сообщений: 13,289
Записей в блоге: 7
08.05.2022, 16:05
Цитата Сообщение от Radikal_78 Посмотреть сообщение
Если вы хотите поместить какую то константу во флеш, вы можете записать ее по адресу (0x0800'0000 + 0x4BC0)
Вся остальная флэш-память начиная от (0x0800'0000 + 0x4BC0) до ее конца, в вашем распоряжении
Это не так. Стирать нужно страницу и те в которых прошивка не трогать. Поэтому конечный адрес вовсе не 0x4BC0 (при условии что прошивка имеет такой размер), а больше и зависит от размера страниц.
1
87 / 86 / 4
Регистрация: 20.11.2016
Сообщений: 271
08.05.2022, 16:46
Лучший ответ Сообщение было отмечено getstm32 как решение

Решение

Поправляю свое предыдущее сообщение)

Для 103c8t6-го контроллера берем документ RM0008, он имеет 64 Кб флэша, открываем 55 страницу документа и смотрим разбиение Flash памяти на страницы. Память разбита на 64 страницы по одному килобайту, последняя строчка бинарника к примеру оканчивается адресом 0x4BC0, а 19-я страница начинается с адреса 0x0800 4C00. Так что страницы с 19 по 63-ю
остаются в нашем распоряжении и могут быть использованы нами.
1
Нарушитель
445 / 886 / 106
Регистрация: 23.11.2021
Сообщений: 5,203
Записей в блоге: 19
08.05.2022, 16:58
А чтобы руками не писать фиксированный адрес, задаем начало доступного флеша для эмуляции EEPROM в ld-скрипте. Там же задаем размер страницы. Вуаля — можно писать универсальный код, и не придется при увеличении размера прошивки вручную ничего изменять.
1
 Аватар для COKPOWEHEU
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
08.05.2022, 17:11
Цитата Сообщение от locm Посмотреть сообщение
Что по вашему означают слова "начало" и "конец" или нужно объяснять как ребенку?
Раз уж пользуетесь собственной терминологией, будьте добры расшифровать каждый термин. Откуда мне знать, что вы понимаете под началом и концом стека?
Цитата Сообщение от locm Посмотреть сообщение
К секциям в ld файле какое это имеет отношение?
Для вас - никакого. Для того, кто в этом разбирается, отношение есть.
Цитата Сообщение от locm Посмотреть сообщение
Не вру. Проверяйте.
Проверять что? Что вы упорно называли значение инициализации указателем?! На первой же странице это видно.
Цитата Сообщение от locm Посмотреть сообщение
То есть хотите сказать что в STM32 дно стека обычно в конце ОЗУ? Сами хоть поняли какую глупость сморозили и сейчас выкручиваетесь?
Доказательства "глупости" будут или как обычно, лишь бы что ляпнуть?
Цитата Сообщение от locm Посмотреть сообщение
Вам нужно переехать в другую страну где ложь выдают за правду, а черное у них - белое.
Нет спасибо, не надо к себе завлекать, мне и тут неплохо. Или вам в этой вашей стране, где "ложь выдают за правду" настолько одиноко?
Цитата Сообщение от locm Посмотреть сообщение
Откуда вы знаете?
Предполагаю на основе вопросов ТСа.
Цитата Сообщение от locm Посмотреть сообщение
Он расслабится и будет бумать что имеет право израсходовать всю оперативку и еще стек заполнит под завязку.
Если не будет адово говнокодить, то не заполнит. Так что можете не приписывать,будто это не вы, а я его запутываю.
Цитата Сообщение от getstm32 Посмотреть сообщение
Две программы одно и то же значение выдают 00 20 00 10. Оно правильное
Что за "две программы"? Если оно не соответствует реальности, как оно вообще может быть правильным?
Цитата Сообщение от getstm32 Посмотреть сообщение
Да, точно. Значит мне надо узнать где заканчивается прошивка и туда писать?
Как это можно сделать?
ЗАЧЕМ?
Цитата Сообщение от getstm32 Посмотреть сообщение
Это 10002000 и это 00 20 00 10 один и тот же адрес. Один в big endian другой в little endian
Да, но там в контроллере, повторяю, ничего интересного нет.
Цитата Сообщение от getstm32 Посмотреть сообщение
Я подразумеваю что гарницы стека в которых он может расти составляют 16 бит судя по адресу 00 20 00 10
Вы понимаете, что 32-битная переменная в 16-битный стек не влезет?
Цитата Сообщение от Radikal_78 Посмотреть сообщение
Для 103c8t6-го контроллера берем документ RM0008, он имеет 64 Кб флэша, открываем 55 страницу документа и смотрим разбиение Flash памяти на страницы. Память разбита на 64 страницы по одному килобайту, последняя строчка бинарника к примеру оканчивается адресом 0x4BC0, а 19-я страница начинается с адреса 0x0800 4C00. Так что страницы с 19 по 63-ю
Каждый раз руками лазить смотреть сколько прошивка занимает? Сами занимайтесь мартышкиной работой! По-хорошему, в *.ld файле задается специальная секция, расположенная после всех остальных, с нужным выравниванием. И в нее все и пишется.
1
4 / 4 / 1
Регистрация: 24.04.2022
Сообщений: 79
08.05.2022, 17:43  [ТС]
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
ЗАЧЕМ?
Просто чтоб уметь делать с флеш что возможно.
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Вы понимаете, что 32-битная переменная в 16-битный стек не влезет?
С адреса 20 00 00 начинается ОЗУ.
Адрес во флеш по адресу 0x08000000 ==20 00 10
20 00 10-20 00 00==10hex==16 бит
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Я правильно понимаю что если при инициализации в указатель стека заносится значение 0x2000'5000, то его величина составляет 20 КБ и по мере заполнения стека его указатель приближается к значению 0x2000'0000 ?
Да
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Что за "две программы"?
STM32CubeProgrammer и STM32 ST-LINK Utility
Миниатюры
Реальные адреса из МК  
0
Эксперт по электронике
7199 / 3376 / 346
Регистрация: 28.10.2011
Сообщений: 13,289
Записей в блоге: 7
08.05.2022, 17:45
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Откуда мне знать, что вы понимаете под началом и концом стека?
Я писал о начальном адресе стека с которого он начинается. Остальное вы домыслили.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Для вас - никакого. Для того, кто в этом разбирается, отношение есть.
А пояснить конечно же не хотите. Хорошая отмазка когда нечего сказать т. к. неправы.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Что вы упорно называли значение инициализации указателем?!
Указателем на начало стека. Что в этом непонятного? Указатель это адрес если не знаете.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Доказательства "глупости"
Да, вашей глупости!

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Нет спасибо, не надо к себе завлекать, мне и тут неплохо.
От таких как вы нужно чистить РФ! Или вы из другой страны? Это многое объяснило бы.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Если не будет адово говнокодить, то не заполнит.
Посмотрите на его вопросы и неверные выводы. Что о них думаете?

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Так что можете не приписывать,будто это не вы, а я его запутываю.
У вас стек то с вершины начинается, то с дна. Выше приводил ваши цитаты. Не вводите в заблуждение ТС, хотя ему походе пофиг.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Да, но там в контроллере, повторяю, ничего интересного нет.
Там оперативка. Я писал об этом.
0
 Аватар для COKPOWEHEU
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
08.05.2022, 18:16
Цитата Сообщение от getstm32 Посмотреть сообщение
Просто чтоб уметь делать с флеш что возможно.
Основное, что с ней можно делать - выполнять код. То, что в нее иногда и с определенными извращениями можно писать произвольные данные - побочная функция. Вы уже освоили основной функционал контроллера? UART, таймеры хотя бы?
Цитата Сообщение от getstm32 Посмотреть сообщение
С адреса 20 00 00 начинается ОЗУ.
Адрес во флеш по адресу 0x08000000 ==20 00 10
Нет.
ОЗУ начинается с 0x2000`0000
ПЗУ начинается с 0x0800`0000
В ячейке 0x0800`0000 у вас записано число 0x2000`1000, а не 0x0020`0010 - не теряйте значащие биты!
Цитата Сообщение от getstm32 Посмотреть сообщение
STM32CubeProgrammer и STM32 ST-LINK Utility
Либо что-то не так с программами, либо с вашим кодом.
Цитата Сообщение от locm Посмотреть сообщение
Я писал о начальном адресе стека с которого он начинается. Остальное вы домыслили.
Вот чтобы не пришлось домысливать, приведите ваше определение начала стека.
Цитата Сообщение от locm Посмотреть сообщение
А пояснить конечно же не хотите.
ТС не заинтересовался. А у вас, очевидно, нет цели что-то узнать, вы сюда потроллить заходите. А как доходит до подробонстей, так "я никого учить не собираюсь".
Цитата Сообщение от locm Посмотреть сообщение
Указателем на начало стека. Что в этом непонятного? Указатель это адрес если не знаете.
Что такое "начало стека"? Зачем и кому нужен указатель туда? Уже третью страницу пытаюсь вытянуть из вас ответ на этот простой вопрос.
Цитата Сообщение от locm Посмотреть сообщение
Посмотрите на его вопросы и неверные выводы. Что о них думаете?
Что вы его окончательно запутали. И мешаете хоть как-то во всем этом разобраться. Например, замусориваете форум своими придирками ко мне.
Цитата Сообщение от locm Посмотреть сообщение
У вас стек то с вершины начинается, то с дна.
Наркоман? Если вы не способны прочитать что такое стек, что такое его дно и вершина, не надо обвинять в своем невежестве окружающих. Стек у него с вершины начинается! У его стека вообще есть начало и конец! Надо же было такой бред придумать...
Цитата Сообщение от locm Посмотреть сообщение
Там оперативка. Я писал об этом.
Где у вас "там" оперативка? Выделите кружком на моем скриншоте, взятом напрямую из даташита
Миниатюры
Реальные адреса из МК  
1
Эксперт по электронике
7199 / 3376 / 346
Регистрация: 28.10.2011
Сообщений: 13,289
Записей в блоге: 7
08.05.2022, 20:28
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
приведите ваше определение начала стека.
Я много раз написал его. Читайте внимательно.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
А как доходит до подробонстей, так "я никого учить не собираюсь".
А никто и не просит учить. Вы написали
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Потому что на асме использование относительных и абсолютных адресов - совершенно естественная операция.
Поясните что хотели этим сказать в контексте секций ld файла. Я связи не вижу. Остальные вероятно тоже.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Что такое "начало стека"?
В данном конкретном случае это стартовый адрес находящийся по адресу 0x08000000.
Для остальных это очевидно с учетом что я написал это упомянув адрес 0x08000000 Реальные адреса из МК
Только до вас никак дойти не может! Или просто решили потролить...

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Где у вас "там" оперативка?
Хотелось ответить в рифму, но ладно...
Специально для вас сделал скрин даташита. Изучайте!



Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Выделите кружком на моем скриншоте
А причем здесь ваш скрнин? Если вы последовали бы моему совету и посмотрели скрины ТС, увидели бы что у него STM32F405. А ваш скрин для какого МК?
0
 Аватар для COKPOWEHEU
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
09.05.2022, 08:47
Цитата Сообщение от locm Посмотреть сообщение
Я много раз написал его. Читайте внимательно.
Так я и думал, никакой конкретики и подтверждения ваших слов от вас не дождешься, одни отмазки.
Цитата Сообщение от locm Посмотреть сообщение
А никто и не просит учить.
Я про отношение вообще. Мы ведь уже обсуждали когда-то подходы к обучению контроллерам, где вы в самом же начале слились, не сумев придумать хотя бы два - три шага или назвать литературу. Так и тут: кричать что окружающие ничего не знают это вы мастер, а вот указать где именно ошибка или где про нее почитать - ступор.
Цитата Сообщение от locm Посмотреть сообщение
Поясните что хотели этим сказать в контексте секций ld файла.
Различи6е общего подхода к программированию.
При изучении Асма сразу вводятся термины регистров, инструкций, адресов. (Почти) не используется компиляторная магия. Соответственно и переход от ручного указания адресов в коде .text ; .org 0x08000000 ; _vector_table: к ld-файлу происходит прозрачно.
На Си же обучение идет от алгоритмов и структур данных. То, как в переменных появляются их начальные значения, как происходит первоначальная настройка, как вообще все эти структуры на низком уровне работают - почти никогда не обсуждается. Соответственно и вводить за раз приходится слишком много разных сущностей. Не то чтобы совсем невозможно, но гораздо сложнее.
Цитата Сообщение от locm Посмотреть сообщение
В данном конкретном случае это стартовый адрес находящийся по адресу 0x08000000.
А в общем случае? Я определение "начала" и "конца" стека жду, чтобы вы опять не начали цепляться к словам. Кто из них дно, а кто - вершина?
Цитата Сообщение от locm Посмотреть сообщение
Специально для вас сделал скрин даташита. Изучайте!
Насколько я понял, в вашем контроллере это специальная память, расположенная чуть ближе к ядру, за счет чего к ней чуть быстрее доступ, но и накладываются ограничения.
Вы серьезно утверждаете, что именно ее ТСу стоит использовать в качестве основной?
Кстати, если бы читали мои сообщения не только ради троллинга, увидели бы "там ничего интересного нет". Пока у ТСа проблемы с базовым функционалом МК, рано ему лезть в тонкости.
Цитата Сообщение от locm Посмотреть сообщение
А ваш скрин для какого МК?
Для f103. ТС ведь не указал, какой у него МК, вот я и выбрал самый распространенный.
0
Эксперт по электронике
7199 / 3376 / 346
Регистрация: 28.10.2011
Сообщений: 13,289
Записей в блоге: 7
09.05.2022, 11:58
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Так я и думал, никакой конкретики и подтверждения ваших слов от вас не дождешься, одни отмазки.
Я всегда отвечаю за свои слова, в отличие от вас.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Так и тут: кричать что окружающие ничего не знают это вы мастер
Где я такое написал? Я лишь писал что ТС нужно читать документацию. В ваш адрес я подобного не писал!

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Соответственно и переход от ручного указания адресов в коде .text ; .org 0x08000000 ; _vector_table: к ld-файлу происходит прозрачно.
В Си-проекте также присутсвует асм-файл - стартап, только ТС его вовсе не изучал. Не удивлюсь если он и ld файл не открывал чтобы просто посмотреть что в нем не говоря про то чтобы понять смыл содержимого. То что в асм-файле написано org 0x08000000 вовсе не означает что в ld будет также. Хорошие грабли для начинающих!
Поэтому в случае ТС не думаю что изучение асма сильно на что-то повлияет.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
А в общем случае?
В общем, т. е. касаемо всех процев (не только всех возможных МК, но и ПК и др.), в зависимости от архитектуры и многих других параметров.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Я определение "начала" и "конца" стека жду
Я написал в предыдущем сообщении что что имел в виду и про конец стека я не упоминал. В данном случае уместно название не "конец", а максимальный размер (глубина) стека, превышение которого может привести к порче данных в ОЗУ.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
чтобы вы опять не начали цепляться к словам. Кто из них дно, а кто - вершина?
У меня нет никакого желания цепляться к словам в отличие от вас. Вы сначала писали что стек начинается в вершины, потом что со дна. Выше приводил цитаты. Реальные адреса из МК
Сформулируйте что конкретно имели в виду.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Насколько я понял, в вашем контроллере это специальная память
Не в моем, а в МК ТС.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Вы серьезно утверждаете, что именно ее ТСу стоит использовать в качестве основной?
Почему спрашиваете у меня? Я создавал проект? Все вопросы к ТС. По тем данным что он привел, у него стек начинается с адреса 0x10002000.
Не факт что эта память используется как основная. Пока что нам известно что в ней расположен стек.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Пока у ТСа проблемы с базовым функционалом МК, рано ему лезть в тонкости.
С этим согласен. Объясните это ТС.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Для f103. ТС ведь не указал, какой у него МК
ТС выложил скрины в первом сообщении. Я советовал их посмотреть, но проигнорировали это сообщение
Цитата Сообщение от locm Посмотреть сообщение
Почему нет? У многих МК по адресу 0x10000000 находится CCMRAM. Странно что вы этого не знаете.
Разве не видите на скринах ТС что МК F405 с CCMRAM?
0
 Аватар для COKPOWEHEU
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
09.05.2022, 12:29
Цитата Сообщение от locm Посмотреть сообщение
Я всегда отвечаю за свои слова, в отличие от вас.
Угу, в отличие от меня - очередными пустыми словами. Как не было от вас конкретики, так и нет.
Цитата Сообщение от locm Посмотреть сообщение
В Си-проекте также присутсвует асм-файл - стартап, только ТС его вовсе не изучал. Не удивлюсь если он и ld файл не открывал
Естественно! Он ведь Си учит, а не архитектуру контроллера. А чтобы хотя бы анализировать "асм-файл - стартап" нужны, внезапно, знания асма.
Именно об этом я и говорил: сам подход не поощряет лезть глубже.
Цитата Сообщение от locm Посмотреть сообщение
В общем, т. е. касаемо всех процев (не только всех возможных МК, но и ПК и др.), в зависимости от архитектуры и многих других параметров.
То есть у вас определение "начала" и "конца" стека зависят от архитектуры? Вроде как если стек растет вверх, вниз и хаотично по ОЗУ (в случае связного списка, например) значения этих терминов будут отличаться? А зачем тогда их использовать, если есть стандартные "дно" и "вершина", которые никак не зависят от внутренней организации?
Цитата Сообщение от locm Посмотреть сообщение
Вы сначала писали что стек начинается в вершины, потом что со дна.
"Стек начинается" это ваша кривая терминология. Которую, кстати, вы так до сих пор и не сформулировали.
У нормального же стека есть дно, где располагается первый положенный туда элемент, и вершина, где последний. Вся работа со стеком идет через вершину. Туда можно положить очередной элемент, тогда она отодвинется дальше от дна. И можно снять элемент - тогда она приблизится к дну.
Цитата Сообщение от locm Посмотреть сообщение
Почему спрашиваете у меня?
Потому что это вы предлагаете организовывать стек по адресу 0x1000`2000, я же предупреждаю ТСа, что там ничего нет, и стек оттуда начинать бесполезно.
Цитата Сообщение от locm Посмотреть сообщение
ТС выложил скрины в первом сообщении. Я советовал их посмотреть, но проигнорировали это сообщение
Еще не хватало приглядываться к скринам непонятных IDE с лупой и искать где же там закодировано название МК! Пока ТС не указал его явно, приходится рассматривать более-менее абстрактный МК.
---
Кстати, вы так старательно уходите от ответов на прямые вопросы. Но я их повторю:
Что такое в вашей терминологии "начало" и "конец" стека? Чем они лучше обычных "дна" и "вершины"?
Чем указатель отличается от начального значения указателя?
0
Эксперт по электронике
7199 / 3376 / 346
Регистрация: 28.10.2011
Сообщений: 13,289
Записей в блоге: 7
09.05.2022, 13:55
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Потому что это вы предлагаете организовывать стек по адресу 0x1000`2000
Где я это предлагал?
Я написал что это адрес дополнительного ОЗУ, хотя вы утверждали что по этому адресу ничего нет и оказались неправы.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Еще не хватало приглядываться к скринам непонятных IDE с лупой и искать где же там закодировано название МК!
Там скрин STM32 ST-LINK Utility, которую вы назвали "непонятной IDE". Разве это IDE? Это официальный прошивальщик ST. В его окне в верхнем правом углу написана модель МК.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Пока ТС не указал его явно, приходится рассматривать более-менее абстрактный МК.
Вы должны были знать что в некоторых моделях STM32 область начиная с адреса 0x10000000 вовсе не пустая. Если не знаете таких элементарных вещей, видимо опыт работы с STM32 у вас очень небольшой.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Что такое в вашей терминологии "начало" и "конец" стека? Чем они лучше обычных "дна" и "вершины"?
Я уже отвечал на эти вопросы. Читайте внимательно предыдущие ответы.
Не лучше и не хуже - слова синонимы.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Чем указатель отличается от начального значения указателя?
Я много раз писал что указать это адрес, в данном случае адрес с которого начинается стек. Все остальное ваша фантазия.
0
 Аватар для COKPOWEHEU
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
09.05.2022, 14:49
Цитата Сообщение от locm Посмотреть сообщение
Где я это предлагал?
Ровно там, где сказали, что это вполне нормальный адрес и ТСу его можно спокойно использовать.
Цитата Сообщение от locm Посмотреть сообщение
Я написал что это адрес дополнительного ОЗУ, хотя вы утверждали что по этому адресу ничего нет и оказались неправы.
У вас опять проблемы с чтением? Я писал, что там нет ничего интересного для ТС, и оказался прав. Рано ему туда лезть, пусть сначала с обычным ОЗУ работать научится.
Цитата Сообщение от locm Посмотреть сообщение
Там скрин STM32 ST-LINK Utility, которую вы назвали "непонятной IDE". Разве это IDE?
Да без разницы что именно за непонятная программа там на скриншотах. Повторяю: у меня нет ни малейшего желания лазить по ней с лупой, выискивая где же там прописан контроллер и надеясь, что ТС его выставил правильно.
Цитата Сообщение от locm Посмотреть сообщение
Вы должны были знать что в некоторых моделях STM32 область начиная с адреса
Должен знать наизусть карты памяти всех контроллеров? Еще не хватало зубрить что-то, что нужно раз в году, и то для спора на форуме! Кстати, вам тоже советую тратить время на что-то более полезное.
Цитата Сообщение от locm Посмотреть сообщение
видимо опыт работы с STM32 у вас очень небольшой.
А учитывая, что это мне приходится вас просвещать, а не наоборот, выходит, что ваш опыт еще меньше.
Цитата Сообщение от locm Посмотреть сообщение
Я уже отвечал на эти вопросы. Читайте внимательно предыдущие ответы.
Не лучше и не хуже - слова синонимы.
Угу. Уже синонимы. Ладно, хоть с этим разобрались.
Цитата Сообщение от locm Посмотреть сообщение
Я много раз писал что указать это адрес
То есть по-вашему "адрес" и "указатель" - синонимы?
0
Эксперт по электронике
7199 / 3376 / 346
Регистрация: 28.10.2011
Сообщений: 13,289
Записей в блоге: 7
09.05.2022, 15:32
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Ровно там, где сказали, что это вполне нормальный адрес и ТСу его можно спокойно использовать.
Разве в CCM RAM нельзя размещать стек? Если не знакомы с STM32F4 и подобными, сначала прочтите документацию, а после пишите чтобы не вводить людей в заблуждение.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Я писал, что там нет ничего интересного для ТС, и оказался прав. Рано ему туда лезть, пусть сначала с обычным ОЗУ работать научится.
Вы серьезно полагаете что ТС вручную создал проект и написал ld файл? Скорее всего проект был создан в одной из IDE. Или вы себя считаете умнее тех что разработал IDE?
Не хотите пойти работать в ST и вводить других в заблуждение говоря что по адресу 0x10000000 ничего нет.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Да без разницы что именно за непонятная программа там на скриншотах.
Если вам без разницы, зачем отвечать и вводить ТС в заблуждение? Вы написали что по адресу 0x10000000 ничего нет, но в F4 там CCM RAM. Не знаете - не пишите!

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
надеясь, что ТС его выставил правильно.
Вы вообще о чем? STM32 ST-LINK Utility определяет модель по идентификатору прочитанному из МК! У меня сомнения что вы вообще работаете с STM32 потому что не знаете элементарнейших вещей. Или тупо отмазываетесь потому что облажались по полной!

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Должен знать наизусть карты памяти всех контроллеров?
Нет, но то что во многих моделях есть CCM RAM знать должны. А если чего-то не знаете, не нужно голословно писать что по адресу ничего нет вводя других в заблуждение!

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
А учитывая, что это мне приходится вас просвещать, а не наоборот, выходит, что ваш опыт еще меньше.
То есть вы "великий гуру STM32" не знаете о CCM RAM и мне "полному новичку" нужно вам об этом рассказывать?
Подучите матчасть, не позорьтесь!

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Угу. Уже синонимы. Ладно, хоть с этим разобрались.
Я об этом давно написал. Но вам лишь бы поспорить!

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
То есть по-вашему "адрес" и "указатель" - синонимы?
Указатель хранит адрес на который указывает.
Регистр проца SP называется Stack Pointer. С этим согласны или будете спорить? Адрес начала стека находится во флеше по адресу 0x08000000. При старте МК он копируется в SP. Это значит что в 0x08000000 указатель на начальный адрес стека. Только для кого я это пишу? Вам все равно пофиг, лишь бы поспорить и потролить!
0
4 / 4 / 1
Регистрация: 24.04.2022
Сообщений: 79
09.05.2022, 16:33  [ТС]
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Да без разницы что именно за непонятная программа там на скриншотах.
Удобная программа. В режиме реального времени можно менять состояние пинов в регистрах.
Миниатюры
Реальные адреса из МК  
0
09.05.2022, 16:58

Не по теме:

Ох уж эти вендовозы: без мыши и GUI вообще жизни не видят…

0
 Аватар для COKPOWEHEU
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
09.05.2022, 18:04
Цитата Сообщение от locm Посмотреть сообщение
Разве в CCM RAM нельзя размещать стек?
Неправильный вопрос. Правильный: "нужно ли ТСу на данном этапе организовывать стек именно там?"
Цитата Сообщение от locm Посмотреть сообщение
Я писал, что там нет ничего интересного для ТС, и оказался прав. Рано ему туда лезть, пусть сначала с обычным ОЗУ работать научится.
Вы серьезно полагаете что ТС вручную создал проект и написал ld файл?
Где связь цитаты с вашей фразой? Говорил же - завязывайте с веществами.
Цитата Сообщение от locm Посмотреть сообщение
Если вам без разницы, зачем отвечать и вводить ТС в заблуждение?
И снова ответ никак не связан с цитатой. Вот как в вашем мозгу мое знание архитектуры контроллеров связалось с незнанием сомнительных IDE?!
Цитата Сообщение от locm Посмотреть сообщение
Вы вообще о чем? STM32 ST-LINK Utility определяет модель по идентификатору прочитанному из МК! У меня сомнения что вы вообще работаете с STM32 потому что не знаете элементарнейших вещей.
Что удивительного в том, что я не трачу время на бесполезную чушь? Это вам видать заняться нечем, раз вместо нормальных makefile'ов каждый раз изучаете интерфейс новой IDE, прошивальщика, отладчика и тому подобного. Еще и окружающим этот дурацкий подход навязываете.
Цитата Сообщение от locm Посмотреть сообщение
Нет, но то что во многих моделях есть CCM RAM знать должны. А если чего-то не знаете, не нужно голословно писать что по адресу ничего нет вводя других в заблуждение!
То есть даже после трех повторений, вы мое сообщение так и не прочитали. В таком случае не вижу смысла повторять в четвертый.
Цитата Сообщение от locm Посмотреть сообщение
То есть вы "великий гуру STM32" не знаете о CCM RAM и мне "полному новичку" нужно вам об этом рассказывать?
Зачем? Я вроде не просил об этом рассказывать. Не то чтобы подобная информация была бесполезна, но в контексте данного обсуждения она не к месту.
Мне ее применить, или хотя бы протестировать, негде. ТСу рано. Так что вещали вы ради собственного удовольствия и самоутверждения. Лучше бы по делу что сказали.
Цитата Сообщение от locm Посмотреть сообщение
Я об этом давно написал. Но вам лишь бы поспорить!
"давно" это с момента когда услышали что в стеке как называется? Хотя нет, вы и тогда пользовались своей терминологией.
Цитата Сообщение от locm Посмотреть сообщение
Указатель хранит адрес на который указывает.
В первую очередь указатель это переменная. Если я в переменную типа int запишу 0x2000`1000, она не станет указателем. Мало ли что я мог иметь в виду под этим числом, может это количество песчинок или масса.
Кстати, даже остальные ячейки таблицы векторов прерываний можно считать указателями: они действительно используются для указания области памяти. Но нулевая - нет, ее значение только копируется в SP и все. Ее даже переменной назвать сложно. Значение инициализации и все.
Цитата Сообщение от getstm32 Посмотреть сообщение
Удобная программа. В режиме реального времени можно менять состояние пинов в регистрах.
Что-то незаметно чтобы вам это помогало. Лучше бы начали с основ, тогда и костыли бы не пришлось использовать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.05.2022, 18:04

Реальные скорости Wi-Fi
Реальные скорости Wi-Fi Хочется уточнить у владельцев роутров какие у них скоростя. То есть скорость внутри домашней сети (скорость...

Реальные надписи в маршрутках...
- Хлопнешь дверью - умрёшь от монтировки! - 10 минут страха и вы дома.Cтоимость атракциона 7 рублей. - Просьба семечки, орешки...

Как заработать реальные деньги?
Я хочу купить велосипед но мне не хватает 14356.48 рублей. Бабушку я напрягать не хочу. Я хочу сам заработать! Ребята как с помощю SEO...

Есть ли у уравнения реальные корни
даны a, b, c реальные цифры. Решать есть ли у ax^2 + bx+c=0 уравнения реальные корни

Реальные знаки и их HTML сущности
В работе встроенного в сайт редактора, с помощью которого производится занесение контента, обнаружились некоторые недостатки. Занимаясь их...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Закрытая тема Создать тему
Новые блоги и статьи
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru