LightElf 0 3 августа, 2017 Опубликовано 3 августа, 2017 · Жалоба Предполагать бессмысленно, все факты описаны в даташитах - выбор места старта выбирается неким аппаратным узлом, который НЕ является частью заводского бутзагрузчика. Действительно, бессмысленно предполагать. Надо тупо залезть дизасмом в бут и посмотреть :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 18 3 августа, 2017 Опубликовано 3 августа, 2017 · Жалоба Надо тупо залезть дизасмом в бут и посмотреть :) Если уже и даташитам веры нет (тотальный атеист), то придется назначение регистров также "проверять дизасмом" .... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AVI-crak 0 3 августа, 2017 Опубликовано 3 августа, 2017 · Жалоба Действительно, бессмысленно предполагать. Надо тупо залезть дизасмом в бут и посмотреть :) КАК? Каким образом смотреть содержимое ядра и адресного пространства мк в режиме явного срабатывания загрузчика по usart??? Вопрос на миллион баксов!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 18 4 августа, 2017 Опубликовано 4 августа, 2017 · Жалоба Каким образом смотреть содержимое ядра и адресного пространства мк в режиме явного срабатывания загрузчика по usart??? Вероятно, имелось ввиду подключиться отладчиком, и смотреть из-под соотв. проги, например, такой: https://www.segger.com/products/debug-probe...er/about-ozone/. Это вполне реализуемо, если камень не залочен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 192 4 августа, 2017 Опубликовано 4 августа, 2017 · Жалоба Каким образом смотреть содержимое ядра и адресного пространства мк в режиме явного срабатывания загрузчика по usart??? Вопрос на миллион баксов!!! Очевидно: подключиться стандартно эмулятором и с помощью него запустить код UART-загрузчика из ROM? Или что имелось в виду? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AVI-crak 0 4 августа, 2017 Опубликовано 4 августа, 2017 · Жалоба Или что имелось в виду? Я говорю о том, что в момент аппаратного срабатывания триггера выбора загрузочного интерфейса - всё остальное отключается!!!!. Потому как сам механизм записи в память флеша - не имеет арбитра. Да и всего остального фарша - тоже. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
LightElf 0 4 августа, 2017 Опубликовано 4 августа, 2017 · Жалоба Каким образом смотреть содержимое ядра и адресного пространства мк в режиме явного срабатывания загрузчика по usart??? Вопрос на миллион баксов!!! Не понял вопроса. Код бутлодера доступен для чтения всегда (если камень не залочен). Если уже и даташитам веры нет (тотальный атеист), то придется назначение регистров также "проверять дизасмом" .... В даташите нигде не сказано, что выбор режима загрузки осуществляется строго аппаратно. На мой взгляд - это нелогично. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 18 4 августа, 2017 Опубликовано 4 августа, 2017 · Жалоба В даташите нигде не сказано, что выбор режима загрузки осуществляется строго аппаратно. Явно слова hardware там не указано, но вы внимательнее почитайте про принцип выбора вектора сброса. Более того, в даташитах явно указано, после выхода из standby режима повторно производится опрос пинов boot (это указано в даташитах), а уж это явно сделано аппаратно. Ну, и как минимум то, что управление передается заводскому загрузчику по точно такому же принципу, как и юзер-коду, наводит на мысль, что выбор вектора сброса производится где-то в недрах камня, про детальную работу которого нигде нет информации. Если вам удастся найти эту информацию, поделитесь с нами :) На мой взгляд - это нелогично.Это еще почему? По-мне - как раз существующее исполнение вполне логично. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 192 4 августа, 2017 Опубликовано 4 августа, 2017 · Жалоба Я говорю о том, что в момент аппаратного срабатывания триггера выбора загрузочного интерфейса - всё остальное отключается!!!!. Так всё-таки: что мешает не срабатывать этот самый триггер, а подключиться как обычно JTAG-ом, найти точку входа в процедуру загрузки по UART (в ROM очевидно) и запустить её ручками? Может быть конечно, что при подключении JTAG область ROM становится невидимой, но обычно она видна (в тех МК что я видел). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 18 4 августа, 2017 Опубликовано 4 августа, 2017 · Жалоба Может быть конечно, что при подключении JTAG область ROM становится невидимой, но обычно она видна (в тех МК что я видел). Если камень не залочен, то ВСЕ прекрасно видно, весь камень )) зы Ради спортивного интереса прям щас принудительно кинул BOOT0 на VDD, подключился через Ozone. Загрузчик тут начинается с 0x1FFFC800 (discovery на базе STM32F072RB, st-link ессно перешит в j-link) Встроенный бут запускается сразу же после сброса (нажали на кнопку, которая коротит NRST на землю) и тут же останавливается (нужно выбрать режим сброса "Reset & halt"). Т. е. управление СРАЗУ ЖЕ передается в System memory, как и указано в даташите. Вот картинку сделал: Кстати, посмотрел на состояние SRAMдо и после аппаратного сброса: не потерлась. Кроме, конечно тех частей, к которым обращается сам код. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 192 4 августа, 2017 Опубликовано 4 августа, 2017 · Жалоба Встроенный бут запускается сразу же после сброса (нажали на кнопку, которая коротит NRST на землю) и тут же останавливается (нужно выбрать режим сброса "Reset & halt"). Теперь осталось только обещанный миллион с AVI-crak стрясти! Все свидетели - он обещал Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AVI-crak 0 4 августа, 2017 Опубликовано 4 августа, 2017 · Жалоба зы Ради спортивного интереса прям щас Дык это программный ресет, при аппаратном ресете отладчик не успевает подключиться, по крайней мере у меня. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 18 4 августа, 2017 Опубликовано 4 августа, 2017 · Жалоба Дык это программный ресет, при аппаратном ресете отладчик не успевает подключиться, по крайней мере у меня. Нет, это - не "программный" ресет, это - сброс всего ядра и вообще всего проца (через модуль отладки). Кстати, программный сброс у STM сделан так, что формирует фактически как и аппаратый сброс (тянет ножку NRST на землю на несколько мкс). Отличается программный сброс у STM от полного сброса POR (подали питание) разве лишь тем, что содержимое SRAM сохраняется. Открывайте мануалы, изучайте. Там все про это расписано. Внимательно читайте. Пусть у ST и не самая лучшая документация, но это там точно описано. Я же пробовал под отладчиком жать аппаратный сброс (я написал об этом в прошлом посте, читайте внимательнее). Поведение точно такое же, разве что отладчик подключается лишь сразу после отпускания кнопки сброс. Но если выбрать режим подключения "Reset & Halt", то проц останавливается сразу же на месте запуска встроенного загрузчика или юзер софта (зависит от BOOT0). Короче, если вы ВЕРИТЕ в существование какого-то мифического бут-загрузчика в STM, который всегда безусловано запускается, то это - лично ваше дело, вероисповедание - личное дело каждого. Но коли речь идет про конкретные физические вещи, созданные обычными людьми, то и правила тут работают соответствующие - факты. Факты я привел. А домыслы и мифы предлагаю оставить вне этой темы :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
LightElf 0 5 августа, 2017 Опубликовано 5 августа, 2017 · Жалоба Это еще почему? По-мне - как раз существующее исполнение вполне логично. Городить аппаратный блок, уникальный для каждого кристалла и для дальнейшей работы совершенно не нужный, вместо того чтобы добавить пяток команд - это логично? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 18 5 августа, 2017 Опубликовано 5 августа, 2017 · Жалоба Городить аппаратный блок, уникальный для каждого кристалла и для дальнейшей работы совершенно не нужный, вместо того чтобы добавить пяток команд - это логично? Этот вопрос сразу задавайте в ST. Ваши рекомендации им явно будут очень полезны Мне же лично решение ST в данном случае кажется вполне логичным. Городить аппаратный блок, уникальный для каждого кристалла Он одинаковый, а в новых кристаллах лишь дополняется небольшим, но очень полезным функционалом, связанным с особенностями конкретного семейства - RTFM Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться