Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
e9f81422
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
e9f81422
编写于
2月 09, 2022
作者:
W
wusongqing
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
updated docs
Signed-off-by:
N
wusongqing
<
wusongqing@huawei.com
>
上级
be5bdb7e
变更
6
展开全部
隐藏空白更改
内联
并排
Showing
6 changed file
with
1240 addition
and
11 deletion
+1240
-11
en/contribute/OpenHarmony-64bits-coding-guide.md
en/contribute/OpenHarmony-64bits-coding-guide.md
+590
-0
en/contribute/OpenHarmony-Java-secure-coding-guide.md
en/contribute/OpenHarmony-Java-secure-coding-guide.md
+1
-1
en/contribute/OpenHarmony-hdf-coding-guide.md
en/contribute/OpenHarmony-hdf-coding-guide.md
+635
-0
en/contribute/code-contribution.md
en/contribute/code-contribution.md
+5
-1
zh-cn/contribute/OpenHarmony-64bits-coding-guide.md
zh-cn/contribute/OpenHarmony-64bits-coding-guide.md
+7
-7
zh-cn/contribute/OpenHarmony-hdf-coding-guide.md
zh-cn/contribute/OpenHarmony-hdf-coding-guide.md
+2
-2
未找到文件。
en/contribute/OpenHarmony-64bits-coding-guide.md
0 → 100644
浏览文件 @
e9f81422
此差异已折叠。
点击以展开。
en/contribute/OpenHarmony-Java-secure-coding-guide.md
浏览文件 @
e9f81422
#
OpenHarmony
Java Secure Coding Guide
# Java Secure Coding Guide
This document provides secure coding suggestions for Java-based development.
...
...
en/contribute/OpenHarmony-hdf-coding-guide.md
0 → 100644
浏览文件 @
e9f81422
此差异已折叠。
点击以展开。
en/contribute/code-contribution.md
浏览文件 @
e9f81422
...
...
@@ -8,6 +8,8 @@
-
[
OpenHarmony Security Design Specifications
](
OpenHarmony-security-design-guide.md
)
-
[
OpenHarmony Security Design Specifications
](
OpenHarmony-security-design-guide.md
)
### Code Style
Develop, review, and test code following the OpenHarmony coding standards. Make sure code is written in the same style.
...
...
@@ -17,6 +19,8 @@ Develop, review, and test code following the OpenHarmony coding standards. Make
-
[
JavaScript Coding Style Guide
](
OpenHarmony-JavaScript-coding-style-guide.md
)
-
[
Python Coding Style Guide
](
https://pep8.org/
)
-
[
C&C++ Secure Coding Guide
](
OpenHarmony-c-cpp-secure-coding-guide.md
)
-
[
HDF Driver Coding Guide
](
OpenHarmony-Java-secure-coding-guide.md
)
-
[
32- and 64-Bit Portability Coding Guide
](
OpenHarmony-64bits-coding-guide.md
)
-
[
Java Secure Coding Guide
](
OpenHarmony-Java-secure-coding-guide.md
)
-
[
Logging Guide
](
OpenHarmony-Log-guide.md
)
...
...
@@ -28,6 +32,6 @@ For details, see [Contribution Process](contribution-process.md).
-
[
Security Issue Handling and Release Processes
](
https://gitee.com/openharmony/security/blob/master/en/security-process/README.md
)
-
[
OpenHarmony Security
and Disclosure Statement
](
https://gitee.com/openharmony/security/blob/master/en/security-process/security-disclosure.md
)
-
[
OpenHarmony Security
Vulnerability Notice
](
https://gitee.com/openharmony/security/blob/master/en/security-process/security-disclosure.md
)
zh-cn/contribute/OpenHarmony-64bits-coding-guide.md
浏览文件 @
e9f81422
...
...
@@ -7,7 +7,7 @@
OpenHarmony的目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。具有“硬件互助,资源共享”、“一次开发,多端部署”、“统一OS,弹性部署”的技术特性。
OpenHarmony支持三种系统类型:
1.
轻量系统(mini system),面向
从
MCU类处理器(例如Arm Cortex-M、RISC-V 32位)的轻量设备,硬件资源极其有限,支持的设备最小内存为128KiB;
1.
轻量系统(mini system),面向MCU类处理器(例如Arm Cortex-M、RISC-V 32位)的轻量设备,硬件资源极其有限,支持的设备最小内存为128KiB;
2.
小型系统(small system),面向应用处理器(例如Arm Cortex-A 64位)的设备,支持的设备最小内存为1MiB
3.
标准系统(standard system),面向应用处理器(例如Arm Cortex-A 64位)的设备,支持的设备最小内存为128MiB
...
...
@@ -35,7 +35,7 @@ OpenHarmony支持三种系统类型:
| size_t |
**4**
|
**8**
|
**8**
| 4 | 8 |
| pointer |
**4**
|
**8**
|
**8**
| 4 | 8 |
上表中只包含了部分基本类型,下表分别将ILP32和LP64的siz
i
of和print
`进行对比,展示了更全面的常量和类型对应的差异:
上表中只包含了部分基本类型,下表分别将ILP32和LP64的siz
e
of和print
`进行对比,展示了更全面的常量和类型对应的差异:
| Type | ILP32 sizeof | ILP32 print | LP64 sizeof | LP64 print | 备注 |
| ------------------ | ------------ | ----------- | ----------- | ---------- | ------ |
...
...
@@ -115,8 +115,8 @@ typedef struct tagFoo {
| uint16_t | 2 | 2 | %u | 代替unsigned short |
| int32_t | 4 | 4 | %d | 代替int |
| uint32_t | 4 | 4 | %u | 代替unsigned int |
| int64_t | 8 | 8 | %PRId64 | 代替long long
,
宏实现代码兼容 |
| uint64_t | 8 | 8 | %PRIu64 | 代替unsigned long
long,
宏实现代码兼容 |
| int64_t | 8 | 8 | %PRId64 | 代替long long
、
宏实现代码兼容 |
| uint64_t | 8 | 8 | %PRIu64 | 代替unsigned long
long、
宏实现代码兼容 |
| float | 4 | 4 | %f | 单精度浮点数 |
| double | 8 | 8 | %lf | 双精度浮点数 |
| bool | 1 | 1 | %d | 布尔类型 |
...
...
@@ -170,7 +170,7 @@ long var;
#### 【规则】当需要采用整型变量来存储指针时,变量应该定义成uintptr_t以适应不同的位宽
【说明】uintptr_t类型用于用于存储指针长度
级别
的数据,其长度在32位和64位可自动适应。
【说明】uintptr_t类型用于用于存储指针长度的数据,其长度在32位和64位可自动适应。
【示例】
...
...
@@ -262,7 +262,7 @@ format ‘%p’ expects argument of type ‘void *’, but argument 2 has type
| 0x80000000LL | 8 | 8 | 增加LL后缀,小于uint32_t范围,长度固定 |
| 0x8000000000 | **NA或8** | **8** | 无后缀,超过uint32_t的范围,编译器默认为LL或无效,64位下固定为uint64_t类型 |
| 0x8000000000L | **NA或8** | **8** | 后缀为L,对超过uint32_t的范围常数,增加该参数没有意义,应当避免使用 |
| 0x8000000000LL | 8 | 8 |
默认
为LL,uint64_t类型 |
| 0x8000000000LL | 8 | 8 |
后缀
为LL,uint64_t类型 |
从上表中可看出,使用L或UL后缀的常量,其长度在32位和64位下发生变化,不利于代码的可移植性,因此禁止使用这个后缀。
...
...
@@ -533,7 +533,7 @@ q = (int32_t *) (int32_t)&i;
int32_t length = (int32_t)strlen(str); // 错误
```
strlen返回size_t(它在LP64中是unsigned long),当赋值给一个int32_t时,截断是必然发生的。而通常,截断只会在str的长度大于2GB时才会发生,这种情况在程序中一般不会出现,容易
出现问题
。
strlen返回size_t(它在LP64中是unsigned long),当赋值给一个int32_t时,截断是必然发生的。而通常,截断只会在str的长度大于2GB时才会发生,这种情况在程序中一般不会出现,容易
忽略
。
#### 【规则】在64位环境下使用大数组或大for循环索引时,索引类型应当与下标边界保持一致
...
...
zh-cn/contribute/OpenHarmony-hdf-coding-guide.md
浏览文件 @
e9f81422
...
...
@@ -16,7 +16,7 @@ HDF(Hardware Driver Foundation)驱动框架,为开发者提供驱动框架
#### 【规则】OpenHarmony的驱动程序,应当使用HDF框架提供的能力实现
【说明】HDF驱动框架提供了驱动加载、驱动服务管理和驱动消息机制,同时还提供了操作系统抽象层(OSAL, Operating System Abstract
Layer)和平台抽象层(PAL, Platform Abstract
Layer)来保证驱动程序的跨系统跨平台部署的特性。除此之外,HDF提供了驱动模型的抽象、公共工具、外围器件框架等能力。开发者应该基于HDF提供的这些能力开发驱动,从而保证驱动程序可以在各种形态的OpenHarmony上进行部署。
【说明】HDF驱动框架提供了驱动加载、驱动服务管理和驱动消息机制,同时还提供了操作系统抽象层(OSAL, Operating System Abstract
ion Layer)和平台抽象层(PAL, Platform Abstraction
Layer)来保证驱动程序的跨系统跨平台部署的特性。除此之外,HDF提供了驱动模型的抽象、公共工具、外围器件框架等能力。开发者应该基于HDF提供的这些能力开发驱动,从而保证驱动程序可以在各种形态的OpenHarmony上进行部署。
#### 【规则】开发者应当遵循此规范要求,开发能够同时满足内核态和用户态的驱动
...
...
@@ -332,7 +332,7 @@ root {
#### 【建议】当preload字段配置为默认加载时,应当根据业务要求配置按序加载的优先级
【说明】在HDF框架定义的device_info.hcs配置文件中,priority字段(取值范围为整数0到200)是用来表示Host和驱动的优先级。不同的Host内的驱动,Host的priority值越小,驱动加载优先级越高;同一个Host内驱动的priority值越小,加载优先级越高。priority字段的默认值为100,当未配置或字段值相同时,HDF框架将不保证驱动的加载顺序。开发者应当根据业务场景的要求,配置pr
e
ority字段,保证各个驱动的启动顺序。
【说明】在HDF框架定义的device_info.hcs配置文件中,priority字段(取值范围为整数0到200)是用来表示Host和驱动的优先级。不同的Host内的驱动,Host的priority值越小,驱动加载优先级越高;同一个Host内驱动的priority值越小,加载优先级越高。priority字段的默认值为100,当未配置或字段值相同时,HDF框架将不保证驱动的加载顺序。开发者应当根据业务场景的要求,配置pr
i
ority字段,保证各个驱动的启动顺序。
【样例】
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录