Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
rt-thread
提交
647852b0
R
rt-thread
项目概览
BaiXuePrincess
/
rt-thread
与 Fork 源项目一致
Fork自
RT-Thread / 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看板
未验证
提交
647852b0
编写于
1月 13, 2019
作者:
B
Bernard Xiong
提交者:
GitHub
1月 13, 2019
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #2203 from RT-Thread/fix_romfs
[DFS][romfs] fix the mkrom issue when file/dir size zero
上级
8f0d8658
b998c4ed
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
21 addition
and
8 deletion
+21
-8
components/dfs/filesystems/romfs/dfs_romfs.h
components/dfs/filesystems/romfs/dfs_romfs.h
+6
-5
tools/mkromfs.py
tools/mkromfs.py
+15
-3
未找到文件。
components/dfs/filesystems/romfs/dfs_romfs.h
浏览文件 @
647852b0
/*
* Copyright (c) 2006-201
8
, RT-Thread Development Team
* Copyright (c) 2006-201
9
, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2019/01/13 Bernard code cleanup
*/
#ifndef __DFS_ROMFS_H__
...
...
@@ -17,11 +18,11 @@
struct
romfs_dirent
{
rt_uint32_t
type
;
/* dirent type */
rt_uint32_t
type
;
/* dirent type */
const
char
*
name
;
/* dirent name */
const
rt_uint8_t
*
data
;
/* file date ptr */
rt_size_t
size
;
/* file size */
const
char
*
name
;
/* dirent name */
const
rt_uint8_t
*
data
;
/* file date ptr */
rt_size_t
size
;
/* file size */
};
int
dfs_romfs_init
(
void
);
...
...
components/dfs/filesystems/romf
s/mkromfs.py
→
tool
s/mkromfs.py
浏览文件 @
647852b0
...
...
@@ -40,6 +40,10 @@ class File(object):
head
=
'static const rt_uint8_t %s[] = {
\n
'
%
\
(
prefix
+
self
.
c_name
)
tail
=
'
\n
};'
if
self
.
entry_size
==
0
:
return
''
return
head
+
','
.
join
((
'0x%02x'
%
ord
(
i
)
for
i
in
self
.
_data
))
+
tail
@
property
...
...
@@ -118,23 +122,31 @@ class Folder(object):
It is recursive.'''
# make the current dirent
# static is good. Only root dirent is global visible.
if
self
.
entry_size
==
0
:
return
''
dhead
=
'static const struct romfs_dirent %s[] = {
\n
'
%
(
prefix
+
self
.
c_name
)
dtail
=
'
\n
};'
body_fmt
=
' {{{type}, "{name}", (rt_uint8_t *){data}, sizeof({data})/sizeof({data}[0])}}'
body_fmt0
=
' {{{type}, "{name}", RT_NULL, 0}}'
# prefix of children
cpf
=
prefix
+
self
.
c_name
body_li
=
[]
payload_li
=
[]
for
c
in
self
.
_children
:
entry_size
=
c
.
entry_size
if
isinstance
(
c
,
File
):
tp
=
'ROMFS_DIRENT_FILE'
elif
isinstance
(
c
,
Folder
):
tp
=
'ROMFS_DIRENT_DIR'
else
:
assert
False
,
'Unkown instance:%s'
%
str
(
c
)
body_li
.
append
(
body_fmt
.
format
(
type
=
tp
,
name
=
c
.
name
,
data
=
cpf
+
c
.
c_name
))
if
entry_size
==
0
:
body_li
.
append
(
body_fmt0
.
format
(
type
=
tp
,
name
=
c
.
name
))
else
:
body_li
.
append
(
body_fmt
.
format
(
type
=
tp
,
name
=
c
.
name
,
data
=
cpf
+
c
.
c_name
))
payload_li
.
append
(
c
.
c_data
(
prefix
=
cpf
))
# All the data we need is defined in payload so we should append the
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录