Перейти к содержанию
    

Реверс прошивки MSP430F67791A

23 минуты назад, Сергей Борщ сказал:

Как именно он начинает ругаться - нам предлагается угадать? К сожалению (на самом деле нет), на этом форуме викторины не проводятся.

Вот так 🤷‍♂️

13.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вроде бы сообщение линкера очевидно: выход за пределы памяти. Поскольку линковщик занимается только распределением по памяти собранного образа, то явно что-то не помещается в эту память.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, haker_fox сказал:

Вроде бы сообщение линкера очевидно: выход за пределы памяти.

Посмотрите мой предыдущий скрин.
Вы предлагаете оставить как есть ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 minutes ago, Aries said:

Вы предлагаете оставить как есть ?

1. Ничего не предлагаю. Лишь дал объяснение ругани линкера.

2. Я не разбираюсь в микроконтроллерах MSP430.

3. Вам нужно разобраться самому, либо подождать помощи квалицифрованных коллег на форуме.

4. Вы даёте крайне мало информации. Вы пишите: "подменил строку". Но непонятно, какая была строка? Что Вы заменили...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, haker_fox сказал:

4. Вы даёте крайне мало информации. Вы пишите: "подменил строку". Но непонятно, какая была строка? Что Вы заменили...

Закомментировал DC8 ....
раскомментировал bit.w ....
В первом случае компиляция проходит без ошибок, во втором же случае появляется ошибка.

14.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А проверьте-ка для какого ядра (430 или 430X) генерит ассемблер: опция -v1? Коллега 155ЛА3 подсказывал же...

Формально, вы выставляеете флаги по "логическому И" слова по адресу DD36(PC) и слова по адресу 24F4H, ну и, соответственно, 2B912H + DD36H даёт ошибку, что вы видели.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, Obam сказал:

А проверьте-ка для какого ядра (430 или 430X) генерит ассемблер: опция -v1? Коллега 155ЛА3 подсказывал же...

Как то так

33.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Когда дописывал порт mspgcc под ядро 430Х, помнится, использовал свойство ядра при выходе за адресное пространство попадать в младшие адреса. На пальцах - если условно максимальный адрес 0x100, то 0xF0 + 0x20 попадает в 0x10. Если память не изменяет (почти 20 лет прошло), делал для этого отдельный ключ компоновщику. Посмотрите в документации, нет ли у компоновщика IARa подобного ключа. В названии может быть "address wrap" или что-то подобное.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 часов назад, Obam сказал:

по адресу DD36(PC) и слова по адресу 24F4H, ну и, соответственно, 2B912H + DD36H даёт ошибку, что вы видели.

Разобрался, чего то я сам в дебри залез.
bit.w 0DD36h(PC), &24F4h в таком виде всё прекрасно компилируется.
Всем спасибо за участие, прошу извинить за дилетантские вопросы.😉

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 минут назад, Aries сказал:

bit.w 0DD36h(PC), &24F4h в таком виде всё прекрасно компилируется.

Сейчас компилируется и даже когда вы захотите потом изменить проект и dat слегка сместится оно тоже будет компилироваться, но работать уже не будет. И любой читающий этот плод вашей работы будет ломать голову над магическим числом 0DD36, посылая вам лучи поноса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

26 минут назад, Сергей Борщ сказал:

... захотите потом изменить проект и dat слегка сместится оно тоже будет компилироваться...

Я имею дело с готовым дампом, в котором всё уже разложено (не мной) по полочкам.
Если я что то изменяю, то делаю это так, что бы в других местах ничего не "сдвинулось" со своих мест.
Другие не будут читать мою "писанину", и уж тем более не будут в ней ничего изменять.
Поэтому "лучей поноса" я могу не бояться. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда непонятен смысл этой работы. У вас уже есть программа в которой все не только разложено по полочкам, но и (не вами) заботливо переведено в двоичные коды команд.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 14.03.2023 в 12:41, Aries сказал:

Задача была получить код один в один, но из ассемблера, для возможности внесения изменений.

Исходника у меня нет, поэтому пришлось делать дизассм.

Имея который, я могу вносить изменения, и пересчитывать CRC которая должна оставаться прежней.

Изменено пользователем Aries

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 минут назад, Aries сказал:

Таким образом я могу вносить изменения

Но в результате ваших изменений переменная dat может сместиться и эта команда вместо изменения dat будет портить какую-то другую переменную.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 часов назад, Aries сказал:

Если я что то изменяю, то делаю это так, что бы в других местах ничего не "сдвинулось" со своих мест.. 

Как то так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...