Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: КАк проверить, работает ли ecos
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
ZAA
У меня плата от Аргуссофт (AT91SAM7x256). Является ли она аналогом AT91SAM7x-EK?
конфигурирую в Линуксе при помощи Configtool, прошиваю с помощью Sam-ba через usb так же в Линуксе. Хотелось бы узнать, правильная ли последовательность действий? Итак...
1) выбираю в Templates - AT91SAM7x-EK
2) для начала выбираю конфигурацию minimal
3) сохраняю файл .ecc
4) Build->libraries
5) Копирую исходник приложения (допустим, hello.c) и его makefile в папку с полученными библиотеками.
6) В консоли набираю make, получается исполняемый файл в той же папке (видимо, это файл elf).

вопросы:
1)Как вообще можно проверить, правильно ли собралось ядро eCos вместе с приложением. после загрузки в плату вообще непонятно...
2)Прошивать нужно во flash? (я в самбе делаю так: flash 0x00100000 /root/hello.bin)
3)Надо ли полученный файл (hello.elf) переконвертировать в .bin (я пробую так: arm-elf-objcopy -O binary hello hello.bin). прошивать нужно именно бинарник?
4)Не можем зажечь лампочки на плате((( Вот текст программки:

#include <stdio.h>
#include <cyg/infra/cyg_type.h>
#include <cyg/hal/var_io.h>
#include <cyg/hal/plf_io.h>

int main(void)
{
//hal_at91_led (1);
HAL_ARM_AT91_GPIO_CFG_DIRECTION(AT91_GPIO_PB19, 0);//AT91_PIN_OUT);
HAL_ARM_AT91_GPIO_CFG_PULLUP(AT91_GPIO_PB19, 0);//AT91_PIN_PULLUP_DISABLE);
HAL_ARM_AT91_GPIO_PUT(AT91_GPIO_PB19, 0);
printf("Hello, eCos world!\n");
return 0;
}

Что делаем не так?
5)Можно ли отлаживать программу в gdb, используя встроенный в него симулятор? (не с помощью target remote)
axle
Цитата(ZAA @ Mar 20 2008, 10:20) *
У меня плата от Аргуссофт (AT91SAM7x256). Является ли она аналогом AT91SAM7x-EK?

Думаю без чтения документации на платы никак не обойтись. biggrin.gif
Цитата(ZAA @ Mar 20 2008, 10:20) *
конфигурирую в Линуксе при помощи Configtool, прошиваю с помощью Sam-ba через usb так же в Линуксе. Хотелось бы узнать, правильная ли последовательность действий? Итак...
1) выбираю в Templates - AT91SAM7x-EK
2) для начала выбираю конфигурацию minimal

Для начала лучше выбрать redboot. И программу писать не надо, и проверить можно.
Цитата(ZAA @ Mar 20 2008, 10:20) *
5) Копирую исходник приложения (допустим, hello.c) и его makefile в папку с полученными библиотеками.
6) В консоли набираю make, получается исполняемый файл в той же папке (видимо, это файл elf).

Возможно это и будет работать - все зависит от твоего makefile'а.
Но в общем случае достаточно в твоем makefile'е указать пути к библиотекам. Я делаю так:

Код
INSTALL_DIR = путь к библиотеке
include $(INSTALL_DIR)/include/pkgconf/ecos.mak

# Flags for C and C++
CFLAGS = $(ECOS_GLOBAL_CFLAGS)
CFLAGS += -I$(INSTALL_DIR)/include
CFLAGS += $(CDEFS) $(CINCS)

# Linker flags.
LDFLAGS = $(ECOS_GLOBAL_LDFLAGS)
LDFLAGS += -nostartfiles -L$(INSTALL_DIR)/lib


Цитата(ZAA @ Mar 20 2008, 10:20) *
1)Как вообще можно проверить, правильно ли собралось ядро eCos вместе с приложением. после загрузки в плату вообще непонятно...

Если собралось без ошибок - то правильно.
Цитата(ZAA @ Mar 20 2008, 10:20) *
2)Прошивать нужно во flash? (я в самбе делаю так: flash 0x00100000 /root/hello.bin)

Это тебе лучше знать! Ты то куда хочешь? Тогда так и конфигурируй.
Скорей всего конфигурация по умолчанию установлена на расположение программы в RAM, так что не работает вполне закономерно.
Цитата(ZAA @ Mar 20 2008, 10:20) *
3)Надо ли полученный файл (hello.elf) переконвертировать в .bin (я пробую так: arm-elf-objcopy -O binary hello hello.bin). прошивать нужно именно бинарник?

Смотря чем будешь прошивать. Какие-то программы понимают elf, другим нужен bin или hex.

А вообще рекомендую почитать статью Сергея Гаврикова. Хоть она и для другой платы и МК, но все равно последовательность действий должна быть похожа.
Да и документацию ecos неплохо было бы почитать. Там много полезного. smile.gif
ZAA
Спасибо. Только никак понять не могу, как можно RedBoot проверить. И записывать его нужно в RAM или во Flash?
axle
RedBoot используется для загрузки и запуска другой программы при включении устройства. Естественно он должен находиться во flash. Проверить его очень просто - увидел приглашение "RedBoot>" в терминале, значит работает.

PS. Может все-таки надо почитать документацию?
http://ecos.sourceware.org/docs-latest/use...user-guide.html
http://ecos.sourceware.org/docs-latest/red...boot-guide.html
http://ecos.sourceware.org/docs-latest/ref/ecos-ref.html
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.