реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Компиляция gnu c в uVision3
EKirshin
сообщение Oct 2 2006, 16:25
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 41
Регистрация: 2-10-06
Из: Москва
Пользователь №: 20 904



Здравствуйте!

Использую STR912FW44, пакет разработки KEIL, плата MCBSTR9

У меня такая проблема:

Хочется написать программу для USB. Скомпилировать пример джойстика не удаётся по причине ограничения 16кб линкера (никто, случаем лекарства не подкинет?). Поэтому хочу скомпилировать средствами gnu, зашить во внутреннюю флэш и запустить отладку - всё средствами uVision3. Откомпилиорвать удалось после переписания файла startup (насколько верно, сомневаюсь). Создаётся файл elf. Потом пытаюсь загружать его во флэш из uVision3. Выдаёт ошибку Incorrect line... (что-то типа этого - точно не помню).

Нет ли у кого примера стартап-файла для компиляции с использованием gnu?
И, кстати, в тестовых программках keil'a есть файлик retarget.c. Без него примеры не работают. Зачем он нужен, не поясните? В хелпе написано как-то невразумительно: для перенаправления каких-то потоков...
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Oct 2 2006, 17:51
Сообщение #2


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



ой как не спец в этих делах, но предположу следующее:
ELF предназначен не для заливки во флэш, а для отладки. Фо флешь надо бинарник грузить. Как его получить? Есть утилиты специальные вроде, может даже с кейлом идут
Go to the top of the page
 
+Quote Post
Andy Great
сообщение Oct 3 2006, 07:10
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 793
Регистрация: 5-11-04
Из: Краматорск, Украина
Пользователь №: 1 057



Какая версия Кейла, какая ГЦЦ, какой адаптер, какие ключи компиляции?
Go to the top of the page
 
+Quote Post
yaghtn
сообщение Oct 3 2006, 09:43
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 52
Регистрация: 7-11-05
Из: Чебоксары
Пользователь №: 10 546



Цитата(EKirshin @ Oct 2 2006, 20:25) *
Нет ли у кого примера стартап-файла для компиляции с использованием gnu?


Startup лежат в папке самого uVision ( \ARM\GNU\Startup )
При создании нового проекта, стартап для выбранного тулчейна автоматически добавляется.
(не для всех. Например, для philips - добавляет, но для ST - нет)
Go to the top of the page
 
+Quote Post
alogvinov
сообщение Oct 3 2006, 10:20
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 17-01-05
Пользователь №: 1 995



Цитата(jorikdima @ Oct 2 2006, 21:51) *
ой как не спец в этих делах, но предположу следующее:
ELF предназначен не для заливки во флэш, а для отладки. Фо флешь надо бинарник грузить. Как его получить? Есть утилиты специальные вроде, может даже с кейлом идут


Бинарник из .elf получается следующим образом:
arm-elf-objcopy -O binary file.elf file.bin

Возможно, что префикс утилиты objcopy будет отличаться от arm-elf- .
Go to the top of the page
 
+Quote Post
почемучка
сообщение Oct 3 2006, 10:27
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 16-08-06
Из: Москва
Пользователь №: 19 597



Цитата(jorikdima @ Oct 2 2006, 21:51) *
ой как не спец в этих делах, но предположу следующее:
ELF предназначен не для заливки во флэш, а для отладки. Фо флешь надо бинарник грузить. Как его получить? Есть утилиты специальные вроде, может даже с кейлом идут

Преобразование arm-elf в bin можно сделать в оболочке bash или в linux с помощью команды arm-elf-objcopy:
arm-elf-objcopy -O binary program program.bin
где program - исходный elf program.bin - выходной bin
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Oct 3 2006, 10:34
Сообщение #7


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



Вообще у меня это был реторический вопрос smile.gifsmile.gif
Но все равно спасибо.
Go to the top of the page
 
+Quote Post
Костян
сообщение Oct 3 2006, 17:10
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059



Цитата(jorikdima @ Oct 2 2006, 15:51) *
ой как не спец в этих делах, но предположу следующее:
ELF предназначен не для заливки во флэш, а для отладки. Фо флешь надо бинарник грузить.

Все верно , только как дополнение во флэш можно грузить и hex , т.к keil не создает бинарники автоматом (хотя есть на официальном сайте утилита hex2bin -- кажется так называетя).
Go to the top of the page
 
+Quote Post
EKirshin
сообщение Oct 4 2006, 06:25
Сообщение #9


Участник
*

Группа: Свой
Сообщений: 41
Регистрация: 2-10-06
Из: Москва
Пользователь №: 20 904



Цитата(yaghtn @ Oct 3 2006, 13:43) *
Цитата(EKirshin @ Oct 2 2006, 20:25) *

Нет ли у кого примера стартап-файла для компиляции с использованием gnu?


