On 28/11/2018 11:30, Arturo Perez Garcia wrote:
Disabling the caches don't fixe the problem, I was wrong.
Maybe I'm initializing wrongly the RTEMS objects.
In the Init task I create the binary semaphore:
rtems_semaphore_create(a3_sem_name, 1, RTEMS_BINARY_SEMAPHORE |
RTEMS_FIFO | RTEMS_LOCAL, 0, &a3_sem_id);
Then I create 2 tasks with different priority:
rtems_task_create(
t_matmul_name, 1, RTEMS_MINIMUM_STACK_SIZE * 2, RTEMS_PREEMPT,
RTEMS_LOCAL, &t_matmul_id
);
rtems_task_create(
t_inout_name, 2, RTEMS_MINIMUM_STACK_SIZE * 2, RTEMS_PREEMPT,
RTEMS_LOCAL, &t_inout_id
);
The tasks must be synchronized through the semaphore, but they are
not. The semaphore is acquired by both tasks consecutively before it
has been released.
I suppose that it is due to an error in my BSP implementation, but I
don't know how to test it.
Did you test that the returned status code is RTEMS_SUCCESSFUL in all cases?
--
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.hu...@embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
_______________________________________________
users mailing list
users@rtems.org
http://lists.rtems.org/mailman/listinfo/users