|
Компиляция gnu c в uVision3 |
|
|
|
Oct 3 2006, 09:43
|
Участник

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

|
Цитата(EKirshin @ Oct 2 2006, 20:25)  Нет ли у кого примера стартап-файла для компиляции с использованием gnu? Startup лежат в папке самого uVision ( \ARM\GNU\Startup ) При создании нового проекта, стартап для выбранного тулчейна автоматически добавляется. (не для всех. Например, для philips - добавляет, но для ST - нет)
|
|
|
|
|
Oct 3 2006, 10:20
|
Участник

Группа: Участник
Сообщений: 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- .
|
|
|
|
|
Oct 3 2006, 10:27
|

Участник

Группа: Участник
Сообщений: 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
|
|
|
|
|
Oct 4 2006, 06:25
|

Участник

Группа: Свой
Сообщений: 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 нет. Если у кого-нибудь есть - пришлите, пожалуйста. И где можно почитать о формате этих файлов. В частности, как размещать секции кода, стэка, ... Синтаксис вообще. И еще интересует, где можно взять докуметацию на гнушный ассемблер.
|
|
|
|
|
Oct 4 2006, 07:22
|
Участник

Группа: Свой
Сообщений: 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 тулчейн?
|
|
|
|
|
Oct 4 2006, 11:51
|

Участник

Группа: Свой
Сообщений: 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
|
|
|
|
|
Oct 4 2006, 14:21
|
Участник

Группа: Свой
Сообщений: 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"?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|