Цитата(islavv @ Dec 13 2008, 09:45)

Такое впечатление, что немой пытается объяснить слепому что такое красный.

Вы смешиваете все и вся в одну кучу в вопросах и получается неразбериха.
Начнем сначала.
1. RedBoot не ОС. Это загрузчик в первую очередь. И во вторую, некая "прокладка" позволяющая использовать gdb для отладки приложения ПРИЛИНКОВАННОГО К REDBOOT. На хосте, опять таки, используется gdb и target remote. По последовательному порту. RedBoot в данном случае заменяет openocd. Когда я с ним работал (вернее пытался) он не умел отлаживаться по TCP/IP,
2. Все таки не понятно что у Вас на тергете. Есть там linux или нет. И если нет - то что там.
3. Таргет (или target) это Ваша плата, которую Вы хотите включать, программировать и т.д. и т.п. В общем объект разработки.
4. Хост (или host) это компьютер, за которым Вы сидите, на котором пишете программу для Таргета, на котором эту программу компилируете используя кросс-компилятор (например), и на котором Вы будете запускать отладчик (тот же gdb).
5. Под понятием embedded в контексте этой ветки понимается такой таргет, в который программа прошивается в ПЗУ, либо загружается в ОЗУ таргета. Никакой ОС там нет. Может быть использована так называемая RTOS. Примером может быть eCos, uC/OS, FreeRTOS, scmRTOS и др. Конечно все зависит от точки зрения, но в общем случае они не есть то, что в
этой ветке называют ОС.
Будем считать для простоты, что если у Вас embedded вариант, то у Вас
только Ваша программа. Никаких Linux и пр. ОС на таргете нет.
6. Если у Вас на таргете запускается Linux, WinCE, WinXP, FreeBSD, QNX или им подобные
по функциональности "настоящие" ОС, то у Вас
НЕ embedded вариант, а вариант с ОС.
7. Какой все таки у Вас процессор на таргете?. Что из себя представляет плата?
Примр 1: Процессор типа ARM9, типа AT92SAM9260, PXA2xx, IXP4xx или другой им подобный. Плата одна из Development Board производителя процессора или собственная на базе схемы такой платы и т.п.
Пример 2: Процессор VIA C7 на плате от Kontron. Т.е. полностью x86 совместимый.
Это нужно для понимания Ваших же вопросов. От понимания зависят ответы

.
8. Какой набор средств разработки Вы используете? Для примера 1 в п7 это может быть кросс-компилятор arm-linux-gcc. Для примера 2 - кросс-компилятор не нужен. Все что работает на хосте будут работать и на таргете без изменений.
9. Если у Вас embedded вариант, то тут можно (и наверное нужно) использовать JTAG и OpenOCD. Для отладки все равно будет использоваться gdb. Он использует openocd для связи с таргет. Этому посвящена отдельная ветка этого форума
http://electronix.ru/forum/index.php?showtopic=4593610. Если у Вас вариант с ОС. Т.е. на таргете у Вас Linux, то OpenOCD и JTAG Вам не помогут, а помешают в отладке. Поскольку они ничего не знают не знают о наличии ОС. В этом варианте можно разместить на таргете gdb-server и запустить Вашу программу через него. А на хосте запустить соответствующий (т.е. например arm-linux-gdb если у вас на таргете ARM) и указать, что отлаживать нужно удаленно, т.е. remote. В gdb есть такая команда terget remote (не путать с п3).
В таком случае, как "залить" программу, вопрос не к openocd (его нет) и не к gdb. Любым доступным способом разместите на файловой системе таргета вашу программу (скажем ее имя tst), запустите ее примерно так
gdb-server host:1234 tst
и присоединитесь из запущенного на хосте gdb к gdb-server на таргете. И отлаживайте.
Уфф.
Сомневаюся, что ответил на Ваш вопрос, но, как говорится, чтобы получить нужный ответ нужно правильно задааать вопрос.
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.