summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/clock.c3
-rw-r--r--src/idle.c6
-rwxr-xr-xsrc/ipc.c1
-rw-r--r--src/mem.c2
-rw-r--r--src/memheap.c2
-rw-r--r--src/slab.c2
6 files changed, 9 insertions, 7 deletions
diff --git a/src/clock.c b/src/clock.c
index f02c524380..7df13775b2 100644
--- a/src/clock.c
+++ b/src/clock.c
@@ -13,7 +13,8 @@
* 2010-07-13 Bernard fix rt_tick_from_millisecond issue found by kuronca
* 2011-06-26 Bernard add rt_tick_set function.
* 2018-11-22 Jesven add per cpu tick
- * 2020-12-29 Meco Man add function rt_tick_get_millisecond()
+ * 2020-12-29 Meco Man implement rt_tick_get_millisecond()
+ * 2021-06-01 Meco Man add critical section projection for rt_tick_increase()
*/
#include <rthw.h>
diff --git a/src/idle.c b/src/idle.c
index 317ee76926..a6efad5628 100644
--- a/src/idle.c
+++ b/src/idle.c
@@ -202,12 +202,14 @@ static void rt_thread_idle_entry(void *parameter)
{
#ifdef RT_USING_IDLE_HOOK
rt_size_t i;
+ void (*idle_hook)(void);
for (i = 0; i < RT_IDLE_HOOK_LIST_SIZE; i++)
{
- if (idle_hook_list[i] != RT_NULL)
+ idle_hook = idle_hook_list[i];
+ if (idle_hook != RT_NULL)
{
- idle_hook_list[i]();
+ idle_hook();
}
}
#endif
diff --git a/src/ipc.c b/src/ipc.c
index b586a44181..d57aa64d59 100755
--- a/src/ipc.c
+++ b/src/ipc.c
@@ -39,7 +39,6 @@
* 2020-10-11 Meco Man add value overflow-check code
* 2021-01-03 Meco Man implement rt_mb_urgent()
* 2021-05-30 Meco Man implement rt_mutex_trytake()
- * 2021-01-20 hupu fix priority inversion bug of mutex
*/
#include <rtthread.h>
diff --git a/src/mem.c b/src/mem.c
index ac0d27f2c3..2b4d3a03be 100644
--- a/src/mem.c
+++ b/src/mem.c
@@ -250,7 +250,7 @@ void rt_system_heap_init(void *begin_addr, void *end_addr)
rt_mem_setname(heap_end, "INIT");
#endif
- rt_sem_init(&heap_sem, "heap", 1, RT_IPC_FLAG_FIFO);
+ rt_sem_init(&heap_sem, "heap", 1, RT_IPC_FLAG_PRIO);
/* initialize the lowest-free pointer to the start of the heap */
lfree = (struct heap_mem *)heap_ptr;
diff --git a/src/memheap.c b/src/memheap.c
index 35a04c14b1..d3ad6d2c36 100644
--- a/src/memheap.c
+++ b/src/memheap.c
@@ -155,7 +155,7 @@ rt_err_t rt_memheap_init(struct rt_memheap *memheap,
item->next_free = item->prev_free = RT_NULL;
/* initialize semaphore lock */
- rt_sem_init(&(memheap->lock), name, 1, RT_IPC_FLAG_FIFO);
+ rt_sem_init(&(memheap->lock), name, 1, RT_IPC_FLAG_PRIO);
RT_DEBUG_LOG(RT_DEBUG_MEMHEAP,
("memory heap: start addr 0x%08x, size %d, free list header 0x%08x\n",
diff --git a/src/slab.c b/src/slab.c
index 114259002f..2769892b68 100644
--- a/src/slab.c
+++ b/src/slab.c
@@ -363,7 +363,7 @@ void rt_system_heap_init(void *begin_addr, void *end_addr)
npages = limsize / RT_MM_PAGE_SIZE;
/* initialize heap semaphore */
- rt_sem_init(&heap_sem, "heap", 1, RT_IPC_FLAG_FIFO);
+ rt_sem_init(&heap_sem, "heap", 1, RT_IPC_FLAG_PRIO);
RT_DEBUG_LOG(RT_DEBUG_SLAB, ("heap[0x%x - 0x%x], size 0x%x, 0x%x pages\n",
heap_start, heap_end, limsize, npages));