LINUX.ORG.RU

[embedded] [c] Сборка GCC прошивки МК - проблема с линковкой

 ,


0

2

Собираю прошивку для МК STM32
В МК в начале флеша должна идти таблица прерываний. Разработчики чипа поставляют библиотеку, в которой есть асмовый файл с этой таблицой и скрипт линковщика для того, чтобы засунуть её в начало.
Так вот: надоело мне собирать этот файл с проектом, решил засунуть его в библиотеку. Собрал я библиотеку, запаковал ar.

Линкую прошивку:

# arm-none-eabi-gcc -o fw.elf main.o lib/libstm32fw.a -Wl,--gc-sections,-Map=fw/main.map,-cref -T stm32.ld

Нет таблицы. Бинарник пустой.

Думаю, косяк. Вытаскиваю из архива ar -x объектник, содержащий нужную таблицу, и линкую прошивку:

# arm-none-eabi-gcc -o fw.elf main.o lib/startup_stm32f10x_md_vl.o lib/libstm32fw.a -Wl,--gc-sections,-Map=fw/main.map,-cref -T stm32.ld

Всё ок.

Дорогие знатоки, внимание вопрос: какого художника^W почему тако происходит, и как сделать архив так, чтобы линковка была успешной.



Последнее исправление: dekar (всего исправлений: 1)

А чем шьешь мк? у меня такой же валяется никак руки недотягиваются.Говорят с линупса только j-tag?

mrcim
()
Ответ на: комментарий от mrcim

Конечно же, перепрошил долбанный stlink на versaloon и всё работает (кроме отладки, но это дело времени)

dekar
() автор топика
Ответ на: комментарий от yax123

Только вот, stlink не умеет виртуальный uart, что очень усложняет работу. Посему удобнее versaloon.

dekar
() автор топика
Ответ на: комментарий от dekar

А можно по подробней про виртуальный uart, нафига он там сдался?
Если из дискавери делать usb-свисток я еще готов понять.
А если есть своя поделка на базе stm32, то предлагается цеплять к ней отпиленный st-link перешитый в версалун в качестве usart-usb?
Не срача ради, просто очень интересно.

yax123 ★★★★★
()
Ответ на: комментарий от yax123

Дело в том, что просто отладки, как правило, не хватает. Для большинства устройств, которые я делаю, усарт необходим и на стадии отладки, и на стадии работы. Вы пробовали отлаживать rtos без усарта? Не рекомендую... Можно, конечно, использовать 2 девайса - и usart-usb, и отладчик. Но зачем, если добрые люди сделали всё-в-одном. Хотя, спору нет, как правило, для этих целей юзаю ft2232h - и быстрее, и удобнее. Только вот swd он не умеет.

dekar
() автор топика
Ответ на: комментарий от dekar

Ну значит я вас правильно понял. Согласен что без усарта никуда.
Но вы только что сказали, что версалун не умеет отладку.
И тут же заявляете:

сделали всё-в-одном

То есть по-любасу нужно 2 устройства.
Я не агитирую за st-link, но у вас тоже как-то не складно выходит.

yax123 ★★★★★
()
Ответ на: комментарий от yax123

Медленно. Внимательно. Читаем.
всё-в-одном. В одном. Одно устройство.

Может вы ещё сочтёте jtag 3-мя устройствами (reset, отладка, граничка)?

dekar
() автор топика
Ответ на: комментарий от dekar

Я имел ввиду возможность пошаговой отладки в gdb (именно для этого нужен stlink) и usart (его дает только версалун).
Я так понимаю вся отладка через usart и пошаговая нафиг не нужна.

yax123 ★★★★★
()
Ответ на: комментарий от yax123

http://www.versaloon.com/
Это прошивка для МК, которая позволяет реализовать посредством оного uart, jtag, swd и много чего ещё. Поддерживается openocd - пошаговая отладка gdb.
Есть сборка и для stm-discovery, но у данной платы для реализации uart надо допаять пару проводочков :).

И да. Пошаговая отладка и отладка через UART - просто разные уровни отладки. Нужны обе. Теоретически, отладка через uart заменяется скриптами для gdb. Практически - я это видел в гробу.

dekar
() автор топика
Ответ на: комментарий от yax123

(именно для этого нужен stlink)

Собственно, почему именно stlink? Любой jtag (или swd) адаптер с поддержкой Cortex-M3 подойдет.

Kosyak ★★★★
()
Ответ на: комментарий от Kosyak

Потому как stm32дискавери себе не заказал только самый ленивый.
А закупать оборудования только чтобы «на посмотреть» не всегда разумно.

yax123 ★★★★★
()
Ответ на: комментарий от dekar

:)) такие штуки надо в 15 лет делать.

А про свою я конечно пошутил. Моя и не выгонит и разговаривать будет.
Намек был на то, что поступления интересных железяк сейчас может быть быстрей чем разберешься как они работают и к чему их стоит применить.
У меня щас все три свежих демки от stm (32/8L/8S) уже больше полугода без дела валяются.
Только вот неделю назад сподобился из 8L сделать термо/гигрометро-метр.
Так что все время приходится себя ограничивать себя.

yax123 ★★★★★
()
Ответ на: комментарий от yax123

Про 15 лет - это так только кажется. И в 40 они изрядно радуют. Это как цверы. Может стоит попробовать?

А про железки - у меня проблема противоположная. Больше задач, чем времени. Без дела валяется только лом АЦПшек.

dekar
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.