未验证 提交 be48c7de 编写于 作者: O openharmony_ci 提交者: Gitee

!10338 优化快速入门【需要翻译】

Merge pull request !10338 from duangavin123/master
......@@ -6,8 +6,7 @@
- [术语](../glossary.md)
- [版本说明](../release-notes/Readme.md)
- 快速开始
- [轻量和小型系统快速入门](quick-start/quickstart-ide-lite-overview.md)
- [标准系统快速入门](quick-start/quickstart-ide-standard-overview.md)
- [快速入门](quick-start/Readme-CN.md)
- 兼容性与安全
- [隐私与安全规范](security/Readme-CN.md)
- 移植
......
......@@ -36,9 +36,9 @@ OpenHarmony也提供了一系列可选的系统组件,方便设备开发者按
| --------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| 了解OpenHarmony | 整体认知OpenHarmony | -&nbsp;[OpenHarmony概述](https://gitee.com/openharmony)<br/>-&nbsp;[术语](../glossary.md) |
| 获取开发资源 | 准备开发前相关资源 | -&nbsp;[获取源码](get-code/sourcecode-acquire.md)<br/>-&nbsp;[获取工具](get-code/gettools-acquire.md) |
| 快速入门 | 快速熟悉OpenHarmony环境搭建、编译、烧录、调测、运行 | -&nbsp;[轻量和小型系统快速入门](quick-start/quickstart-ide-lite-overview.md) |
| 快速入门 | 快速熟悉OpenHarmony环境搭建、编译、烧录、调测、运行 | -&nbsp;[快速入门](quick-start/Readme-CN.md) |
| 基础能力使用 | 使用OpenHarmony提供的基础能力 | -&nbsp;[轻量系统内核开发指南](kernel/kernel-mini-overview.md)<br/>-&nbsp;[小型系统内核开发指南](kernel/kernel-small-overview.md)<br/>-&nbsp;[驱动开发指南](driver/driver-hdf-overview.md)<br/>-&nbsp;[子系统开发指南](subsystems/subsys-build-all.md)<br/>-&nbsp;[安全指南](security/security-guidelines-overall.md)<br/>-&nbsp;[隐私保护](security/security-privacy-protection.md) |
| 进阶开发 | 结合系统能力开发智能设备 | -&nbsp;[WLAN连接类产品](guide/device-wlan-led-control.md)<br/>-&nbsp;[无屏摄像头类产品](guide/device-iotcamera-control-overview.md)<br/>-&nbsp;[带屏摄像头类产品](guide/device-camera-control-overview.md) |
| 进阶开发 | 结合系统能力开发智能设备 | -&nbsp;[WLAN连接类产品](guide/device-wlan-led-control.md)<br/>-&nbsp;[带屏摄像头类产品](guide/device-camera-control-overview.md) |
| 移植适配 | -&nbsp;针对特定芯片做移植适配<br/>-&nbsp;对三方库进行移植适配<br/>-&nbsp;三方厂商移植案例<br/> | -&nbsp;[轻量系统芯片移植指导](porting/porting-minichip-overview.md)<br/>-&nbsp;[小型系统芯片移植指导](porting/porting-smallchip-prepare-needs.md)<br/>-&nbsp;[轻量和小型系统三方库移植指导](porting/porting-thirdparty-overview.md)<br/> - [带屏解决方案之恒玄芯片移植案例](porting/porting-bes2600w-on-minisystem-display-demo.md)<br/> - [Combo解决方案之ASR芯片移植案例](porting/porting-asr582x-combo-demo.md)<br/> - [物联网解决方案之芯海cst85芯片移植案例](porting/porting-cst85f01-combo-demo.md)<br/> - [轻量系统STM32F407芯片移植案例](porting/porting-stm32f407-on-minisystem-eth.md)<br/> - [Combo解决方案之W800芯片移植案例](porting/porting-w800-combo-demo.md)<br/> - [小型设备STM32MP1芯片移植案例](porting/porting-stm32mp15xx-on-smallsystem.md) |
| 贡献组件 | 为OpenHarmony贡献功能组件 | -&nbsp;[HPM&nbsp;Part&nbsp;介绍](hpm-part/hpm-part-about.md)<br/>-&nbsp;[HPM&nbsp;Part&nbsp;开发指导](hpm-part/hpm-part-development.md)<br/>-&nbsp;[HPM&nbsp;Part&nbsp;参考](hpm-part/hpm-part-reference.md) |
| 参考 | 为开发者提供常见的问题解答和HDI接口参考 | -&nbsp;[常见问题](faqs/faqs-overview.md)<br/>-&nbsp;[HDI接口参考](reference/hdi-apis/Readme-CN.md) |
......@@ -48,7 +48,7 @@ OpenHarmony也提供了一系列可选的系统组件,方便设备开发者按
| -------- | -------- | -------- |
| 了解OpenHarmony | 整体认知OpenHarmony | -&nbsp;[OpenHarmony概述](https://gitee.com/openharmony)<br/>-&nbsp;[术语](../glossary.md) |
| 获取开发资源 | 准备开发前相关资源 | -&nbsp;[获取源码](get-code/sourcecode-acquire.md)<br/>-&nbsp;[获取工具](get-code/gettools-acquire.md) |
| 快速入门 | 快速熟悉OpenHarmony环境搭建、编译、烧录、调测、运行 | -&nbsp;[标准系统快速入门](quick-start/quickstart-ide-standard-overview.md) |
| 快速入门 | 快速熟悉OpenHarmony环境搭建、编译、烧录、调测、运行 | -&nbsp;[快速入门](quick-start/Readme-CN.md)|
| 基础能力使用 | 使用OpenHarmony提供的基础能力 | -&nbsp;[内核开发指南](kernel/kernel-standard-overview.md)<br/>-&nbsp;[驱动开发指南](driver/driver-hdf-overview.md)<br/>-&nbsp;[子系统开发指南](subsystems/subsys-build-all.md)<br/>-&nbsp;[安全指南](security/security-guidelines-overall.md)<br/>-&nbsp;[隐私保护](security/security-privacy-protection.md) |
| 进阶开发 | 结合系统能力开发智能设备 | -&nbsp;[时钟应用开发指导](guide/device-clock-guide.md)<br/>-&nbsp;[平台驱动开发示例](guide/device-driver-demo.md)<br/>-&nbsp;[外设驱动开发示例](guide/device-outerdriver-demo.md) |
| 移植适配 | -&nbsp;针对特定芯片做移植适配 <br/>-&nbsp;快速移植OpenHarmony&nbsp;Linux内核的方法| -&nbsp;[标准系统芯片移植指导](porting/standard-system-porting-guide.md)<br/>-&nbsp;[一种快速移植OpenHarmony&nbsp;Linux内核的方法](porting/porting-linux-kernel.md) <br/>-&nbsp;[标准系统方案之瑞芯微RK3568移植案例](porting/porting-dayu200-on_standard-demo.md)|
......
......@@ -26,7 +26,7 @@
![zh-cn_image_0000001243481989](figures/zh-cn_image_0000001243481989.png)
2. 点击标号中的垃圾桶图标,关闭串口。
**图3** 关闭串口终端
![zh-cn_image_0000001243082093](figures/zh-cn_image_0000001243082093.png)
......@@ -88,7 +88,7 @@
> Hi3518EV300:device\hisilicon\hispark_aries\sdk_liteos\uboot\out\boot\u-boot-hi3518ev300.bin
2. 根据USB烧写步骤烧写U-boot文件。
按照[Hi3516系列USB烧写步骤](../quick-start/quickstart-ide-lite-steps-hi3516-burn.md)中描述的烧写方法,选择对应单板的U-boot文件进行烧写。
按照[Hi3516系列USB烧写步骤](../quick-start/quickstart-ide-3516-burn.md)中描述的烧写方法,选择对应单板的U-boot文件进行烧写。
3. 烧写完成后,登录串口如下图所示。
......@@ -104,7 +104,7 @@
点击烧写并选择串口后,无法获取文件。
**图6** 网络不通,单板无法获取文件图
![zh-cn_image_0000001198322428](figures/zh-cn_image_0000001198322428.png)
- **可能原因**
......@@ -124,19 +124,19 @@
![zh-cn_image_0000001198162584](figures/zh-cn_image_0000001198162584.png)
3. 点击“允许应用通过防火墙”。
**图8** 防火墙和网络保护界面图
![zh-cn_image_0000001198323146](figures/zh-cn_image_0000001198323146.png)
4. 查找Visual Studio Code应用。
**图9** 查找Visual Studio Code应用图
![zh-cn_image_0000001198003232](figures/zh-cn_image_0000001198003232.png)
5. 勾选Visual Studio Code的专用和公用网络的访问权限。
**图10** 允许Visual Studio Code应用访问网络
![zh-cn_image_0000001243084579](figures/zh-cn_image_0000001243084579.png)
......@@ -4,13 +4,6 @@
- WLAN连接类产品
- [LED外设控制](device-wlan-led-control.md)
- [集成三方SDK](device-wlan-sdk.md)
- 无屏摄像头类产品
- 摄像头控制
- [概述](device-iotcamera-control-overview.md)
- 示例开发
- [拍照开发指导](device-iotcamera-control-demo-photodevguide.md)
- [录像开发指导](device-iotcamera-control-demo-videodevguide.md)
- [应用实例](device-iotcamera-control-example.md)
- 带屏摄像头类产品
- 屏幕和摄像头控制
- [概述](device-camera-control-overview.md)
......
......@@ -3,7 +3,7 @@
本示例将运行源码中的camera示例代码,通过本示例可以实现使用开发板进行拍照、录像及预览等功能。
- 本示例源码路径为“applications/sample/camera/media/camera\_sample.cpp”。
- 在运行本示例前需先完成编译烧录、运行镜像等步骤,相关操作请参考[Hi3516快速入门](../quick-start/quickstart-lite-overview.md)
- 在运行本示例前需先完成编译烧录、运行镜像等步骤,相关操作请参考[小型系统快速入门](../quick-start/Readme-CN.md)
>![](../public_sys-resources/icon-note.gif) **说明:**
>开发板启动后默认会加载launcher应用,应用的图形界面默认显示在媒体图层上方,会影响camera\_sample的演示结果,因此需要在编译或是打包时去掉launcher应用。
......
# 真机运行<a name="ZH-CN_TOPIC_0000001054809161"></a>
应用编译打包后即可安装到开发板。安装应用前需要先完成[DevEco Device Tool的安装配置](https://device.harmonyos.com/cn/docs/ide/user-guides/service_introduction-0000001050166905),然后将OpenHarmony烧录到开发板并运行。编译烧录、运行镜像的基本操作请参考快速入门手册:[Hi3516快速入门](../quick-start/quickstart-lite-overview.md)。完成镜像运行,系统正常启动后,执行如下步骤安装或卸载三方应用。
应用编译打包后即可安装到开发板。安装应用前需要先完成[DevEco Device Tool的安装配置](https://device.harmonyos.com/cn/docs/ide/user-guides/service_introduction-0000001050166905),然后将OpenHarmony烧录到开发板并运行。编译烧录、运行镜像的基本操作请参考快速入门手册:[小型系统快速入门](../quick-start/Readme-CN.md)。完成镜像运行,系统正常启动后,执行如下步骤安装或卸载三方应用。
1. 将IDE编译的未签名应用安装包和安装工具(镜像文件生成目录中的dev\_tools)放在sdcard中,将sdcard插入开发板卡槽。
2. 应用安装默认要校验签名,需要执行以下命令,关闭签名校验。
......
# 时钟应用开发指导<a name="ZH-CN_TOPIC_0000001115417926"></a>
- [概述](#section11522349121115)
- [开发准备](#section6592121861218)
- [开发步骤](#section19901741111312)
- [签名打包](#section10601181101516)
- [真机运行](#section092721731511)
- [常见问题](#section1122413460153)
- [hdc\_std连接不到设备](#section1922725151614)
- [hdc\_std运行不了](#section15657547131615)
## 概述<a name="section11522349121115"></a>
......@@ -259,7 +250,7 @@
## 真机运行<a name="section092721731511"></a>
应用签名打包后即可安装到开发板。安装应用前需要先完成[DevEco Device Tool的安装配置](https://device.harmonyos.com/cn/docs/ide/user-guides/service_introduction-0000001050166905),然后将OpenHarmony系统烧录到开发板并运行。编译烧录、运行镜像的基本操作请参考快速入门手册:[标准系统Hi3516快速入门](../quick-start/quickstart-standard-overview.md)。完成镜像运行,系统正常启动后,执行如下步骤安装或卸载应用。
应用签名打包后即可安装到开发板。安装应用前需要先完成[DevEco Device Tool的安装配置](https://device.harmonyos.com/cn/docs/ide/user-guides/service_introduction-0000001050166905),然后将OpenHarmony系统烧录到开发板并运行。编译烧录、运行镜像的基本操作请参考快速入门手册:[标准系统Hi3516快速入门](../quick-start/quickstart-appendix-hi3516-ide.md)。完成镜像运行,系统正常启动后,执行如下步骤安装或卸载应用。
1. 从开发者工具代码仓路径中获取hdc客户端。
......
# 平台驱动开发示例<a name="ZH-CN_TOPIC_0000001157064271"></a>
- [概述](#section194201316174215)
- [环境准备](#section6926133918422)
- [开发](#section65801539470)
- [文件说明](#section0708184454414)
- [实例化驱动入口](#section85325864412)
- [设置相关参数](#section8155172019453)
- [添加控制器](#section1335374114452)
- [编译及烧录](#section164824754712)
## 概述<a name="section194201316174215"></a>
本文档将以I2C驱动为例,介绍如何基于HDF驱动框架完成平台驱动开发。
......@@ -26,7 +16,7 @@ HDF驱动框架为常用外围设备提供了标准的驱动框架,驱动开
## 环境准备<a name="section6926133918422"></a>
环境准备具体操作请参考[标准系统基础环境搭建](../quick-start/quickstart-standard-overview.md)
环境准备具体操作请参考[Hi3516标准系统入门](../quick-start/quickstart-appendix-hi3516-ide.md)完成环境搭建
>![](../public_sys-resources/icon-notice.gif) **须知:**
>本示例针对OpenHarmony轻量系统、小型系统、标准系统都适用,本文以标准系统为例。其他系统的开发者可参考对应系统的指导文档进行环境搭建。
......@@ -440,8 +430,8 @@ HDF_INIT(g_sampleI2cDriverEntry);
2. 编译及烧录。
- 安装包方式具体操作请参考标准系统快速入门[编译](../quick-start/quickstart-ide-standard-running-hi3516-build.md)[烧录](../quick-start/quickstart-ide-standard-running-hi3516-burning.md)
- 安装包方式具体操作请参考标准系统快速入门[编译](../quick-start/quickstart-appendix-hi3516-pkg.md#编译)[烧录](../quick-start/quickstart-appendix-hi3516-pkg.md#烧录)
- IDE方式具体操作请参考标准系统快速入门[编译](../quick-start/quickstart-standard-running-hi3516-build.md)[烧录](../quick-start/quickstart-standard-running-hi3516-burning.md)
- IDE方式具体操作请参考标准系统快速入门[编译](../quick-start/quickstart-appendix-hi3516-ide.md#编译)[烧录](../quick-start/quickstart-appendix-hi3516-ide.md#烧录)
# 录像开发指导<a name="ZH-CN_TOPIC_0000001054754827"></a>
- [使用场景](#zh-cn_topic_0000001051451869_section186634310418)
- [接口说明](#zh-cn_topic_0000001051451869_section125479541744)
- [约束与限制](#zh-cn_topic_0000001051451869_section1165911177314)
- [开发步骤](#zh-cn_topic_0000001051451869_section1196016315516)
## 使用场景<a name="zh-cn_topic_0000001051451869_section186634310418"></a>
使用camera采集视频码流。
## 接口说明<a name="zh-cn_topic_0000001051451869_section125479541744"></a>
参考“拍照开发指导”的“接口说明”。
## 约束与限制<a name="zh-cn_topic_0000001051451869_section1165911177314"></a>
无。
## 开发步骤<a name="zh-cn_topic_0000001051451869_section1196016315516"></a>
1. 参考“拍照开发指导”中步骤1、步骤2、步骤3、步骤4。
2. 获取录像FrameConfig。
```
/* 从recorder获取surface */
Surface *surface = recorder_->GetSurface(0);
surface->SetWidthAndHeight(1920, 1080);
surface->SetQueueSize(3);
surface->SetSize(1024 * 1024);
/* 将surface配置到帧配置中 */
FrameConfig *fc = new FrameConfig(FRAME_CONFIG_RECORD);
fc->AddSurface(*surface);
```
3. 开启和停止录像。
```
stateCallback->camera_->TriggerLoopingCapture(*fc); // 开始录像
stateCallback->camera_->StopLoopingCapture(); // 结束录像
```
# 应用实例<a name="ZH-CN_TOPIC_0000001055686082"></a>
- 开发板介绍、编译烧录、运行镜像等操作请参考[Hi3518快速入门](../quick-start/quickstart-lite-overview.md),编译结果包含示例,结果文件为out/ipcamera\_hi3518ev300/dev\_tools/bin/camera\_sample,可将文件通过读卡器复制至TF卡中,或者修改camera\_sample的编译脚本将结果文件复制至rootfs.img中。
修改applications/sample/camera/media/BUILD.gn中的output\_dir。
- 修改前:output\_dir = "$root\_out\_dir/dev\_tools"
- 修改后:output\_dir = "$root\_out\_dir/"
重新执行源码仓编译并烧写入单板后,可在单板bin目录下找到camera\_sample文件。
- 相机示例代码为applications/sample/camera/media/camera\_sample.cpp。
>![](../public_sys-resources/icon-notice.gif) **须知:**
>实例运行拍照和录像功能需要插入TF卡\(最大容量支持128GB\),系统启动后时自动将TF卡挂载至/sdcard目录,如果在启动后插入则需要手动挂载。查看拍照和录像内容可将TF卡中内容复制到电脑中进行查看,预览功能无需TF卡。
1. 通过cd命令进入可执行程序的末端路径,启动camera\_sample,执行命令如下图。
**图 1** 启动示例<a name="zh-cn_topic_0000001055301733_fig380985885020"></a>
![](figures/启动示例.png "启动示例")
运行后的控制命令如串口打印所示,按s键停止当前操作(包括录像和预览),按q键退出示例程序。
2. 按1进行拍照,拍照的文件格式为jpg,存储在/sdcard,文件名Capture\*
**图 2** 输入拍照指令后串口打印日志<a name="zh-cn_topic_0000001055301733_fig17819185018384"></a>
![](figures/输入拍照指令后串口打印日志.png "输入拍照指令后串口打印日志")
若想查看保存文件,可在退出程序后进入文件系统查看,退出后重新进入请回到步骤1。
**图 3** 查看文件图<a name="zh-cn_topic_0000001055301733_fig166391743154619"></a>
![](figures/查看文件图.png "查看文件图")
3. 按2进行录像,录像的文件格式为mp4,存储在/sdcard,文件名Record\*,按s键停止
**图 4** 输入录像指令后串口打印日志<a name="zh-cn_topic_0000001055301733_fig6340814174317"></a>
![](figures/输入录像指令后串口打印日志.png "输入录像指令后串口打印日志")
4. 按q键退出
**图 5** 输出退出指令后串口打印日志<a name="zh-cn_topic_0000001055301733_fig1755682174514"></a>
![](figures/输出退出指令后串口打印日志.png "输出退出指令后串口打印日志")
# 概述<a name="ZH-CN_TOPIC_0000001055366100"></a>
本文档将介绍如何基于IoT Camera开发板,利用开发套件中自带的摄像头,完成拍照、录像功能。
开发者可通过执行示例应用,对开发板的外设控制有了更深入了解后,可使用开发板完成摄像头等设备。
若开发者想先查看示例效果,请进入[应用实例](device-iotcamera-control-example.md)。如需自定义应用行为,可参考下节“示例开发”对示例代码进行修改。
相机开发基本概念可参考:[相机开发概述](../subsystems/subsys-multimedia-camera-overview.md)
......@@ -25,7 +25,7 @@ Input驱动模型核心部分由设备管理层、公共驱动层、器件驱动
## 环境搭建<a name="section661075474418"></a>
环境准备具体操作请参考[标准系统基础环境搭建](../quick-start/quickstart-standard-overview.md)
环境准备具体操作请参考[快速入门环境搭建章节](../quick-start/Readme-CN.md)
>![](../public_sys-resources/icon-notice.gif) **须知:**
>本示例针对OpenHarmony轻量系统、小型系统、标准系统都适用,本文以标准系统为例。其他系统的开发者可参考对应系统的指导文档进行环境搭建。
......@@ -316,7 +316,7 @@ Input模型由三层驱动组成,开发者适配一款全新触摸屏驱动只
其中touch\_gt911.o为本示例中追加的内容。
2. 具体编译及烧录操作请参考[标准系统快速入门编译及烧录章节](../quick-start/quickstart-standard-overview.md)
2. 具体编译及烧录操作请参考[标准系统快速入门的编译及烧录章节](../quick-start/Readme-CN.md)
## 调试验证<a name="section62577313482"></a>
......
......@@ -10,7 +10,7 @@ OpenHarmony WLAN模组基于Hi3861平台提供了丰富的外设操作能力,
## 开发<a name="section13857170163412"></a>
1. 请先完成[《Hi3861快速入门》](../quick-start/quickstart-lite-overview.md)
1. 请先完成[轻量系统快速入门](../quick-start/Readme-CN.md)
LED控制参考示例存放于applications/sample/wifi-iot/app/iothardware/led\_example.c文件中。
......@@ -100,7 +100,7 @@ OpenHarmony WLAN模组基于Hi3861平台提供了丰富的外设操作能力,
## 验证<a name="section1949121910344"></a>
编译过程请参考[Hi3861快速入门-源码编译](../quick-start/quickstart-lite-steps-hi3861-building.md)》,烧录过程请参考《[Hi3861快速入门-镜像烧录](../quick-start/quickstart-lite-steps-hi3861-burn.md)
编译过程请参考[轻量系统快速入门的编译章节](../quick-start/quickstart-ide-3861-build.md),烧录过程请参考[轻量系统快速入门的烧录章节](../quick-start/quickstart-ide-3861-burn.md)
完成以上两步后,按下RST键复位模组,可发现LED在周期性闪烁,与预期相符,验证完毕。
......
......@@ -98,7 +98,7 @@ LiteOS-M内核的编译构建系统是一个基于gn和ninja的组件化构建
### 搭建系统基础环境
在搭建各个开发板环境前,需要完成OpenHarmony系统基础环境搭建。系统基础环境主要是指OpenHarmony的编译环境和开发环境,详细介绍请参考官方站点[开发环境准备](../quick-start/quickstart-lite-env-setup.md)。开发者需要根据环境搭建文档完成环境搭建。
在搭建各个开发板环境前,需要完成OpenHarmony系统基础环境搭建。系统基础环境主要是指OpenHarmony的编译环境和开发环境,详细介绍请参考官方站点[快速入门环境搭建部分](../quick-start/Readme-CN.md)。开发者需要根据环境搭建文档完成环境搭建。
### 获取OpenHarmony源码
......
......@@ -45,7 +45,7 @@ Linux内核移植主要涉及基于linux内核基线合入三方芯片补丁后
4. 烧录启动。
由于不同芯片的开发板的烧录方式不一样,此处不表述具体的烧录方式。需要注意烧录的各镜像的大小及启动参数的配置,参考hi3516dv300采用uboot启动参数:
```
setenv bootargs 'mem=128M console=ttyAMA0,115200 root=/dev/mmcblk0p3 ro rootfstype=ext4 rootwait blkdevparts=mmcblk0:1M(boot),9M(kernel),50M(rootfs),50M(userfs)'
```
......@@ -53,7 +53,7 @@ Linux内核移植主要涉及基于linux内核基线合入三方芯片补丁后
## 验证
调试init进程、启动shell和运行简单的用户态程序,验证内核移植是否成功。OpenHarmony[小型系统](../quick-start/quickstart-lite-overview.md)的OS镜像结构以及linux用户态的启动流程如下图1所示:
调试init进程、启动shell和运行简单的用户态程序,验证内核移植是否成功。OpenHarmony小型系统的OS镜像结构以及linux用户态的启动流程如下图1所示:
**图1** 基于linux内核的OS镜像结构和用户态程序启动流程
![zh-cn_image_0000001154372318](figures/zh-cn_image_0000001154372318.png)
......
......@@ -2,7 +2,7 @@
## 编译环境搭建
首先请搭建OpenHarmony基础环境,步骤请参考轻量和小型系统入门[安装Hi3861开发板环境](../quick-start/quickstart-lite-steps-hi3861-setting.md)。用户态和LiteOS-A的内核态编译均使用llvm编译器编译,安装方法在搭建基础环境中已提供。若选择移植linux内核,请执行如下命令安装gcc-arm-linux-gnueabi交叉编译工具链,用于编译linux内核态镜像:
首先请搭建OpenHarmony基础环境,相关操作请参考[快速入门环境搭建章节](../quick-start/Readme-CN.md)。用户态和LiteOS-A的内核态编译均使用llvm编译器编译,安装方法在搭建基础环境中已提供。若选择移植linux内核,请执行如下命令安装gcc-arm-linux-gnueabi交叉编译工具链,用于编译linux内核态镜像:
```
......
# 移植须知
本文详细介绍如何将OpenHarmony[小型系统](../quick-start/quickstart-lite-overview.md)的linux和LiteOS-A内核移植到新的开发板上,要求读者具有一定的嵌入式系统开发经验。建议先查看[入门指导](../../OpenHarmony-Overview_zh.md),以了解OpenHarmony软件架构、目录结构、内核子系统和驱动子系统相关知识。当前小型系统已适配的开发板如下表所示:
本文详细介绍如何将OpenHarmony小型系统的linux和LiteOS-A内核移植到新的开发板上,要求读者具有一定的嵌入式系统开发经验。建议先查看[入门指导](../../OpenHarmony-Overview_zh.md),以了解OpenHarmony软件架构、目录结构、内核子系统和驱动子系统相关知识。当前小型系统已适配的开发板如下表所示:
**表1** OpenHarmony小型系统已适配的开发板
| 开发板 | 内核 | arch | ROM | RAM | 文件系统 | Flash&nbsp;类型 |
| 开发板 | 内核 | arch | ROM | RAM | 文件系统 | Flash&nbsp;类型 |
| -------- | -------- | -------- | -------- | -------- | -------- | -------- |
| hispark_taurus | LiteOS-A和linux-4.19 | ARM&nbsp;cortex-a7 | 8G | 1GB | VFAT、EXT4 | eMMC4.5 |
| hispark_aries | LiteOS-A | ARM&nbsp;cortex-a7 | 16M | 512M | JFFS2 | SPI&nbsp;NOR |
| hispark_taurus | LiteOS-A和linux-4.19 | ARM&nbsp;cortex-a7 | 8G | 1GB | VFAT、EXT4 | eMMC4.5 |
| hispark_aries | LiteOS-A | ARM&nbsp;cortex-a7 | 16M | 512M | JFFS2 | SPI&nbsp;NOR |
表1中的开发板可作为待移植开发板的参考,当前LiteOS-A和linux-4.19支持的arch、ROM占用、支持的文件系统和支持的Flash类型如下表所示:
......@@ -17,7 +17,7 @@
**表2** OpenHarmony小型系统内核移植信息表
| 内核 | 支持的arch | ROM | 文件系统 | Flash类型 |
| 内核 | 支持的arch | ROM | 文件系统 | Flash类型 |
| -------- | -------- | -------- | -------- | -------- |
| LiteOS-A | ARMv7 | &gt;&nbsp;2M | VFAT、JFFS2、YAFFS2 | SPI&nbsp;NOR、NAND、EMMC |
| linux-4.19 | ARM,&nbsp;ARM64、&nbsp;MIPS、&nbsp;X86等 | &gt;&nbsp;5M | VFAT、JFFS2、YAFFS、EXT/2/3/4、NFS等等 | NOR、NAND、EMMC等 |
| LiteOS-A | ARMv7 | &gt;&nbsp;2M | VFAT、JFFS2、YAFFS2 | SPI&nbsp;NOR、NAND、EMMC |
| linux-4.19 | ARM,&nbsp;ARM64、&nbsp;MIPS、&nbsp;X86等 | &gt;&nbsp;5M | VFAT、JFFS2、YAFFS、EXT/2/3/4、NFS等等 | NOR、NAND、EMMC等 |
......@@ -10,23 +10,23 @@
**表1** 源码目录结构
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| double-conversion/cmake/ | CMake组织编译使用到的模板 |
| double-conversion/double-conversion/ | 源文件目录 |
| double-conversion/msvc/ | - |
| double-conversion/test/ | 测试用例源文件 |
| double-conversion/.gitignore | - |
| double-conversion/AUTHORS | - |
| double-conversion/BUILD | - |
| double-conversion/CMakeLists.txt | CMake方式顶层编译组织文件 |
| double-conversion/COPYING | - |
| double-conversion/Changelog | - |
| double-conversion/LICENSE | - |
| double-conversion/Makefile | - |
| double-conversion/README.md | - |
| double-conversion/SConstruct | - |
| double-conversion/WORKSPACE | - |
| double-conversion/cmake/ | CMake组织编译使用到的模板 |
| double-conversion/double-conversion/ | 源文件目录 |
| double-conversion/msvc/ | - |
| double-conversion/test/ | 测试用例源文件 |
| double-conversion/.gitignore | - |
| double-conversion/AUTHORS | - |
| double-conversion/BUILD | - |
| double-conversion/CMakeLists.txt | CMake方式顶层编译组织文件 |
| double-conversion/COPYING | - |
| double-conversion/Changelog | - |
| double-conversion/LICENSE | - |
| double-conversion/Makefile | - |
| double-conversion/README.md | - |
| double-conversion/SConstruct | - |
| double-conversion/WORKSPACE | - |
## 移植思路
......@@ -76,7 +76,7 @@ CMake方式可通过指定工具链进行交叉编译,修改并编译该库,
2. 执行编译
linux命令行中进入double-conversion的源文件目录(即标1所示目录),执行下列命令:
```
mkdir build && cd build
cmake .. -DBUILD_TESTING=ON -DOHOS_SYSROOT_PATH="..."
......@@ -90,24 +90,24 @@ CMake方式可通过指定工具链进行交叉编译,修改并编译该库,
**表2** 编译生成文件目录结构
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| double-conversion/build/libdouble-conversion.a | 生成的静态库文件 |
| double-conversion/build/test/ | 目录下存放生成的测试用例和相关CMake缓存文件 |
| double-conversion/build/CMakeCache.txt | CMake构建过程中的缓存文件 |
| double-conversion/build/CMakeFiles/ | - |
| double-conversion/build/cmake_install.cmake | - |
| double-conversion/build/CTestTestfile.cmake | - |
| double-conversion/build/DartConfiguration.tcl | - |
| double-conversion/build/generated/ | - |
| double-conversion/build/Makefile | - |
| double-conversion/build/Testing/ | - |
| double-conversion/build/libdouble-conversion.a | 生成的静态库文件 |
| double-conversion/build/test/ | 目录下存放生成的测试用例和相关CMake缓存文件 |
| double-conversion/build/CMakeCache.txt | CMake构建过程中的缓存文件 |
| double-conversion/build/CMakeFiles/ | - |
| double-conversion/build/cmake_install.cmake | - |
| double-conversion/build/CTestTestfile.cmake | - |
| double-conversion/build/DartConfiguration.tcl | - |
| double-conversion/build/generated/ | - |
| double-conversion/build/Makefile | - |
| double-conversion/build/Testing/ | - |
## 测试
1. 搭建OpenHarmony环境
以Hi3516DV300为例,编译出OpenHarmony镜像,烧写到开发板,参考[开发Hi3516第一个示例程序](../quick-start/quickstart-lite-steps-hi3516-running.md)
以Hi3516DV300为例,编译出OpenHarmony镜像,烧写到开发板,相关操作可参考[快速入门小型系统部分](../quick-start/Readme-CN.md)
进入系统如下所示:
......@@ -129,7 +129,7 @@ CMake方式可通过指定工具链进行交叉编译,修改并编译该库,
```
上述命令执行结果部分展示:
```
test-bignum/Assign<
......@@ -178,12 +178,12 @@ CMake方式可通过指定工具链进行交叉编译,修改并编译该库,
**表3** 添加到工程后的目录结构
| 名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| OpenHarmony/third_party/double-conversion/BUILD.gn | 将三方库加入工程的gn适配文件 |
| OpenHarmony/third_party/double-conversion/build_thirdparty.py | GN调用shell命令脚本文件,由上面GN文件将相关命令传入,实现GN转CMake |
| OpenHarmony/third_party/double-conversion/config.gni | 三方库编译配置文件,可修改该文件来配置用例是否参与构建等 |
| OpenHarmony/third_party/double-conversion/double-conversion/ | 要移植的三方库目录 |
| OpenHarmony/third_party/double-conversion/BUILD.gn | 将三方库加入工程的gn适配文件 |
| OpenHarmony/third_party/double-conversion/build_thirdparty.py | GN调用shell命令脚本文件,由上面GN文件将相关命令传入,实现GN转CMake |
| OpenHarmony/third_party/double-conversion/config.gni | 三方库编译配置文件,可修改该文件来配置用例是否参与构建等 |
| OpenHarmony/third_party/double-conversion/double-conversion/ | 要移植的三方库目录 |
2. 添加gn到CMake适配文件
- **新增的BUILD.gn文件实现如下,其他采用CMake方式可独立编译的三方库移植到OpenHarmony平台时只需修改路径即可**
......@@ -289,7 +289,7 @@ CMake方式可通过指定工具链进行交叉编译,修改并编译该库,
执行下列命令
```
hb build -T //third_party/double-conversion:double-conversion
```
......
# 快速入门
- 轻量和小型系统快速入门(IDE方式,推荐)
- [轻量与小型系统入门概述](quickstart-ide-lite-overview.md)
- 准备轻量与小型系统环境
- [搭建Windows+Ubuntu混合开发环境](quickstart-ide-lite-env-setup-win-ubuntu.md)
- [获取源码](quickstart-ide-lite-sourcecode-acquire.md)
- [导入源码工程](quickstart-ide-lite-create-project.md)
- 运行“Hello World”
- Hi3861开发板
- [编写“Hello World”程序](quickstart-ide-lite-steps-hi3861-helloworld.md)
- [编译](quickstart-ide-lite-steps-hi3861-building.md)
- [烧录](quickstart-ide-lite-steps-hi3861-burn.md)
- [联网](quickstart-ide-lite-steps-hi3861-netconfig.md)
- [调试验证](quickstart-ide-lite-steps-hi3861-debug.md)
- [运行](quickstart-ide-lite-steps-hi3861-running.md)
- Hi3516开发板
- [编写“Hello World”程序](quickstart-ide-lite-steps-hi3516-helloworld.md)
- [编译](quickstart-ide-lite-steps-hi3516-building.md)
- [烧录](quickstart-ide-lite-steps-hi3516-burn.md)
- [运行](quickstart-ide-lite-steps-hi3516-running.md)
- 附录
- [Hi3861开发板介绍](quickstart-ide-lite-introduction-hi3861.md)
- [Hi3516开发板介绍](quickstart-ide-lite-introduction-hi3516.md)
- [编译形态整体说明](quickstart-build.md)
- 轻量和小型系统快速入门(安装包方式)
- [轻量与小型系统入门概述](quickstart-lite-overview.md)
- [搭建轻量与小型系统环境](quickstart-lite-env-setup.md)
- 运行“Hello World”
- Hi3861开发板
- [安装Hi3861开发板环境](quickstart-lite-steps-hi3861-setting.md)
- [编写“Hello World”程序](quickstart-lite-steps-hi3861-helloworld.md)
- [编译](quickstart-lite-steps-hi3861-building.md)
- [烧录](quickstart-lite-steps-hi3861-burn.md)
- [联网](quickstart-lite-steps-hi3861-netconfig.md)
- [调试验证](quickstart-lite-steps-hi3861-debug.md)
- [运行](quickstart-lite-steps-hi3861-running.md)
- Hi3516开发板
- [安装Hi3516开发板环境](quickstart-lite-steps-hi3516-setting.md)
- [编写“Hello World”程序](quickstart-lite-steps-hi3516-helloworld.md)
- [编译](quickstart-lite-steps-hi3516-building.md)
- [烧录](quickstart-lite-steps-hi3516-burn.md)
- [运行](quickstart-lite-steps-hi3516-running.md)
- 常见问题
- [hb安装异常](quickstart-lite-faq-hb.md)
- [编译异常](quickstart-lite-faq-compose.md)
- [烧录异常](quickstart-lite-faq-burning.md)
- 附录
- 开发板介绍
- [Hi3861开发板介绍](quickstart-lite-introduction-hi3861.md)
- [Hi3516开发板介绍](quickstart-lite-introduction-hi3516.md)
- [参考信息](quickstart-lite-reference.md)
- [使用HiTool烧录代码](quickstart-lite-hitool.md)
- [编译形态整体说明](quickstart-build.md)
- 标准系统快速入门(IDE方式,推荐)
- [标准系统入门概述](quickstart-ide-standard-overview.md)
- 准备标准系统环境
- [搭建Windows+Ubuntu混合开发环境](quickstart-ide-standard-env-setup-win-ubuntu.md)
- [获取源码](quickstart-ide-standard-sourcecode-acquire.md)
- [导入源码工程](quickstart-ide-standard-create-project.md)
- 运行“Hello World”
- Hi3516开发板
- [编写“Hello World”程序](quickstart-ide-standard-running-hi3516-create.md)
- [编译](quickstart-ide-standard-running-hi3516-build.md)
- [烧录](quickstart-ide-standard-running-hi3516-burning.md)
- [运行](quickstart-ide-standard-running-hi3516-running.md)
- RK3568开发板
- [编写“Hello World”程序](quickstart-ide-standard-running-rk3568-create.md)
- [编译](quickstart-ide-standard-running-rk3568-build.md)
- [烧录](quickstart-ide-standard-running-rk3568-burning.md)
- [运行](quickstart-ide-standard-running-rk3568-running.md)
- 附录
- [Hi3516开发板介绍](quickstart-ide-standard-board-introduction-hi3516.md)
- [RK3568开发板介绍](quickstart-ide-standard-board-introduction-rk3568.md)
- [编译形态整体说明](quickstart-build.md)
- 标准系统快速入门(安装包方式)
- [标准系统入门概述](quickstart-standard-overview.md)
- [搭建标准系统环境](quickstart-standard-env-setup.md)
- 运行“Hello World”
- Hi3516开发板
- [编写“Hello World”程序](quickstart-std-3516-create.md)
- [编译](quickstart-standard-running-hi3516-build.md)
- [烧录](quickstart-standard-running-hi3516-burning.md)
- [运行](quickstart-standard-running-hi3516-running.md)
- RK3568开发板
- [编写“Hello World”程序](quickstart-standard-running-rk3568-create.md)
- [编译](quickstart-standard-running-rk3568-build.md)
- [烧录](quickstart-standard-running-rk3568-burning.md)
- [运行](quickstart-standard-running-rk3568-running.md)
- 常见问题
- [hb安装异常](quickstart-standard-faq-hb.md)
- [编译异常](quickstart-standard-faq-compose.md)
- [烧录异常](quickstart-standard-faq-burning.md)
- 附录
- 开发板介绍
- [Hi3516开发板介绍](quickstart-standard-board-introduction-hi3516.md)
- [RK3568开发板介绍](quickstart-standard-board-introduction-rk3568.md)
- [参考信息](quickstart-standard-reference.md)
- [使用HiTool烧录代码](quickstart-standard-hitool.md)
- [编译形态整体说明](quickstart-build.md)
\ No newline at end of file
- [快速入门概述](quickstart-overview.md)
- 基于IDE入门
- 搭建开发环境
- [搭建Windows环境](quickstart-ide-env--win.md)
- [搭建Ubuntu环境](quickstart-ide-env-ubuntu.md)
- [配置远程访问环境](quickstart-ide-env-remote.md)
- [创建工程并获取源码](quickstart-ide-import-project.md)
- 轻量系统(基于Hi3861开发板)
- [编写“Hello World”程序](quickstart-ide-3861-helloworld.md)
- [编译](quickstart-ide-3861-build.md)
- [烧录](quickstart-ide-3861-burn.md)
- [运行](quickstart-ide-3861-running.md)
- 小型系统(基于Hi3516开发板)
- [编写“Hello World”程序](quickstart-ide-3516-helloworld.md)
- [编译](quickstart-ide-3516-build.md)
- [烧录](quickstart-ide-3516-burn.md)
- [运行](quickstart-ide-3516-running.md)
- 标准系统(基于RK3568开发板)
- [编写“Hello World”程序](quickstart-ide-3568-helloworld.md)
- [编译](quickstart-ide-3568-build.md)
- [烧录](quickstart-ide-3568-burn.md)
- [运行](quickstart-ide-3568-running.md)
- 基于命令行入门
- 搭建开发环境
- [准备开发环境](quickstart-pkg-prepare.md)
- [安装库和工具集](quickstart-pkg-install_package.md)
- [获取源码](quickstart-pkg-sourcecode.md)
- [安装编译工具](quickstart-pkg-install_tool.md)
- 轻量系统(基于Hi3861开发板)
- [安装Hi3861开发板特有环境](quickstart-pkg-3861-tool.md)
- [编写“Hello World”程序](quickstart-pkg-3861-helloworld.md)
- [编译](quickstart-pkg-3861-build.md)
- [烧录](quickstart-pkg-3861-burn.md)
- [运行](quickstart-pkg-3861-running.md)
- 小型系统(基于Hi3516开发板)
- [编写“Hello World”程序](quickstart-pkg-3516-helloworld.md)
- [编译](quickstart-pkg-3516-build.md)
- [烧录](quickstart-pkg-3516-burn.md)
- [运行](quickstart-pkg-3516-running.md)
- 标准系统(基于RK3568开发板)
- [编写“Hello World”程序](quickstart-pkg-3568-helloworld.md)
- [编译](quickstart-pkg-3568-build.md)
- [烧录](quickstart-pkg-3568-burn.md)
- [运行](quickstart-pkg-3568-running.md)
- 常用信息
- [配置代理](quickstart-pkg-common-proxy.md)
- [使用build.sh脚本编译源码](quickstart-pkg-common-build.md)
- [hb安装异常处理](quickstart-pkg-common-hberr.md)
- [编译异常处理](quickstart-pkg-common-builderr.md)
- [烧录异常处理](quickstart-pkg-common-burnerr.md)
- 附录
- [Hi3516开发板介绍](quickstart-appendix-hi3516.md)
- [Hi3861开发板介绍](quickstart-appendix-hi3861.md)
- [RK3568开发板介绍](quickstart-appendix-rk3568.md)
- [编译形态整体说明](quickstart-appendix-compiledform.md)
- [Hi3516标准系统入门(IDE方式)](quickstart-appendix-hi3516-ide.md)
- [Hi3516标准系统入门(命令行方式)](quickstart-appendix-hi3516-pkg.md)
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册