Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > OpenWRT/LEDE

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.12.2013, 01:23   #11
Dioptimizer
Senior Member
 
Регистрация: 17.02.2013
Адрес: Харьков
Сообщений: 235
Вес репутации: 690
Dioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond reputeDioptimizer has a reputation beyond repute
По умолчанию Re: Управление светодиодами в роутерах TL-MR3020 и TL-WR703N

Цитата:
Сообщение от ald Посмотреть сообщение
А где есть описание структуры памяти прошивки?
Если Вы про структуру флеш-памяти устройства, то тут есть информация (структура практически идентична на всех TP-Link'ах у которых в основе процессоры Atheros).
А здесь информация как это всё дело сохранить вместе или по отдельности.

Вы должны понимать всю серьезность изменения загрузчика.
U-boot это загрузчик устройства - микропрограмма по запуску и инициализации процессора, он вообще не должен изменяться.
firmware(прошивка) - это программа выполняемая загрузчиком.
Я должен Вас предупредить, что uboot в любом случае (даже если вы компилируете его стандартным методом) опасно заменять - если что-то случится, у вас будет "кирпич" - который восстановить без спец. оборудования невозможно.

Я могу Вам предложить поискать другой GPIO сконфигурированный по умолчанию в IN направлении. Например, "поковыряв" загрузчик TL-MR3020, я обнаружил, что в загрузчике начальная конфигурация GPIO_OE имеет такой вид:
Код:
...
    2cr	00002e60:    3c03b804	lui	$v1,0xb804		
    30r	00002e64:    24020cff	move	$v0,3327=0x0cff		
    34r	00002e68:    ac620000	sw	$v0,0($v1)		# b8040000
...
(оно же, в исходниках 126 сторка)

Код:
0x0cff = 0b00000000000000000000110011111111 (1 = включено; 0 = выключено)
                             ....9876543210 <= BIT и номер GPIO, и так до 29(кол-во GPIO на процессоре)
Таким образом можно сделать вывод, что по началу, до конфигурации каких либо светодиодов и прочего - GPIO8(usb power), GPIO9(uart_in) и начиная с GPIO12 заканчивая GPIO28 - функция Output Enable отключена.
Позже правда, тот же u-boot настраивает GPIO13...GPIO17 на Ethernet индикацию, но то уже раздел функций на линии GPIO.

(Кстати, я говорил, что TL-MR3020 похож на TL-MR11U, и у меня есть предположение, что Вам не доступны некоторые потенциально свободные GPIO.
Мне помнится, что человек на форуме OpenWRT просил освободить два GPIO 14-15(хотя я не уверен, что там будет ноль, пока грузится устройство), которые не было возможности контролировать на устройстве, вот ссылка изменений, которых я смог добиться от разработчиков. Можете пропатчить прошивку (профиль mach-tl-mr3020.c) по этому примеру.
Как собрать собственную прошивку, смотрите соответствующий раздел.)


Тут делаем еще один вывод, можно обойтись без правки u-boot, если воспользуемся GPIO8(usb power) или GPIO9(uart_in) - но тогда нужно править уже firmware(прошивку) - это более безопасно, чем править загрузчик.
В этом случае нужно будет пожертвовать контролем питания usb-порта (это значит, что его нужно будет просто "отучить" от GPIO8, а на ногу МК, которая управляет питанием usb-порта подать такое же питание как у out=>high) или отключением UART порта в прошивке.

Но если всё же надумаете править значение в загрузчике uboot, то как вы понимаете это рассчитывается так:
Код:
0x0c7f = 0b00000000000000000000110001111111 (1 = включено; 0 = выключено)
                             ....9876543210 <= BIT и номер GPIO, и так до 29(кол-во GPIO на процессоре)
P.S.
Т.ч. то, что я ранее показывал как панацею (значение 0xc03e001(WR703) и 0xc020001(MR3020)) не имеет смысла, т.к. 0xc03e001(WR703) включает OE на GPIO 13-17, 26, 27.
А 0xc020001(MR3020) включает OE на GPIO 17, 26, 27.

Документация, откуда я взял всю эту белиберду.
Проверил на своем стареньком роутере.

P.S. P.S.
После такого откровения, я думаю, что я Вас точно отпугнул
Миниатюры
Нажмите на изображение для увеличения
Название: 123.jpg
Просмотров: 410
Размер:	53.1 Кб
ID:	1413  

Последний раз редактировалось Dioptimizer; 28.12.2013 в 05:55. Причина: дополнение по поводу возможности включения gpio14-15
Dioptimizer вне форума   Ответить с цитированием
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 15:24. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика