Skip to content

Commit d8d63aa

Browse files
committed
RTX2: Singleton/Malloc/Env mutexes shouldn't use dynamic memory
1 parent 0ea74f2 commit d8d63aa

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

platform/mbed_main.c

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,16 @@
2323
extern void __libc_init_array (void);
2424
extern int main(int argc, char **argv);
2525

26-
osMutexId_t singleton_mutex_id;
26+
osMutexId_t singleton_mutex_id;
27+
os_mutex_t singleton_mutex_obj;
2728
osMutexAttr_t singleton_mutex_attr;
2829

29-
osMutexId_t malloc_mutex_id;
30+
osMutexId_t malloc_mutex_id;
31+
os_mutex_t malloc_mutex_obj;
3032
osMutexAttr_t malloc_mutex_attr;
3133

32-
osMutexId_t env_mutex_id;
34+
osMutexId_t env_mutex_id;
35+
os_mutex_t env_mutex_obj;
3336
osMutexAttr_t env_mutex_attr;
3437

3538

@@ -60,12 +63,18 @@ static void mbed_cpy_nvic(void)
6063
void pre_main(void)
6164
{
6265
singleton_mutex_attr.attr_bits = osMutexRecursive;
66+
singleton_mutex_attr.cb_size = sizeof(singleton_mutex_obj);
67+
singleton_mutex_attr.cb_mem = &singleton_mutex_obj;
6368
singleton_mutex_id = osMutexNew(&singleton_mutex_attr);
6469

6570
malloc_mutex_attr.attr_bits = osMutexRecursive;
71+
malloc_mutex_attr.cb_size = sizeof(malloc_mutex_obj);
72+
malloc_mutex_attr.cb_mem = &malloc_mutex_obj;
6673
malloc_mutex_id = osMutexNew(&malloc_mutex_attr);
6774

6875
env_mutex_attr.attr_bits = osMutexRecursive;
76+
env_mutex_attr.cb_size = sizeof(env_mutex_obj);
77+
env_mutex_attr.cb_mem = &env_mutex_obj;
6978
env_mutex_id = osMutexNew(&env_mutex_attr);
7079

7180
__libc_init_array();

0 commit comments

Comments
 (0)