planetzeus 0 5 сентября, 2021 Опубликовано 5 сентября, 2021 · Жалоба Подскажите пожалуйста есть ли возможность прочесть бутлоадер у LPC2478. Насколько я понял, при старте бутлоадер размером в 8кБ отображается на адресах 0x7FFEE000... Но при попытке чтения из своего кода получаю только FF. Или защита от чтения этой области, или я что-то не так делаю. Может есть вариант где-то скачать уже слитый бутлоадер чтобы посмотреть внутренности? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 5 сентября, 2021 Опубликовано 5 сентября, 2021 · Жалоба В каком-нибудь IARе под отладчиком на остановленном контроллере, без затей, в окошке "Memory" посмотреть всё что душе угодно и сохранить понравившееся ;-) Больше скажу: задав соответственный PC, тут же дизассемблировать требуемое. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 6 сентября, 2021 Опубликовано 6 сентября, 2021 · Жалоба 7 hours ago, planetzeus said: Подскажите пожалуйста есть ли возможность прочесть бутлоадер у LPC2478. Интереса ради: а зачем? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
planetzeus 0 6 сентября, 2021 Опубликовано 6 сентября, 2021 · Жалоба 13 hours ago, haker_fox said: Интереса ради: а зачем? Некий код читает значение из этих адресов, хочется понять что это за значение и возможно использовать его в своих целях. Может что-то недокументированное. Просто непонятно почему мой код не может прочитать, а чужой код может. Возможно дело в начальной инициализации. Для начала бы понять что там находится. Ну и кроме того, весьма полезно для изучения посмотреть как устроен бутлоадер. Я думаю можно найти недокументированные штуки Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 6 сентября, 2021 Опубликовано 6 сентября, 2021 · Жалоба 22 hours ago, planetzeus said: Насколько я понял, при старте бутлоадер размером в 8кБ отображается на адресах 0x7FFEE000...Но при попытке чтения из своего кода получаю только FF. Мне кажется, у вас с адресом ошибка. От этого 0x7FFEE000 до 0x8000'0000 - целых 68 килобайт. Попробуйте читать чуть дальше. (я, правда, могу путать. С 2368 я работал лет 8 назад...). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
planetzeus 0 6 сентября, 2021 Опубликовано 6 сентября, 2021 · Жалоба 54 minutes ago, esaulenka said: Мне кажется, у вас с адресом ошибка. От этого 0x7FFEE000 до 0x8000'0000 - целых 68 килобайт. Не, интересует только область между 0x7FFEE000 до 0x7FFF0000 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 6 сентября, 2021 Опубликовано 6 сентября, 2021 · Жалоба 2 часа назад, planetzeus сказал: Некий код читает значение из этих адресов, хочется понять что это за значение и возможно использовать его в своих целях. Может что-то недокументированное. Просто непонятно почему мой код не может прочитать, а чужой код может. Возможно дело в начальной инициализации. Для начала бы понять что там находится. Ну и кроме того, весьма полезно для изучения посмотреть как устроен бутлоадер. Я думаю можно найти недокументированные штуки Лучше бы тратили время на поиск документированных "штук". В мануале. Тогда меньше было бы таких странных желаний. А если некий код чего-то там читает в ROM, то как раз в мануале должно быть описано, что это и для чего. Пробовали его открывать? Ведь тогда не нужно будет тратить время на бесполезную ерунду (типа дизассемблирования чего-то там). 33 минуты назад, planetzeus сказал: Не, интересует только область между 0x7FFEE000 до 0x7FFF0000 Если в мануале на МК содержимое этой области не описано, то ваша затея - бесперспективна. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
planetzeus 0 6 сентября, 2021 Опубликовано 6 сентября, 2021 · Жалоба 4 minutes ago, jcxz said: Лучше бы тратили время на поиск документированных "штук". В мануале. Тогда меньше было бы таких странных желаний. А если некий код чего-то там читает в ROM, то как раз в мануале должно быть описано, что это и для чего. Пробовали его открывать? Ведь тогда не нужно будет тратить время на бесполезную ерунду (типа дизассемблирования чего-то там). Если в мануале на МК содержимое этой области не описано, то ваша затея - бесперспективна. Спасибо за конструктивный ответ. Если я пришел к такому вопросу, значит этого нет в мануале, не пробовали догадаться? В слитой прошивке я вижу обращение к этому адресу. И дальнейшее использование этого значение. На самом деле я пробовал подбирать, перебрать 4 байта не такая уж проблема. Но проблема в том, что нет четкого условия определения правильно ли это значение. Прочитать это значение своим кодом не получилось, точнее получил (-1), что явно неверно судя по коду. Поэтому пытаюсь понять что это за значение. В мануале на карте памяти есть эта область, написано буквально следующее "The Flash portion of the boot block is 8 kB in size and resides in the top portion (starting from 0x0007 E000) of the on-chip Flash memory." Поэтому и спрашиваю у более знающих что это и как получить эту часть памяти. А так же почему из своей прошивки эта область недоступна для чтения. Мне нужно решить задачу и возможно использовать такой же подход, так как это рабочее решение. В чем бесполезность ерунды? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 6 сентября, 2021 Опубликовано 6 сентября, 2021 · Жалоба 28 минут назад, planetzeus сказал: В чем бесполезность ерунды? В том, что раз содержимое ROM недокументировано, то производитель не гарантирует неизменность этого содержимого. И в следующей партии чипов оно может измениться. На кой тогда оно вам сдалось? Неизвестно что и без каких-либо гарантий.... 28 минут назад, planetzeus сказал: В слитой прошивке я вижу обращение к этому адресу. И дальнейшее использование этого значение. Либо написатель этой "слитой" смог найти в мануале то, чего вы не смогли. Либо это слитое смело отправляйте в мусорку (почему - см.выше). 05.09.2021 в 19:18, planetzeus сказал: Насколько я понял, при старте бутлоадер размером в 8кБ отображается на адресах 0x7FFEE000... PS: Открыл мануал, через минуту нашёл, что BOOT-ROM начинается не с 0x7FFEE000, а с 0x7FFFE000. И не "отображается туда при старте", а наоборот - находится там всегда, а при старте (после reset-а) дополнительно отображается на адрес 0. После передачи управления пользовательской прошивке это отображение видимо отключается, но доступ к 0x7FFFE000 скорей всего должен остаться. Хотя и смысла в нём нет, если содержимое не описано нигде в документации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
planetzeus 0 6 сентября, 2021 Опубликовано 6 сентября, 2021 · Жалоба 26 minutes ago, jcxz said: В том, что раз содержимое ROM недокументировано, то производитель не гарантирует неизменность этого содержимого. И в следующей партии чипов оно может измениться. PS: Открыл мануал, через минуту нашёл, что bootloader начинается не с 0x7FFEE000, а с 0x7FFFE000. И не "отображается туда при старте", а наоборот - находится там всегда, а при старте (после reset-а) дополнительно отображается на адрес 0. После передачи управления пользовательской прошивке это отображение видимо отключается, но доступ к 0x7FFFE000 скорей всего должен остаться. Хотя и смысла в нём нет, если содержимое не описано нигде в документации. Еще раз повторюсь, мне нужно решить задачу. Какие партии и кто что гарантирует никак не касается задачи. Мне нужен способ прочесть эту часть памяти. Остальные вопросы здесь обсуждать нет смысла. В любом случае, спасибо за ваш ответ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 6 сентября, 2021 Опубликовано 6 сентября, 2021 · Жалоба Если уж сильно нужно именно содержимое BOOT FLASH, то можно его поискать там, где написано "BOOT FLASH" (выделено) - на вершине FLASH-а: Также следует посмотреть на регистр MEMMAP, и занести в него необходимые значения. 05.09.2021 в 19:18, planetzeus сказал: Но при попытке чтения из своего кода получаю только FF. Видимо там ничего нет (FF в LPC - стёртое состояние флеша). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
planetzeus 0 6 сентября, 2021 Опубликовано 6 сентября, 2021 · Жалоба 10 minutes ago, jcxz said: Также следует посмотреть на регистр MEMMAP, и занести в него необходимые значения. Спасибо, я посмотрю в их прошивке инициализацию этого регистра. Возможно из-за него недоступна эта часть памяти в моем случае Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 7 сентября, 2021 Опубликовано 7 сентября, 2021 · Жалоба 10 hours ago, planetzeus said: Ну и кроме того, весьма полезно для изучения посмотреть как устроен бутлоадер. Хм... возможно. Если нужно шить МК своим загрузчиком, то воспользуйтесь IAP. Устройство бутлоадера лучше поискать по форуму. Этих тем тут с разнообразными алгоритмами как на бутлоадерном заводе))) Право же, я Вас не отговариваю. Но заинтригован в общем-то бесполезной идеей) Почему бесполезной, уже выше сказали: содержимое может меняться от ревизии к ревизии. А попробуйте задать вопрос техподдержке NXP? Может быть их код и вовсе не секретный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 7 сентября, 2021 Опубликовано 7 сентября, 2021 · Жалоба 13 часов назад, haker_fox сказал: Право же, я Вас не отговариваю. Но заинтригован в общем-то бесполезной идеей) Почему бесполезной, уже выше сказали: содержимое может меняться от ревизии к ревизии. А попробуйте задать вопрос техподдержке NXP? Может быть их код и вовсе не секретный. Как выяснилось к последним сообщениям ТС, прочитать он хочет код некоего бутлоадера, не того, который произведён NXP и находится в ROM, а пользовательского находящегося во FLASH. См. карту адресов выше. Т.е. - это бутлоадер, который туда записал видимо какой-то производитель устройства на этом МК (а не NXP) и ТС зачем-то хочет его считать. Видимо ПО, прошитое в этот девайс, состоит из бутлодера+рабочего_ПО. Рабочее ПО автор считал (или где-то слямзил иными путями), увидел что в нём идёт обращение в область обозначенную как BOOT-FLASH, и хочет тоже прочитать это место. А в его МК это место или стёрто (содержит 0xFF) или просто не отмаплено на верхние адреса (MEMMAP). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
planetzeus 0 8 сентября, 2021 Опубликовано 8 сентября, 2021 · Жалоба Логика моего вопроса очень простая. Я вижу в коде обращение по адресу 0x7FFEExxx и пытаюсь понять что это, как это используется и как этим правильно пользоваться. Сам не могу найти решение, поэтому спрашиваю у тех, кто в теме. Зачем думать о ревизии процессора? Это штучное устройство и пользователь конечного устройства не имеет возможности перепрошить девайс или заменить проц. Процессор + ПО = единый продукт. Будет другая ревизия процессора, слегка модифицируем ПО. Если есть возможность прошить именно в этот процессор свой загрузчик в другую область памяти, то я об этом просто не знаю, ни в даташите, ни в других местах я этого не нашел. Quote Т.е. - это бутлоадер, который туда записал видимо какой-то производитель устройства на этом МК (а не NXP) и ТС зачем-то хочет его считать. Видимо ПО, прошитое в этот девайс, состоит из бутлодера+рабочего_ПО. Рабочее ПО автор считал (или где-то слямзил иными путями), увидел что в нём идёт обращение в область обозначенную как BOOT-FLASH, и хочет тоже прочитать это место. А в его МК это место или стёрто (содержит 0xFF) или просто не отмаплено на верхние адреса (MEMMAP). Подскажите, где об этом можно посмотреть и почитать. Что плохого в том, чтобы поучиться у других делать то, чего не умеешь. Если кто-то сделал такое решение и это работает, то почему бы не сделать подобное решение в своем продукте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться