|
Подключение libc (из состава arm-kgp-eabi) на STM32, Необходимо подключит стандартную библиотеку к проекту |
|
|
|
Feb 17 2011, 06:18
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 21-01-11
Пользователь №: 62 381

|
Пытаюсь подключить стандартную библиотеку к проекту для STM32. Использую Eclipse + тулчейн от KGP. Насколько я понимаю, линкер должен выдать мне десяток сообщений о том, что не найдены системные вызовы типа sbrk, read, write и т.д., но ничего подобного не происходит все компилится на ура. Однако при попытке вызова printf() проц вываливается в HardFault. Если я правильно понимаю это может происходить из-за проблем с адресацией(?). Т.е., например, указатель указывает на область данных? Параметры компиляции: Код CROSS_COMPILE = arm-kgp-eabi- CC = $(CROSS_COMPILE)gcc LD = $(CROSS_COMPILE)gcc AR = $(CROSS_COMPILE)ar AS = $(CROSS_COMPILE)as CP = $(CROSS_COMPILE)objcopy OD = $(CROSS_COMPILE)objdump OPENOCD = openocd
CCFLAGS = -std=c99 -I./ -c -fno-common -O0 -g -mcpu=cortex-m3 -mthumb -DSTM32F10X_HD -DUSE_FULL_ASSERT -DUSE_STDPERIPH_DRIVER ARFLAGS = -rcs LDFLAGS = -Tstm32_flash.ld -nostartfiles -nostdlib -L../lib CPFLAGS = -Obinary ODFLAGS = -S В чем может быть косяк? PS Могу выложить Makefile целиком, если необходимо
|
|
|
|
|
 |
Ответов
|
Feb 26 2011, 12:11
|
Знающий
   
Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725

|
Цитата(gba @ Feb 17 2011, 07:18)  Пытаюсь подключить стандартную библиотеку к проекту для STM32. Использую Eclipse + тулчейн от KGP.
Насколько я понимаю, линкер должен выдать мне десяток сообщений о том, что не найдены системные вызовы типа sbrk, read, write и т.д., но ничего подобного не происходит все компилится на ура. Однако при попытке вызова printf() проц вываливается в HardFault. Если я правильно понимаю это может происходить из-за проблем с адресацией(?). Т.е., например, указатель указывает на область данных? А куда printf() будет выводить? Наверное, через UART. Но стандартные библиотеки не могут знать особенностей железа в смысле как отправить символ через железо процессора. Как это у Вас решено?
|
|
|
|
|
Feb 26 2011, 13:51
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 21-01-11
Пользователь №: 62 381

|
Цитата(KnightIgor @ Feb 26 2011, 15:11)  А куда printf() будет выводить? Наверное, через UART. Но стандартные библиотеки не могут знать особенностей железа в смысле как отправить символ через железо процессора. Как это у Вас решено? А вот для этого как раз и необходима своя реализация системных вызовов (system calls) - sbrk(), write(), read() и т.д. Вообще говоря необходима реализация минимального набора системных вызовов, половина из которых может быть просто заглушками. Если же даже заглушек не будет, то при линковке линкер выдаст ошибки. В системный вызов write() можно запихнуть вызов функции, которая выводит символ через UART, а реализацию этой функции можно разместить в модуле программы, где происходит работа с железом. Пример описанного выше давал AHTOXA здесь
|
|
|
|
Сообщений в этой теме
gba Подключение libc (из состава arm-kgp-eabi) на STM32 Feb 17 2011, 06:18 AHTOXA Цитата(gba @ Feb 17 2011, 11:18) Могу выл... Feb 17 2011, 07:22 gba Вот... Тот кусок, что в первом посте и есть option... Feb 17 2011, 07:36 AHTOXA Хм. Странно. Вроде нормально всё. Я самые свежие k... Feb 17 2011, 09:06 timm Слаб я в армах, но:
Цитата(gba @ Feb 17 2011,... Feb 24 2011, 11:01  gba timm, честно говоря, не понял, что Вас смутило с l... Feb 25 2011, 15:23   AHTOXA Цитата(gba @ Feb 25 2011, 20:23) AHTOXA, ... Feb 25 2011, 17:59    gba Цитата(AHTOXA @ Feb 25 2011, 20:59) А про... Feb 25 2011, 18:46     AHTOXA Я редко пользуюсь отладчиком, но когда пробовал, в... Feb 25 2011, 19:21      gba Цитата(AHTOXA @ Feb 25 2011, 22:21) Я ред... Feb 25 2011, 21:19 gba Проект собирается, правда заливать не пробовал... ... Feb 17 2011, 14:50 AHTOXA Цитата(gba @ Feb 17 2011, 19:50) Проект с... Feb 17 2011, 17:59 gba Да, с Code Sourcery эффект есть. Выкинул файл sysc... Feb 17 2011, 18:27 gba Оказалось не все так радужно. При попытке вызова p... Feb 24 2011, 10:44 AHTOXA Цитата(gba @ Feb 24 2011, 15:44) При попы... Feb 24 2011, 11:46  KnightIgor Цитата(gba @ Feb 26 2011, 14:51) А вот дл... Feb 26 2011, 15:06   gba Цитата(KnightIgor @ Feb 26 2011, 18:06) Э... Feb 26 2011, 19:47    AHTOXA Вот за это я и не люблю отладчики. Они зачастую сб... Feb 26 2011, 21:26 gba Можно не любить калькулятор, но он тем не менее ус... Feb 28 2011, 07:08 AHTOXA Цитата(gba @ Feb 28 2011, 12:08) Можно не... Feb 28 2011, 09:08  gba Цитата(AHTOXA @ Feb 28 2011, 12:08) Меня ... Feb 28 2011, 09:46   AHTOXA Да ерунда всё это. Нормальный процесс начального в... Feb 28 2011, 10:46
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|