LINUX.ORG.RU

параметры загрузки в redBoot(eCos)


0

0

Здраствуйте. Не подскажите.
Хочется, чтоб при старте RedBoot(eCos) взял параметр и
затем использовал его во втемя инициализации.

Может кто знает, у RedBoot(eCos) есть такая функциональность ?  Может кто возился с eCos ?
anonymous
Ответ на: комментарий от alexru

При старте ядро читает строку параметров из 
ячейки памяти по определенному адресу. Например, это
 реализовано в ядре Linux, потом идет разбор. 
Есть ли такая функциональность в RedBoot ?
Если есть, то можите подсказать где посмотреть
 список параметров ? Пока не нашел. :(

anonymous
()
Ответ на: комментарий от alexru

Совершенно верно. А вообще в RedBoot-е есть справка по всем командам. И команд там не так уж и много - за день можно все освоить.

alxndr
()
Ответ на: комментарий от alxndr

> В редбуте можно для запуска ядра вызывать скрипт.
>  А вообще в RedBoot-е есть справка по всем командам. 

Извините, наверное плохо написал или не совсем понимаю.
а может быть моя проблема переходит в другую и её можно решать так как Вы пишите. 

Справка по командам RedBoot - в общем пока вроде не
совсем то, что нужно.
Как я понимаю 

"load -- Download programs or data to the RedBoot
        platform"

это команды которые RedBoot понимает когда он уже загружен. 
Мне нужно чтобы RedBoot сам себя сконфигурировал автоматически при загрузке. 
Вопрос был не о командах а о параметрах, которые
 программа RedBoot понимает при загрузке. 
Есть ли такая возможность вообще ?

Ядро с помощью RedBoot мне пока грузить не нужно.
Нужен только RedBoot. RedBoot тестирует аппаратуру,
flash, net. Вот и хочется чтоб redBoot прочитал пару параметров которые я ему хочу сообщить.
Напримет в 'configtool' можно задать параметр - жестко зашить, собрав программу с этим параметром. Вот как бы
сделать так чтоб тот же параметр я мог передать RedBoot и он его принял обработал и сконфигурил себя.
Я не знаю как работает eCos(RedBoot), поэтому и
задал вопрос:
"Хочется, чтоб при старте RedBoot(eCos) взял параметр и затем использовал его во втемя инициализации.
Может кто знает, у RedBoot(eCos) есть такая
функциональность ?"

anonymous
()
Ответ на: комментарий от anonymous

Я такой ШТАТНОЙ возможности не знаю, хотя возможно она и есть. Но т.к. все исходники есть, то не думаю, что добавление такой функ-ти слишком сложная задача. Правда для этого нужно как минимум уже иметь проинициализированную память и какое-то устройство ввода/вывода (напр. СОМ-порт).

alxndr
()
Ответ на: комментарий от alxndr

Спасибо что отвечаете.
Не совсем понял.

> проинициализированную память 

RedBoot при старте разве не инициализирует память ?
Или о чем то другом идет речь ?

> устройство ввода/вывода(напр. СОМ-порт)
А зачем RedBoot-ту такое устройство ?

Еще вопрос связанный с Compact-Flash(IDE)
RedBoot имеет штатную поддержку Compact-Flash ?
нашел 'packages/redboot/v2_0/src/fs/ide.c'
ide.c - случайно не модуль для IDE-диска ?

anonymous
()
Ответ на: комментарий от anonymous

Я имел в виду, что код запроса параметров можно вставить только после того, как уже проинициализирована память. Естественно RedBoot это делает если железо им поддерживается, но иногда процедуру инициализации приходится подстраивать под конкретную память. Ну это и так понятно... Вполне возможно, что в Вашем случае уже все работает нормально и нужно только определить часть кода, после которой память уже находится в нормальном состоянии.

Что касается COM-порта, то нужно же куда-то выводить строку запроса и принимать ответ? Простейший случай - СОМ-порт. Если он проинициализирован, то можно его сразу задействовать. Типа терминалки - нульмодемный кабель к устройству одним концом, к ПК другим. Запустил какую-нибудь прогу, напр. minicom, и вперед, пиши-читай, что нужно.

Но можно и на видео+клавиатура это возложить. Все зависит от конкретного железа. Напр. на многих платах нет ни видео, ни клавиатуры. Практически единственный нормальный вариант в этом случае - СОМ-порт.

alxndr
()
Ответ на: комментарий от anonymous

> Еще вопрос связанный с Compact-Flash(IDE)...

Да, RedBoot поддерживает IDE. Если на устройстве есть IDE и он "подхватывается" RedBoot-ом, то все классно. Но может так статься, что IDE на устройстве есть, но поддержки в RedBoot-е именно этого контролера нет. Тогда прийдется писать код самому. Так что все зависит от железа. Вообще-то производители devkit-ов часто сразу дают патчи для RedBoot-а под свое железо. И, конечно-же, очень много чего в RedBoot-е поддерживается "из-коробки".

Если в Вашем случае CF "висит" на IDE (а не на каком-нибудь GP-bus, см. например http://developer.intel.com/design/network/applnots/302456.htm) и этот IDE поддерживается RedBoot-ом, то проблем не будет.

alxndr
()
Ответ на: комментарий от alxndr

Спасибо.
Мысль интересная, но хотелось бы параметры получать
 не в интерактивном режиме.
Хотел прописать параметры в виде строки символов
по определенному адресу, чтоб при старте 
RedBoot читал с этого адреса данные 
 - думал может это уже есть в RedBoot ?

По поводу контроллера спасибо, вроде контроллер IDE.
Возможно глупый вопрос.
Я не совсем понял о какой инициализации памяти говорилось ?
Не моглибы подсказать почему нужно параметры читать после инициализации памяти ?

anonymous
()
Ответ на: комментарий от anonymous

RedBoot обычно в флэше создает конфигурационную область (партицию):

RedBoot> fis list
Name FLASH addr Mem addr Length Entry point
...........
RedBoot config 0x51FFF000 0x51FFF000 0x00001000 0x00000000

Можно в ней хранить все нужные параметры. Но код использования этих параметров придется писать самому для каждого отдельного случая.

А можно создать свою партицию со своей уникальной структурой. Просто посмотреть, как RedBoot это делает для "RedBoot config". Я бы шел по пути создания своей партиции. Кстати, такая партиция может быть видна из Linux, как mtd-устройство (правда это зависит от драйвера mtd для конкретного железа) и с ним можно очень легко работать.


> Не моглибы подсказать почему нужно параметры читать после инициализации памяти ?

Это имелось в виду для случая интерактивного ввода параметров. Если интерактивность не нужна, то параметры можно из флэша достать сразу. Главное знать, где они лежат.

alxndr
()
Ответ на: комментарий от alxndr

Спасибо.
> то параметры можно из флэша достать сразу.
> Главное знать, где они лежат.

Пытаюсь понять.
Не подскажите в коде eCos, RedBoot есть защита по
 доступу к переменным функциям, как в ядре Linuх ?

Можите подсказать ради любопытства
для чего столько каталогов:

packages $ ls -lF ./io/eth/v2_0/src/
 lwip/
 net/
 stand_alone/

Код там вроде один и то-же ?

Не знаете случайно откуда вызываюстя функции:

struct eth_drv_funs eth_drv_funs = {eth_drv_init,
                   eth_drv_recv, eth_drv_tx_done};

пока не нашел где происходят вызовы.
Спасибо за интерес к моим вопросам.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.