Sherk Chung wrote:
> We are using Xenomai on an AT91 ARM board.  We wrote a program that
> creates multiple Xenomai tasks, which use rt_mutexes to when accessing
> some shared global variables.  The rt_mutexes used are declared
> globally, as in the example below.  Since the objects sharedVar1,
> shredVar2, etc. are declared on the global stack, the rt_mutexes are
> created prior to main() getting executed.  The problem we are having is
> that our program is causing our HW to freeze up on program load, it
> never gets to the first line of main(), and our HW supplier pointed out
> that we must call mlockall() and the set up the signal handlers before
> creating the mutexes.
> 
>  
> 
> Is there a problem with creating rt_mutexes the way we are doing, and
> should that cause the ARM board to freeze?  (the same program loads fine
> on an x86)

Hi,

your test program does not compile, next time, please provide a 
self-contained test which I only have to compile in order to be able to 
run it. I compiled and ran the following program:

#include <native/queue.h>
#include <native/mutex.h>
#include <signal.h>
#include <sys/mman.h>


template <class T>
class SyncObject {
private:
        RT_MUTEX mutex;

public:
        T value;

        SyncObject(const char* desc)
        {
                printf("mutex_create !\n");
                rt_mutex_create(&mutex, desc);
        }

        ~SyncObject()
        {
                rt_mutex_delete(&mutex);
        }

        void lock()

        void unlock()
        {
                rt_mutex_release(&mutex);
        }
} ;

SyncObject<int> g_sharedVar1 = "var1";
SyncObject<int> g_sharedVar2 = "var2";
SyncObject<int> g_sharedVar3 = "var3";

extern "C" int main(void)
{
        printf ("Starting execution of main");   //  Program crashes before

        mlockall(MCL_CURRENT | MCL_FUTURE);
        return 0;
}

And it runs just fine. So, I need more details, such as your kernel
configuration.

-- 
                                            Gilles.

_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to