Startup лежат в папке самого uVision ( \ARM\GNU\Startup )
При создании нового проекта, стартап для выбранного тулчейна автоматически добавляется.
(не для всех. Например, для philips - добавляет, но для ST - нет)


У меня uVision3, из комплекта разработки Keil с платой MCBSTR9. Адаптер ULINK. В папке \ARM\GNU\Startup файлов для ST нет. Если у кого-нибудь есть - пришлите, пожалуйста.
И где можно почитать о формате этих файлов. В частности, как размещать секции кода, стэка, ... Синтаксис вообще.
И еще интересует, где можно взять докуметацию на гнушный ассемблер.
Go to the top of the page
 
+Quote Post
yaghtn
сообщение Oct 4 2006, 07:22
Сообщение #10


Участник
*

Группа: Свой
Сообщений: 52
Регистрация: 7-11-05
Из: Чебоксары
Пользователь №: 10 546



Доки на gnu есть в uV. Меню "help/Open Books Window".
На синтаксис ассемблера и файла скрипта линкера(*.ld) можно посмотреть в кейловских файлах примеров для других eval-платок. В uV для ST мало чего есть. Есть пример для stR7, но он не под гну.

В доке http://www.at91.com/thirdparty/j_lynch/jlynch.pdf, всего кроме прочего, подробно расписано что должно быть в startup и *.ld - файлах.



Кстати, если хотите использовать в кейле gnu только по причине ограничения 16к, то быть может, легче будет побороть это ограничение и пользовать RealView тулчейн?
Go to the top of the page
 
+Quote Post
Andy Great
сообщение Oct 4 2006, 07:38
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 793
Регистрация: 5-11-04
Из: Краматорск, Украина
Пользователь №: 1 057



Прям сейчас глянул: в симулятор загружается ELF, скомпилированный GNUARM 4.1.0, без всяких хексов. Должен грузиться и через УЛинк. Какие версии продуктов, повторно спрашиваю?
Go to the top of the page
 
+Quote Post
VAI
сообщение Oct 4 2006, 10:01
Сообщение #12


Профессионал
*****

Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37



с другой стороны, человек еще спрашивал о лекарстве, это здесь
http://caxapa.ru/arm.html?id=64525


--------------------
Если зайца бить, его можно и спички научить зажигать
Сколько дурака не бей - умнее не будет. Зато опытнее
Go to the top of the page
 
+Quote Post
EKirshin
сообщение Oct 4 2006, 11:51
Сообщение #13


Участник
*

Группа: Свой
Сообщений: 41
Регистрация: 2-10-06
Из: Москва
Пользователь №: 20 904



Цитата(Andy Great @ Oct 4 2006, 11:38) *
Прям сейчас глянул: в симулятор загружается ELF, скомпилированный GNUARM 4.1.0, без всяких хексов. Должен грузиться и через УЛинк. Какие версии продуктов, повторно спрашиваю?


uVision 3.31
BinUtils V2.14
GCC V3.3.1
uClibc V0.9.20
Cygwin DLL V1.3.22

Compiler control string:
-c -mcpu=arm7tdmi -gdwarf-2 -MD -Wall -O -mapcs-frame -mthumb-interwork -IC:\Keil\ARM\INC\ST\91x\ -o *.o

Assembler control string:
-m arm7tdmi -gdwarf2 -mthumb-interwork --MD *.d -IC:\Keil\ARM\INC\ST\91x\ -o *.o

Почему “arm7tdmi”, если у меня АРМ9? И где можно это изменить, если необходимо?

Linker control string:
-mthumb-interwork -Wl -o USB_HID.elf
*.o -nostartfiles -lm
Go to the top of the page
 
+Quote Post
Andy Great
сообщение Oct 4 2006, 13:00
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 793
Регистрация: 5-11-04
Из: Краматорск, Украина
Пользователь №: 1 057



А ошибка какая? Попробуйте скомпилировать для ARM7 тестовые примеры и загрузить их в симулятор. Не уверен, гляну дома, может быть в той версии ГЦЦ нет поддержки ARM9?
Go to the top of the page
 
+Quote Post
yaghtn
сообщение Oct 4 2006, 14:21
Сообщение #15


Участник
*

Группа: Свой
Сообщений: 52
Регистрация: 7-11-05
Из: Чебоксары
Пользователь №: 10 546



Поддержка arm9 компилятором не нужна. Из даташита: "The ARM966E-S core is binary compatible with 32-bit ARM7 code and 16-bit Thumb code".
Так что arm7tdmi - нормально.

Я бы сначала попробовал откомпилить и отладить в RAM простенький проект, состоящий из стартапа и бесконечного цикла в main().

PS Я недопонял, что имеется в виду под словами "загрузить во флеш"?
Пункт меню "Flash/Download" или пункт "Debug/Start-Stop Debug session"?
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 16:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01498 секунд с 7
ELECTRONIX ©2004-2016