Warning: touch() [function.touch]: Unable to create file /home/starterkit/starterkit.ru/html/error.log because Permission denied in /home/starterkit/starterkit.ru/html/errorhandler.php on line 51
- Embedded Linux - Форум - starterkit.ru
Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:0
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Embedded Linux
starterkit (Guest)
Добавлено 09.02.2009 12:36 Редактировалось 09.02.2009 12:36 Сообщение: 61
starterkit (Guest)

Спасибо за лесные слова!
Я подумаю, при следующей модернизации сайта, как сделать его более "открытым" ...
Если есть желание, Вы мне можете свою статью в HTML прислать а я помещу ее в раздел со статьями.
Спуститься к концу Подняться к началу
igor1 (Guest)
Добавлено 14.02.2009 23:23 Редактировалось 14.02.2009 23:23 Сообщение: 62
igor1 (Guest)

Спецы помогите! Хочу загрузить в SDRAM bin файл не получается.
1. Сделал программку пробную в Keil (взял пример Blinky)
изменил (SAM9260.s 16 bit) и (Ext_SDRAM.ini 16 bit), поменял порты для мигания, компилировал всё вроде нормально не ругается.
2. fromelf --bin -o blinky.bin blinky.axf получил bin
3. Запускаю контроллер, нажимаю любую клавишу выводится
U-Boot> loadb 0x20000000
## Ready for binary (kermit) download to 0x20000000 at 115200 bps...
## Total Size = 0x00000388 = 904 Bytes
## Start Addr = 0x20000000
4. Запускаю по адресу
U-Boot> go 0x20000000

Молчит!!!
Спуститься к концу Подняться к началу
igor1 (Guest)
Добавлено 14.02.2009 23:56 Редактировалось 14.02.2009 23:56 Сообщение: 63
igor1 (Guest)

Спецы выручайте, что делаю не так.
Спуститься к концу Подняться к началу
sasamy (Guest)
Добавлено 15.02.2009 05:51 Редактировалось 15.02.2009 05:51 Сообщение: 64
sasamy (Guest)

А если попробовать по другому адресу - куда-нибуть повыше в память записать, но чтобы с u-boot не перекрывался адрес - например 0x21000000 ? А то что скомпилировалось без ругани - еще ничего не значит :) Я не спец в этом - просто предположение...
Спуститься к концу Подняться к началу
repairman (Guest)
Добавлено 15.02.2009 21:02 Редактировалось 15.02.2009 21:02 Сообщение: 65
repairman (Guest)

2igor1:
Каким тулчейном, с какими опциями вы собирали, какой LD-скрипт использовали ???

Поскольку вы запускаете "самостоятельное" aka freestanding приложение, ядро линукс отсутствует, эмуляция hard-float отсутствует, ELF запускать некому, libc отсутствует и т.п. arm-elf- тулчейны специально заточены для такой сборки... линуховым arm-linux- это нужно уметь объяснить...

Для примера можете посмотреть как собирают приложения, для подобных Вашим условиям..... Посмотрите на bootstrap, на UBoot и т.п.
В дистрибутиве UBoot есть директория examples с примерами таких приложений, именно для запуска из UBoot, см. также README UBoot....

Посмотите примеры здесь:
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/
(В основном SAM7 (arm7tdmi), но подход и принципы те же... по-моему даже совместим... (???))

Привязка будущего бинарника к физическим адресам задается ld-скриптом, для преобразования elf в bin существует стандартная утилита objcopy (arm-...-objcopy).... отсуствие линукса заставляет использовать при сборке опции freestanding, soft-float, если нужно запускать программу прямо со сброса процессора - нужен дополнительно startup ассемблерный код и т.п.

p.s. Keil, IMHO не подходящий инструмент... во-первых он коммерческий, во-вторых, имея столь серьезный девайс, как SAM9260 - писать самостоятельно ядро системы, когда есть Линукс - просто глупо... если же линукс Вам не нужен - возьмите что-нибудь из AT91SAM7X... или, даже ATMEGA... Гораздо дешевле и ВСЕ в одном флаконе....
А нужно ли приспосабливать виндовый пропиертарный коммерческий Keil всеми правдами и неправдами к тому, что родной бесплатный GCC делает проще и быстрее... ???

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно repairman 18.02.2009 г. в 10:00:06
Спуститься к концу Подняться к началу
michael_s (Guest)
Добавлено 16.02.2009 10:44 Редактировалось 16.02.2009 10:44 Сообщение: 66
michael_s (Guest)

AntonKr, Могу выделить место под такой ресурс , можно поставить туда какую нибудь wiki ( например dokuwiki). Главное что бы в ее заполнении народ принимал активное участие.
Спуститься к концу Подняться к началу
ton (Guest)
Добавлено 19.02.2009 07:39 Редактировалось 19.02.2009 07:39 Сообщение: 67
ton (Guest)

Здравствуйте всем. Новую тему создавать не стал, решил описать свою проблему тут. Проблема в следующем. Пытался запустить простейший Hello на плате. Делал следующее:
hello.cpp:
Код

#include <stdio.h>
int main (int argv, char** argc)
{
printf("ARM
");
return(0);
}

Makefile взял предложенный Lexey'ем в начале темы:
Код

CC=arm-none-linux-gnueabi-gcc
CXX=arm-none-linux-gnueabi-g++
LD=arm-linux-ld

LDFLAGS=-L/usr/local/arm-linux/arm-linux/lib -static -s
LIBS=-L/usr/local/arm-none-linux-gnueabi/lib -static -s

export CC
export CXX
export LD
export LDFLAGS

EXEC = hello
OBJS = hello.o

all: $(EXEC)

$(EXEC): $(OBJS)
$(CC) $(LDFLAGS) $(LIBS) -o $@ ./$(OBJS) $(LDLIBS$(LDLIBS_$@))
cp $(EXEC) /tftpboot/vidarm
romfs:
$(ROMFSINST) ./$(EXEC)

clean:
-rm -f $(EXEC) *.elf *.gdb *.o

Собирал командой make. В результате получались 2 файла: hello и hello.o. Переношу их на плату. Запускаю прям с карточки: ./hello. В результате видим не сообщение, а Illegal Instruction.

Просто первый раз работаю с arm'ами, перечитал много инфы в инете, но так и не понял в чом проблема.
Подскажите пожалуйста, что я делаю не так. Заранее спасибо

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно ton 19.02.2009 г. в 07:41:00
Спуститься к концу Подняться к началу
starterkit (Guest)
Добавлено 19.02.2009 08:41 Редактировалось 19.02.2009 08:41 Сообщение: 68
starterkit (Guest)

Очень странно, надеюсь тулчейн не переносили?
Какой размер файла получается?
Может это происходит от необрабатываемых входных аргументов main (для эксперимента попробуйте их убрать)...
Спуститься к концу Подняться к началу
ton (Guest)
Добавлено 19.02.2009 09:37 Редактировалось 19.02.2009 09:37 Сообщение: 69
ton (Guest)

тулчейн не переносил, размер файла hello 452кб, компиляцию без аргументов в main() я пробовал. Тот же результат

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно ton 19.02.2009 г. в 09:43:08
Спуститься к концу Подняться к началу
repairman (Guest)
Добавлено 19.02.2009 11:40 Редактировалось 19.02.2009 11:40 Сообщение: 70
repairman (Guest)

2ton:
Зачем нужны LIBS и LDFLAGS, еще и показывающие в разные места на разные библиотеки ???

Компилятор сам знает, где его библиотеки, лишнее...
Спуститься к концу Подняться к началу
Форум » starterkit.ru » Embedded Linux