Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Адреса и их обозначение (http://forum.oszone.net/showthread.php?t=355161)

BoBaH 13 19-04-2024 18:54 3026625

Адреса и их обозначение
 
Что это за адреса 0xBC100000 и т.п.?
Это не флешечные. Эти слишком большие для неё. Они там 6-ти значные.
Как по ним определить адрес на флешке?
Скрытый текст

Флешки имеются ввиду от 4 до 32 мегабайт.

yurfed 20-04-2024 02:44 3026630

Цитата:

Цитата BoBaH 13
Как по ним определить адрес на флешке? »

а что тут думать?
Flash Bank #1
Flash Bank #2

Либо по питанию USB не хватает, либо просто банально банки "дырявые".

BoBaH 13 20-04-2024 12:33 3026636

Вот этот скрипт целиком. Смотреть с FLASH and environment organization. Это примерно 1/3 смещения) от начала.
Цель: дать сценарий разметки флешки на 16 Мб с Non Dual Image c MT7628_ASIC_BOARD.

lxa85 24-04-2024 21:47 3026716

Насколько я понял -- это код из проекта U-boot.
Если верить публикации
https://habr.com/ru/articles/585432/
то там такие адреса -- норма.
В целом не хватает подробностей проекта.
Ну и/или -- зачем дались именно эти адреса?
Да. Больше подробностей. С вводными, описанием действий и тд.

BoBaH 13 25-04-2024 21:13 3026731

Цитата:

Цитата lxa85
Насколько я понял -- это код из проекта U-boot. »

Всё верно.
Задача: Апнуть роутер тп-линк 840 6.2 по флешки с 4 до 16 и оперативку с 32 до 64 Мб.
Цель : Разметить 16 Мб флешку. Для этого надо сделать необходимые настройки в убутособирателе. Файл выше от него.
Надо сделать бин файл который потом прикручивается в прошивку флешки вместе с фактори. Он рулит разметкой флешки согласно DTS.
Вот пример разметки на аналогичном устройстве с 16 Мб в стоке. См. с 120 строки.

А дефолтный убутособиратель целиком здесь.
Данный роутер в стоке с флешкой на 4 Мб которая делится на 3 раздела:
Uboot - загрузчик 64 Кб
Firmwarw - ОС 4 Мб - 64 Кб - 64 Кб
Factory - 64 Кб вайфайный уникальный для каждого роутера раздел. В других роутерах с чипами atheros называется ART.
В моём чип медиатековский МТ7628.

Этот убутособиратель из сырцов для 840-го с оф сайта.
Собран на основе для устройств с процами rt2880.
ХЗ как именно собираются дефолтные бины с одним разделом. В том файле сценарии уже для Dual Image.

С адресами выше разобрался. Там например даётся адрес старта (имхо отбалдёвый) разметки флешки на 2 Мб в 16-й системе:
BC000000 - при переводе его в 10-ю получится 3154116608
Первый банк памяти FLASH_1 начинается тоже с этого места.
BC100000 - это адрес уже FLASH_2 и при переводе в 10-ю получится 3155165184
3155165184 - 3154116608 = 1048576
1048576 / 1024 / 1024 = 1
Т.е. на 2 Мб флешке второй банк памяти находится на смещении 1 Мб от старта.
Убутособиратель для большого числа платформ и там применяются разные значения старта.

Все файлы о которых идёт речь имеются выше по ссылке здесь. Я например всё открываю с помощью нотепад++ включив подсветку синтаксиса. Только которые .о кракозябристые.
В стококовом убутособирателе выбор размера флеш включается только при активации Dual Image. Но без него тоже можно добавив в настройки для 7628-го в файле config.in (это в самом конце файла):
Скрытый текст
PHP код:

define_bool ON_BOARD_SPI_FLASH_COMPONENT y
choice 
'Flash Size / PA3MEP FLASH' "4M ON_BOARD_4M_FLASH_COMPONENT \
                     8M ON_BOARD_8M_FLASH_COMPONENT \
                     16M ON_BOARD_16M_FLASH_COMPONENT
                    " 
4M

if [ "$DUAL_IMAGE_SUPPORT" "y" ]; then
choice 
'Flash Size for DUAL IMAGE' "4M ON_BOARD_4M_FLASH_COMPONENT \
                     8M ON_BOARD_8M_FLASH_COMPONENT \
                     16M ON_BOARD_16M_FLASH_COMPONENT
                    " 
4M
fi 


Упомянутый ранее файл это include / configs / rt2880.h. Взялся за него по аналогии с этим.
Пока придумал по принципу: Если не нравятся правила, то задай свои. Вставил в rt2880.h на третьей строчке после коммента:
Скрытый текст
PHP код:

/*
 * FLASH and environment organization
 */
#define CFG_MAX_FLASH_BANKS    1    /* max number of memory banks */
#define CFG_MAX_FLASH_SECT    (263)    /* max number of sectors on one chip */
вот это:
#if defined (MT7628_FPGA_BOARD) || defined (MT7628_ASIC_BOARD)
#define PHYS_FLASH_START 0xBC000000
#elif defined (ON_BOARD_8M_FLASH_COMPONENT)
#define PHYS_FLASH_1 0xBC000000
#elif defined (ON_BOARD_16M_FLASH_COMPONENT)
#define PHYS_FLASH_1 0xBC000000
#endif 


Проверял. Бин собирается. Про ошибки не пишет.

Но пообщался с челом который в этой теме. У него другой принцип деления флешки. Вернее место откуда даётся сценарий.
Вот Гитхаб его. Сценарий деления задан в profiles/TP-LINK/TP-LINK_WR840N_V6_SPI-16M-64M.config аналог которого в стоковом убутособирателе в корневой папке WR840NV6_20_config.

Вот теперь вскочил вопрос. Откуда вернее задавать сценарий для разметки флешки?
С конфига для определённой модели или с rt2880.h?


Время: 11:00.

Время: 11:00.
© OSzone.net 2001-