2016-04-11 3 views
0

Если DWC OTG Controller имеет базовый адрес 0x3f980000 на Raspberry Pi2, работающем под Raspbian, тогда оказывается, что просто загрузка с указанного адреса с помощью смещения 0x1d через виртуальный адрес 0x76ff8000, созданный mmap, вызывает его блокировка/замораживание, и для восстановления требуется цикл питания.DWC OTG Controller - 0x1d Offset

... 
17   .baseaddr:  .word 0x3f980000 // base address 
... 
23   // set up file and virtual map to it............ */ 
24   bl open_file 
25   str r0, [sp, #0] // store file handler on stack 
26   bl map_file 
27   str r0, [sp, #8] // store virt GPIO mem address on stack 
28 
32   ldr r3, [sp, #8] // virt base address 
34   ldr r2, [r3, #0x1d] // get contents 

После нагрузки на линии 34 имеет место, устройство по-прежнему обнаруживается в локальной сети, но и wlan0 eth0 нечувствительны и сканирование портов возвращает нуль.

Кто-нибудь имеет представление о том, что монстр присел за дверью 0x1d, которая пугает биты из контроллера DWC OTG?

ответ

1

Учитывая, что 0x1d создает и нечетный адрес, я бы предположил, что система принимает исключение адреса в этой точке (загрузка 32 из нечетного адреса). Вы можете попробовать смещать ox1c или 0x20 для получения лучших результатов.

Смежные вопросы