Нюхач — специальная программа для анализа и перехвата сетевого трафика, передачи данных через интерфейсы и многое другое.
В этом случае мы будем следить за операциями (чтение и запись) с портами ввода-вывода.
на примере линейного телефона Сименс SЗолото и я постараюсь объяснить, как все это работает.
Предисловие
Многие сразу задаются вопросом о целесообразности и полезности этой идеи, ведь эти телефоны давно устарели.Во-первых, давайте рассматривать телефон как просто устройство, имеющее микроконтроллер.
ARM926EJ-S (без документации) и мы хотим сделать свою прошивку для своих нужд, используя полученные данные.
Во-вторых, научный интерес!
Теория
Итак, что мы имеем? И у нас есть микроконтроллер PMB 8875 S-GoldLite на базе процессора Intel, то есть ARM9 .И как любой нормальный микроконтроллер, внутри него есть устройства и готовые интерфейсы, такие как УСАРТ , ССК , I2C , ФАПЧ , РТК , таймеры, извините за выражение, ЕВС (External Bus Unit) и другие страшные буржуазные аббревиатуры.
Порты ввода-вывода
Как отмечалось ранее, имеется несколько устройств и интерфейсов.А в 4-гигабайтном (32-битном) адресном пространстве им отведены свои диапазоны.
Да, адресное пространство нашего микроконтроллера физически разделено на: 0x00000000-0x00003FFF - СРАМ №1 0x00080000-0x00097FFF - СРАМ №2 0x00400000-0x0040FFFF - Загрузочный ПЗУ 0xF0000000-0xFFFFFFFF — Порты ввода/вывода, встроенные регистры устройств А внешнюю ОЗУ и ПЗУ можно вставить по свободному физическому адресу с помощью пресловутой ЕВС .
Так, например, для устройства УСАРТ0 диапазон выделен Ф1000000-Ф1000084 .
В рабочем состоянии это выглядит примерно так:
Каждый СЛОВО (В РУКА равен 4 байтам) в этом диапазоне находится регистр для управления этим интерфейсом.
То есть, записывая определенные значения в определенные регистры, мы передаем на устройство команды или данные, и читая из них получаем данные и проверяем состояния.
Я забыл это сказать УСАРТ0 (Универсальный синхронный асинхронный приемник и передатчик) мы используем в качестве передатчика и приемника по кабелю, грубо говоря, COM-порт , но с низким напряжением.
И давайте подробнее рассмотрим процесс передачи 1 байта в самом простом случае:
Теги: #siemens #elf #arm #io #C++ #обратное проектирование#define USART_REG(a)
-
Осадки На Золоте
19 Oct, 24 -
Первая Хабра-Встреча: Отчет
19 Oct, 24 -
Отвечаем: Как Организовать Мероприятие
19 Oct, 24 -
Основы Скалы. 5 Часов Поедания Мозгов
19 Oct, 24