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

 
 
 
Reply to this topicStart new topic
> использование std::vector в keil ARM, у кого получилось сделать?
grau
сообщение Jan 12 2007, 17:36
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 3-02-05
Пользователь №: 2 390



Salute!

Открываем IDE, настраиваем startup, делаем простой код:


#include <vector>

int main()
{
typedef std::vector<int> Vec_t;
Vec_t Vec;
Vec.reserve(10);

while(1){};
};



после запуска симулятора оказываемся в:
SWI_Handler B SWI_Handler

В доках сказано, что нужно запретить semihosting и переопределить несколько библиотечных функций. Но как конкретно это сделать, в примерах, мне не попадалось. Может кто бросит проектом, где б все это было уже настроено..
Go to the top of the page
 
+Quote Post
d__
сообщение Jan 15 2007, 12:07
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 197
Регистрация: 26-08-04
Пользователь №: 548



посмотри в проектах типа hello, там обязательно подключается retarget.c serial.c и т.п.
Go to the top of the page
 
+Quote Post
grau
сообщение Jan 15 2007, 17:13
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 3-02-05
Пользователь №: 2 390



Цитата(d__ @ Jan 15 2007, 12:07) *
посмотри в проектах типа hello, там обязательно подключается retarget.c serial.c и т.п.


более внимательное изучение примеров помогло.

Если интересно, удалось найти реализацию STL в исходниках, от того же самого HP. SGI называется. Только не успел пока разобраться, как прикручивать. И вообще не понятно: почему либы одного года от одной фирмы отличаются, и почему в комплекте компилятора нельзя было все полностью выложить..
Go to the top of the page
 
+Quote Post
grau
сообщение Jan 16 2007, 12:16
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 3-02-05
Пользователь №: 2 390



в догонку: почему-то не удается переопределить функцию _sys_open

пишет:
StorageSP.axf: Error: L6915E: Library reports error: __use_no_semihosting_swi was requested, but _sys_open was referenced

в файле <rt_sys.h> нашел объявление этой функции


typedef int FILEHANDLE;
/*
* Open a file. May return -1 if the file failed to open.
*/
extern FILEHANDLE _sys_open(const char * /*name*/, int /*openmode*/);
/*
* openmode is a bitmap, whose bits are given below. They
* correspond directly to the ANSI mode specification.
*/
#define OPEN_R 0
#define OPEN_W 4
#define OPEN_A 8
#define OPEN_B 1
#define OPEN_PLUS 2


в retarget добавил ей пустое определение

FILEHANDLE _sys_open(const char * name, int openmode){
return -1;
};


Эта вся беда возникает при попытке использовать boost\smart_ptr.hpp
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 04:10
Рейтинг@Mail.ru


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