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

 
 
> strtok не работает (STM32), линкер ругается
lisstret
сообщение May 29 2013, 03:31
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 10-06-10
Из: Владивосток
Пользователь №: 57 835



Вообщем смысл следующий, пишу типа:

Код
#include "stm32F10x.h"
#include <stdio.h>
#include <string.h>

int main()
{
      char* pString = strtok("Main\n", "\n");
      while(1);
}


выплывает ошибка:
Код
sbrkr.c:(.text+0x12): undefined reference to `_sbrk'


Не пойму, то ли в опциях проекта надо указать линковщику "какую-то" библиотеку, то ли свои заглушки писать, то ли забить на использование стандартной библиотеки С вообще. Так как ее тут походу нету? Про STM32 вообще почти ничего не знаю, так балуюсь с с платкой VLDISCOVERY. Если что, то пользуюсь Eclipsом. Проект настраивал как написано здесь:

http://robocraft.ru/blog/ARM/653.html

Если лень туда лезть, то пользуюсь вот этим:

- Eclipse IDE for C/C++ Developers, Version: Helios Service Release 1, Build id: 20100917-0705
- Сodesourcery arm-none-eabi/4.4.1
- Ну и какими то плагинами и приблудами для эклипса laughing.gif Не разбираюсь в их названиях и т.д.)
- Платка stm32VlDiscovery

Просто не в первый раз уже так, пробываю воспользоваться какой-нить обычной функцией, например: strtok, printf и т.д. И в результате выкатывает одно и тоже. Если нужно что-то еще дописать, какие опции в проекте включены, ключи и т.д. я напишу. Я просто не знаю что еще указать.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
skripach
сообщение May 31 2013, 06:59
Сообщение #2


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Код
     char* pText = "Main Menu";
     char* pString = strtok(pText, "\n");
     lcd_out(pString);

Не знаю как там ваши компилятор/линкер, но IAR строчку "Main Menu" положит во флеш и проц залетит в HardFault при выполнении. Строка в озу должна быть ибо strtok её меняет.


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение May 31 2013, 07:15
Сообщение #3


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(skripach @ May 31 2013, 10:59) *
Не знаю как там ваши компилятор/линкер, но IAR строчку "Main Menu" положит во флеш и проц залетит в HardFault при выполнении.

C чего это?
По стандарту он должен разместить её в секции data а не rodata.
Если бы вы так написали:
Код
const char* pText = "Main Menu";

то шанс попасть во flash бы значительно выросsm.gif


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 12:39
Рейтинг@Mail.ru


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