Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
混口饭吃,
rt-thread
提交
51ec75f7
R
rt-thread
项目概览
混口饭吃,
/
rt-thread
与 Fork 源项目一致
Fork自
Mr_Pangza / rt-thread
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
51ec75f7
编写于
6月 03, 2021
作者:
G
guozhanxin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[update]format memheap.c
上级
4d213254
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
28 addition
and
28 deletion
+28
-28
src/memheap.c
src/memheap.c
+28
-28
未找到文件。
src/memheap.c
浏览文件 @
51ec75f7
...
...
@@ -42,31 +42,31 @@
rt_inline
void
rt_memheap_setname
(
struct
rt_memheap_item
*
item
,
const
char
*
name
)
{
int
index
;
rt_uint8_t
*
ptr
;
rt_uint8_t
*
ptr
;
ptr
=
(
rt_uint8_t
*
)
&
(
item
->
next_free
);
for
(
index
=
0
;
index
<
sizeof
(
void
*
);
index
++
)
ptr
=
(
rt_uint8_t
*
)
&
(
item
->
next_free
);
for
(
index
=
0
;
index
<
sizeof
(
void
*
);
index
++
)
{
if
(
name
[
index
]
==
'\0'
)
break
;
ptr
[
index
]
=
name
[
index
];
}
if
(
name
[
index
]
==
'\0'
)
ptr
[
index
]
=
'\0'
;
else
else
{
ptr
=
(
rt_uint8_t
*
)
&
(
item
->
prev_free
);
for
(
index
=
0
;
index
<
sizeof
(
void
*
)
&&
(
index
+
sizeof
(
void
*
))
<
RT_NAME_MAX
;
index
++
)
ptr
=
(
rt_uint8_t
*
)
&
(
item
->
prev_free
);
for
(
index
=
0
;
index
<
sizeof
(
void
*
)
&&
(
index
+
sizeof
(
void
*
))
<
RT_NAME_MAX
;
index
++
)
{
if
(
name
[
sizeof
(
void
*
)
+
index
]
==
'\0'
)
break
;
ptr
[
index
]
=
name
[
sizeof
(
void
*
)
+
index
];
if
(
name
[
sizeof
(
void
*
)
+
index
]
==
'\0'
)
break
;
ptr
[
index
]
=
name
[
sizeof
(
void
*
)
+
index
];
}
if
(
name
[
sizeof
(
void
*
)
+
index
]
==
'\0'
)
ptr
[
index
]
=
'\0'
;
if
(
name
[
sizeof
(
void
*
)
+
index
]
==
'\0'
)
ptr
[
index
]
=
'\0'
;
}
}
void
rt_mem_set_tag
(
void
*
ptr
,
const
char
*
name
)
void
rt_mem_set_tag
(
void
*
ptr
,
const
char
*
name
)
{
struct
rt_memheap_item
*
item
;
struct
rt_memheap_item
*
item
;
if
(
ptr
&&
name
)
{
...
...
@@ -668,17 +668,17 @@ void rt_memheap_free(void *ptr)
RTM_EXPORT
(
rt_memheap_free
);
#ifdef RT_USING_FINSH
static
void
_memheap_dump_tag
(
struct
rt_memheap_item
*
item
)
static
void
_memheap_dump_tag
(
struct
rt_memheap_item
*
item
)
{
rt_uint8_t
name
[
2
*
sizeof
(
void
*
)];
rt_uint8_t
*
ptr
;
rt_uint8_t
name
[
2
*
sizeof
(
void
*
)];
rt_uint8_t
*
ptr
;
ptr
=
(
rt_uint8_t
*
)
&
(
item
->
next_free
);
rt_memcpy
(
name
,
ptr
,
sizeof
(
void
*
));
ptr
=
(
rt_uint8_t
*
)
&
(
item
->
prev_free
);
rt_memcpy
(
&
name
[
sizeof
(
void
*
)],
ptr
,
sizeof
(
void
*
));
ptr
=
(
rt_uint8_t
*
)
&
(
item
->
next_free
);
rt_memcpy
(
name
,
ptr
,
sizeof
(
void
*
));
ptr
=
(
rt_uint8_t
*
)
&
(
item
->
prev_free
);
rt_memcpy
(
&
name
[
sizeof
(
void
*
)],
ptr
,
sizeof
(
void
*
));
rt_kprintf
(
"%.*s"
,
2
*
sizeof
(
void
*
),
name
);
rt_kprintf
(
"%.*s"
,
2
*
sizeof
(
void
*
),
name
);
}
int
rt_memheap_dump
(
struct
rt_memheap
*
heap
)
...
...
@@ -688,15 +688,15 @@ int rt_memheap_dump(struct rt_memheap *heap)
if
(
heap
==
RT_NULL
)
return
0
;
RT_ASSERT
(
rt_object_get_type
(
&
heap
->
parent
)
==
RT_Object_Class_MemHeap
);
rt_kprintf
(
"
\n
[%.*s] [0x%08x - 0x%08x]->
\n
"
,
RT_NAME_MAX
,
heap
->
parent
.
name
,
(
rt_ubase_t
)
heap
->
start_addr
,
(
rt_ubase_t
)
heap
->
start_addr
+
heap
->
pool_size
);
rt_kprintf
(
"
\n
[%.*s] [0x%08x - 0x%08x]->
\n
"
,
RT_NAME_MAX
,
heap
->
parent
.
name
,
(
rt_ubase_t
)
heap
->
start_addr
,
(
rt_ubase_t
)
heap
->
start_addr
+
heap
->
pool_size
);
rt_kprintf
(
"------------------------------
\n
"
);
/* lock memheap */
rt_sem_take
(
&
(
heap
->
lock
),
RT_WAITING_FOREVER
);
item
=
heap
->
block_list
;
end
=
(
struct
rt_memheap_item
*
)
((
rt_uint8_t
*
)
heap
->
start_addr
+
heap
->
pool_size
-
RT_MEMHEAP_SIZE
);
end
=
(
struct
rt_memheap_item
*
)((
rt_uint8_t
*
)
heap
->
start_addr
+
heap
->
pool_size
-
RT_MEMHEAP_SIZE
);
/* for each memory block */
while
((
rt_ubase_t
)
item
<
((
rt_ubase_t
)
end
))
...
...
@@ -732,13 +732,13 @@ int memheaptrace(void)
int
index
;
extern
int
list_memheap
(
void
);
heaps
=
(
struct
rt_memheap
**
)
rt_malloc
(
sizeof
(
struct
rt_memheap
*
)
*
count
);
heaps
=
(
struct
rt_memheap
**
)
rt_malloc
(
sizeof
(
struct
rt_memheap
*
)
*
count
);
if
(
heaps
==
RT_NULL
)
return
0
;
list_memheap
();
rt_kprintf
(
"memheap header size: %d
\n
"
,
RT_MEMHEAP_SIZE
);
count
=
rt_object_get_pointers
(
RT_Object_Class_MemHeap
,
(
rt_object_t
*
)
heaps
,
count
);
count
=
rt_object_get_pointers
(
RT_Object_Class_MemHeap
,
(
rt_object_t
*
)
heaps
,
count
);
for
(
index
=
0
;
index
<
count
;
index
++
)
{
rt_memheap_dump
(
heaps
[
index
]);
...
...
@@ -968,15 +968,15 @@ void dump_used_memheap(struct rt_memheap *mh)
{
/* dump information */
rt_kprintf
(
"[0x%08x - %d - %c%c%c%c] used
\n
"
,
header_ptr
,
block_size
,
header_ptr
->
owner_thread_name
[
0
],
header_ptr
->
owner_thread_name
[
1
],
header_ptr
->
owner_thread_name
[
2
],
header_ptr
->
owner_thread_name
[
3
]);
header_ptr
->
owner_thread_name
[
0
],
header_ptr
->
owner_thread_name
[
1
],
header_ptr
->
owner_thread_name
[
2
],
header_ptr
->
owner_thread_name
[
3
]);
}
else
{
/* dump information */
rt_kprintf
(
"[0x%08x - %d - %c%c%c%c] free
\n
"
,
header_ptr
,
block_size
,
header_ptr
->
owner_thread_name
[
0
],
header_ptr
->
owner_thread_name
[
1
],
header_ptr
->
owner_thread_name
[
2
],
header_ptr
->
owner_thread_name
[
3
]);
header_ptr
->
owner_thread_name
[
0
],
header_ptr
->
owner_thread_name
[
1
],
header_ptr
->
owner_thread_name
[
2
],
header_ptr
->
owner_thread_name
[
3
]);
}
/* move to next used memory block */
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录