RES: Problem with simple 'new' operator when using RTEMS 4.11 for the SIS BSP
Sebastian Huber
sebastian.huber at embedded-brains.de
Mon Jul 28 19:19:58 UTC 2014
On 07/28/2014 08:43 PM, Fabrício de Novaes Kucinskis wrote:
> The following example is enough to illustrate the problem I'm facing:
>
> rtems_task Init(rtems_task_argument argument)
> {
> int *var = new int[10];
>
> var[0] = 2;
> printk("testing... %i", var[0]);
> }
>
> If 'var' is allocated on the stack ("int var[10]"), the program runs ok.
> When using the 'new' operator (and hence using the heap), the execution
> doesn't achieve the Init task, stopping at some instruction inside
> _Thread_Start_multitasking() – that’s what I vaguely called ‘crash’ before,
> sorry for that.
A constant error source is the RTEMS configuration, so it is always good
to have self-contained example and not some code snippet. I would always
set a break point to _Terminate(), since this gives you a good hint in
most cases.
You likely have not enough resources for the C++ basics, try to use
#define CONFIGURE_UNLIMITED_OBJECTS
#define CONFIGURE_UNIFIED_WORK_AREAS
for an easy start.
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.huber at embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
More information about the users
mailing list