LINUX.ORG.RU

MSP430. Вопрос к тем кто работал с PDP-11. Программирование машинными кодами. Поделитесь опытом.

 , ,


0

2

В руки попал микроконтроллер MSP430 с платой LaunchPad. Искал какие есть инструменты для программирования и прошивки. В составе MSPFlasher попался файл Firmware.txt следующего содержания:

@e000
21 83 B2 40 80 5A 20 01 F2 D3 22 00 F2 E3 21 00 
B1 40 10 27 00 00 91 83 00 00 81 93 00 00 FB 23 
F5 3F 31 40 00 04 B2 40 48 E0 00 02 B2 40 48 E0 
02 02 B0 12 40 E0 0C 43 B0 12 00 E0 B0 12 44 E0 
1C 43 30 41 03 43 FF 3F 30 41 
@fffe
22 E0 
q

С помощью другой программы mspdebug у меня получилось зашить этот Firmware.txt:

$ ./mspdebug rf2500
(mspdebug) erase
Erasing...
(mspdebug) load ../MSPFlasher_1.3.20/Firmware.txt 
Done, 76 bytes total
(mspdebug) exit

После этого светодиодики бодро заморгали на плате.

Мне захотелось тоже попробовать хоть что-нибудь написать таким образом, просто чтобы был такой опыт. Если верить википедии, у MSP430 схожая система команд с PDP-11. Я относительно молодой, PDP-11 совсем не застал.

Здесь на форуме от разных людей видел комментарии в духе «дайте мне в руки PDP-11 и я вспомню как это делается». В руки, увы, ни PDP-11, ни MSP430 не дам. Но если поделитесь опытом, буду очень рад!

Вот, что, к примеру, делает программа описанная в файле Firmware.txt? Я, например, пока не могу расшифровать. :^)

Ответ на: комментарий от Jullyfish

двоичный код не нюхал :)))))))

Вот и пытаюсь понюхать.)))))))

Это можно. Bit bangом на макетке через JTAG

vM ★★★
()
Ответ на: комментарий от Jullyfish

если чисто понюхать т.е для ощущение как hhl отображается на действия(т.е. смену состояний) проца то достаточно мнемокодо

а вот для занюхнуть - это играться с тополигией кодов(ну как коды Грея вроде где граф однобитных растояний) т.е. форсировать всякие изызски как прыжки по адресу в середину cisc команды с измышленным продуктивным поведением на выходе не очевидном при чтение мнемокодов

и прочие на грани фола игры разумки

qulinxao3 ★☆
()
Ответ на: комментарий от Jullyfish

с трудом!

запрет .text полезен для коллективной разработки не только в пространстве(команда) да и во времени( сложно понять что твой ты-предшественник измыслил форсировав так и не попавшие в документацию способы решения решённой ситуации - особенно когда есть более когнитивно доступные даже если по ресурсам при исполнении менее ограниченые)

весь вопрос в адекватности способа решения наличным ограничениям - уже давно .text-отладка маргинальная деятельность

qulinxao3 ★☆
()
  1. Возвратное-ориентированное программирование (ROP)В современном мире эта «топология» переросла в концепцию ROP (Return-Oriented Programming). Хакеры не пишут свой код (память защищена, её нельзя одновременно исполнять и писать), они ищут в уже существующем легальном коде (например, в системных библиотеках) «гаджеты» — обрывки инструкций, заканчивающиеся на RET (возврат). Прыгая в середину чужих функций, они собирают из этих кусочков совершенно новую, не предусмотренную авторами программу.
qulinxao3 ★☆
()
Ответ на: комментарий от qulinxao3

и вообще примечательно как шитый код (который не только форт - форт буквально изначально это словарь как в питоне и транслятор который читает словарное определение main-слова читая словарные определения составляющих слова слов - и в буквальной первой реализации этой сверх-гениальной-идеи Мур Чарльз делал это строках) в очередной раз «выглядывает»

т.е. индустриальное программирование «намеренно» всё более анти-математично и всё более и более лингвистично - ибо арифметика человечеству «понадобилась» на эоны позже речи

qulinxao3 ★☆
()
Ответ на: комментарий от qulinxao3

запрет .text полезен

У меня на работе коллега и соседнего отдела недавно радостно бегал, обнаружив, что через механизм вставки *.ko можно у программ менять в ходе работы .text (что неудивительно):

– Это же какие возможности открываются, если мы сможем менять секцию .text прямо во время выполнения программы!!!

Jullyfish ★★
() автор топика
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария