Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: U-Boot. Проблемы добавления и хранения переменных
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
xor.kruger
Доброго времени суток!

Имеется проблема с работой загрузчика U-Boot (проверялась на трех последних финальных релизах). Архитектура - Microblaze, хотя в данном случае это не принципиально.
Все переменные описанные в конфиге загрузчика не хотят добавляться в Hash-таблицу для последующего хранения и работы с ними.
Когда их добавляешь повторно - ошибка все та же.
Для улучшения и удобства отладки отключено все ненужное.
Лог запуска с включенной отладкой:
Код
SDRAM :
                Icache:ON
                Dcache:ON
        U-Boot Start:0x43000000
Using default environment

Destroy Hash Table: 430234e8 table = 00000000
Create Hash Table: N=72
DELETE CANDIDATE: "bootcmd"
hdelete: DELETE key "bootcmd"
DELETE ERROR ##############################
himport_r: can't insert "bootdelay=4" into hash table
INSERT: table 430234e8, filled 0/73 rv 00000000 ==> name="bootdelay" value="4"
himport_r: can't insert "baudrate=115200" into hash table
INSERT: table 430234e8, filled 0/73 rv 00000000 ==> name="baudrate" value="115200"
himport_r: can't insert "hostname=microblaze-generic" into hash table
INSERT: table 430234e8, filled 0/73 rv 00000000 ==> name="hostname" value="microblaze-generic"
INSERT: free(data = 43f10030)
INSERT: done
In:    serial
Out:   serial
Err:   serial
Initial value for argc=3
Final value for argc=3
## Error inserting "stdin" variable, errno=12
Initial value for argc=3
Final value for argc=3
## Error inserting "stdout" variable, errno=12
Initial value for argc=3
Final value for argc=3
## Error inserting "stderr" variable, errno=12
### main_loop entered: bootdelay=4

### main_loop: bootcmd="<UNDEFINED>"
U-Boot>


Часть конфига с расположением переменных:

Код
    #define RAMENV
    #define    CONFIG_SYS_NO_FLASH        1

    #define    CONFIG_ENV_IS_NOWHERE    1
    #undef CONFIG_ENV_IS_IN_FLASH
    #undef CONFIG_ENV_IS_IN_SPI_FLASH
    #define    CONFIG_ENV_SIZE        0x1000
    #define    CONFIG_ENV_ADDR        (CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SIZE)


Раньше работал со множеством плат и архитектур с U-Boot - ни разу ничего подобного не возникало.
Сталкивался ли кто нибудь с таким или есть какие либо предположения с чем такое может быть связано ?
Заранее благодарен за любой совет!
Hoodwin
Ну так а что за ошибка возникает в lib/hashtable.c#hrearch_r()?
Там правда несколько мест, но на них можно поставить дебаги.
xor.kruger
Встретил свой вопрос.

Все было намного банальней - не правильно были указаны параметры (флаги) кросс-компилятора в файле config.mk.
Переписывал под себя стандартный конфиг microblaze-generic и упустил...
Что бы такого не происходило советую для генерации файлов xparameters и config.mk использовать uboot_bsp и утилиту libgen.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.