Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
4ab25a48
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看板
提交
4ab25a48
编写于
8月 17, 2021
作者:
O
openharmony_ci
提交者:
Gitee
8月 17, 2021
浏览文件
操作
浏览文件
下载
差异文件
!568 标准系统移植文档刷新
Merge pull request !568 from Austin/master
上级
d6c6a847
cc2f8564
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
17 addition
and
15 deletion
+17
-15
zh-cn/device-dev/porting/standard-system-porting-guide.md
zh-cn/device-dev/porting/standard-system-porting-guide.md
+17
-15
未找到文件。
zh-cn/device-dev/porting/standard-system-porting-guide.md
浏览文件 @
4ab25a48
...
...
@@ -18,6 +18,7 @@
-
[
开发板移植实例
](
#开发板移植实例
)
本文描述了移植一块开发板的通用步骤,和具体芯片相关的详细移植过程无法在此一一列举。后续社区还会陆续发布开发板移植的实例供开发者参考。
## 定义开发板<a name="section132mcpsimp"></a>
本文以移植名为MyProduct的开发板为例讲解移植过程,假定MyProduct是MyProductVendor公司的开发板,使用MySoCVendor公司生产的MySOC芯片作为处理器。
...
...
@@ -41,7 +42,7 @@
### 定义产品<a name="section145mcpsimp"></a>
在“//productdefine/common/products”目录下创建以产品名命名的json文件。该文件用于描述产品所使用的SOC 以及
所需的子系统。配置如下
在“//productdefine/common/products”目录下创建以产品名命名的json文件。该文件用于描述产品所使用的SOC 以及所需的子系统。配置如下
//productdefine/common/products/MyProduct.json
...
...
@@ -80,7 +81,7 @@
./build.sh --product-name MyProduct
```
构建完成后,可以在“//out/ohos-arm-release/packages/phone/images”目录下看到构建出来的
HarmonyOS
OpenHarmony镜像文件。
构建完成后,可以在“//out/ohos-arm-release/packages/phone/images”目录下看到构建出来的OpenHarmony镜像文件。
## 内核移植<a name="section171mcpsimp"></a>
...
...
@@ -99,13 +100,13 @@
},
```
接着需要修改定义产品的配置文件//productdefine/common/products/MyProduct.json。将刚刚定义的子系统加入到产品中
接着需要修改定义产品的配置文件//productdefine/common/products/MyProduct.json。将刚刚定义的子系统加入到产品中
。
### 2. 编译内核<a name="section182mcpsimp"></a>
在上一节定义subsystem的时候,定义了构建的路径path,即//device/MySOCVendor/MySOC/build。这一节会在这个目录创建构建脚本,告诉构建系统如何构建
内核。
OpenHarmony源码中提供了Linux 4.19的内核,归档在
`//kernel/linux-4.19`
。本节以该内核版本为例,讲解如何编译
内核。
目前OpenHarmony源码中提供了Linux 4.19的内核,归档在//kernel/linux-4.19。请尽可能使用这个内核。每个SOC必然需要对内核做一些修改或扩展,建议采用补丁的方式
。
在子系统的定义中,描述了子系统构建的路径path,即
`//device/MySOCVendor/MySOC/build`
。这一节会在这个目录创建构建脚本,告诉构建系统如何构建内核
。
建议的目录结构
...
...
@@ -113,7 +114,7 @@
├── build
│ ├── kernel
│ │ ├── linux
│ │ ├──standard_patch_for_4_19.patch
│ │ ├──standard_patch_for_4_19.patch
// 基于4.19版本内核的补丁
│ ├── BUILD.gn
│ ├── ohos.build
```
...
...
@@ -197,7 +198,7 @@ root {
}
```
更详细的驱动开发指导,请参考
[
LCD
](
../driver/driver-peripherals-lcd-des.md
)
更详细的驱动开发指导,请参考
[
LCD
](
../driver/driver-peripherals-lcd-des.md
)
。
### 2. 触摸屏<a name="section229mcpsimp"></a>
...
...
@@ -211,7 +212,7 @@ root {
touch_ic_name.c
```
的文件。代码模板如下:注意:请替换ic
\_
name为你所适配芯片的名称
的文件。代码模板如下:注意:请替换ic
\_
name为你所适配芯片的名称
。
```
#include "hdf_touch.h"
...
...
@@ -235,7 +236,7 @@ struct HdfDriverEntry g_touchXXXXChipEntry = {
HDF_INIT(g_touchXXXXChipEntry);
```
其中ChipDevice中要提供若干方法
其中ChipDevice中要提供若干方法
。
<a
name=
"table240mcpsimp"
></a>
<table><tbody><tr
id=
"row245mcpsimp"
><td
class=
"cellrowborder"
valign=
"top"
width=
"50%"
><p
id=
"entry246mcpsimpp0"
><a
name=
"entry246mcpsimpp0"
></a><a
name=
"entry246mcpsimpp0"
></a>
方法
</p>
...
...
@@ -338,7 +339,7 @@ Wi-Fi驱动分为两部分,一部分负责管理WLAN设备,另一个部分
建议适配按如下步骤操作:
1.
创建HDF驱动建议将代码放置在//device/MySoCVendor/peripheral/wifi/chip
\_
name/
文件模板如下:
```
static int32_t HdfWlanHisiChipDriverInit(struct HdfDeviceObject *device) {
static struct HdfChipDriverFactory factory = CreateChipDriverFactory();
...
...
@@ -360,7 +361,7 @@ struct HdfDriverEntry g_hdfXXXChipEntry = {
HDF_INIT(g_hdfXXXChipEntry);
```
在CreateChipDriverFactory中
,需要创建一个HdfChipDriverFactory
在CreateChipDriverFactory中
需要创建一个HdfChipDriverFactory,接口如下:
<a
name=
"table312mcpsimp"
></a>
<table><tbody><tr
id=
"row317mcpsimp"
><td
class=
"cellrowborder"
valign=
"top"
width=
"50%"
><p
id=
"entry318mcpsimpp0"
><a
name=
"entry318mcpsimpp0"
></a><a
name=
"entry318mcpsimpp0"
></a>
接口
</p>
...
...
@@ -444,9 +445,10 @@ HdfChipDriver需要实现的接口有
2.
编写配置文件,描述驱动支持的设备
在产品配置目录下创建芯片的配置文件//vendor/MyProductVendor/MyProduct/config/wifi/wlan
\_
chip
\_
chip
\_
name.hcs
在产品配置目录下创建芯片的配置文件//vendor/MyProductVendor/MyProduct/config/wifi/wlan
\_
chip
\_
chip
\_
name.hcs
。
注意: 路径中的vendor
\_
name、product
\_
name、chip
\_
name请替换成实际名称
模板如下:
```
root {
...
...
@@ -492,7 +494,7 @@ config DRIVERS_WLAN_XXX
Answer Y to enable XXX Host driver. Support chip xxx
```
接着修改文件//drivers/adapter/khdf/linux/model/network/wifi/Kconfig,在文件末尾加入如下代码将配置菜单加入内核中
。
接着修改文件//drivers/adapter/khdf/linux/model/network/wifi/Kconfig,在文件末尾加入如下代码将配置菜单加入内核中
,如:
```
source "../../../../../device/MySoCVendor/peripheral/Kconfig"
...
...
@@ -500,7 +502,7 @@ source "../../../../../device/MySoCVendor/peripheral/Kconfig"
-
创建构建脚本
在//drivers/adapter/khdf/linux/model/network/wifi/Makefile文件末尾增加配置,模板如下
在//drivers/adapter/khdf/linux/model/network/wifi/Makefile文件末尾增加配置,模板如下
:
```
...
...
@@ -508,7 +510,7 @@ HDF_DEVICE_ROOT := $(HDF_DIR_PREFIX)/../device
obj-$(CONFIG_DRIVERS_WLAN_XXX) += $(HDF_DEVICE_ROOT)/MySoCVendor/peripheral/build/standard/
```
当在内核中开启DRIVERS
\_
WLAN
\_
XXX开关时,会调用//device/MySoCVendor/peripheral/build/standard/中的makefile更多详细的开发手册,请参考
[
WLAN开发
](
../guide/oem_wifi_sdk_des.md
)
。
当在内核中开启DRIVERS
\_
WLAN
\_
XXX开关时,会调用//device/MySoCVendor/peripheral/build/standard/中的makefile
。
更多详细的开发手册,请参考
[
WLAN开发
](
../guide/oem_wifi_sdk_des.md
)
。
## 开发板移植实例
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录