Hi everyone,
I started development of software for a board using multiple AWR1243. Hardware is not available yet, so I am using the AWR1243BOOST to test my control software. The software runs on an 32 bit ARM Coretex processor, and has no OS environment. According to documentation of mmwavelink that should work just fine.
As I have no OS, I have nothing like mutexes and semaphores, so I did not define the according function callbacks in rlClientCbs_t.osiCb - they are all NULL. When I run the code my processor crashes with a "hard fault" due to call to NULL. It turns out the library is trying to create a mutex in rl_driver.c, line 1932:
rlReturnVal_t rlDriverOsiInit(void) { rlReturnVal_t retVal; /* Create Global Mutex Object */ if (rl_driverData.clientCtx.osiCb.mutex.rlOsiMutexCreate( &rl_driverData.globalMutex, (rlInt8_t*)"GlobalLockObj") != RL_RET_CODE_OK) { retVal = RL_RET_CODE_RADAR_OSIF_ERROR; } // ... }
As far as I can see that function is called with out any condition which might prevent the call when I call rlDevicePowerOn() - which I have to.
What do I have to do to get the code running without an RTOS?