OpenHarmony轻内核编码规范

OpenHarmony Liteos 内核编码规范整体遵循 OpenHarmony C语言编程规范 , 在此基础上做以下额外补充。

https://gitee.com/openharmony/docs/blob/master/zh-cn/contribute/OpenHarmony-c-coding-style-guide.md

一、Liteos 内核编码规范附加要求(不包括C库、posix和cmsis)
1、基础数据类型
统一采用Liteos自定义数据类型,定义在los_compiler.h中:

typedef unsigned char          UINT8;
typedef unsigned short         UINT16;
typedef unsigned int           UINT32;
typedef signed char            INT8;
typedef signed short           INT16;
typedef signed int             INT32;
typedef float                  FLOAT;
typedef double                 DOUBLE;
typedef char                   CHAR;

typedef unsigned int           BOOL;
typedef unsigned long long     UINT64;
typedef signed long long       INT64;
typedef unsigned int           UINTPTR;
typedef signed int             INTPTR;

举例如下:

UINT32 size = 0;
UINT32 LOS_TaskResume(UINT32 taskID)
UINT32 LOS_TaskSuspend(UINT32 taskID)

2、总体命名原则

类别命名风格形式
函数、结构体类型、枚举类型、联合体类型、typedef定义的类型、函数式宏大驼峰AaaCxx
局部变量、函数参数、宏定义、结构体中字段、联合体成员小驼峰aaaCxx
全局变量、常量(在函数外部定义的由const修饰的)带'g_'前缀的小驼峰g_aaCxx
宏(不包括函数式宏)、枚举值、goto 标签全大写、下划线分割AAA_BBB

Liteos 内核API总体规则:

  • 前缀 'LOS_' 开头的API均为对外API,可被上层组件、应用、三方库等使用,该类接口的修改需要明确写明对外影响。

  • 前缀 'Os' 开头的API为内核模块间API,只允许内核模块间调用,不允许上层组件、应用、三方库等使用。

  • 前缀 'Arch' 开头的API为内核arch层对内核提供的API,不允许上层组件、应用、三方库等使用,如若上层组件、应用、三方库等需要按2.2.2 规则处理。

2.1、Liteos API命名规则(不包括arch层)

2.1.1 Liteos 所有对外API 采用以:'LOS_'前缀的大驼峰风格

LOS_TaskCreate
LOS_TaskResume
LOS_TaskSuspend

2.1.2 Liteos 所有模块间API 采用以:'Os'前缀的大驼峰风格

OsTaskInit
OsTaskEntry

2.1.3 Liteos 本源文件内调用的API:使用 'STATIC' 修饰的大驼峰风格,且不添加'Os'前缀

STATIC VOID XxxRead(VOID)  // 不加'Os' 前缀
{
    return 0;
} 

INT32 OsXxxAaa(VOID)
{
    return XxxRead();
}

2.2、Liteos arch 层API命名规则

2.2.1 Liteos arch 层提供给内核模块的API命名以:'Arch'前缀的大驼峰风格

ArchIntLock
ArchIntRestore
ArchIntUnLock

2.2.2 Liteos arch 层对外(上层组件、三方应用等)API命名以:'Arch'前缀的大驼峰风格, 并采用宏重定义的方式,对外提供'LOS_'前缀的大驼峰风格API

#define LOS_IntLock    ArchIntLock
#define LOS_IntRestore ArchIntRestore
#define LOS_IntUnLock  ArchIntUnLock

2.2.3 Liteos arch 层本架构内调用(跨文件调用,或本文件内调用)的API采用以:大驼峰风格,不加 'Arch' 和 'Os' 前缀

HwiInit
  • Liteos arch下的公共API(2.2.1 和2.2.2两种情况)原型的声明放在 arch/include 下对应的头文件中,每个架构下自调用的API(2.2.3描述的情况)放在自己架构内部头文件中。

  • 原则上产品、上层组件等只允许调用以'LOS_'为前缀的接口,不允许直接调用以'Arch'为前缀的接口。

二、Liteos posix(kal/posix)编码规范要求

整体编码规范遵循OpenHarmony C语言编程规范,在命名方面遵循 posix 编码规范。

三、Liteos cmsis(kal/cmsis) 编码规范要求

整体编码规范遵循OpenHarmony C语言编程规范,在命名方面遵循 cmsis 编码规范。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值