diff --git a/zh-cn/device-dev/quick-start/Readme-CN.md b/zh-cn/device-dev/quick-start/Readme-CN.md index 2e6f75717127b19bd89a7154c6759460739bee5c..5ef52e476d38bc31e7e80ae4b7c4409d81083016 100644 --- a/zh-cn/device-dev/quick-start/Readme-CN.md +++ b/zh-cn/device-dev/quick-start/Readme-CN.md @@ -1,64 +1,48 @@ # 快速入门 - -- [轻量和小型系统入门](quickstart-lite.md) - - [轻量与小型系统入门概述](quickstart-lite-overview.md) - - [搭建轻量与小型系统环境](quickstart-lite-env-setup.md) - - [搭建系统环境概述](quickstart-lite-env-setup-overview.md) - - [开发环境准备](quickstart-lite-env-prepare.md) - - [获取源码](quickstart-lite-sourcecode-acquire.md) - - [使用安装包方式搭建编译环境](quickstart-lite-package-environment.md) - - [使用Docker方式搭建编译环境](quickstart-lite-docker-environment.md) - - [常见问题](quickstart-lite-env-setup-faqs.md) - - - [运行“Hello World”](quickstart-lite-steps.md) - - [Hi3861开发板](quickstart-lite-steps-hi3861.md) - - [安装开发板环境](quickstart-lite-steps-hi3861-setting.md) - - [新建应用程序](quickstart-lite-steps-hi3861-application-framework.md) - - [编译](quickstart-lite-steps-hi3861-building.md) - - [烧录](quickstart-lite-steps-hi3861-burn.md) - - [调试验证](quickstart-lite-steps-hi3861-debug.md) - - [运行](quickstart-lite-steps-hi3861-running.md) - - [常见问题](quickstart-lite-steps-hi3861-faqs.md) - - - [Hi3516开发板](quickstart-lite-steps-hi3516.md) - - [安装开发板环境](quickstart-lite-steps-hi3516-setting.md) - - [新建应用程序](quickstart-lite-steps-hi3516-application-framework.md) - - [编译](quickstart-lite-steps-hi3516-building.md) - - [烧录](quickstart-lite-steps-hi3516-burn.md) - - [运行](quickstart-lite-steps-hi3516-running.md) - - [常见问题](quickstart-lite-steps-hi3516-faqs.md) - - - [Hi3518开发板](quickstart-lite-steps-hi3518.md) - - [安装开发板环境](quickstart-lite-steps-hi3518-setting.md) - - [新建应用程序](quickstart-lite-steps-hi3518-application-framework.md) - - [编译](quickstart-lite-steps-hi3518-building.md) - - [烧录](quickstart-lite-steps-hi3518-burn.md) - - [运行](quickstart-lite-steps-hi3518-running.md) - - [常见问题](quickstart-lite-steps-hi3518-faqs.md) - - - [附录](quickstart-lite-introduction.md) - - [Hi3861开发板介绍](quickstart-lite-introduction-hi3861.md) - - [Hi3516开发板介绍](quickstart-lite-introduction-hi3516.md) - - [Hi3518开发板介绍](quickstart-lite-introduction-hi3518.md) - -- [标准系统入门](quickstart-standard.md) - - [标准系统入门简介](quickstart-standard-overview.md) - - [标准系统开发环境准备(仅Hi3516需要)](quickstart-standard-env-setup.md) - - [获取源码](quickstart-standard-sourcecode-acquire.md) - - [运行“Hello World”](quickstart-standard-running.md) - - [Hi3516开发板](quickstart-standard-running-hi3516.md) - - [创建应用程序](quickstart-standard-running-hi3516-create.md) - - [编译](quickstart-standard-running-hi3516-build.md) - - [烧录](quickstart-standard-running-hi3516-burn.md) - - [运行](quickstart-standard-running-hi3516-run.md) - - - [RK3568开发板](quickstart-standard-running-rk3568.md) - - [创建应用程序](quickstart-standard-running-rk3568-create.md) - - [编译](quickstart-standard-running-rk3568-build.md) - - [烧录](quickstart-standard-running-rk3568-burn.md) - - [运行](quickstart-standard-running-rk3568-run.md) - - - [常见问题](quickstart-standard-faqs.md) - - [附录](quickstart-standard-appendix.md) - - [Hi3516开发板介绍](quickstart-standard-appendix-hi3516.md) - - [RK3568开发板介绍](quickstart-standard-appendix-rk3568.md) \ No newline at end of file +- 轻量和小型系统快速入门 + - [轻量与小型系统入门概述](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-application-framework.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-hi3816-running.md) + - Hi3516开发板 + - [编写“Hello World”程序](quickstart-ide-lite-steps-hi3516-application-framework.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-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) + - 附录 + - 快速入门(安装包方式) + - [轻量和小型系统快速入门(安装包方式)](quickstart-docker-lite.md) + - [标准系统快速入门(安装包方式)](quickstart-standard-docker.md) + - 开发板介绍 + - [Hi3516开发板介绍](quickstart-ide-standard-board-introduction-hi3516.md) + - [RK3568开发板介绍](quickstart-ide-standard-board-introduction-rk3568.md) diff --git a/zh-cn/device-dev/quick-start/figures/1-11.png b/zh-cn/device-dev/quick-start/figures/1-11.png deleted file mode 100644 index 8ed1535a6bc23dc5bd02fbd5a3f1392f46ad8d83..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/1-11.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/1.png b/zh-cn/device-dev/quick-start/figures/1.png deleted file mode 100644 index 791dfeae272070b7e285ea3070ebd3b1e9100eb5..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/1.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/10.png b/zh-cn/device-dev/quick-start/figures/10.png deleted file mode 100644 index 3b7f6f4766c54f6ca1e0057fc8f869785cc63e56..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/10.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/2021-01-27_170334-10.png b/zh-cn/device-dev/quick-start/figures/2021-01-27_170334-10.png deleted file mode 100644 index 5b573a4ddfe89fe25cb1b567736823244fdb9e97..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/2021-01-27_170334-10.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/2021-01-27_170334.png b/zh-cn/device-dev/quick-start/figures/2021-01-27_170334.png deleted file mode 100644 index 5b573a4ddfe89fe25cb1b567736823244fdb9e97..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/2021-01-27_170334.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/3-0.png b/zh-cn/device-dev/quick-start/figures/3-0.png deleted file mode 100644 index f354b2d27ce06bd5af6a8702c0894bf5c50a97bb..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/3-0.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/3.png b/zh-cn/device-dev/quick-start/figures/3.png deleted file mode 100644 index 91f3fa22153f501e308fab46f92f2e95995f1917..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/3.png and /dev/null differ diff --git "a/zh-cn/device-dev/quick-start/figures/3516\346\255\243\351\235\242.png" "b/zh-cn/device-dev/quick-start/figures/3516\346\255\243\351\235\242.png" deleted file mode 100644 index 104d678519e65bbbc8ce84fbceb53210d826ba6d..0000000000000000000000000000000000000000 Binary files "a/zh-cn/device-dev/quick-start/figures/3516\346\255\243\351\235\242.png" and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/4.png b/zh-cn/device-dev/quick-start/figures/4.png deleted file mode 100644 index 3f5fa2829949e59d498da9dd5ff1f48fa0647cf1..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/4.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/5.png b/zh-cn/device-dev/quick-start/figures/5.png deleted file mode 100644 index f3a76a6922315fe595ae4214331ce322766b3b48..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/5.png and /dev/null differ diff --git "a/zh-cn/device-dev/quick-start/figures/Hi3516\345\215\225\346\235\277\346\255\243\351\235\242\345\244\226\350\247\202\345\233\276.png" "b/zh-cn/device-dev/quick-start/figures/Hi3516\345\215\225\346\235\277\346\255\243\351\235\242\345\244\226\350\247\202\345\233\276.png" deleted file mode 100644 index 104d678519e65bbbc8ce84fbceb53210d826ba6d..0000000000000000000000000000000000000000 Binary files "a/zh-cn/device-dev/quick-start/figures/Hi3516\345\215\225\346\235\277\346\255\243\351\235\242\345\244\226\350\247\202\345\233\276.png" and /dev/null differ diff --git "a/zh-cn/device-dev/quick-start/figures/Hi3518EV300\345\215\225\346\235\277\346\255\243\351\235\242\345\244\226\350\247\202\345\233\276.png" "b/zh-cn/device-dev/quick-start/figures/Hi3518EV300\345\215\225\346\235\277\346\255\243\351\235\242\345\244\226\350\247\202\345\233\276.png" deleted file mode 100755 index 93cadcb6edf9d8b4d701faf7e070f74cc09ef553..0000000000000000000000000000000000000000 Binary files "a/zh-cn/device-dev/quick-start/figures/Hi3518EV300\345\215\225\346\235\277\346\255\243\351\235\242\345\244\226\350\247\202\345\233\276.png" and /dev/null differ diff --git "a/zh-cn/device-dev/quick-start/figures/Hi3518\346\255\243\350\203\214\351\235\242.png" "b/zh-cn/device-dev/quick-start/figures/Hi3518\346\255\243\350\203\214\351\235\242.png" deleted file mode 100644 index 3e0ff2fdbfbaca179f1320b5d53ebf755d1c84a3..0000000000000000000000000000000000000000 Binary files "a/zh-cn/device-dev/quick-start/figures/Hi3518\346\255\243\350\203\214\351\235\242.png" and /dev/null differ diff --git "a/zh-cn/device-dev/quick-start/figures/Hi3518\347\274\226\350\257\221\350\256\276\347\275\256\345\233\276\344\276\213-Docker\346\226\271\345\274\217.png" "b/zh-cn/device-dev/quick-start/figures/Hi3518\347\274\226\350\257\221\350\256\276\347\275\256\345\233\276\344\276\213-Docker\346\226\271\345\274\217.png" deleted file mode 100644 index ffdeca24f4b017d7a35fc96999d04faaa09972e5..0000000000000000000000000000000000000000 Binary files "a/zh-cn/device-dev/quick-start/figures/Hi3518\347\274\226\350\257\221\350\256\276\347\275\256\345\233\276\344\276\213-Docker\346\226\271\345\274\217.png" and /dev/null differ diff --git "a/zh-cn/device-dev/quick-start/figures/RK3568\345\274\200\345\217\221\346\235\277\346\255\243\351\235\242.png" "b/zh-cn/device-dev/quick-start/figures/RK3568\345\274\200\345\217\221\346\235\277\346\255\243\351\235\242.png" deleted file mode 100644 index c728580c57510fa2fe67a7e337492adae328d7ea..0000000000000000000000000000000000000000 Binary files "a/zh-cn/device-dev/quick-start/figures/RK3568\345\274\200\345\217\221\346\235\277\346\255\243\351\235\242.png" and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/Snap22.png b/zh-cn/device-dev/quick-start/figures/Snap22.png deleted file mode 100644 index d94579cb7ff78a40cef6cf5d1945e742a9551e8b..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/Snap22.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/Snap23.png b/zh-cn/device-dev/quick-start/figures/Snap23.png deleted file mode 100644 index 92e51762a2dcd636135f6e7856073a5b8aecd1d6..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/Snap23.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/Snap24.png b/zh-cn/device-dev/quick-start/figures/Snap24.png deleted file mode 100644 index d4996e347660921fc3f723e5b48942f1fd6636f5..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/Snap24.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/button.png b/zh-cn/device-dev/quick-start/figures/button.png deleted file mode 100755 index 686385e096a24ec1906169d2b11f75030c386b9f..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/button.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/deveco-device-tool-install-sucessful.png b/zh-cn/device-dev/quick-start/figures/deveco-device-tool-install-sucessful.png deleted file mode 100644 index 0a54838f89062fd67328ef76e4a1cf770c6aee13..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/deveco-device-tool-install-sucessful.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/hi3516-burning-succeeded-net.png b/zh-cn/device-dev/quick-start/figures/hi3516-burning-succeeded-net.png deleted file mode 100644 index 67d8044b72056d4ed6230ccc4ad99d5e954596b6..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/hi3516-burning-succeeded-net.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/hi3516-import-projects.png b/zh-cn/device-dev/quick-start/figures/hi3516-import-projects.png deleted file mode 100644 index 6c575b3495a0503e463a71f2b50766bc2f3e1b94..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/hi3516-import-projects.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/hi3516-restart-the-development-board.png b/zh-cn/device-dev/quick-start/figures/hi3516-restart-the-development-board.png deleted file mode 100644 index 281958fe76a787acc5d0b98f5ea248fa5abf2405..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/hi3516-restart-the-development-board.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/hi3516-upload-start-burning.png b/zh-cn/device-dev/quick-start/figures/hi3516-upload-start-burning.png deleted file mode 100644 index fb2db198cc61ed10136f0e3382deed352300a62b..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/hi3516-upload-start-burning.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/hi3518-bootloader.png b/zh-cn/device-dev/quick-start/figures/hi3518-bootloader.png deleted file mode 100644 index 2d67376af75fa7693ed16299de75255c08178c14..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/hi3518-bootloader.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/hi3518-import-projects.png b/zh-cn/device-dev/quick-start/figures/hi3518-import-projects.png deleted file mode 100644 index d54cd737e32311492dc2058251e7cb8acf905fb5..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/hi3518-import-projects.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/hi3518-monitor.png b/zh-cn/device-dev/quick-start/figures/hi3518-monitor.png deleted file mode 100644 index d287df0c64ca5e2ffc27aa1acd820cdf0e6b40c6..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/hi3518-monitor.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/hi3518-reset-success.png b/zh-cn/device-dev/quick-start/figures/hi3518-reset-success.png deleted file mode 100644 index 8e3d4e7d2a36e2b880f592ec88b01b6c4bef07cc..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/hi3518-reset-success.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/hi3861-burning-succeeded.png b/zh-cn/device-dev/quick-start/figures/hi3861-burning-succeeded.png deleted file mode 100755 index 3628f3f4778012a577d4ee28c703669eb5533594..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/hi3861-burning-succeeded.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/hi3861-import-projects.png b/zh-cn/device-dev/quick-start/figures/hi3861-import-projects.png deleted file mode 100644 index 6eaa9eb2450ef15e7124df610712fc797c548351..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/hi3861-import-projects.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/hi3861-record-the-serial-port-number.png b/zh-cn/device-dev/quick-start/figures/hi3861-record-the-serial-port-number.png deleted file mode 100755 index 43496f076a463ec6fbf320b358a32505284ff40f..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/hi3861-record-the-serial-port-number.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/hi3861-upload.png b/zh-cn/device-dev/quick-start/figures/hi3861-upload.png deleted file mode 100644 index 8dde7632636856203030c2abf0867f03abaafcba..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/hi3861-upload.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/hisilicon-arm-linux.png b/zh-cn/device-dev/quick-start/figures/hisilicon-arm-linux.png deleted file mode 100644 index 114a8e1c31ab1a58ece6b0d1e00d673256b42b2b..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/hisilicon-arm-linux.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/import-project.png b/zh-cn/device-dev/quick-start/figures/import-project.png deleted file mode 100644 index 5ba534eaf39165891a31c7837ae7ff4126f6414c..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/import-project.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/ip-address-information.png b/zh-cn/device-dev/quick-start/figures/ip-address-information.png deleted file mode 100644 index 72dd05e3ae1eb91156df98cb1915b6264b3bbe5a..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/ip-address-information.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/press-any-key-to-enter-the-system.gif b/zh-cn/device-dev/quick-start/figures/press-any-key-to-enter-the-system.gif deleted file mode 100644 index 5e0e2bec9e8ce82561047fe7d5f000e0d2c4f962..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/press-any-key-to-enter-the-system.gif and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/record-the-serial-port-number.png b/zh-cn/device-dev/quick-start/figures/record-the-serial-port-number.png deleted file mode 100644 index 09f33e3992c0c1d78713eea949e4b9a19f5802ec..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/record-the-serial-port-number.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/rk3568-helloworld.png b/zh-cn/device-dev/quick-start/figures/rk3568-helloworld.png deleted file mode 100644 index da22f3989b1daa362c7471789cdaa94ffb862f75..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/rk3568-helloworld.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001073838982.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001073838982.png deleted file mode 100644 index 0bbff7eb0b5ab322e8995acf2b86d93038c8530c..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001073838982.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001074287476.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001074287476.png deleted file mode 100644 index 29a273e5115ffd7a0724cde58215ffb79827576c..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001074287476.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001075566984.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001075566984.png deleted file mode 100644 index dee491aaa290b425a4a6cd9e4aee61b3b05cc3dc..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001075566984.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001113969536.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001113969536.png deleted file mode 100644 index baac7b26450b8bc195a0db0bb3bb41119c0d9828..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001113969536.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001117329380.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001117329380.png deleted file mode 100644 index 7bd316dfd5a64c873682bf865a79ec1f2354cc40..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001117329380.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/import-project-confirm.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001135394334.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/import-project-confirm.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001135394334.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001163045527.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001163045527.png deleted file mode 100644 index d8ac531b8265f265e2bd25518b212143fc61e4cf..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001163045527.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/monitor.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001164506870.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/monitor.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001164506870.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001171426014.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001171426014.png new file mode 100644 index 0000000000000000000000000000000000000000..0a03074ea251b2e2b94ae8370a7d7fb01757f21d Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001171426014.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001171455564.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001171455564.png deleted file mode 100644 index b6570aa809b61bcc15838b1af20c068b39c4aca7..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001171455564.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001171774086.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001171774086.png deleted file mode 100644 index 1b002b247b704150040e90ecb149d782ba8db3a8..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001171774086.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001177301516.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001177301516.png deleted file mode 100644 index 4cc2bbf53d65b0c66f07b330aa8881c5194328bd..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001177301516.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001177474882.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001177474882.png deleted file mode 100644 index 68b1730cb6d1b91b6e364c7301d6dcc4c9976ec7..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001177474882.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001177478136.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001177478136.png deleted file mode 100644 index fcaf25e47e2e47ecad8aebe463aeccdf1d8bf85e..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001177478136.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001177480146.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001177480146.png deleted file mode 100644 index 99ed8317b5cee8e5e9d460ff31d5c8a1a2fe343e..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001177480146.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001193533352.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001193533352.png deleted file mode 100644 index da22f3989b1daa362c7471789cdaa94ffb862f75..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001193533352.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001193920448.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001193920448.png new file mode 100644 index 0000000000000000000000000000000000000000..378084aa4b6a467f549a6c97bde39c7720d6b427 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001193920448.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001193983334.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001193983334.png new file mode 100644 index 0000000000000000000000000000000000000000..216476f79ed241c3b77d7d2d688cb6fcdc1d8423 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001193983334.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194080414.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194080414.png new file mode 100644 index 0000000000000000000000000000000000000000..014bd33ebc03f13666ece9abfd3636658cead3fc Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194080414.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194504874.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194504874.png new file mode 100644 index 0000000000000000000000000000000000000000..fdd12932d3777bd30a208e539a78ede6384cce19 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194504874.png differ diff --git "a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194668634 - \345\211\257\346\234\254.png" "b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194668634 - \345\211\257\346\234\254.png" deleted file mode 100644 index 9f418473587db76e56981c0f384bf4b8634e3911..0000000000000000000000000000000000000000 Binary files "a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194668634 - \345\211\257\346\234\254.png" and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194668634.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194668634.png deleted file mode 100644 index 9f418473587db76e56981c0f384bf4b8634e3911..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194668634.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194821710.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194821710.png new file mode 100644 index 0000000000000000000000000000000000000000..17d64a31a527a2b7453cc8490655609bd338ad7c Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194821710.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194984912.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194984912.png new file mode 100644 index 0000000000000000000000000000000000000000..3c8dca4d0e669c502404754a2685b5877513dda0 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194984912.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001174595590.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198466090.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001174595590.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198466090.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001177608370.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198566364.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001177608370.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198566364.png diff --git a/zh-cn/device-dev/quick-start/figures/hi3518-reboot-success.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198626874.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/hi3518-reboot-success.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198626874.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239348791.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198722374.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239348791.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198722374.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001222994321.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198889702.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001222994321.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198889702.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001222999125.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198943768.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001222999125.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198943768.png diff --git a/zh-cn/device-dev/quick-start/figures/bootloader.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001209906547.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/bootloader.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001209906547.png diff --git a/zh-cn/device-dev/quick-start/figures/reset_success.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001210385161.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/reset_success.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001210385161.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001215720398.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001215720398.png new file mode 100644 index 0000000000000000000000000000000000000000..7d3cfad060738e0802619fc90017db774b6c0949 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001215720398.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001215737140.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001215737140.png new file mode 100644 index 0000000000000000000000000000000000000000..393d6f7fbedfc3ad5556fd1ab23f5ee093a4d90f Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001215737140.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001215743910.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001215743910.png new file mode 100644 index 0000000000000000000000000000000000000000..2abb1d54a0ca92661418c44ea7b8338ede0c56ed Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001215743910.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001215878922.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001215878922.png new file mode 100644 index 0000000000000000000000000000000000000000..8fa9d13fe838efe888dee5e645fdb9cbd67d84df Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001215878922.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001215879750.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001215879750.png new file mode 100644 index 0000000000000000000000000000000000000000..9d2abb322f686beae3152cb08cf6ddf44da85052 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001215879750.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001215897530.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001215897530.png new file mode 100644 index 0000000000000000000000000000000000000000..72dd27e9a926f6148201ce09cf66fdf52a8f58e0 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001215897530.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001216274840.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001216274840.png new file mode 100644 index 0000000000000000000000000000000000000000..c1816c41bceaeeca5385b6353ef94576db30d84a Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001216274840.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001216440138.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001216440138.png new file mode 100644 index 0000000000000000000000000000000000000000..119b63f736e3146a4c29ef39b6ba3f9ee590e578 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001216440138.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001216516128.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001216516128.png new file mode 100644 index 0000000000000000000000000000000000000000..c1816c41bceaeeca5385b6353ef94576db30d84a Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001216516128.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001216535397.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001216535397.png deleted file mode 100644 index ad4fd618860ca9f79e9bdc39436c3b2f9cdb72de..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001216535397.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001216693913.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001216693913.png deleted file mode 100644 index 1b002b247b704150040e90ecb149d782ba8db3a8..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001216693913.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001216693915.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001216693915.png deleted file mode 100644 index 9284df45bb1415d84f0325df85b4eb5c223281e8..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001216693915.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001216761476.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001216761476.png new file mode 100644 index 0000000000000000000000000000000000000000..5d40e2fd4d1c8e51acfa232dff98bc0c7643f79f Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001216761476.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001217013865.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001217013865.png deleted file mode 100644 index b6bc36af5339ea5a4f67640e69836965b3776e17..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001217013865.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001220852754.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001220852754.png new file mode 100644 index 0000000000000000000000000000000000000000..c3013a3f9bd3951e53e1f0848c12700024c5f5e8 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001220852754.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221012766.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221012766.png new file mode 100644 index 0000000000000000000000000000000000000000..8d6c2de3aeeda000f6b0258f53de71e147ce5b27 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221012766.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221025048.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221025048.png new file mode 100644 index 0000000000000000000000000000000000000000..f17d2dd5dbc86b98a659218ed4a5e3a69409ae54 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221025048.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221036768.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221036768.png new file mode 100644 index 0000000000000000000000000000000000000000..369ec62f556fad6d1eee65d79c68cd1904dd9f43 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221036768.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221172710.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221172710.png new file mode 100644 index 0000000000000000000000000000000000000000..29b22463c375704734e6925861551aa27ec7b295 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221172710.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221344980.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221344980.png new file mode 100644 index 0000000000000000000000000000000000000000..7bf0acc41746926462ab3c352f143f90f2e65358 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221344980.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221356692.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221356692.png new file mode 100644 index 0000000000000000000000000000000000000000..8f5ee977c68bce18bed83887191ddf870df7d8e9 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221356692.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001222361042.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001222361042.png new file mode 100644 index 0000000000000000000000000000000000000000..b9214e26adb933752fad2b983effb4cc655d2b84 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001222361042.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001222781271.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001222781271.png deleted file mode 100644 index 8d396bf2fc7b36362a95c6719d202b2f057e4a46..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001222781271.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001222969587.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001222969587.png deleted file mode 100644 index 1ba77b7feaca23043e71171824cdead7c4f8f108..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001222969587.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001222981447.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001222981447.png deleted file mode 100644 index 6c862cc279d2936ddec4ecda0a23e1d55a63cbee..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001222981447.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001222997983.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001222997983.png deleted file mode 100644 index f0d98bd6deb22fc7814a42630b8565d9b5979659..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001222997983.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001223000051.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001223000051.png deleted file mode 100644 index 6117c80b45f64348ad307e64723495cdc8c45cb1..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001223000051.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001223185957.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001223185957.png deleted file mode 100644 index 764643ce134811551984284ed5ec6b60943f8ea4..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001223185957.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001223190441.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001223190441.png new file mode 100644 index 0000000000000000000000000000000000000000..63d053122f3c7beaa990f63431ccb16692562535 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001223190441.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001224173270.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001224173270.png new file mode 100644 index 0000000000000000000000000000000000000000..32669a1101e812fe29604d57a086ebc137dddf21 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001224173270.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001225760456.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001225760456.png new file mode 100644 index 0000000000000000000000000000000000000000..9e249959cad7e68b535f8732b44e20db9f6db2fc Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001225760456.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226034634.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226034634.png new file mode 100644 index 0000000000000000000000000000000000000000..ae7a0816ce444713af16d9d7b89a06b9689410ce Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226034634.png differ diff --git a/zh-cn/device-dev/quick-start/figures/start-the-system.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226602238.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/start-the-system.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226602238.png diff --git a/zh-cn/device-dev/quick-start/figures/rk3568-run-configuration.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226602250.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/rk3568-run-configuration.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226602250.png diff --git "a/zh-cn/device-dev/quick-start/figures/RK3568\345\274\200\345\217\221\346\235\277\350\203\214\351\235\242.png" b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226602394.png similarity index 100% rename from "zh-cn/device-dev/quick-start/figures/RK3568\345\274\200\345\217\221\346\235\277\350\203\214\351\235\242.png" rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226602394.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226602398.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226602398.png new file mode 100644 index 0000000000000000000000000000000000000000..f1aa2e319290cf3700a49391c3f078092a80821e Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226602398.png differ diff --git "a/zh-cn/device-dev/quick-start/figures/\347\263\273\347\273\237\345\220\257\345\212\250\346\225\210\346\236\234\345\233\276.jpg" b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226602406.jpg similarity index 100% rename from "zh-cn/device-dev/quick-start/figures/\347\263\273\347\273\237\345\220\257\345\212\250\346\225\210\346\236\234\345\233\276.jpg" rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226602406.jpg diff --git a/zh-cn/device-dev/quick-start/figures/11.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226602414.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/11.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226602414.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001185334336.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226634668.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001185334336.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226634668.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226634676.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226634676.png new file mode 100644 index 0000000000000000000000000000000000000000..5e307225f0246c7d1afe8b949a8135b5a0e94a51 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226634676.png differ diff --git "a/zh-cn/device-dev/quick-start/figures/Hi3861\345\274\200\345\217\221\346\235\277\345\244\226\350\247\202\345\233\276.png" b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226634692.png similarity index 100% rename from "zh-cn/device-dev/quick-start/figures/Hi3861\345\274\200\345\217\221\346\235\277\345\244\226\350\247\202\345\233\276.png" rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226634692.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226634700.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226634700.png new file mode 100644 index 0000000000000000000000000000000000000000..8c6ec0adb87f693519f0e3b00b3aa7053f3e23ae Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226634700.png differ diff --git "a/zh-cn/device-dev/quick-start/figures/Hi3861\347\274\226\350\257\221\350\256\276\347\275\256\345\233\276\344\276\213-Docker\346\226\271\345\274\217.png" b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226634716.png similarity index 100% rename from "zh-cn/device-dev/quick-start/figures/Hi3861\347\274\226\350\257\221\350\256\276\347\275\256\345\233\276\344\276\213-Docker\346\226\271\345\274\217.png" rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226634716.png diff --git "a/zh-cn/device-dev/quick-start/figures/\346\211\223\345\274\200\344\270\262\345\217\243\345\244\261\350\264\245\345\233\276-1.png" b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226634728.png similarity index 100% rename from "zh-cn/device-dev/quick-start/figures/\346\211\223\345\274\200\344\270\262\345\217\243\345\244\261\350\264\245\345\233\276-1.png" rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226634728.png diff --git "a/zh-cn/device-dev/quick-start/figures/\347\275\221\347\273\234\351\230\262\347\201\253\345\242\231\350\256\276\347\275\256\345\233\276-6.png" b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226634732.png similarity index 100% rename from "zh-cn/device-dev/quick-start/figures/\347\275\221\347\273\234\351\230\262\347\201\253\345\242\231\350\256\276\347\275\256\345\233\276-6.png" rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226634732.png diff --git a/zh-cn/device-dev/quick-start/figures/Save-the-parameter-settings.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226762210.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/Save-the-parameter-settings.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226762210.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226762222.jpg b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226762222.jpg new file mode 100644 index 0000000000000000000000000000000000000000..31c5a26705cd1da6cf9cb6f3bb356994e4ecc22e Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226762222.jpg differ diff --git a/zh-cn/device-dev/quick-start/figures/open-the-serial-port-tool.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226762374.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/open-the-serial-port-tool.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226762374.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226762378.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226762378.png new file mode 100644 index 0000000000000000000000000000000000000000..5006140f00ec1195d04297cdeb26ad935fb9f0e5 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226762378.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194078294.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226764302.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194078294.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226764302.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226794644.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226794644.png new file mode 100644 index 0000000000000000000000000000000000000000..e674bafb0adaa4c0ff8efaf297ee52bab3165212 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226794644.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226794660.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226794660.png new file mode 100644 index 0000000000000000000000000000000000000000..4829c4ecd911b02b1066790a85360aabb5492ec3 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226794660.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001171455566.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226794688.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001171455566.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226794688.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001171615542.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226794696.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001171615542.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226794696.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226794704.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226794704.png new file mode 100644 index 0000000000000000000000000000000000000000..9d3bdbfe1eac9dc532496a7785e8caf99c41780b Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226794704.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226922154.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226922154.png new file mode 100644 index 0000000000000000000000000000000000000000..f1aa2e319290cf3700a49391c3f078092a80821e Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226922154.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226922302.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226922302.png new file mode 100644 index 0000000000000000000000000000000000000000..7e136511b44f7b758ed4830ab20e58905a7cf241 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226922302.png differ diff --git "a/zh-cn/device-dev/quick-start/figures/\347\275\221\347\273\234\344\270\215\351\200\232-\345\215\225\346\235\277\346\227\240\346\263\225\350\216\267\345\217\226\346\226\207\344\273\266\345\233\276-5.png" b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226922306.png similarity index 100% rename from "zh-cn/device-dev/quick-start/figures/\347\275\221\347\273\234\344\270\215\351\200\232-\345\215\225\346\235\277\346\227\240\346\263\225\350\216\267\345\217\226\346\226\207\344\273\266\345\233\276-5.png" rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226922306.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226922310.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226922310.png new file mode 100644 index 0000000000000000000000000000000000000000..504da23ba456a9c377525e22c4630361286b5dd7 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226922310.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226922318.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226922318.png new file mode 100644 index 0000000000000000000000000000000000000000..e53a724993830b5d0e6e1e9871d99dfc99c55f11 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226922318.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001171615534.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226922322.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001171615534.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226922322.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226954632.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226954632.png new file mode 100644 index 0000000000000000000000000000000000000000..4829c4ecd911b02b1066790a85360aabb5492ec3 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226954632.png differ diff --git "a/zh-cn/device-dev/quick-start/figures/\346\237\245\346\211\276\346\230\257\345\220\246\345\255\230\345\234\250\345\215\240\347\224\250\344\270\262\345\217\243\347\232\204\347\273\210\347\253\257-2.png" b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226954644.png similarity index 100% rename from "zh-cn/device-dev/quick-start/figures/\346\237\245\346\211\276\346\230\257\345\220\246\345\255\230\345\234\250\345\215\240\347\224\250\344\270\262\345\217\243\347\232\204\347\273\210\347\253\257-2.png" rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226954644.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226954648.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226954648.png new file mode 100644 index 0000000000000000000000000000000000000000..ebf4f8eba03720edddfb9ef8eb38bd5f71126f2a Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001226954648.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227082162.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227082162.png new file mode 100644 index 0000000000000000000000000000000000000000..6d350e5d4db03fecc5c1b8055b01cdf73667ed36 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227082162.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227082182.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227082182.png new file mode 100644 index 0000000000000000000000000000000000000000..e53a724993830b5d0e6e1e9871d99dfc99c55f11 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227082182.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227082314.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227082314.png new file mode 100644 index 0000000000000000000000000000000000000000..a56a33574b9766509dc8add6ba3a1ecc578fe92c Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227082314.png differ diff --git "a/zh-cn/device-dev/quick-start/figures/\347\275\221\347\273\234\351\230\262\347\201\253\345\242\231\350\256\276\347\275\256\345\233\276.png" b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227082322.png similarity index 100% rename from "zh-cn/device-dev/quick-start/figures/\347\275\221\347\273\234\351\230\262\347\201\253\345\242\231\350\256\276\347\275\256\345\233\276.png" rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227082322.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227082334.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227082334.png new file mode 100644 index 0000000000000000000000000000000000000000..527fe8b9836daf35c8300e0e84bdb2ca390f85a5 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227082334.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227114584.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227114584.png new file mode 100644 index 0000000000000000000000000000000000000000..67e50038e79cf0f7c2a6bd79b48c63b7557179a4 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227114584.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227114612.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227114612.png new file mode 100644 index 0000000000000000000000000000000000000000..ebf4f8eba03720edddfb9ef8eb38bd5f71126f2a Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227114612.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227114628.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227114628.png new file mode 100644 index 0000000000000000000000000000000000000000..a56a33574b9766509dc8add6ba3a1ecc578fe92c Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227114628.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001171934032.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227114636.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001171934032.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227114636.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227114640.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227114640.png new file mode 100644 index 0000000000000000000000000000000000000000..ff9105c313d5755f140920bbfc2399e3ccb5e2f5 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227114640.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227114644.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227114644.png new file mode 100644 index 0000000000000000000000000000000000000000..8c6ec0adb87f693519f0e3b00b3aa7053f3e23ae Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227114644.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227277128.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227277128.png new file mode 100644 index 0000000000000000000000000000000000000000..fd2a5588e6576449bcb9ec1f92a12649dcd6c5d0 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227277128.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227549226.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227549226.png new file mode 100644 index 0000000000000000000000000000000000000000..c55a6ddd1aa319adfa05987ff3f5c79231e7208d Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227549226.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227711014.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227711014.png new file mode 100644 index 0000000000000000000000000000000000000000..7cc145edaa4ec883d4090febcf38fec14b35b46f Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227711014.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227711882.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227711882.png new file mode 100644 index 0000000000000000000000000000000000000000..c55a6ddd1aa319adfa05987ff3f5c79231e7208d Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227711882.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227712350.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227712350.png new file mode 100644 index 0000000000000000000000000000000000000000..0e1bebbb79fd4281b41173171d4a96fb0e84c166 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227712350.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227757036.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227757036.png new file mode 100644 index 0000000000000000000000000000000000000000..c354bdb69c0293fd19cb71905f828fca1fe7d09c Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227757036.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001237801283.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001237801283.png new file mode 100644 index 0000000000000000000000000000000000000000..e9127be45474fa5d254a8444bc96d34ec8798108 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001237801283.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001238760373.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001238760373.png new file mode 100644 index 0000000000000000000000000000000000000000..97111fcc9b48ba155466930d3dc00a6f45c13b8b Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001238760373.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001238880335.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001238880335.png new file mode 100644 index 0000000000000000000000000000000000000000..63a15bf3fbf9cd40422878607655443f6addc335 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001238880335.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239080359.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239080359.png new file mode 100644 index 0000000000000000000000000000000000000000..3160087388750499cbfcb6d12979fd9d7a33e410 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239080359.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239221905.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239221905.png new file mode 100644 index 0000000000000000000000000000000000000000..04a5b8220042d6025e1866c51796f75dd9cb55f1 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239221905.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239226427.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239226427.png deleted file mode 100644 index c1682cf47759f73fb37d266140789c0d75d9d8d2..0000000000000000000000000000000000000000 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239226427.png and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239275843.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239275843.png new file mode 100644 index 0000000000000000000000000000000000000000..b9b0c15345138b5d784e027330b650e16b97ee4e Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239275843.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239634067.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239634067.png new file mode 100644 index 0000000000000000000000000000000000000000..e6bc8d9c83c45f71ad7ea181903503a9c8d4eb3b Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239634067.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239650137.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239650137.png new file mode 100644 index 0000000000000000000000000000000000000000..204894213329c4de1edf74d869c1bfd8e8e78d04 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239650137.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239661509.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239661509.png new file mode 100644 index 0000000000000000000000000000000000000000..c3f10040538814eccbecf2ef37d472d59743e08f Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239661509.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001222794413.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001243290907.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001222794413.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001243290907.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001238878219.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001243641075.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001238878219.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001243641075.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001177798424.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001243704061.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001177798424.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001243704061.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001260519729.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001260519729.png new file mode 100644 index 0000000000000000000000000000000000000000..b34a869072221246762fe4bf430b74a2e601792e Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001260519729.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001260919759.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001260919759.png new file mode 100644 index 0000000000000000000000000000000000000000..4faf554e6df1789b66a1fdc1017423497dbf5362 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001260919759.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001261315939.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001261315939.png new file mode 100644 index 0000000000000000000000000000000000000000..1c6100e34e0d37e937742da452fe9ff6fbf9dab2 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001261315939.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001261395999.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001261395999.png new file mode 100644 index 0000000000000000000000000000000000000000..349188d5e1a6e11772c88615dc00deffc8dd39b7 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001261395999.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001261515989.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001261515989.png new file mode 100644 index 0000000000000000000000000000000000000000..aa41b99e1141cb361782dce26180fc118fd86442 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001261515989.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265492885.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265492885.png new file mode 100644 index 0000000000000000000000000000000000000000..7cc6ca102383151b5b67447332e73fc16c5ef85e Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265492885.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265505181.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265505181.png new file mode 100644 index 0000000000000000000000000000000000000000..eff6401bb39152c2d02b7f17e557b1cd5dbb0e87 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265505181.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265516901.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265516901.png new file mode 100644 index 0000000000000000000000000000000000000000..93be7d7b91882bc5d372fe465a0d3a8b2972371f Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265516901.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265652869.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265652869.png new file mode 100644 index 0000000000000000000000000000000000000000..4c1ce174731a8e20b62d119cbe1728e9a8394176 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265652869.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265665157.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265665157.png new file mode 100644 index 0000000000000000000000000000000000000000..0a574b8ee51edd1f4049e5ca6821a9347a45c2de Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265665157.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265676877.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265676877.png new file mode 100644 index 0000000000000000000000000000000000000000..a87d8c651147e1b7cb1f3d60513a6b3139540399 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265676877.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265772913.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265772913.png new file mode 100644 index 0000000000000000000000000000000000000000..659d732a4d044cfa4dacb84c5ec96bfc6b29707e Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265772913.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265785209.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265785209.png new file mode 100644 index 0000000000000000000000000000000000000000..0e5a65d7765d8bc936ca9a2d7db12f3adeffd831 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265785209.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265945173.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265945173.png new file mode 100644 index 0000000000000000000000000000000000000000..f2447dd8f49268594e781e1c68751b209e01894c Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265945173.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265956897.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265956897.png new file mode 100644 index 0000000000000000000000000000000000000000..671c269d4f497fe7bda04bb2e21d3ede4f474399 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265956897.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001267231481.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001267231481.png new file mode 100644 index 0000000000000000000000000000000000000000..f931e2cfba06791a3891248c5d8e6a9f0e86bf0e Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001267231481.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001268653461.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001268653461.png new file mode 100644 index 0000000000000000000000000000000000000000..90cf63342d2ebaf5ae348117f19f713247a5b554 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001268653461.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001270076961.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001270076961.png new file mode 100644 index 0000000000000000000000000000000000000000..97d98319b294e132d43cd4f75a2cc8031995b99f Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001270076961.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001270356233.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001270356233.png new file mode 100644 index 0000000000000000000000000000000000000000..d45442dd53b2c38c44b91dede158abec7e1bf231 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001270356233.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271202289.gif b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271202289.gif new file mode 100644 index 0000000000000000000000000000000000000000..52b3511bd7ec50a86e9b348aecfb1704dae36188 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271202289.gif differ diff --git "a/zh-cn/device-dev/quick-start/figures/\351\230\262\347\201\253\345\242\231\345\222\214\347\275\221\347\273\234\344\277\235\346\212\244\347\225\214\351\235\242\345\233\276-7.png" b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271202457.png similarity index 100% rename from "zh-cn/device-dev/quick-start/figures/\351\230\262\347\201\253\345\242\231\345\222\214\347\275\221\347\273\234\344\277\235\346\212\244\347\225\214\351\235\242\345\233\276-7.png" rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271202457.png diff --git "a/zh-cn/device-dev/quick-start/figures/\346\211\223\345\274\200\344\270\262\345\217\243\345\244\261\350\264\245\345\233\276.png" b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271202461.png similarity index 100% rename from "zh-cn/device-dev/quick-start/figures/\346\211\223\345\274\200\344\270\262\345\217\243\345\244\261\350\264\245\345\233\276.png" rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271202461.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271202465.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271202465.png new file mode 100644 index 0000000000000000000000000000000000000000..f1aa2e319290cf3700a49391c3f078092a80821e Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271202465.png differ diff --git "a/zh-cn/device-dev/quick-start/figures/\345\205\263\351\227\255\344\270\262\345\217\243\347\273\210\347\253\257-3.png" b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271202469.png similarity index 100% rename from "zh-cn/device-dev/quick-start/figures/\345\205\263\351\227\255\344\270\262\345\217\243\347\273\210\347\253\257-3.png" rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271202469.png diff --git "a/zh-cn/device-dev/quick-start/figures/\346\237\245\346\211\276\346\230\257\345\220\246\345\255\230\345\234\250\345\215\240\347\224\250\344\270\262\345\217\243\347\232\204\347\273\210\347\253\257.png" b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271202473.png similarity index 100% rename from "zh-cn/device-dev/quick-start/figures/\346\237\245\346\211\276\346\230\257\345\220\246\345\255\230\345\234\250\345\215\240\347\224\250\344\270\262\345\217\243\347\232\204\347\273\210\347\253\257.png" rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271202473.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234705.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234705.png new file mode 100644 index 0000000000000000000000000000000000000000..bc935a8970e39629d2c93f6b92f96c5fa7d1a49b Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234705.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234717.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234717.png new file mode 100644 index 0000000000000000000000000000000000000000..e53a724993830b5d0e6e1e9871d99dfc99c55f11 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234717.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234729.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234729.png new file mode 100644 index 0000000000000000000000000000000000000000..7de3c25e7ef2abc8d85d8bc945249f571f6bf0c3 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234729.png differ diff --git "a/zh-cn/device-dev/quick-start/figures/SCons\345\256\211\350\243\205\346\210\220\345\212\237\347\225\214\351\235\242-\347\211\210\346\234\254\350\246\201\346\261\2023-0-4\344\273\245\344\270\212.png" b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234749.png old mode 100755 new mode 100644 similarity index 100% rename from "zh-cn/device-dev/quick-start/figures/SCons\345\256\211\350\243\205\346\210\220\345\212\237\347\225\214\351\235\242-\347\211\210\346\234\254\350\246\201\346\261\2023-0-4\344\273\245\344\270\212.png" rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234749.png diff --git "a/zh-cn/device-dev/quick-start/figures/U-boot\347\203\247\345\206\231\345\256\214\346\210\220\344\270\262\345\217\243\346\230\276\347\244\272\345\233\276.png" b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234753.png similarity index 100% rename from "zh-cn/device-dev/quick-start/figures/U-boot\347\203\247\345\206\231\345\256\214\346\210\220\344\270\262\345\217\243\346\230\276\347\244\272\345\233\276.png" rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234753.png diff --git "a/zh-cn/device-dev/quick-start/figures/\347\275\221\347\273\234\344\270\215\351\200\232-\345\215\225\346\235\277\346\227\240\346\263\225\350\216\267\345\217\226\346\226\207\344\273\266\345\233\276.png" b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234757.png similarity index 100% rename from "zh-cn/device-dev/quick-start/figures/\347\275\221\347\273\234\344\270\215\351\200\232-\345\215\225\346\235\277\346\227\240\346\263\225\350\216\267\345\217\226\346\226\207\344\273\266\345\233\276.png" rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234757.png diff --git "a/zh-cn/device-dev/quick-start/figures/\345\205\263\351\227\255\344\270\262\345\217\243\347\273\210\347\253\257.png" b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234761.png similarity index 100% rename from "zh-cn/device-dev/quick-start/figures/\345\205\263\351\227\255\344\270\262\345\217\243\347\273\210\347\253\257.png" rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234761.png diff --git "a/zh-cn/device-dev/quick-start/figures/\346\237\245\346\211\276Visual-Studio-Code\345\272\224\347\224\250\345\233\276-8.png" b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234765.png similarity index 100% rename from "zh-cn/device-dev/quick-start/figures/\346\237\245\346\211\276Visual-Studio-Code\345\272\224\347\224\250\345\233\276-8.png" rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234765.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234769.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234769.png new file mode 100644 index 0000000000000000000000000000000000000000..02f74a108d5223682d57dc2e18aaefc3d31e6518 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234769.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234773.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234773.png new file mode 100644 index 0000000000000000000000000000000000000000..e53a724993830b5d0e6e1e9871d99dfc99c55f11 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271234773.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271237241.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271237241.png new file mode 100644 index 0000000000000000000000000000000000000000..caa9309b7f069597073ffa593a7fbc6820b4b2e9 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271237241.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271322277.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271322277.png new file mode 100644 index 0000000000000000000000000000000000000000..f1aa2e319290cf3700a49391c3f078092a80821e Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271322277.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271322293.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271322293.png new file mode 100644 index 0000000000000000000000000000000000000000..8baa9c7c75625c18979d30ab52b2a0f64e0e8349 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271322293.png differ diff --git a/zh-cn/device-dev/quick-start/figures/setenv-bootargs.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271322437.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/setenv-bootargs.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271322437.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271354693.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271354693.png new file mode 100644 index 0000000000000000000000000000000000000000..02f74a108d5223682d57dc2e18aaefc3d31e6518 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271354693.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271354733.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271354733.png new file mode 100644 index 0000000000000000000000000000000000000000..a8037d1ebc95a3c9383d87678981b3ae5ccc8144 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271354733.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001171774098.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271354745.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001171774098.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271354745.png diff --git "a/zh-cn/device-dev/quick-start/figures/\351\230\262\347\201\253\345\242\231\345\222\214\347\275\221\347\273\234\344\277\235\346\212\244\347\225\214\351\235\242\345\233\276.png" b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271354749.png similarity index 100% rename from "zh-cn/device-dev/quick-start/figures/\351\230\262\347\201\253\345\242\231\345\222\214\347\275\221\347\273\234\344\277\235\346\212\244\347\225\214\351\235\242\345\233\276.png" rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271354749.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271442129.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271442129.png new file mode 100644 index 0000000000000000000000000000000000000000..fbd3cb48f2cb35c02595be0293733644e16020bd Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271442129.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271442261.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271442261.png new file mode 100644 index 0000000000000000000000000000000000000000..fbd3cb48f2cb35c02595be0293733644e16020bd Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271442261.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271442265.gif b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271442265.gif new file mode 100644 index 0000000000000000000000000000000000000000..52b3511bd7ec50a86e9b348aecfb1704dae36188 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271442265.gif differ diff --git "a/zh-cn/device-dev/quick-start/figures/\345\205\201\350\256\270Visual-Studio-Code\345\272\224\347\224\250\350\256\277\351\227\256\347\275\221\347\273\234-9.png" b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271442273.png similarity index 100% rename from "zh-cn/device-dev/quick-start/figures/\345\205\201\350\256\270Visual-Studio-Code\345\272\224\347\224\250\350\256\277\351\227\256\347\275\221\347\273\234-9.png" rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271442273.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271448821.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271448821.png new file mode 100644 index 0000000000000000000000000000000000000000..53cbcb8b0d0c30cb289b746d20b6c73927019d1a Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271448821.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271474569.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271474569.png new file mode 100644 index 0000000000000000000000000000000000000000..5086d2b4518cfea4040f3cc243abb2e6087af350 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271474569.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001217013871.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271474573.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001217013871.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271474573.png diff --git "a/zh-cn/device-dev/quick-start/figures/\345\205\201\350\256\270Visual-Studio-Code\345\272\224\347\224\250\350\256\277\351\227\256\347\275\221\347\273\234.png" b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271474585.png similarity index 100% rename from "zh-cn/device-dev/quick-start/figures/\345\205\201\350\256\270Visual-Studio-Code\345\272\224\347\224\250\350\256\277\351\227\256\347\275\221\347\273\234.png" rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271474585.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271477045.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271477045.png new file mode 100644 index 0000000000000000000000000000000000000000..c55a6ddd1aa319adfa05987ff3f5c79231e7208d Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271477045.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271532317.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271532317.png new file mode 100644 index 0000000000000000000000000000000000000000..ad87d810ad5c3ea136c05c8cb36096c3250ca91c Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271532317.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271562257.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271562257.png new file mode 100644 index 0000000000000000000000000000000000000000..5e307225f0246c7d1afe8b949a8135b5a0e94a51 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271562257.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271562269.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271562269.png new file mode 100644 index 0000000000000000000000000000000000000000..802cce4e760102043f177cb2fa71e8bd16539ba1 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271562269.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271562277.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271562277.png new file mode 100644 index 0000000000000000000000000000000000000000..c55a6ddd1aa319adfa05987ff3f5c79231e7208d Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271562277.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271562433.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271562433.png new file mode 100644 index 0000000000000000000000000000000000000000..e828c808f0fae09773a8408647a9e5386e4d6c21 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271562433.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271562437.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271562437.png new file mode 100644 index 0000000000000000000000000000000000000000..47231369bbeb827e70a8720b7a3d03ac58fad0c3 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271562437.png differ diff --git "a/zh-cn/device-dev/quick-start/figures/\346\237\245\346\211\276Visual-Studio-Code\345\272\224\347\224\250\345\233\276.png" b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271562445.png similarity index 100% rename from "zh-cn/device-dev/quick-start/figures/\346\237\245\346\211\276Visual-Studio-Code\345\272\224\347\224\250\345\233\276.png" rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271562445.png diff --git a/zh-cn/device-dev/quick-start/figures/changjian1-4.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271562449.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/changjian1-4.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271562449.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001216535401.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271562453.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001216535401.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271562453.png diff --git a/zh-cn/device-dev/quick-start/figures/reboot_success.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271594709.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/reboot_success.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271594709.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271594733.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271594733.png new file mode 100644 index 0000000000000000000000000000000000000000..9d3bdbfe1eac9dc532496a7785e8caf99c41780b Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271594733.png differ diff --git "a/zh-cn/device-dev/quick-start/figures/Hi3516\347\274\226\350\257\221\350\256\276\347\275\256\345\233\276\344\276\213-Docker\346\226\271\345\274\217.png" b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271594749.png similarity index 100% rename from "zh-cn/device-dev/quick-start/figures/Hi3516\347\274\226\350\257\221\350\256\276\347\275\256\345\233\276\344\276\213-Docker\346\226\271\345\274\217.png" rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271594749.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001171455574.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271594753.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001171455574.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271594753.png diff --git a/zh-cn/device-dev/quick-start/figures/changjian1.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271594765.png similarity index 100% rename from zh-cn/device-dev/quick-start/figures/changjian1.png rename to zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271594765.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271791385.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271791385.png new file mode 100644 index 0000000000000000000000000000000000000000..c55a6ddd1aa319adfa05987ff3f5c79231e7208d Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271791385.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271912277.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271912277.png new file mode 100644 index 0000000000000000000000000000000000000000..53cbcb8b0d0c30cb289b746d20b6c73927019d1a Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271912277.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001272032361.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001272032361.png new file mode 100644 index 0000000000000000000000000000000000000000..c55a6ddd1aa319adfa05987ff3f5c79231e7208d Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001272032361.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001272109325.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001272109325.png new file mode 100644 index 0000000000000000000000000000000000000000..caa9309b7f069597073ffa593a7fbc6820b4b2e9 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001272109325.png differ diff --git "a/zh-cn/device-dev/quick-start/figures/\346\240\207\345\207\206\347\263\273\347\273\237\345\277\253\351\200\237\345\205\245\351\227\250\346\265\201\347\250\213.png" "b/zh-cn/device-dev/quick-start/figures/\346\240\207\345\207\206\347\263\273\347\273\237\345\277\253\351\200\237\345\205\245\351\227\250\346\265\201\347\250\213.png" deleted file mode 100644 index cb0aff9ea08110a305f663126f5e26f150f89344..0000000000000000000000000000000000000000 Binary files "a/zh-cn/device-dev/quick-start/figures/\346\240\207\345\207\206\347\263\273\347\273\237\345\277\253\351\200\237\345\205\245\351\227\250\346\265\201\347\250\213.png" and /dev/null differ diff --git "a/zh-cn/device-dev/quick-start/figures/\350\275\273\351\207\217\345\222\214\345\260\217\345\236\213\347\263\273\347\273\237\345\277\253\351\200\237\345\205\245\351\227\250\346\265\201\347\250\213.png" "b/zh-cn/device-dev/quick-start/figures/\350\275\273\351\207\217\345\222\214\345\260\217\345\236\213\347\263\273\347\273\237\345\277\253\351\200\237\345\205\245\351\227\250\346\265\201\347\250\213.png" deleted file mode 100644 index c453bf36bea44aad382c65cd18ea0d8abbead981..0000000000000000000000000000000000000000 Binary files "a/zh-cn/device-dev/quick-start/figures/\350\275\273\351\207\217\345\222\214\345\260\217\345\236\213\347\263\273\347\273\237\345\277\253\351\200\237\345\205\245\351\227\250\346\265\201\347\250\213.png" and /dev/null differ diff --git a/zh-cn/device-dev/quick-start/public_sys-resources/icon-caution.gif b/zh-cn/device-dev/quick-start/public_sys-resources/icon-caution.gif new file mode 100644 index 0000000000000000000000000000000000000000..6e90d7cfc2193e39e10bb58c38d01a23f045d571 Binary files /dev/null and b/zh-cn/device-dev/quick-start/public_sys-resources/icon-caution.gif differ diff --git a/zh-cn/device-dev/quick-start/public_sys-resources/icon-danger.gif b/zh-cn/device-dev/quick-start/public_sys-resources/icon-danger.gif new file mode 100644 index 0000000000000000000000000000000000000000..6e90d7cfc2193e39e10bb58c38d01a23f045d571 Binary files /dev/null and b/zh-cn/device-dev/quick-start/public_sys-resources/icon-danger.gif differ diff --git a/zh-cn/device-dev/quick-start/public_sys-resources/icon-note.gif b/zh-cn/device-dev/quick-start/public_sys-resources/icon-note.gif new file mode 100644 index 0000000000000000000000000000000000000000..6314297e45c1de184204098efd4814d6dc8b1cda Binary files /dev/null and b/zh-cn/device-dev/quick-start/public_sys-resources/icon-note.gif differ diff --git a/zh-cn/device-dev/quick-start/public_sys-resources/icon-notice.gif b/zh-cn/device-dev/quick-start/public_sys-resources/icon-notice.gif new file mode 100644 index 0000000000000000000000000000000000000000..86024f61b691400bea99e5b1f506d9d9aef36e27 Binary files /dev/null and b/zh-cn/device-dev/quick-start/public_sys-resources/icon-notice.gif differ diff --git a/zh-cn/device-dev/quick-start/public_sys-resources/icon-tip.gif b/zh-cn/device-dev/quick-start/public_sys-resources/icon-tip.gif new file mode 100644 index 0000000000000000000000000000000000000000..93aa72053b510e456b149f36a0972703ea9999b7 Binary files /dev/null and b/zh-cn/device-dev/quick-start/public_sys-resources/icon-tip.gif differ diff --git a/zh-cn/device-dev/quick-start/public_sys-resources/icon-warning.gif b/zh-cn/device-dev/quick-start/public_sys-resources/icon-warning.gif new file mode 100644 index 0000000000000000000000000000000000000000..6e90d7cfc2193e39e10bb58c38d01a23f045d571 Binary files /dev/null and b/zh-cn/device-dev/quick-start/public_sys-resources/icon-warning.gif differ diff --git a/zh-cn/device-dev/quick-start/quickstart-docker-lite.md b/zh-cn/device-dev/quick-start/quickstart-docker-lite.md new file mode 100644 index 0000000000000000000000000000000000000000..6e091cdbb85386c862f3e2e10bd0226be71b3dc1 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-docker-lite.md @@ -0,0 +1,13 @@ +# 轻量和小型系统快速入门-安装包 + + + +- **[轻量与小型系统入门概述](quickstart-lite-overview.md)** + +- **[搭建轻量与小型系统环境](quickstart-lite-env-setup.md)** + +- **[运行“Hello World”](quickstart-lite-steps.md)** + +- **[常见问题](quickstart-lite-env-setup-faqs.md)** + +- **[附录](quickstart-lite-appendix.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-appendix.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-appendix.md new file mode 100644 index 0000000000000000000000000000000000000000..058be22d4b7ea1bba2a7b1b0334fd7075c522977 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-appendix.md @@ -0,0 +1,5 @@ +# 附录 + + + +- **[开发板介绍](quickstart-ide-lite-board-introduction.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-board-introduction.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-board-introduction.md new file mode 100644 index 0000000000000000000000000000000000000000..42af216304448d111ca6513bcd57f5c8df5e41f3 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-board-introduction.md @@ -0,0 +1,7 @@ +# 开发板介绍 + + + +- **[Hi3861开发板介绍](quickstart-ide-lite-introduction-hi3861.md)** + +- **[Hi3516开发板介绍](quickstart-ide-lite-introduction-hi3516.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-create-project.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-create-project.md new file mode 100644 index 0000000000000000000000000000000000000000..9820c21f04f5ce23ed36a30f3dc7d80b299d01e6 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-create-project.md @@ -0,0 +1,30 @@ +# 创建源码工程 + + +在完成[搭建Windows+Ubuntu混合开发环境](../quick-start/quickstart-ide-lite-env-setup-win-ubuntu.md)和[获取源码](../quick-start/quickstart-ide-lite-sourcecode-acquire.md)后,您需要在Windows环境中按照如下步骤创建源码工程。 + + +1. 打开DevEco Device Tool,进入Home页,点击**Import Project**打开工程。 + ![zh-cn_image_0000001171426014](figures/zh-cn_image_0000001171426014.png) + +2. 选择要导入的源码目录,点击**Import**打开。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 工程存储路径不能包含中文字符、空格。如果工程存储路径包含中文字符或空格,可能导致编译失败。 + + ![zh-cn_image_0000001271477045](figures/zh-cn_image_0000001271477045.png) + +3. 如果您打开的目录不是DevEco Device Tool工程,则会出现如下提示框,点击**Import**。 + ![zh-cn_image_0000001135394334](figures/zh-cn_image_0000001135394334.png) + +4. 在Select Project type界面,选择**Import from OpenHarmony Source**。 + ![zh-cn_image_0000001215743910](figures/zh-cn_image_0000001215743910.png) + +5. 在Import Project界面,选择**Product**后,会自动填充对应的MCU、Board、company和kernel信息,然后**ohosVersion**选择对应的OpenHarmony源码版本。下图以导入wifiiot_hispark_pegasus为例进行说明。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > Hi3861开发板Product选择“wifiiot_hispark_pegasus”。 + > + > Hi3516DV300开发板Product选择“ipcamera_hispark_taurus”。 + + ![zh-cn_image_0000001271237241](figures/zh-cn_image_0000001271237241.png) + +6. 点击**Open**打开工程或源码。 diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-env-setup-win-ubuntu.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-env-setup-win-ubuntu.md new file mode 100644 index 0000000000000000000000000000000000000000..2bf28b4adb6e0e984586b6056f95cf1a28b6fbc1 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-env-setup-win-ubuntu.md @@ -0,0 +1,190 @@ +# 搭建Windows+Ubuntu混合开发环境 + + +通常在嵌入式开发中,很多开发者习惯于使用Windows进行代码的编辑,比如使用Windows的Visual Studio Code进行OpenHarmony代码的开发。但当前阶段,大部分的开发板源码还不支持在Windows环境下进行编译,如Hi3861、Hi3516系列开发板。因此,需要使用Ubuntu的编译环境对源码进行编译。 + + +在以上的设备开发场景中,可以搭建一套Windows+Ubuntu混合开发的环境,其中使用Windows平台的DevEco Device Tool可视化界面进行相关操作,通过远程连接的方式对接Ubuntu下的DevEco Device Tool(可以不安装Visual Studio Code),然后对Ubuntu下的源码进行开发、编译、烧录等操作。 + + +## 系统要求 + +- Windows系统要求:Windows10 64位系统。 + +- Ubuntu系统要求:Ubuntu20.04及以上版本,内存推荐16 GB及以上。 + +- Windows系统和Ubuntu系统的用户名不能包含中文字符。 + +- Windows和Ubuntu系统上安装的DevEco Device Tool为3.0 Release版本。 + + +## 搭建Ubuntu环境 + +在Windows+Ubuntu混合开发环境场景中,在Ubuntu系统上可以不用安装Visual Studio Code,这种情况下,Ubuntu环境中就没有DevEco Device Tool的可视化操作界面。如果需要使用到Ubuntu下的DevEco Device Tool可视化操作界面,环境搭建请参考[搭建Ubuntu开发环境](https://device.harmonyos.com/cn/docs/documentation/guide/ide-install-ubuntu-0000001072959308)。 + +1. 将Ubuntu Shell环境修改为bash。 + 1. 执行如下命令,确认输出结果为bash。如果输出结果不是bash,请根据步骤2,将Ubuntu shell修改为bash。 + + ``` + ls -l /bin/sh + ``` + + ![zh-cn_image_0000001226764302](figures/zh-cn_image_0000001226764302.png) + 2. 打开终端工具,执行如下命令,输入密码,然后选择**No**,将Ubuntu shell由dash修改为bash。 + + ``` + sudo dpkg-reconfigure dash + ``` + + ![zh-cn_image_0000001243641075](figures/zh-cn_image_0000001243641075.png) + +2. 下载[DevEco Device Tool 3.0 Release](https://device.harmonyos.com/cn/ide#download)Linux版本。 + +3. 解压DevEco Device Tool软件包并对解压后的文件夹进行赋权。 + 1. 进入DevEco Device Tool软件包目录,执行如下命令解压软件包,其中devicetool-linux-tool-3.0.0.400.zip为软件包名称,请根据实际进行修改。 + + ``` + unzip devicetool-linux-tool-3.0.0.400.zip + ``` + 2. 进入解压后的文件夹,执行如下命令,赋予安装文件可执行权限,其中devicetool-linux-tool-3.0.0.400.sh请根据实际进行修改。 + + ``` + chmod u+x devicetool-linux-tool-3.0.0.400.sh + ``` + +4. 执行如下命令,安装DevEco Device Tool,其中devicetool-linux-tool-3.0.0.400.sh请根据实际进行修改。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 安装过程中,会自动检查Python是否安装,且要求Python为3.8~3.9版本。如果不满足,则安装过程中会自动安装,提示“Do you want to continue?”,请输入“Y”后继续安装。 + + + ``` + sudo ./devicetool-linux-tool-3.0.0.300.sh + ``` + + 安装完成后,当界面输出“Deveco Device Tool successfully installed.”时,表示DevEco Device Tool安装成功。 + + ![zh-cn_image_0000001198722374](figures/zh-cn_image_0000001198722374.png) + + +## 搭建Windows开发环境 + +通过Windows系统远程访问Ubuntu环境,需要先在Windows系统中安装DevEco Device Tool,以便使用Windows平台的DevEco Device Tool可视化界面进行相关操作。 + +1. 下载[DevEco Device Tool 3.0 Release](https://device.harmonyos.com/cn/ide#download)Windows版。 + +2. 解压DevEco Device Tool压缩包,双击安装包程序,点击Next进行安装。 + +3. 设置DevEco Device Tool的安装路径,建议安装到非系统盘符,点击**Next**。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果您已安装DevEco Device Tool 3.0 Beta2及以前的版本,则在安装新版本时,会先卸载旧版本,卸载过程中出现如下错误提示时,请点击“Ignore”继续安装,该错误不影响新版本的安装。 + > + > ![zh-cn_image_0000001239275843](figures/zh-cn_image_0000001239275843.png) + + ![zh-cn_image_0000001270076961](figures/zh-cn_image_0000001270076961.png) + +4. 根据安装向导提示,勾选要自动安装的软件。 + 1. 在弹出VSCode installation confirm页面,勾选“Install VScode 1.62.2automatically”,点击**Next**。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果检测到Visual Studio Code已安装,且版本为1.62及以上,则会跳过该步骤。 + + ![zh-cn_image_0000001237801283](figures/zh-cn_image_0000001237801283.png) + 2. 在弹出的Python select page选择“Download from Huawei mirror”,点击**Next**。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果系统已安装可兼容的Python版本(Python 3.8~3.9版本),可选择“Use one of compatible on your PC”。 + + ![zh-cn_image_0000001193983334](figures/zh-cn_image_0000001193983334.png) + +5. 在以下界面点击**Next**,进行软件下载和安装。 + + ![zh-cn_image_0000001239634067](figures/zh-cn_image_0000001239634067.png) + +6. 继续等待DevEco Device Tool安装向导自动安装DevEco Device Tool插件,直至安装完成,点击**Finish**,关闭DevEco Device Tool安装向导。 + + ![zh-cn_image_0000001239650137](figures/zh-cn_image_0000001239650137.png) + +7. 打开Visual Studio Code,进入DevEco Device Tool工具界面。至此,DevEco Device Tool Windows开发环境安装完成。 + + ![zh-cn_image_0000001225760456](figures/zh-cn_image_0000001225760456.png) + + +## 配置Windows远程访问Ubuntu环境 + + +### 安装SSH服务并获取远程访问的IP地址 + +1. 在Ubuntu系统中,打开终端工具,执行如下命令安装SSH服务。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果执行该命令失败,提示openssh-server和openssh-client依赖版本不同,请根据CLI界面提示信息,安装openssh-client相应版本后(例如:sudo apt-get install openssh-client=1:8.2p1-4),再重新执行该命令安装openssh-server。 + + + ``` + sudo apt-get install openssh-server + ``` + +2. 执行如下命令,启动SSH服务。 + + ``` + sudo systemctl start ssh + ``` + +3. 执行如下命令,获取当前用户的IP地址,用于Windows系统远程访问Ubuntu环境。 + + ``` + ifconfig + ``` + + ![zh-cn_image_0000001215737140](figures/zh-cn_image_0000001215737140.png) + + +### 安装Remote SSH + +1. 打开Windows系统下的Visual Studio Code,点击![zh-cn_image_0000001239080359](figures/zh-cn_image_0000001239080359.png),在插件市场的搜索输入框中输入“remote-ssh”。 + ![zh-cn_image_0000001193920448](figures/zh-cn_image_0000001193920448.png) + +2. 点击Remote-SSH的**Install**按钮,安装Remote-SSH。安装成功后,在**INSTALLED**下可以看到已安装Remote-SSH。 + ![zh-cn_image_0000001238880335](figures/zh-cn_image_0000001238880335.png) + + +### 远程连接Ubuntu环境 + +1. 打开Windows系统的Visual Studio Code,点击![zh-cn_image_0000001238760373](figures/zh-cn_image_0000001238760373.png),在REMOTE EXOPLORER页面点击+按钮。 + + ![zh-cn_image_0000001215878922](figures/zh-cn_image_0000001215878922.png) + +2. 在弹出的SSH连接命令输入框中输入“ssh _username_\@_ip_address_”,其中ip_address为要连接的远程计算机的IP地址,username为登录远程计算机的帐号。 + + ![zh-cn_image_0000001215879750](figures/zh-cn_image_0000001215879750.png) + +3. 在弹出的输入框中,选择SSH configuration文件,选择默认的第一选项即可。 + + ![zh-cn_image_0000001260519729](figures/zh-cn_image_0000001260519729.png) + +4. 在SSH TARGETS中,找到远程计算机,点击![zh-cn_image_0000001194080414](figures/zh-cn_image_0000001194080414.png),打开远程计算机。 + + ![zh-cn_image_0000001215720398](figures/zh-cn_image_0000001215720398.png) + +5. 在弹出的输入框中,选择**Linux**,然后在选择**Continue**,然后输入登录远程计算机的密码,连接远程计算机 。 + + ![zh-cn_image_0000001215897530](figures/zh-cn_image_0000001215897530.png) + + 连接成功后,等待在远程计算机.vscode-server文件夹下自动安装插件,安装完成后,根据界面提示在Windows系统下重新加载Visual Studio Code,便可以在Windows的DevEco Device Tool界面进行源码开发、编译、烧录等操作。 + + +### 注册访问Ubuntu环境的公钥 + +在完成以上操作后,您就可以通过Windows远程连接Ubuntu环境进行开发了,但在使用过程中,需要您频繁的输入远程连接密码来进行连接。为解决该问题,您可以使用SSH公钥来进行设置。 + +1. 打开Git bash命令行窗口,执行如下命令,生成SSH公钥,请注意,在执行命令过程中,请根据界面提示进行操作。username和ip请填写连接Ubuntu系统时需要的参数。 + + ``` + ssh-keygen -t rsa + ssh-copy-id -i ~/.ssh/id_rsa.pub username@ip + ``` + + ![zh-cn_image_0000001271532317](figures/zh-cn_image_0000001271532317.png) + +2. 在Visual Studio Code中,点击远程连接的设置按钮,并选择打开config文件。 + ![zh-cn_image_0000001226034634](figures/zh-cn_image_0000001226034634.png) + +3. 在config配置文件中添加SSK Key文件信息,如下图所示,然后保存即可。 + ![zh-cn_image_0000001270356233](figures/zh-cn_image_0000001270356233.png) diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-env-setup.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-env-setup.md new file mode 100644 index 0000000000000000000000000000000000000000..01bb396569ec280242d7d1283c63d65046683c04 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-env-setup.md @@ -0,0 +1,7 @@ +# 准备轻量与小型系统环境 + + + +- **[搭建Windows+Ubuntu混合开发环境](quickstart-ide-lite-env-setup-win-ubuntu.md)** + +- **[获取源码](quickstart-ide-lite-sourcecode-acquire.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-introduction-hi3516.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-introduction-hi3516.md new file mode 100644 index 0000000000000000000000000000000000000000..c0e420294b3a6e05dfd96f96d9d48d32ab58fbf9 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-introduction-hi3516.md @@ -0,0 +1,20 @@ +# Hi3516开发板介绍 + + +## 简介 + +Hi3516DV300作为新一代行业专用Smart HD IP摄像机SOC,集成新一代ISP(Image Signal Processor)、H.265视频压缩编码器,同时集成高性能NNIE引擎,使得Hi3516DV300在低码率、高画质、智能处理和分析、低功耗等方面引领行业水平。 + + **图1** Hi3516单板正面外观图 + +![zh-cn_image_0000001271234717](figures/zh-cn_image_0000001271234717.png) + + +## 开发板规格 + + **表1** Hi3516开发板规格清单 + +| 规格类型 | 规格清单 | +| -------- | -------- | +| **处理器及内部存储** | - Hi3516DV300芯片
- DDR3 1GB
- eMMC4.5,8GB容量 | +| **外部器件** | - 以太网口
- 音频视频
  - 1路语音输入
  - 1路单声道(AC_L)输出,接3W功放(LM4871)
  - MicroHDMI(1路HDMI 1.4)
- 摄像头
  - 传感器IMX335
  - 镜头M12,焦距4mm,光圈1.8
- 显示屏
  - LCD连接器(2.35寸)
  - LCD连接器(5.5寸)
- 外部器件及接口
  - SD卡接口
  - JTAG/I2S接口
  - ADC接口
  - 舵机接口
  - Grove连接器
  - USB2.0(Type C)
  - 功能按键3个,2个用户自定义按键,1个升级按键
  - LED指示灯,绿灯,红灯 | diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-introduction-hi3861.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-introduction-hi3861.md new file mode 100644 index 0000000000000000000000000000000000000000..60b2c766b627d22d83e55878ffb99050dedff0fd --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-introduction-hi3861.md @@ -0,0 +1,66 @@ +# Hi3861开发板介绍 + + +## 简介 + +Hi3861开发板是一片大约2cm\*5cm大小的开发板,是一款高度集成的2.4GHz WLAN SoC芯片,集成IEEE 802.11b/g/n基带和RF(Radio Frequency)电路。支持OpenHarmony,并配套提供开放、易用的开发和调试运行环境。 + + **图1** Hi3861开发板外观图 + ![zh-cn_image_0000001226634692](figures/zh-cn_image_0000001226634692.png) + +另外,Hi3861开发板还可以通过与Hi3861底板连接,扩充自身的外设能力,底板如下图所示。 + + **图2** Hi3861底板外观图 + +![zh-cn_image_0000001226794660](figures/zh-cn_image_0000001226794660.png) + +- RF电路包括功率放大器PA(Power Amplifier)、低噪声放大器LNA(Low Noise Amplifier)、RF Balun、天线开关以及电源管理等模块;支持20MHz标准带宽和5MHz/10MHz窄带宽,提供最大72.2Mbit/s物理层速率。 + +- Hi3861 WLAN基带支持正交频分复用(OFDM)技术,并向下兼容直接序列扩频(DSSS)和补码键控(CCK)技术,支持IEEE 802.11 b/g/n协议的各种数据速率。 + +- Hi3861芯片集成高性能32bit微处理器、硬件安全引擎以及丰富的外设接口,外设接口包括SPI(Synchronous Peripheral Interface)、UART(Universal Asynchronous Receiver & Transmitter)、I2C(The Inter Integrated Circuit)、PWM(Pulse Width Modulation)、GPIO(General Purpose Input/Output)和多路ADC(Analog to Digital Converter),同时支持高速SDIO2.0(Secure Digital Input/Output)接口,最高时钟可达50MHz;芯片内置SRAM(Static Random Access Memory)和Flash,可独立运行,并支持在Flash上运行程序。 + +- Hi3861芯片适用于智能家电等物联网智能终端领域。 + **图3** Hi3861功能框图 + + ![zh-cn_image_0000001271234729](figures/zh-cn_image_0000001271234729.png) + + +## 资源和约束 + +Hi3861开发板资源十分有限,整板共2MB FLASH,352KB RAM。在编写业务代码时,需注意资源使用效率。 + + +## 开发板规格 + + **表1** Hi3861开发板规格清单 + +| 规格类型 | 规格清单 | +| -------- | -------- | +| 通用规格 | - 1×1 2.4GHz频段(ch1~ch14)
- PHY支持IEEE 802.11b/g/n
- MAC支持IEEE802.11 d/e/h/i/k/v/w
- 内置PA和LNA,集成TX/RX Switch、Balun等
- 支持STA和AP形态,作为AP时最大支持6 个STA接入
- 支持WFA WPA/WPA2 personal、WPS2.0
- 支持与BT/BLE芯片共存的2/3/4 线PTA方案
- 电源电压输入范围:2.3V~3.6V
- IO电源电压支持1.8V和3.3V
- 支持RF自校准方案
- 低功耗:
  - Ultra Deep Sleep模式:5μA\@3.3V
  - DTIM1:1.5mA\@3.3V
  - DTIM3:0.8mA\@3.3V | +| PHY特性 | - 支持IEEE802.11b/g/n单天线所有的数据速率
- 支持最大速率:72.2Mbps\@HT20 MCS7
- 支持标准20MHz带宽和5M/10M窄带宽
- 支持STBC
- 支持Short-GI | +| MAC特性 | - 支持A-MPDU,A-MSDU
- 支持Blk-ACK
- 支持QoS,满足不同业务服务质量需求 | +| CPU子系统 | - 高性能 32bit微处理器,最大工作频率160MHz
- 内嵌SRAM 352KB、ROM 288KB
- 内嵌 2MB Flash | +| 外围接口 | - 1个SDIO接口、2个SPI接口、2个I2C接口、3个UART接口、15个GPIO接口、7路ADC输入、6路PWM、1个I2S接口(注:上述接口通过复用实现)
- 外部主晶体频率40M或24M | +| 其他信息 | - 封装:QFN-32,5mm×5mm
- 工作温度:-40℃ ~ +85℃ | + + +## OpenHarmony关键特性 + +OpenHarmony基于Hi3861平台提供了多种开放能力,提供的关键组件如下表所示。 + + **表2** OpenHarmony关键组件列表 + +| 组件名 | 能力介绍 | +| -------- | -------- | +| WLAN服务 | 提供WLAN服务能力。包括:station和hotspot模式的连接、断开、状态查询等。 | +| 模组外设控制 | 提供操作外设的能力。包括:I2C、I2S、ADC、UART、SPI、SDIO、GPIO、PWM、FLASH等。 | +| 分布式软总线 | 在OpenHarmony分布式网络中,提供设备被发现、数据传输的能力。 | +| 设备安全绑定 | 提供在设备互联场景中,数据在设备之间的安全流转的能力。 | +| 基础加解密 | 提供密钥管理、加解密等能力。 | +| 系统服务管理 | 系统服务管理基于面向服务的架构,提供了OpenHarmony统一化的系统服务开发框架。 | +| 启动引导 | 提供系统服务的启动入口标识。在系统服务管理启动时,调用boostrap标识的入口函数,并启动系统服务。 | +| 系统属性 | 提供获取与设置系统属性的能力。 | +| 基础库 | 提供公共基础库能力。包括:文件操作、KV存储管理等。 | +| DFX | 提供DFX能力。包括:流水日志、时间打点等。 | +| XTS | 提供OpenHarmony生态认证测试套件的集合能力。 | diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-overview.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-overview.md new file mode 100644 index 0000000000000000000000000000000000000000..aeeed1e4c43745f82601582268643ff7fc193aa9 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-overview.md @@ -0,0 +1,40 @@ +# 轻量与小型系统入门概述 + + +## 简介 + +OpenHarmony轻量和小型系统适用于内存较小的IOT设备(参考内存≥128KiB)。通过本文,开发者可以快速熟悉OpenHarmony轻量和小型系统的环境搭建、编译、烧录、调测以及运行“Hello World”等。 + +考虑到开发者的开发习惯,OpenHarmony为开发者提供了以下两种入门指导: + +- IDE方式:完全采用IDE(Deveco Device Tool)进行一站式开发,编译依赖工具的安装及编译、烧录、运行都通过IDE进行操作。 + +- 安装包方式:通过命令行进行编译依赖工具的下载安装,编译操作也通过命令实现。烧录、运行等操作使用IDE。 + OpenHarmony还为开发者提供了[Docker环境](../get-code/gettools-acquire.md),在很大程度上简化了编译前的环境配置,习惯使用安装包方式的开发者也可以选择Docker环境进行编译 。 + +本文采用Deveco Device Tool进行一站式开发介绍,习惯使用命令行的开发者可参考[轻量和小型系统快速入门(安装包方式)](../quick-start/quickstart-docker-lite.md)。 + + +## 开发环境 + +开发者通常习惯采用Windows+Ubuntu环境进行OpenHarmony开发: + +- Windows:用于源码开发、烧录等。 + +- Ubuntu:用于源码编译。 + +本文将介绍如何基于Windows+Ubuntu环境进行OpenHarmony的开发。 + + +## 开发板 + +本文基于以下两款典型开发板进行开发介绍 :Hi3861 WLAN模组、Hi3516DV300。开发板的具体外观和规格可参见[本文附录](../quick-start/quickstart-ide-lite-board-introduction.md),开发者可根据需要自行购买开发板。 + + +## 开发流程 + +轻量和小型系统快速入门流程如下图所示。 + + **图1** 轻量和小型系统快速入门开发流程 + + ![zh-cn_image_0000001226634676](figures/zh-cn_image_0000001226634676.png) diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-sourcecode-acquire.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-sourcecode-acquire.md new file mode 100644 index 0000000000000000000000000000000000000000..992c99c9d3729cfdf248b204a8a1234f34cedaf0 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-sourcecode-acquire.md @@ -0,0 +1,77 @@ +# 获取源码 + + +在Ubuntu环境下通过以下步骤拉取OpenHarmony源码。 + + +## 准备工作 + +1. 注册码云gitee帐号。 + +2. 注册码云SSH公钥,请参考[码云帮助中心](https://gitee.com/help/articles/4191)。 + +3. 安装git客户端和git-lfs。(上述工具已在搭建环境章节安装。如已安装,请忽略) + + 更新软件源: + + ``` + sudo apt-get update + ``` + + 通过以下命令安装: + + ``` + sudo apt-get install git git-lfs + ``` + +4. 配置用户信息。 + + ``` + git config --global user.name "yourname" + git config --global user.email "your-email-address" + git config --global credential.helper store + ``` + +5. 执行如下命令安装码云repo工具。 + + ``` + curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o /usr/local/bin/repo #如果没有权限,可下载至其他目录,并将其配置到环境变量中 + chmod a+x /usr/local/bin/repo + pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests + ``` + + +## 获取源码 + +> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> Master主干为开发分支,开发者可通过Master主干获取最新特性。发布分支代码相对比较稳定,开发者可基于发布分支代码进行商用功能开发。 + +- **OpenHarmony主干代码获取** + 方式一(推荐):通过repo + ssh下载(需注册公钥,请参考[码云帮助中心](https://gitee.com/help/articles/4191))。 + + ``` + repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify + repo sync -c + repo forall -c 'git lfs pull' + ``` + + 方式二:通过repo + https下载。 + + + ``` + repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify + repo sync -c + repo forall -c 'git lfs pull' + ``` + +- **OpenHarmony发布分支代码获取** + OpenHarmony各个版本发布分支的源码获取方式请参考[Release-Notes](../../release-notes/Readme.md)。 + + +### 执行prebuilts + + 在源码根目录下执行prebuilts脚本,安装编译器及二进制工具。 + +``` +bash build/prebuilts_download.sh +``` diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-application-framework.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-application-framework.md new file mode 100644 index 0000000000000000000000000000000000000000..ef824fc8fb8e6f7c8d7bf8cd619d1a7a34d107da --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-application-framework.md @@ -0,0 +1,135 @@ +# 编写“Hello World”程序 + + +下方将展示如何在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello World!”。 + + +## 示例目录 + +示例完整目录如下: + + + +``` +applications/sample/hello +│── BUILD.gn +└── src + └── helloworld.c +``` + + +## 开发步骤 + +请在源码目录中通过以下步骤创建“Hello World”应用程序: + +1. 新建目录及源码。 + 新建**applications/sample/hello/src/helloworld.c**目录及文件,代码如下所示,用户可以自定义修改打印内容(例如:修改OHOS为World)。当前应用程序可支持标准C及C++的代码开发。 + + + ``` + #include + + int main(int argc, char **argv) + { + printf("\n\n"); + printf("\n\t\tHello OHOS!\n"); + printf("\n\n\n"); + + return 0; + } + ``` + +2. 新建编译组织文件。 + 新建**applications/sample/hello/BUILD.gn**文件,内容如下所示: + + + ``` + import("//build/lite/config/component/lite_component.gni") + lite_component("hello-OHOS") { + features = [ ":helloworld" ] + } + executable("helloworld") { + output_name = "helloworld" + sources = [ "src/helloworld.c" ] + } + ``` + +3. 添加新组件。 + 修改文件**build/lite/components/applications.json**,添加组件hello_world_app的配置,如下所示为applications.json文件片段,"\#\#start\#\#"和"\#\#end\#\#"之间为新增配置("\#\#start\#\#"和"\#\#end\#\#"仅用来标识位置,添加完配置后删除这两行): + + + ``` + { + "components": [ + { + "component": "camera_sample_communication", + "description": "Communication related samples.", + "optional": "true", + "dirs": [ + "applications/sample/camera/communication" + ], + "targets": [ + "//applications/sample/camera/communication:sample" + ], + "rom": "", + "ram": "", + "output": [], + "adapted_kernel": [ "liteos_a" ], + "features": [], + "deps": { + "components": [], + "third_party": [] + } + }, + ##start## + { + "component": "hello_world_app", + "description": "hello world samples.", + "optional": "true", + "dirs": [ + "applications/sample/hello" + ], + "targets": [ + "//applications/sample/hello:hello-OHOS" + ], + "rom": "", + "ram": "", + "output": [], + "adapted_kernel": [ "liteos_a" ], + "features": [], + "deps": { + "components": [], + "third_party": [] + } + }, + ##end## + { + "component": "camera_sample_app", + "description": "Camera related samples.", + "optional": "true", + "dirs": [ + "applications/sample/camera/launcher", + "applications/sample/camera/cameraApp", + "applications/sample/camera/setting", + "applications/sample/camera/gallery", + "applications/sample/camera/media" + ], + ``` + +4. 修改单板配置文件。 + 修改文件**vendor/hisilicon/hispark_taurus/config.json**,新增hello_world_app组件的条目,如下所示代码片段为applications子系统配置,"\#\#start\#\#"和"\#\#end\#\#"之间为新增条目("\#\#start\#\#"和"\#\#end\#\#"仅用来标识位置,添加完配置后删除这两行): + + + ``` + { + "subsystem": "applications", + "components": [ + { "component": "camera_sample_app", "features":[] }, + { "component": "camera_sample_ai", "features":[] }, + ##start## + { "component": "hello_world_app", "features":[] }, + ##end## + { "component": "camera_screensaver_app", "features":[] } + ] + }, + ``` diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-building.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-building.md new file mode 100644 index 0000000000000000000000000000000000000000..5c17a331dab500c18f8b197d401a44c5a2824394 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-building.md @@ -0,0 +1,29 @@ +# 编译 + + +1. 在Projects中,点击**Settings**按钮,进入Hi3516DV300配置界面。 + ![zh-cn_image_0000001265492885](figures/zh-cn_image_0000001265492885.png) + +2. 在toolchain页签中,DevEco Device Tool会自动检测依赖的编译工具链是否完备,如果提示部分工具缺失,可点击**SetUp**按钮,自动安装所需工具链。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果出现安装pip组件失败,可参考[修改Python源的方法](https://device.harmonyos.com/cn/docs/documentation/guide/ide-set-python-source-0000001227639986)进行修改,完成尝试重新安装。 + + ![zh-cn_image_0000001265652869](figures/zh-cn_image_0000001265652869.png) + + 工具链自动安装完成后如下图所示。 + + ![zh-cn_image_0000001220852754](figures/zh-cn_image_0000001220852754.png) + +3. 在“hi3516dv300”配置页签中,设置源码的编译类型**build_type**,默认为“debug“类型,请根据需要进行修改。然后点击**Save**按钮进行保存。 + + ![zh-cn_image_0000001221172710](figures/zh-cn_image_0000001221172710.png) + +4. 在“PROJECT TASKS”中,点击对应开发板下的**Build**按钮,执行编译。 + + ![zh-cn_image_0000001265772913](figures/zh-cn_image_0000001265772913.png) + +5. 等待编译完成,在**TERMINAL**窗口输出“SUCCESS”,编译完成。 + + ![zh-cn_image_0000001221012766](figures/zh-cn_image_0000001221012766.png) + + 编译完成后,可以在工程的**out**目录下,查看编译生成的文件,用于后续的[Hi3516DV300开发板烧录](https://device.harmonyos.com/cn/docs/documentation/guide/ide-hi3516-upload-0000001052148681)。 diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-burn.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-burn.md new file mode 100644 index 0000000000000000000000000000000000000000..e7156ab6416205655a0d51740a8c4d54ec84fee7 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-burn.md @@ -0,0 +1,59 @@ +# 烧录 + + +Hi3516DV300支持USB烧录、网口烧录和串口烧录三种方式,本文采用USB方式进行烧录。相关操作在Windows环境下进行 。 + + +1. 请连接好电脑和待烧录开发板,需要同时连接串口和USB口,具体可参考[Hi3516DV300开发板介绍](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-introduction-hi3516.md)。 + +2. 在DevEco Device Tool中,选择REMOTE DEVELOPMENT > Local PC,查看远程计算机(Ubuntu开发环境)与本地计算机(Windows开发环境)的连接状态。 + - 如果Local PC右边连接按钮为![zh-cn_image_0000001261315939](figures/zh-cn_image_0000001261315939.png),则远程计算机与本地计算机为已连接状态,不需要执行其他操作。 + - 如果Local PC右边连接按钮为![zh-cn_image_0000001261515989](figures/zh-cn_image_0000001261515989.png),则点击绿色连接进行按钮。 + + ![zh-cn_image_0000001261395999](figures/zh-cn_image_0000001261395999.png) + + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 该操作仅在远程模式(Windows+Ubuntu混合开发环境)中需要设置,如果采用本地模式(Windows开发环境或Ubuntu开发环境),则请跳过该步骤。 + +3. 在DevEco Device Tool中,点击QUICK ACCESS > DevEco Home > Device,查看并记录对应的串口号。 + ![zh-cn_image_0000001216516128](figures/zh-cn_image_0000001216516128.png) + + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果对应的串口异常,请根据[Hi3516DV300/Hi3518EV300开发板串口驱动安装指导](https://device.harmonyos.com/cn/docs/documentation/guide/hi3516_hi3518-drivers-0000001050743695)安装USB转串口的驱动程序。 + +4. 在QUICK ACCESS > DevEco Home > Projects中,点击**Settings**打开工程配置界面。 + ![zh-cn_image_0000001198566364](figures/zh-cn_image_0000001198566364.png) + +5. 在“hi3516dv300”页签,设置烧录选项,包括upload_partitions、upload_port和upload_protocol。 + - upload_partitions:选择待烧录的文件,默认情况下会同时烧录fastboot、kernel、rootfs和userfs。 + - upload_port:选择已查询到的串口号。 + - upload_protocol:选择烧录协议,固定选择“hiburn-usb”。 + + ![zh-cn_image_0000001223190441](figures/zh-cn_image_0000001223190441.png) + +6. 分别检查待烧录文件的烧录信息,DevEco Device Tool已预置默认的烧录文件信息,可根据实际情况进行调整。待烧录文件包括:fastboot、kernel、rootfs和userfs。 + 1. 在“hi3516dv300_fastboot”页签,在New Option选项中选择需要修改的项,例如partition_bin(烧录文件路径)、partition_addr(烧录文件起始地址)、partition_length(烧录文件分区长度)等。 + ![zh-cn_image_0000001198889702](figures/zh-cn_image_0000001198889702.png) + 2. 然后在Partition Options中,分别修改上述步骤中选择的修改项。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件的大小进行设置,要求设置的烧录分区大小,要大于待烧录文件的大小;同时,各烧录文件的分区地址设置不能出现重叠。 + + ![zh-cn_image_0000001243290907](figures/zh-cn_image_0000001243290907.png) + 3. 按照相同的方法修改kernel、rootfs和userfs的烧录文件信息。 + +7. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 + +8. 点击hi3516dv300下的**Upload**按钮,启动烧录。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果您是第一次在工作台烧录Hi3516DV300/Hi3518EV300开发板,可能烧录失败,提示“not find the Devices”,然后根据[Hi3516DV300/Hi3518EV300开发板USB驱动安装](https://device.harmonyos.com/cn/docs/documentation/guide/usb_driver-0000001058690393)进行处理后再重新烧录。 + + ![zh-cn_image_0000001267231481](figures/zh-cn_image_0000001267231481.png) + +9. 在终端窗口显示如下提示信息时,按住复位键,插拔USB线,最后松开复位键启动烧录。 + ![zh-cn_image_0000001114129426](figures/zh-cn_image_0000001114129426.png) + + 启动烧录后,界面提示如下信息时,表示烧录成功。 + + ![zh-cn_image_0000001160649343](figures/zh-cn_image_0000001160649343.png) + +10. 烧录成功后,请根据镜像运行章节进行操作,启动系统。 diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-running.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-running.md new file mode 100644 index 0000000000000000000000000000000000000000..353bf9f1581f24175927eeca7947b3ad44296396 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-running.md @@ -0,0 +1,47 @@ +# 运行 + + +## 启动系统 + +在完成Hi3516DV300的烧录后,还需要设置BootLoader引导程序,才能运行OpenHarmony系统。 + +1. 在Hi3516DV300任务中,点击Configure bootloader(Boot OS)进行配置即可。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > DevEco Device Tool针对Hi3516DV300开发板的BootLoader设置进行了适配,无需开发者手动修改。 + + ![zh-cn_image_0000001226794644](figures/zh-cn_image_0000001226794644.png) + +2. 提示如下图中的重启开发板的提示信息时,重启开发板,然后在控制台输出“SUCCESS”表示设置成功。 + ![zh-cn_image_0000001227114584](figures/zh-cn_image_0000001227114584.png) + +3. 在任务栏点击**Monitor**按钮,启动串口工具。 + ![zh-cn_image_0000001271234705](figures/zh-cn_image_0000001271234705.png) + +4. 当界面打印回显信息,点击Enter按钮,直到界面显示OHOS \#信息,表示系统启动成功。 + ![zh-cn_image_0000001271594709](figures/zh-cn_image_0000001271594709.png) + + +## 运行“Hello World” + +系统启动成功后,通过以下步骤运行“Hello World”。 + +1. 在启动界面进入bin目录。 + + ``` + cd bin + ``` + +2. 进入bin目录后可以看到helloworld文件,通过以下命令运行helloworld程序。 + + ``` + ./helloworld + ``` + + 界面打印“Hello World!”,程序运行成功。 + + ![zh-cn_image_0000001271354693](figures/zh-cn_image_0000001271354693.png) + + +## 下一步学习 + +恭喜您,已完成Hi3516的快速上手!建议您下一步进入[带屏摄像头类产品开发](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/guide/device-camera.md)的学习 。 diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3516.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3516.md new file mode 100644 index 0000000000000000000000000000000000000000..e7f1497495db288027bde1bc7bbb79f80b48bdaf --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3516.md @@ -0,0 +1,11 @@ +# Hi3516开发板 + + + +- **[编写“Hello World”程序](quickstart-ide-lite-steps-hi3516-application-framework.md)** + +- **[编译](quickstart-ide-lite-steps-hi3516-building.md)** + +- **[烧录](quickstart-ide-lite-steps-hi3516-burn.md)** + +- **[运行](quickstart-ide-lite-steps-hi3516-running.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3816-running.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3816-running.md new file mode 100644 index 0000000000000000000000000000000000000000..4d87208d9e71ecedc29d01ef693feacbbf2cb760 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3816-running.md @@ -0,0 +1,19 @@ +# 运行 + + +## 运行结果 + +示例代码编译、烧录、运行、调测后,重启开发板后将自动在界面输出如下结果: + + +``` +ready to OS start +FileSystem mount ok. +wifi init success! +[DEMO] Hello world. +``` + + +## 下一步学习 + +恭喜,您已完成Hi3861 WLAN模组快速上手!建议您下一步进入[WLAN产品开发](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/guide/device-wlan.md)的学习 。 diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-application-framework.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-application-framework.md new file mode 100644 index 0000000000000000000000000000000000000000..023fca41a0925099ea0a94f119e45545f17cfd27 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-application-framework.md @@ -0,0 +1,136 @@ +# 编写“Hello World”程序 + + +下方将通过修改源码的方式展示如何编写简单程序,输出“Hello world”。请在下载的源码目录中进行下述操作。 + + +1. 确定目录结构。 + 开发者编写业务时,务必先在./applications/sample/wifi-iot/app路径下新建一个目录(或一套目录结构),用于存放业务源码文件。 + + 例如:在app下新增业务my_first_app,其中hello_world.c为业务代码,BUILD.gn为编译脚本,具体规划目录结构如下: + + + ``` + . + └── applications + └── sample + └── wifi-iot + └── app + └── my_first_app + │── hello_world.c + └── BUILD.gn + ``` + +2. 编写业务代码。 + 新建./applications/sample/wifi-iot/app/my_first_app下的hello_world.c文件,在hello_world.c中新建业务入口函数HelloWorld,并实现业务逻辑。并在代码最下方,使用OpenHarmony启动恢复模块接口SYS_RUN()启动业务。(SYS_RUN定义在ohos_init.h文件中) + + ``` + #include + #include "ohos_init.h" + #include "ohos_types.h" + + void HelloWorld(void) + { + printf("[DEMO] Hello world.\n"); + } + SYS_RUN(HelloWorld); + ``` + +3. 编写用于将业务构建成静态库的BUILD.gn文件。 + 新建./applications/sample/wifi-iot/app/my_first_app下的BUILD.gn文件,并完成如下配置。 + + 如步骤1所述,BUILD.gn文件由三部分内容(目标、源文件、头文件路径)构成,需由开发者完成填写。 + + + ``` + static_library("myapp") { + sources = [ + "hello_world.c" + ] + include_dirs = [ + "//utils/native/lite/include" + ] + } + ``` + + - static_library中指定业务模块的编译结果,为静态库文件libmyapp.a,开发者根据实际情况完成填写。 + - sources中指定静态库.a所依赖的.c文件及其路径,若路径中包含"//"则表示绝对路径(此处为代码根路径),若不包含"//"则表示相对路径。 + - include_dirs中指定source所需要依赖的.h文件路径。 + +4. 添加新组件。 + 修改文件**build/lite/components/applications.json**,添加组件hello_world_app的配置,如下所示为applications.json文件片段,"\#\#start\#\#"和"\#\#end\#\#"之间为新增配置("\#\#start\#\#"和"\#\#end\#\#"仅用来标识位置,添加完配置后删除这两行): + + + ``` + { + "components": [ + { + "component": "camera_sample_communication", + "description": "Communication related samples.", + "optional": "true", + "dirs": [ + "applications/sample/camera/communication" + ], + "targets": [ + "//applications/sample/camera/communication:sample" + ], + "rom": "", + "ram": "", + "output": [], + "adapted_kernel": [ "liteos_a" ], + "features": [], + "deps": { + "components": [], + "third_party": [] + } + }, + ##start## + { + "component": "hello_world_app", + "description": "hello world samples.", + "optional": "true", + "dirs": [ + "applications/sample/wifi-iot/app/my_first_app" + ], + "targets": [ + "//applications/sample/wifi-iot/app/my_first_app:myapp" + ], + "rom": "", + "ram": "", + "output": [], + "adapted_kernel": [ "liteos_m" ], + "features": [], + "deps": { + "components": [], + "third_party": [] + } + }, + ##end## + { + "component": "camera_sample_app", + "description": "Camera related samples.", + "optional": "true", + "dirs": [ + "applications/sample/camera/launcher", + "applications/sample/camera/cameraApp", + "applications/sample/camera/setting", + "applications/sample/camera/gallery", + "applications/sample/camera/media" + ], + ``` + +5. 修改单板配置文件。 + 修改文件**vendor/hisilicon/hispark_pegasus/config.json**,新增hello_world_app组件的条目,如下所示代码片段为applications子系统配置,"\#\#start\#\#"和"\#\#end\#\#"之间为新增条目("\#\#start\#\#"和"\#\#end\#\#"仅用来标识位置,添加完配置后删除这两行): + + + ``` + { + "subsystem": "applications", + "components": [ + ##start## + { "component": "hello_world_app", "features":[] }, + ##end## + { "component": "wifi_iot_sample_app", "features":[] } + ] + }, + ``` diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-building.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-building.md new file mode 100644 index 0000000000000000000000000000000000000000..2644d6f2b0b617acf389e39ee01f3b2fe7c178d7 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-building.md @@ -0,0 +1,29 @@ +# 编译 + + +1. 在Projects中,点击**Settings**按钮,进入Hi3861配置界面。 + ![zh-cn_image_0000001265785209](figures/zh-cn_image_0000001265785209.png) + +2. 在toolchain页签中,DevEco Device Tool会自动检测依赖的编译工具链是否完备,如果提示部分工具缺失,可点击**SetUp**按钮,自动安装所需工具链。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果出现安装pip组件失败,可参考[修改Python源的方法](https://device.harmonyos.com/cn/docs/documentation/guide/ide-set-python-source-0000001227639986)进行修改,完成尝试重新安装。 + + ![zh-cn_image_0000001221025048](figures/zh-cn_image_0000001221025048.png) + + 工具链自动安装完成后如下图所示。 + + ![zh-cn_image_0000001221344980](figures/zh-cn_image_0000001221344980.png) + +3. 在“hi3861”配置页签中,设置源码的编译类型**build_type**,默认为"debug"类型,请根据需要进行修改。然后点击**Save**按钮进行保存。 + + ![zh-cn_image_0000001265945173](figures/zh-cn_image_0000001265945173.png) + +4. 在DevEco Device Tool界面的“PROJECT TASKS”中,点击对应开发板下的**Build**按钮,执行编译。 + + ![zh-cn_image_0000001265505181](figures/zh-cn_image_0000001265505181.png) + +5. 等待编译完成,在**TERMINAL**窗口输出“SUCCESS”,编译完成。 + + ![zh-cn_image_0000001265665157](figures/zh-cn_image_0000001265665157.png) + + 编译完成后,可以在工程的**out**目录下,查看编译生成的文件,用于后续的[Hi3861V100开发板烧录](https://device.harmonyos.com/cn/docs/documentation/guide/ide-hi3861-upload-0000001051668683)。 diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-burn.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-burn.md new file mode 100644 index 0000000000000000000000000000000000000000..192f9cf64f0610cacc5c9f331ee83850b0e89d29 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-burn.md @@ -0,0 +1,48 @@ +# 烧录 + + +Hi3861V100开发板支持串口烧录方式,在Windows下通过以下步骤进行烧录: + + +1. 请连接好电脑和待烧录开发板,需要连接USB口,具体可参考[Hi3861V100开发板介绍](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-introduction-hi3861.md)。 + +2. 在DevEco Device Tool中,选择REMOTE DEVELOPMENT > Local PC,查看远程计算机(Ubuntu开发环境)与本地计算机(Windows开发环境)的连接状态。 + - 如果Local PC右边连接按钮为![zh-cn_image_0000001261315939](figures/zh-cn_image_0000001261315939.png),则远程计算机与本地计算机为已连接状态,不需要执行其他操作。 + - 如果Local PC右边连接按钮为![zh-cn_image_0000001261515989](figures/zh-cn_image_0000001261515989.png),则点击绿色连接进行按钮。 + + ![zh-cn_image_0000001261395999](figures/zh-cn_image_0000001261395999.png) + + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 该操作仅在远程模式(Windows+Ubuntu混合开发环境)中需要设置,如果采用本地模式(Windows开发环境或Ubuntu开发环境),则请跳过该步骤。 + +3. 在DevEco Device Tool中,点击QUICK ACCESS > DevEco Home > Device,查看并记录对应的串口号。 + ![zh-cn_image_0000001216274840](figures/zh-cn_image_0000001216274840.png) + + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果对应的串口异常,请根据[Hi3861V100开发板串口驱动安装](https://device.harmonyos.com/cn/docs/documentation/guide/hi3861-drivers-0000001058153433)安装USB转串口的驱动程序。 + +4. 在QUICK ACCESS > DevEco Home > Projects中,点击**Settings**打开工程配置界面。 + ![zh-cn_image_0000001198943768](figures/zh-cn_image_0000001198943768.png) + +5. 在“hi3861”页签,设置烧录选项,包括upload_port、upload_protocol和upload_partitions。 + - upload_port:选择已查询的串口号。 + - upload_protocol:选择烧录协议,选择“hiburn-serial”。 + - upload_partitions:选择待烧录的文件,默认选择hi3861_app。 + + ![zh-cn_image_0000001243704061](figures/zh-cn_image_0000001243704061.png) + +6. 检查待烧录文件的烧录信息,DevEco Device Tool已预置默认的烧录文件信息,可根据实际情况进行调整。 + 在“hi3861_app”页签,在New Option选项中选择partition_bin(烧录文件路径),然后设置待烧录文件的地址。 + + ![zh-cn_image_0000001260919759](figures/zh-cn_image_0000001260919759.png) + +7. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 + +8. 点击**Open**打开工程文件,然后在“PROJECT TASKS”中,点击hi3861下的**Upload**按钮,启动烧录。 + ![zh-cn_image_0000001216440138](figures/zh-cn_image_0000001216440138.png) + +9. 启动烧录后,显示如下提示信息时,请按开发板上的RST按钮重启开发板。 + ![zh-cn_image_0000001198466090](figures/zh-cn_image_0000001198466090.png) + +10. 重新上电后,界面提示如下信息时,表示烧录成功。 + ![zh-cn_image_0000001216761476](figures/zh-cn_image_0000001216761476.png) diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-debug.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-debug.md new file mode 100644 index 0000000000000000000000000000000000000000..8c4ed6fb8cb55c6699a959379921b92cc5e26a35 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-debug.md @@ -0,0 +1,64 @@ +# 调试验证 + + +完成烧录及联网之后,用户可根据需要进行调试验证。目前调试验证的方法有以下两种,开发者可以根据具体业务情况选择。 + + +1. 通过printf打印日志 + +2. 通过asm文件定位panic问题 + + +由于本示例业务简单,采用printf打印日志的调试方式即可。下方将介绍这两种调试手段的使用方法。 + + +## printf打印 + +代码中增加printf维测,信息会直接打印到串口上。开发者可在业务关键路径或业务异常位置增加日志打印,如下所示: + + +``` +void HelloWorld(void) +{ + printf("[DEMO] Hello world.\n"); +} +``` + + +## 根据asm文件进行问题定位 + + 系统异常退出时,会在串口上打印异常退出原因调用栈信息,如下文所示。通过解析异常栈信息可以定位异常位置。 + +``` +=======KERNEL PANIC======= +**Call Stack* +Call Stack 0 -- 4860d8 addr:f784c +Call Stack 1 -- 47b2b2 addr:f788c +Call Stack 2 -- 3e562c addr:f789c +Call Stack 3 -- 4101de addr:f78ac +Call Stack 4 -- 3e5f32 addr:f78cc +Call Stack 5 -- 3f78c0 addr:f78ec +Call Stack 6 -- 3f5e24 addr:f78fc +Call Stack end*** +``` + +为解析上述调用栈信息,需要使用到Hi3861_wifiiot_app.asm文件,该文件记录了代码中函数在Flash上的符号地址以及反汇编信息。asm文件会随版本打包一同构建输出,存放在./out/wifiiot/路径下。 + +1. 将调用栈CallStack信息保存到txt文档中,以便于编辑。(可选) + +2. 打开asm文件,并搜索CallStack中的地址,列出对应的函数名信息。通常只需找出前几个栈信息对应的函数,就可明确异常代码方向。 + + ``` + Call Stack 0 -- 4860d8 addr:f784c -- WadRecvCB + Call Stack 1 -- 47b2b2 addr:f788c -- wal_sdp_process_rx_data + Call Stack 2 -- 3e562c addr:f789c + Call Stack 3 -- 4101de addr:f78ac + Call Stack 4 -- 3e5f32 addr:f78cc + Call Stack 5 -- 3f78c0 addr:f78ec + Call Stack 6 -- 3f5e24 addr:f78fc + ``` + +3. 根据以上调用栈信息,可以定位WadRecvCB函数中出现了异常。 + ![zh-cn_image_0000001226634668](figures/zh-cn_image_0000001226634668.png) + +4. 完成代码排查及修改。 diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-netconfig.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-netconfig.md new file mode 100644 index 0000000000000000000000000000000000000000..b9262ff4b85b92f07cb1137c8c95e3fe2db10baf --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-netconfig.md @@ -0,0 +1,34 @@ +# 联网 + + +完成版本编译及烧录后,下面开始介绍如何在串口终端上执行AT命令,使Hi3861 WLAN模组联网。 + + +1. 保持Windows工作台和Hi3861 WLAN模组的连接状态,在DevEco工具最下方,点击“DevEco:Serial Monitor”按钮。 + **图1** 打开DevEco串口终端示意图 + ![zh-cn_image_0000001226634700](figures/zh-cn_image_0000001226634700.png) + +2. 复位Hi3861 WLAN模组,终端界面显示“ready to OS start”,则启动成功。 + **图2** Hi3861 WLAN模组复位成功示意图 + ![zh-cn_image_0000001271594733](figures/zh-cn_image_0000001271594733.png) + +3. 在DevEco的串口终端中,依次执行如下AT命令,启动STA模式,连接指定AP热点,并开启DHCP功能。 + + ``` + AT+STARTSTA # 启动STA模式 + AT+SCAN # 扫描周边AP + AT+SCANRESULT # 显示扫描结果 + AT+CONN="SSID",,2,"PASSWORD" # 连接指定AP,其中SSID/PASSWORD为待连接的热点名称和密码 + AT+STASTAT # 查看连接结果 + AT+DHCP=wlan0,1 # 通过DHCP向AP请求wlan0的IP地址 + ``` + +4. 查看Hi3861 WLAN模组与网关联通是否正常,如下图所示。 + + ``` + AT+IFCFG # 查看模组接口IP + AT+PING=X.X.X.X # 检查模组与网关的联通性,其中X.X.X.X需替换为实际的网关地址 + ``` + + **图3** Hi3861 WLAN模组联网成功示意图 + ![zh-cn_image_0000001227114612](figures/zh-cn_image_0000001227114612.png) diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861.md new file mode 100644 index 0000000000000000000000000000000000000000..4bbfca7971cb04475f28dd8c90b20343e195495a --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861.md @@ -0,0 +1,15 @@ +# Hi3861开发板 + + + +- **[编写“Hello World”程序](quickstart-ide-lite-steps-hi3861-application-framework.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-hi3816-running.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps.md new file mode 100644 index 0000000000000000000000000000000000000000..afae2813c9df669d91d5b8dcfa468f4225f78e6e --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps.md @@ -0,0 +1,7 @@ +# 运行“Hello World” + + + +- **[Hi3861开发板](quickstart-ide-lite-steps-hi3861.md)** + +- **[Hi3516开发板](quickstart-ide-lite-steps-hi3516.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite.md new file mode 100644 index 0000000000000000000000000000000000000000..bc21ff3cad893009bc0b3dd2b8345a2efcf3c917 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite.md @@ -0,0 +1,13 @@ +# 轻量和小型系统快速入门-IDE + + + +- **[轻量与小型系统入门概述](quickstart-ide-lite-overview.md)** + +- **[准备轻量与小型系统环境](quickstart-ide-lite-env-setup.md)** + +- **[创建源码工程](quickstart-ide-lite-create-project.md)** + +- **[运行“Hello World”](quickstart-ide-lite-steps.md)** + +- **[附录](quickstart-ide-lite-appendix.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-appendix.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-appendix.md new file mode 100644 index 0000000000000000000000000000000000000000..56f67faa0344da0f160035b3c285ebc3b1a88941 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-appendix.md @@ -0,0 +1,5 @@ +# 附录 + + + +- **[开发板介绍](quickstart-ide-standard-board-introduction.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-board-introduction-hi3516.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-board-introduction-hi3516.md new file mode 100644 index 0000000000000000000000000000000000000000..697ac159e15e3d19107ca8cb5677916e5c9d0100 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-board-introduction-hi3516.md @@ -0,0 +1,19 @@ +# Hi3516开发板介绍 + + +## 开发板简介 + +Hi3516DV300是新一代行业专用Smart HD IP摄像机SOC,集成新一代ISP(Image Signal Processor)、H.265视频压缩编码器、高性能NNIE引擎,在低码率、高画质、智能处理和分析、低功耗等方面引领行业水平。 + + **图1** Hi3516单板正面外观图 + ![zh-cn_image_0000001227082182](figures/zh-cn_image_0000001227082182.png) + + +## 开发板规格 + + **表1** Hi3516开发板规格清单 + +| 规格类型 | 规格清单 | +| -------- | -------- | +| **处理器及内部存储** | - Hi3516DV300芯片
- DDR3 1GB
- eMMC4.5,8GB容量 | +| **外部器件** | - 以太网口
- 音频视频
  - 1路语音输入
  - 1路单声道(AC_L)输出,接3W功放(LM4871)
  - MicroHDMI(1路HDMI 1.4)
- 摄像头
  - 传感器IMX335
  - 镜头M12,焦距4mm,光圈1.8
- 显示屏
  - LCD连接器(2.35寸)
  - LCD连接器(5.5寸)
- 外部器件及接口
  - SD卡接口
  - JTAG/I2S接口
  - ADC接口
  - 舵机接口
  - Grove连接器
  - USB2.0(Type C)
  - 功能按键3个,2个用户自定义按键,1个升级按键
  - LED指示灯,绿灯,红灯 | diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-board-introduction-rk3568.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-board-introduction-rk3568.md new file mode 100644 index 0000000000000000000000000000000000000000..f67dd25dd4cb79fcecfccfb21ba2bc26c1f76c8f --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-board-introduction-rk3568.md @@ -0,0 +1,39 @@ +# RK3568开发板介绍 + + +## 开发板简介 + +RK3568开发板基于Rockchip RK3568芯片,集成双核心架构GPU以及高效能NPU;搭载四核64位Cortex-A55处理器,采用22nm先进工艺,主频高达2.0GHz;支持蓝牙、Wi-Fi、音频、视频和摄像头等功能,拥有丰富的扩展接口,支持多种视频输入输出接口;配置双千兆自适应RJ45以太网口,可满足NVR、工业网关等多网口产品需求。 + + **图1** RK3568开发板正面 + ![zh-cn_image_0000001271442129](figures/zh-cn_image_0000001271442129.png) + + **图2** RK3568开发板背面 + ![zh-cn_image_0000001271322293](figures/zh-cn_image_0000001271322293.png) + + +## 开发板规格 + + **表1** RK3568开发板规格说明 + +| 规格类型 | 规格清单 | +| -------- | -------- | +| 显示接口 | - 1×HDMI2.0(Type-A)接口,支持4K/60fps输出
- 2×MIPI接口,支1920\*1080\@60fps输出
- 1×eDP接口,支持2K\@60fps输出 | +| 音频接口 | - 1×8ch I2S/TDM/PDM
- 1×HDMI音频输出
- 1×喇叭输出
- 1×耳机输出
- 1×麦克风,板载音频输入 | +| 以太网 | 2×GMAC(10/100/1000M) | +| 无线网络 | SDIO接口,支持WIFI6 5G/2.5G,BT4.2 | +| 摄像头接口 | MIPI-CSI2,1x4-lane/2x2-lane\@2.5Gbps/lane | +| USB | - 2×USB2.0 Host,Type-A
- 1×USB3.0 Host,Type-A
- 1×USB3.0 OTG | +| PCIe | 1×2Lanes PCIe3.0 Connector (RC Mode) | +| SATA | 1×SATA3.0 Connector | +| SDMMC | 1×Micro SD Card3.0 | +| 按键 | - 1×Vol+/Recovery
- 1×Reset
- 1×Power
- 1×Vol-
- 1×Mute | +| 调试 | 1×调试串口 | +| RTC | 1×RTC | +| IR | 1×IR | +| 三色灯 | 3×LED | +| G-sensor | 1×G-sensor | +| FAN | 1×Fan | +| 扩展接口 | 20Pin扩展接口包括:
- 2×ADC接口
- 2×I2C接口
- 7×GPIO口(或者3×gpio + 4×uart信号)
- 3×VCC电源(12V、3.3V、5V) | +| 底板尺寸 | 180mm×130mm | +| PCB规格 | 4 层板 | diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-board-introduction.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-board-introduction.md new file mode 100644 index 0000000000000000000000000000000000000000..ed8ec794b4c41d062627bf8da28791ab49535f4d --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-board-introduction.md @@ -0,0 +1,7 @@ +# 开发板介绍 + + + +- **[Hi3516开发板介绍](quickstart-ide-standard-board-introduction-hi3516.md)** + +- **[RK3568开发板介绍](quickstart-ide-standard-board-introduction-rk3568.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-create-project.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-create-project.md new file mode 100644 index 0000000000000000000000000000000000000000..684c3c56dd23050d74fcf90d1e6be6e41eebb6e3 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-create-project.md @@ -0,0 +1,30 @@ +# 创建源码工程 + + +在完成[搭建Windows+Ubuntu混合开发环境](../quick-start/quickstart-ide-standard-env-setup-win-ubuntu.md)和[获取源码](../quick-start/quickstart-ide-standard-sourcecode-acquire.md)后,您需要在Windows环境中按照如下步骤创建源码工程。 + + +1. 打开DevEco Device Tool,进入Home页,点击**Import Project**打开工程。 + ![zh-cn_image_0000001171426014](figures/zh-cn_image_0000001171426014.png) + +2. 选择要导入的源码目录,点击**Import**打开。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 工程存储路径不能包含中文字符、空格。如果工程存储路径包含中文字符或空格,可能导致编译失败。 + + ![zh-cn_image_0000001271562277](figures/zh-cn_image_0000001271562277.png) + +3. 如果您打开的目录不是DevEco Device Tool工程,则会出现如下提示框,点击**Import**。 + ![zh-cn_image_0000001135394334](figures/zh-cn_image_0000001135394334.png) + +4. 在Select Project type界面,选择**Import from OpenHarmony Source**。 + ![zh-cn_image_0000001215743910](figures/zh-cn_image_0000001215743910.png) + +5. 在Import Project界面,选择**Product**后,会自动填充对应的MCU、Board、company和kernel信息,然后**ohosVersion**选择对应的OpenHarmony源码版本。下图以导入Hi3516DV300为例进行展示 。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > Hi3516DV300开发板Product选择“Hi3516DV300”。 + > + > RK3568开发板Product选择“rk3568”。 + + ![zh-cn_image_0000001271448821](figures/zh-cn_image_0000001271448821.png) + +6. 点击**Open**打开工程或源码。 diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-env-setup-win-ubuntu.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-env-setup-win-ubuntu.md new file mode 100644 index 0000000000000000000000000000000000000000..116c938b327cc6c762d1e882c875b276601a6642 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-env-setup-win-ubuntu.md @@ -0,0 +1,194 @@ +# 搭建Windows+Ubuntu混合开发环境 + + +通常在嵌入式开发中,很多开发者习惯于使用Windows进行代码的编辑,比如使用Windows的Visual Studio Code进行OpenHarmony代码的开发。但当前阶段,大部分的开发板源码还不支持在Windows环境下进行编译,如Hi3861、Hi3516系列开发板。因此,需要使用Ubuntu的编译环境对源码进行编译。 + + +在以上的设备开发场景中,可以搭建一套Windows+Ubuntu混合开发的环境,其中使用Windows平台的DevEco Device Tool可视化界面进行相关操作,通过远程连接的方式对接Ubuntu下的DevEco Device Tool(可以不安装Visual Studio Code),然后对Ubuntu下的源码进行开发、编译、烧录等操作。 + + +## 系统要求 + +- Windows系统要求:Windows10 64位系统。 + +- Ubuntu系统要求:Ubuntu20.04及以上版本,内存推荐16 GB及以上。 + +- Windows系统和Ubuntu系统的用户名不能包含中文字符。 + +- Windows和Ubuntu系统上安装的DevEco Device Tool为3.0 Release版本。 + + +## 搭建Ubuntu环境 + +在Windows+Ubuntu混合开发环境场景中,在Ubuntu系统上可以不用安装Visual Studio Code,这种情况下,Ubuntu环境中就没有DevEco Device Tool的可视化操作界面。如果需要使用到Ubuntu下的DevEco Device Tool可视化操作界面,环境搭建请参考[搭建Ubuntu开发环境](https://device.harmonyos.com/cn/docs/documentation/guide/ide-install-ubuntu-0000001072959308)。 + +1. 将Ubuntu Shell环境修改为bash。 + 1. 执行如下命令,确认输出结果为bash。如果输出结果不是bash,请根据步骤2,将Ubuntu shell修改为bash。 + + ``` + ls -l /bin/sh + ``` + + ![zh-cn_image_0000001226764302](figures/zh-cn_image_0000001226764302.png) + 2. 打开终端工具,执行如下命令,输入密码,然后选择**No**,将Ubuntu shell由dash修改为bash。 + + ``` + sudo dpkg-reconfigure dash + ``` + + ![zh-cn_image_0000001243641075](figures/zh-cn_image_0000001243641075.png) + +2. 下载[DevEco Device Tool 3.0 Release](https://device.harmonyos.com/cn/ide#download)Linux版本。 + +3. 解压DevEco Device Tool软件包并对解压后的文件夹进行赋权。 + 1. 进入DevEco Device Tool软件包目录,执行如下命令解压软件包,其中devicetool-linux-tool-3.0.0.400.zip为软件包名称,请根据实际进行修改。 + + ``` + unzip devicetool-linux-tool-3.0.0.400.zip + ``` + 2. 进入解压后的文件夹,执行如下命令,赋予安装文件可执行权限,其中devicetool-linux-tool-3.0.0.400.sh请根据实际进行修改。 + + ``` + chmod u+x devicetool-linux-tool-3.0.0.400.sh + ``` + +4. 执行如下命令,安装DevEco Device Tool,其中devicetool-linux-tool-3.0.0.400.sh请根据实际进行修改。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 安装过程中,会自动检查Python是否安装,且要求Python为3.8~3.9版本。如果不满足,则安装过程中会自动安装,提示“Do you want to continue?”,请输入“Y”后继续安装。 + + + ``` + sudo ./devicetool-linux-tool-3.0.0.300.sh + ``` + + 安装完成后,当界面输出“Deveco Device Tool successfully installed.”时,表示DevEco Device Tool安装成功。 + + ![zh-cn_image_0000001198722374](figures/zh-cn_image_0000001198722374.png) + + +## 搭建Windows开发环境 + +通过Windows系统远程访问Ubuntu环境,需要先在Windows系统中安装DevEco Device Tool,以便使用Windows平台的DevEco Device Tool可视化界面进行相关操作。 + +1. 下载[DevEco Device Tool 3.0 Release](https://device.harmonyos.com/cn/ide#download)Windows版。 + +2. 解压DevEco Device Tool压缩包,双击安装包程序,点击Next进行安装。 + +3. 设置DevEco Device Tool的安装路径,建议安装到非系统盘符,点击**Next**。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果您已安装DevEco Device Tool 3.0 Beta2及以前的版本,则在安装新版本时,会先卸载旧版本,卸载过程中出现如下错误提示时,请点击“Ignore”继续安装,该错误不影响新版本的安装。 + > + > ![zh-cn_image_0000001239275843](figures/zh-cn_image_0000001239275843.png) + + ![zh-cn_image_0000001270076961](figures/zh-cn_image_0000001270076961.png) + +4. 根据安装向导提示,勾选要自动安装的软件。 + 1. 在弹出VSCode installation confirm页面,勾选“Install VScode 1.62.2automatically”,点击**Next**。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果检测到Visual Studio Code已安装,且版本为1.62及以上,则会跳过该步骤。 + + ![zh-cn_image_0000001237801283](figures/zh-cn_image_0000001237801283.png) + 2. 在弹出的Python select page选择“Download from Huawei mirror”,点击**Next**。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果系统已安装可兼容的Python版本(Python 3.8~3.9版本),可选择“Use one of compatible on your PC”。 + + ![zh-cn_image_0000001193983334](figures/zh-cn_image_0000001193983334.png) + +5. 在以下界面点击**Next**,进行软件下载和安装。 + + ![zh-cn_image_0000001239634067](figures/zh-cn_image_0000001239634067.png) + +6. 继续等待DevEco Device Tool安装向导自动安装DevEco Device Tool插件,直至安装完成,点击**Finish**,关闭DevEco Device Tool安装向导。 + + ![zh-cn_image_0000001239650137](figures/zh-cn_image_0000001239650137.png) + +7. 打开Visual Studio Code,进入DevEco Device Tool工具界面。至此,DevEco Device Tool Windows开发环境安装完成。 + + ![zh-cn_image_0000001225760456](figures/zh-cn_image_0000001225760456.png) + + +## 配置Windows远程访问Ubuntu环境 + + +### 安装SSH服务并获取远程访问的IP地址 + +1. 在Ubuntu系统中,打开终端工具,执行如下命令安装SSH服务。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果执行该命令失败,提示openssh-server和openssh-client依赖版本不同,请根据CLI界面提示信息,安装openssh-client相应版本后(例如:sudo apt-get install openssh-client=1:8.2p1-4),再重新执行该命令安装openssh-server。 + + + ``` + sudo apt-get install openssh-server + ``` + +2. 执行如下命令,启动SSH服务。 + + ``` + sudo systemctl start ssh + ``` + +3. 执行如下命令,获取当前用户的IP地址,用于Windows系统远程访问Ubuntu环境。 + + ``` + ifconfig + ``` + + ![zh-cn_image_0000001215737140](figures/zh-cn_image_0000001215737140.png) + + +### 安装Remote SSH + +1. 打开Windows系统下的Visual Studio Code,点击![zh-cn_image_0000001239080359](figures/zh-cn_image_0000001239080359.png),在插件市场的搜索输入框中输入“remote-ssh”。 + + ![zh-cn_image_0000001193920448](figures/zh-cn_image_0000001193920448.png) + +2. 点击Remote-SSH的**Install**按钮,安装Remote-SSH。安装成功后,在**INSTALLED**下可以看到已安装Remote-SSH。 + + ![zh-cn_image_0000001238880335](figures/zh-cn_image_0000001238880335.png) + + +### 远程连接Ubuntu环境 + +1. 打开Windows系统的Visual Studio Code,点击![zh-cn_image_0000001238760373](figures/zh-cn_image_0000001238760373.png),在REMOTE EXOPLORER页面点击+按钮。 + + ![zh-cn_image_0000001215878922](figures/zh-cn_image_0000001215878922.png) + +2. 在弹出的SSH连接命令输入框中输入“ssh _username_\@_ip_address_”,其中ip_address为要连接的远程计算机的IP地址,username为登录远程计算机的帐号。 + + ![zh-cn_image_0000001215879750](figures/zh-cn_image_0000001215879750.png) + +3. 在弹出的输入框中,选择SSH configuration文件,选择默认的第一选项即可。 + + ![zh-cn_image_0000001260519729](figures/zh-cn_image_0000001260519729.png) + +4. 在SSH TARGETS中,找到远程计算机,点击![zh-cn_image_0000001194080414](figures/zh-cn_image_0000001194080414.png),打开远程计算机。 + + ![zh-cn_image_0000001215720398](figures/zh-cn_image_0000001215720398.png) + +5. 在弹出的输入框中,选择**Linux**,然后在选择**Continue**,然后输入登录远程计算机的密码,连接远程计算机 。 + + ![zh-cn_image_0000001215897530](figures/zh-cn_image_0000001215897530.png) + + 连接成功后,等待在远程计算机.vscode-server文件夹下自动安装插件,安装完成后,根据界面提示在Windows系统下重新加载Visual Studio Code,便可以在Windows的DevEco Device Tool界面进行源码开发、编译、烧录等操作。 + + +### 注册访问Ubuntu环境的公钥 + +在完成以上操作后,您就可以通过Windows远程连接Ubuntu环境进行开发了,但在使用过程中,需要您频繁的输入远程连接密码来进行连接。为解决该问题,您可以使用SSH公钥来进行设置。 + +1. 打开Git bash命令行窗口,执行如下命令,生成SSH公钥,请注意,在执行命令过程中,请根据界面提示进行操作。username和ip请填写连接Ubuntu系统时需要的参数。 + + ``` + ssh-keygen -t rsa + ssh-copy-id -i ~/.ssh/id_rsa.pub username@ip + ``` + + ![zh-cn_image_0000001271532317](figures/zh-cn_image_0000001271532317.png) + +2. 在Visual Studio Code中,点击远程连接的设置按钮,并选择打开config文件。 + + ![zh-cn_image_0000001226034634](figures/zh-cn_image_0000001226034634.png) + +3. 在config配置文件中添加SSK Key文件信息,如下图所示,然后保存即可。 + + ![zh-cn_image_0000001270356233](figures/zh-cn_image_0000001270356233.png) diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-env-setup.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-env-setup.md new file mode 100644 index 0000000000000000000000000000000000000000..b84e4b918f08cb55be2499a7430758b77ba06185 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-env-setup.md @@ -0,0 +1,7 @@ +# 准备标准系统环境 + + + +- **[搭建Windows+Ubuntu混合开发环境](quickstart-ide-standard-env-setup-win-ubuntu.md)** + +- **[获取源码](quickstart-ide-standard-sourcecode-acquire.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-overview.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-overview.md new file mode 100644 index 0000000000000000000000000000000000000000..2f3537d4a3081a50af2b789937c33ebaa478a036 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-overview.md @@ -0,0 +1,40 @@ +# 标准系统入门概述 + + +## 简介 + +OpenHarmony标准系统适用于参考内存≥128MiB的设备。通过本文,开发者可以快速熟悉OpenHarmony标准系统的环境搭建、编译、烧录、调测以及运行“Hello World”等。 + +考虑到开发者的开发习惯,OpenHarmony为开发者提供了以下两种入门指导: + +- IDE方式:完全采用IDE(Deveco Device Tool)进行一站式开发,编译依赖工具的安装及编译、烧录、运行都通过IDE进行操作。 + +- 安装包方式:通过命令行进行编译依赖工具的下载安装,编译操作也通过命令实现。烧录、运行等操作使用IDE。 + OpenHarmony还为开发者提供了[Docker环境](../get-code/gettools-acquire.md),在很大程度上简化了编译前的环境配置,习惯使用安装包方式的开发者也可以选择Docker环境进行编译 。 + +本文采用Deveco Device Tool进行一站式开发介绍,习惯使用命令行的开发者可参考[标准系统快速入门(安装包方式)](../quick-start/quickstart-standard-docker.md)。 + + +## 开发环境 + +开发者通常习惯采用Windows+Ubuntu环境进行OpenHarmony开发: + +- Windows:用于源码开发、烧录等。 + +- Ubuntu:用于源码编译。 + +本文将介绍如何基于Windows+Ubuntu环境进行OpenHarmony的开发。 + + +## 开发板 + +本文选取了两款典型开发板:Hi3516DV300、RK3568,并基于上述两款开发板进行开发介绍。开发板的具体外观和规格可参见[本文附录](../quick-start/quickstart-standard-board-introduction.md),开发者可根据需要自行购买开发板。 + + +## 开发流程 + +标准系统快速入门流程如下图所示: + + **图1** 标准系统快速入门开发流程 + + ![zh-cn_image_0000001271562257](figures/zh-cn_image_0000001271562257.png) diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-hi3516-build.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-hi3516-build.md new file mode 100644 index 0000000000000000000000000000000000000000..8785e502f639d6fe80fa1eeff4bf6751eead9962 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-hi3516-build.md @@ -0,0 +1,29 @@ +# 编译 + + +1. 在Projects中,点击**Settings**按钮,进入Hi3516DV300配置界面。 + ![zh-cn_image_0000001265492885](figures/zh-cn_image_0000001265492885.png) + +2. 在toolchain页签中,DevEco Device Tool会自动检测依赖的编译工具链是否完备,如果提示部分工具缺失,可点击**SetUp**按钮,自动安装所需工具链。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果出现安装pip组件失败,可参考[修改Python源的方法](https://device.harmonyos.com/cn/docs/documentation/guide/ide-set-python-source-0000001227639986)进行修改,完成尝试重新安装。 + + ![zh-cn_image_0000001227277128](figures/zh-cn_image_0000001227277128.png) + + 工具链自动安装完成后如下图所示。 + + ![zh-cn_image_0000001227757036](figures/zh-cn_image_0000001227757036.png) + +3. 在“hi3516dv300”配置页签中,设置源码的编译类型**build_type**,默认为“debug“类型,请根据需要进行修改。然后点击**Save**按钮进行保存。 + + ![zh-cn_image_0000001221172710](figures/zh-cn_image_0000001221172710.png) + +4. 在“PROJECT TASKS”中,点击对应开发板下的**Build**按钮,执行编译。 + + ![zh-cn_image_0000001265772913](figures/zh-cn_image_0000001265772913.png) + +5. 等待编译完成,在**TERMINAL**窗口输出“SUCCESS”,编译完成。 + + ![zh-cn_image_0000001221012766](figures/zh-cn_image_0000001221012766.png) + + 编译完成后,可以在工程的**out**目录下,查看编译生成的文件,用于后续的[Hi3516DV300开发板烧录](https://device.harmonyos.com/cn/docs/documentation/guide/ide-hi3516-upload-0000001052148681)。 diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-hi3516-burning.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-hi3516-burning.md new file mode 100644 index 0000000000000000000000000000000000000000..46ad634e51a2481a33b7e7b82fa20768f93d33aa --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-hi3516-burning.md @@ -0,0 +1,62 @@ +# 烧录 + + +在Windows下采用USB烧录方式进行Hi3516DV300的烧录。 + + +1. 请连接好电脑和待烧录开发板,需要同时连接串口和USB口,具体可参考[Hi3516DV300开发板介绍](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-introduction-hi3516.md)。 + +2. 在DevEco Device Tool中,选择REMOTE DEVELOPMENT > Local PC,查看远程计算机(Ubuntu开发环境)与本地计算机(Windows开发环境)的连接状态。 + - 如果Local PC右边连接按钮为![zh-cn_image_0000001261315939](figures/zh-cn_image_0000001261315939.png),则远程计算机与本地计算机为已连接状态,不需要执行其他操作。 + - 如果Local PC右边连接按钮为![zh-cn_image_0000001261515989](figures/zh-cn_image_0000001261515989.png),则点击绿色连接进行按钮。 + + ![zh-cn_image_0000001261395999](figures/zh-cn_image_0000001261395999.png) + + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 该操作仅在远程模式(Windows+Ubuntu混合开发环境)中需要设置,如果采用本地模式(Windows开发环境或Ubuntu开发环境),则请跳过该步骤。 + +3. 在DevEco Device Tool中,点击QUICK ACCESS > DevEco Home > Device,查看并记录对应的串口号。 + + ![zh-cn_image_0000001216516128](figures/zh-cn_image_0000001216516128.png) + + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果对应的串口异常,请根据[Hi3516DV300/Hi3518EV300开发板串口驱动安装指导](https://device.harmonyos.com/cn/docs/documentation/guide/hi3516_hi3518-drivers-0000001050743695)安装USB转串口的驱动程序。 + +4. 在QUICK ACCESS > DevEco Home > Projects中,点击**Settings**打开工程配置界面。 + + ![zh-cn_image_0000001198566364](figures/zh-cn_image_0000001198566364.png) + +5. 在“hi3516dv300”页签,设置烧录选项,包括upload_partitions、upload_port和upload_protocol。 + - upload_partitions:选择待烧录的文件,默认情况下会同时烧录fastboot、kernel、rootfs和userfs。 + - upload_port:选择已查询到的串口号。 + - upload_protocol:选择烧录协议,固定选择“hiburn-usb”。 + + ![zh-cn_image_0000001223190441](figures/zh-cn_image_0000001223190441.png) + +6. 分别检查待烧录文件的烧录信息,DevEco Device Tool已预置默认的烧录文件信息,可根据实际情况进行调整。待烧录文件包括:fastboot、kernel、rootfs和userfs。 + 1. 在“hi3516dv300_fastboot”页签,在New Option选项中选择需要修改的项,例如partition_bin(烧录文件路径)、partition_addr(烧录文件起始地址)、partition_length(烧录文件分区长度)等。 + ![zh-cn_image_0000001198889702](figures/zh-cn_image_0000001198889702.png) + 2. 然后在Partition Options中,分别修改上述步骤中选择的修改项。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件的大小进行设置,要求设置的烧录分区大小,要大于待烧录文件的大小;同时,各烧录文件的分区地址设置不能出现重叠。 + + ![zh-cn_image_0000001243290907](figures/zh-cn_image_0000001243290907.png) + 3. 按照相同的方法修改kernel、rootfs和userfs的烧录文件信息。 + +7. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 + +8. 点击hi3516dv300下的**Upload**按钮,启动烧录。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果您是第一次在工作台烧录Hi3516DV300/Hi3518EV300开发板,可能烧录失败,提示“not find the Devices”,然后根据[Hi3516DV300/Hi3518EV300开发板USB驱动安装](https://device.harmonyos.com/cn/docs/documentation/guide/usb_driver-0000001058690393)进行处理后再重新烧录。 + + ![zh-cn_image_0000001267231481](figures/zh-cn_image_0000001267231481.png) + +9. 在终端窗口显示如下提示信息时,按住复位键,插拔USB线,最后松开复位键启动烧录。 + + ![zh-cn_image_0000001114129426](figures/zh-cn_image_0000001114129426.png) + + 启动烧录后,界面提示如下信息时,表示烧录成功。 + + ![zh-cn_image_0000001160649343](figures/zh-cn_image_0000001160649343.png) + +10. 烧录成功后,请根据镜像运行章节进行操作,启动系统。 diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-hi3516-create.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-hi3516-create.md new file mode 100644 index 0000000000000000000000000000000000000000..2a72e8ff9a9fd2f5166214021270237f53fa32bc --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-hi3516-create.md @@ -0,0 +1,158 @@ +# 编写“Hello World”程序 + + +下方将展示如何在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello World!”。 + + +## 示例目录 + +示例完整目录如下。 + + +``` +applications/sample/hello +│── BUILD.gn +│── include +│ └── helloworld.h +│── src +│ └── helloworld.c +├── bundle.json +build +└── subsystem_config.json +productdefine/common +└── products + └── Hi3516DV300.json +``` + + +## 开发步骤 + +请在源码目录中通过以下步骤创建“Hello World”应用程序: + + +1. 创建目录,编写业务代码。 + 新建applications/sample/hello/src/helloworld.c目录及文件,代码如下所示,用户可以自定义修改打印内容(例如:修改World为OHOS)。其中helloworld.h包含字符串打印函数HelloPrint的声明。当前应用程序可支持标准C及C++的代码开发。 + + + ``` + #include + #include "helloworld.h" + + int main(int argc, char **argv) + { + HelloPrint(); + return 0; + } + + void HelloPrint() + { + printf("\n\n"); + printf("\n\t\tHello World!\n"); + printf("\n\n"); + } + ``` + + 再添加头文件applications/sample/hello/include/helloworld.h,代码如下所示。 + + + ``` + #ifndef HELLOWORLD_H + #define HELLOWORLD_H + #ifdef __cplusplus + #if __cplusplus + extern "C" { + #endif + #endif + + void HelloPrint(); + + #ifdef __cplusplus + #if __cplusplus + } + #endif + #endif + #endif // HELLOWORLD_H + ``` + +2. 新建编译组织文件。 + 1. 新建applications/sample/hello/BUILD.gn文件,内容如下所示: + + ``` + import("//build/ohos.gni") # 导入编译模板 + ohos_executable("helloworld") { # 可执行模块 + sources = [ # 模块源码 + "src/helloworld.c" + ] + include_dirs = [ # 模块依赖头文件目录 + "include" + ] + cflags = [] + cflags_c = [] + cflags_cc = [] + ldflags = [] + configs = [] + deps =[] # 部件内部依赖 + part_name = "hello" # 所属部件名称,必选 + install_enable = true # 是否默认安装(缺省默认不安装),可选 + } + ``` + 2. 新建applications/sample/hello/bundle.json文件,添加sample部件描述,内容如下所示。 + + ``` + { + "name": "@ohos/hello", + "description": "Hello world example.", + "version": "3.1", + "license": "Apache License 2.0", + "publishAs": "code-segment", + "segment": { + "destPath": "applications/sample/hello" + }, + "dirs": {}, + "scripts": {}, + "component": { + "name": "hello", + "subsystem": "sample", + "syscap": [], + "features": [], + "adapted_system_type": [ "mini", "small", "standard" ], + "rom": "10KB", + "ram": "10KB", + "deps": { + "components": [], + "third_party": [] + }, + "build": { + "sub_component": [ + "//applications/sample/hello:helloworld" + ], + "inner_kits": [], + "test": [] + } + } + } + ``` + + bundle.json文件包含两个部分,第一部分描述该部件所属子系统的信息,第二部分component则定义该部件构建相关配置。添加的时候需要指明该部件包含的模块sub_component,假如有提供给其它部件的接口,需要在inner_kits中说明,假如有测试用例,需要在test中说明,inner_kits与test没有也可以不添加。 + +3. 修改子系统配置文件。 + 在build/subsystem_config.json中添加新建的子系统的配置。 + + + ``` + "sample": { + "path": "applications/sample/hello", + "name": "sample" + }, + ``` + +4. 修改产品配置文件。 + 在productdefine\common\products\Hi3516DV300.json中添加对应的hello部件,直接添加到原有部件后即可。 + + + ``` + "usb:usb_manager_native":{}, + "applications:prebuilt_hap":{}, + "sample:hello":{}, + "wpa_supplicant-2.9:wpa_supplicant-2.9":{}, + ``` diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-hi3516-running.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-hi3516-running.md new file mode 100644 index 0000000000000000000000000000000000000000..03aef46b67e6ae1494f4df1598f795a38a338130 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-hi3516-running.md @@ -0,0 +1,55 @@ +# 运行 + + +## 启动系统 + +烧录完成后通过以下步骤启动系统: + +> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> 初次烧写标准系统,需要完成以下配置,后续烧写或者启动,可以跳过以下操作。 + +1. 在DevEco Device Tool中,点击Monitor,打开串口工具。 + ![zh-cn_image_0000001227082162](figures/zh-cn_image_0000001227082162.png) + +2. 重启开发板,在倒计时结束前,按任意键进入系统。 + ![zh-cn_image_0000001271202289](figures/zh-cn_image_0000001271202289.gif) + +3. 通过以下两条命令设置启动参数。 + + ``` + setenv bootargs 'mem=640M console=ttyAMA0,115200 mmz=anonymous,0,0xA8000000,384M clk_ignore_unused rootdelay=10 hardware=Hi3516DV300 init=/init root=/dev/ram0 rw blkdevparts=mmcblk0:1M(boot),15M(kernel),20M(updater),2M(misc),3307M(system),256M(vendor),-(userdata)'; + ``` + + + ``` + setenv bootcmd 'mmc read 0x0 0x82000000 0x800 0x4800; bootm 0x82000000' + ``` + + ![zh-cn_image_0000001271562269](figures/zh-cn_image_0000001271562269.png) + +4. 保存参数设置。 + + ``` + save + ``` + + ![zh-cn_image_0000001226762210](figures/zh-cn_image_0000001226762210.png) + +5. 重启开发板,完成系统启动。 + + ``` + reset + ``` + + ![zh-cn_image_0000001226602238](figures/zh-cn_image_0000001226602238.png) + + +## 运行“Hello World” + +设备启动后打开串口工具,在任意目录下输入命令helloworld后回车,界面打印“Hello World!”,程序运行成功。 + +![zh-cn_image_0000001271322277](figures/zh-cn_image_0000001271322277.png) + +## 下一步 + +恭喜!您已经完成了OpenHarmony标准系统的快速入门,接下来可[开发一个小示例](../guide/device-clock-guide.md),进一步熟悉OpenHarmony的开发。 diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-hi3516.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-hi3516.md new file mode 100644 index 0000000000000000000000000000000000000000..7c1174828b36de829b266183e646c2771902b12b --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-hi3516.md @@ -0,0 +1,11 @@ +# 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)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-rk3568-build.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-rk3568-build.md new file mode 100644 index 0000000000000000000000000000000000000000..a12939ff92479c07d507a55b1d400d59211b5766 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-rk3568-build.md @@ -0,0 +1,26 @@ +# 编译 + + +1. 在Projects中,点击**Settings**按钮,进入HH-SCDY200配置界面。 + ![zh-cn_image_0000001221036768](figures/zh-cn_image_0000001221036768.png) + +2. 在toolchain页签中,DevEco Device Tool会自动检测依赖的编译工具链是否完备,如果提示部分工具缺失,可点击**SetUp**按钮,自动安装所需工具链。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果出现安装pip组件失败,可参考[修改Python源的方法](https://device.harmonyos.com/cn/docs/documentation/guide/ide-set-python-source-0000001227639986)进行修改,完成尝试重新安装。 + + ![zh-cn_image_0000001221356692](figures/zh-cn_image_0000001221356692.png) + + 工具链自动安装完成后如下图所示。 + + ![zh-cn_image_0000001265676877](figures/zh-cn_image_0000001265676877.png) + +3. 在“hh_scdy200”配置页签中,设置源码的编译类型**build_type**,默认为"debug类型,请根据需要进行修改。然后点击**Save**按钮进行保存。 + ![zh-cn_image_0000001265956897](figures/zh-cn_image_0000001265956897.png) + +4. 在DevEco Device Tool界面的“PROJECT TASKS”中,点击对应开发板下的**Build**按钮,执行编译。 + ![zh-cn_image_0000001265516901](figures/zh-cn_image_0000001265516901.png) + +5. 等待编译完成,在**TERMINAL**窗口输出“SUCCESS”,编译完成。 + ![zh-cn_image_0000001222361042](figures/zh-cn_image_0000001222361042.png) + + 编译完成后,可以在工程的**out**目录下,查看编译生成的文件,用于后续的[RK3568开发板烧录](https://device.harmonyos.com/cn/docs/documentation/guide/ide-rk3568-upload-0000001239220669)。 diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-rk3568-burning.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-rk3568-burning.md new file mode 100644 index 0000000000000000000000000000000000000000..c7a8a120ec1311e509e5d42b9c2c01c8d7b1305a --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-rk3568-burning.md @@ -0,0 +1,44 @@ +# 烧录 + + +1. [下载](https://gitee.com/hihope_iot/docs/blob/master/HiHope_DAYU200/%E7%83%A7%E5%86%99%E5%B7%A5%E5%85%B7%E5%8F%8A%E6%8C%87%E5%8D%97/windows/DriverAssitant_v5.1.1.zip)并安装驱动DriverInstall.exe,双击DriverInstall.exe打开安装程序,点击“驱动安装”按钮,按提示安装USB驱动。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果已经安装旧版本的烧写工具,请先点击"驱动卸载"按钮卸载驱动,然后再点击"驱动安装"按钮安装驱动。 + +2. 请连接好电脑和待烧录开发板,连接USB接口。 + +3. 在DevEco Device Tool中,选择REMOTE DEVELOPMENT > Local PC,查看远程计算机(Ubuntu开发环境)与本地计算机(Windows开发环境)的连接状态。 + - 如果Local PC右边连接按钮为![zh-cn_image_0000001261315939](figures/zh-cn_image_0000001261315939.png),则远程计算机与本地计算机为已连接状态,不需要执行其他操作。 + - 如果Local PC右边连接按钮为![zh-cn_image_0000001261515989](figures/zh-cn_image_0000001261515989.png),则点击绿色连接进行按钮。 + + ![zh-cn_image_0000001261395999](figures/zh-cn_image_0000001261395999.png) + + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 该操作仅在远程模式(Windows+Ubuntu混合开发环境)中需要设置,如果采用本地模式(Windows开发环境或Ubuntu开发环境),则请跳过该步骤。 + +4. 打开DevEco Device Tool,在QUICK ACCESS > DevEco Home > Projects中,点击**Settings**打开工程配置界面。 + ![zh-cn_image_0000001239661509](figures/zh-cn_image_0000001239661509.png) + +5. 在“hh_scdy200”页签,设置烧录选项,包括upload_partitions和upload_protocol。 + - upload_partitions:选择待烧录的文件。 + - upload_protocol:选择烧录协议,固定选择“upgrade”。 + + ![zh-cn_image_0000001194504874](figures/zh-cn_image_0000001194504874.png) + +6. 分别检查待烧录文件的烧录信息,DevEco Device Tool已预置默认的烧录文件信息,可根据实际情况进行调整。待烧录文件包括:loader、parameter、uboot、boot_linux、system、vendor和userdata。 + 1. 在“hh_scdy200_loader”页签,在New Option选项中选择需要修改的项,例如partition_bin(烧录文件路径)、partition_addr(烧录文件起始地址)、partition_length(烧录文件分区长度)等。 + ![zh-cn_image_0000001224173270](figures/zh-cn_image_0000001224173270.png) + 2. 然后在Partition Options中,分别修改上述步骤中选择的修改项。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件的大小进行设置,要求设置的烧录分区大小,要大于待烧录文件的大小;同时,各烧录文件的分区地址设置不能出现重叠。 + + ![zh-cn_image_0000001268653461](figures/zh-cn_image_0000001268653461.png) + 3. 按照相同的方法修改parameter、uboot、boot_linux、system、vendor和userdata的烧录文件信息。 + +7. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 + +8. 点击工程的Open按钮,打开工程文件,点击![zh-cn_image_0000001239221905](figures/zh-cn_image_0000001239221905.png)图标,打开DevEco Device Tool界面,在“PROJECT TASKS”中,点击hh_scdy200下的**Upload**按钮,启动烧录。 + ![zh-cn_image_0000001194821710](figures/zh-cn_image_0000001194821710.png) + +9. 等待开发板烧录完成,当屏幕提示如下信息时,表示烧录成功。 + ![zh-cn_image_0000001194984912](figures/zh-cn_image_0000001194984912.png) diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-rk3568-create.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-rk3568-create.md new file mode 100644 index 0000000000000000000000000000000000000000..24504ab8403272d1bf5ac9c695e98579240df8f8 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-rk3568-create.md @@ -0,0 +1,156 @@ +# 编写“Hello World”程序 + + +下方将展示如何在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello World!”。 + + +## 示例目录 + +示例完整目录如下。 + + +``` +applications/sample/hello +│── BUILD.gn +│── include +│ └── helloworld.h +│── src +│ └── helloworld.c +├── bundle.json +build +└── subsystem_config.json +productdefine/common +└── products + └── rk3568.json +``` + + +## 开发步骤 + +请在源码目录中通过以下步骤创建“Hello World”应用程序: + +1. 创建目录,编写业务代码。 + 新建applications/sample/hello/src/helloworld.c目录及文件,代码如下所示,用户可以自定义修改打印内容(例如:修改World为OHOS)。其中helloworld.h包含字符串打印函数HelloPrint的声明。当前应用程序可支持标准C及C++的代码开发。 + + + ``` + #include + #include "helloworld.h" + + int main(int argc, char **argv) + { + HelloPrint(); + return 0; + } + + void HelloPrint() + { + printf("\n\n"); + printf("\n\t\tHello World!\n"); + printf("\n\n"); + } + ``` + + 再添加头文件applications/sample/hello/include/helloworld.h,代码如下所示。 + + + ``` + #ifndef HELLOWORLD_H + #define HELLOWORLD_H + #ifdef __cplusplus + #if __cplusplus + extern "C" { + #endif + #endif + + void HelloPrint(); + + #ifdef __cplusplus + #if __cplusplus + } + #endif + #endif + #endif // HELLOWORLD_H + ``` + +2. 新建编译组织文件。 + 1. 新建applications/sample/hello/BUILD.gn文件,内容如下所示: + + ``` + import("//build/ohos.gni") # 导入编译模板 + ohos_executable("helloworld") { # 可执行模块 + sources = [ # 模块源码 + "src/helloworld.c" + ] + include_dirs = [ # 模块依赖头文件目录 + "include" + ] + cflags = [] + cflags_c = [] + cflags_cc = [] + ldflags = [] + configs = [] + deps =[] # 部件内部依赖 + part_name = "hello" # 所属部件名称,必选 + install_enable = true # 是否默认安装(缺省默认不安装),可选 + } + ``` + 2. 新建applications/sample/hello/bundle.json文件,添加sample部件描述,内容如下所示。 + + ``` + { + "name": "@ohos/hello", + "description": "Hello world example.", + "version": "3.1", + "license": "Apache License 2.0", + "publishAs": "code-segment", + "segment": { + "destPath": "applications/sample/hello" + }, + "dirs": {}, + "scripts": {}, + "component": { + "name": "hello", + "subsystem": "sample", + "syscap": [], + "features": [], + "adapted_system_type": [ "mini", "small", "standard" ], + "rom": "10KB", + "ram": "10KB", + "deps": { + "components": [], + "third_party": [] + }, + "build": { + "sub_component": [ + "//applications/sample/hello:helloworld" + ], + "inner_kits": [], + "test": [] + } + } + } + ``` + + bundle.json文件包含两个部分,第一部分描述该部件所属子系统的信息,第二部分component则定义该部件构建相关配置。添加的时候需要指明该部件包含的模块sub_component,假如有提供给其它部件的接口,需要在inner_kits中说明,假如有测试用例,需要在test中说明,inner_kits与test没有也可以不添加。 + +3. 修改子系统配置文件。 + 在build/subsystem_config.json中添加新建的子系统的配置。 + + + ``` + "sample": { + "path": "applications/sample/hello", + "name": "sample" + }, + ``` + +4. 修改产品配置文件。 + 在productdefine\common\products\rk3568.json中添加对应的hello部件,直接添加到原有部件后即可。 + + ``` + "usb:usb_manager_native":{}, + "applications:prebuilt_hap":{}, + "sample:hello":{}, + "wpa_supplicant-2.9:wpa_supplicant-2.9":{}, + ``` diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-rk3568-running.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-rk3568-running.md new file mode 100644 index 0000000000000000000000000000000000000000..2307c20b275c88885f0e3c2e03c6ff5118b75113 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-rk3568-running.md @@ -0,0 +1,18 @@ +# 运行 + + +## 启动系统 + +镜像烧录完成重启开发板后,系统将会自动启动。开发板附带的屏幕呈现以下界面,表明系统已运行成功。 + + **图1** 系统启动效果图 + ![zh-cn_image_0000001226762222](figures/zh-cn_image_0000001226762222.jpg) + + +## 运行“Hello World” + +1. 设备启动后打开串口工具(以putty为例),波特率设置为1500000,连接设备。 + ![zh-cn_image_0000001226602250](figures/zh-cn_image_0000001226602250.png) + +2. 打开串口后,在任意目录(以设备根目录为例)下输入命令helloworld后回车,界面打印“Hello World!”,程序运行成功。 + ![zh-cn_image_0000001226922154](figures/zh-cn_image_0000001226922154.png) diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-rk3568.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-rk3568.md new file mode 100644 index 0000000000000000000000000000000000000000..9378ffbe110060f9709adb306fe4f5a6703e9be3 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-rk3568.md @@ -0,0 +1,11 @@ +# 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)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-running.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running.md new file mode 100644 index 0000000000000000000000000000000000000000..794f1ba83e738adbc8fd98402a911f3ce280c6e0 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running.md @@ -0,0 +1,7 @@ +# 运行“Hello World” + + + +- **[Hi3516开发板](quickstart-ide-standard-running-hi3516.md)** + +- **[RK3568开发板](quickstart-ide-standard-running-rk3568.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-sourcecode-acquire.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-sourcecode-acquire.md new file mode 100644 index 0000000000000000000000000000000000000000..59843fe019d59a205bf116a1708b12471c1c7d3f --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-sourcecode-acquire.md @@ -0,0 +1,77 @@ +# 获取源码 + + +在Ubuntu环境下通过以下步骤拉取OpenHarmony源码。 + + +## 前提条件 + +1. 注册码云gitee帐号。 + +2. 注册码云SSH公钥,请参考[码云帮助中心](https://gitee.com/help/articles/4191)。 + +3. 安装git客户端和git-lfs。(上述工具已在搭建环境章节安装。如已安装,请忽略) + + 更新软件源: + + ``` + sudo apt-get update + ``` + + 通过以下命令安装: + + ``` + sudo apt-get install git git-lfs + ``` + +4. 配置用户信息。 + + ``` + git config --global user.name "yourname" + git config --global user.email "your-email-address" + git config --global credential.helper store + ``` + +5. 安装码云repo工具,可以执行如下命令。 + + ``` + curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o /usr/local/bin/repo #如果没有权限,可下载至其他目录,并将其配置到环境变量中 + chmod a+x /usr/local/bin/repo + pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests + ``` + + +## 获取方式 + +> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> Master主干为开发分支,开发者可通过Master主干获取最新特性。发布分支代码相对比较稳定,开发者可基于发布分支代码进行商用功能开发。 + +- **OpenHarmony主干代码获取** + 方式一(推荐):通过repo + ssh下载(需注册公钥,请参考[码云帮助中心](https://gitee.com/help/articles/4191))。 + + ``` + repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify + repo sync -c + repo forall -c 'git lfs pull' + ``` + + 方式二:通过repo + https下载。 + + + ``` + repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify + repo sync -c + repo forall -c 'git lfs pull' + ``` + +- **OpenHarmony发布分支代码获取** + OpenHarmony各个版本发布分支的源码获取方式请参考[Release-Notes](../../release-notes/Readme.md)。 + + +### 执行prebuilts + + 在源码根目录下执行prebuilts脚本,安装编译器及二进制工具。 + +``` +bash build/prebuilts_download.sh +``` diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-appendix.md b/zh-cn/device-dev/quick-start/quickstart-lite-appendix.md new file mode 100644 index 0000000000000000000000000000000000000000..6aa44d7ffef8a24ecdf64aedd7a984034c615f3c --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-lite-appendix.md @@ -0,0 +1,7 @@ +# 附录 + + + +- **[开发板介绍](quickstart-lite-board-introduction.md)** + +- **[参考信息](quickstart-lite-reference.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-board-introduction.md b/zh-cn/device-dev/quick-start/quickstart-lite-board-introduction.md new file mode 100644 index 0000000000000000000000000000000000000000..2d333b5bce032b3ae4215452e1fe2712528e5a23 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-lite-board-introduction.md @@ -0,0 +1,7 @@ +# 开发板介绍 + + + +- **[Hi3861开发板介绍](quickstart-lite-introduction-hi3861.md)** + +- **[Hi3516开发板介绍](quickstart-lite-introduction-hi3516.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-docker-environment.md b/zh-cn/device-dev/quick-start/quickstart-lite-docker-environment.md deleted file mode 100644 index 0618477f49c778435cc98ff6624cb93700ab74ae..0000000000000000000000000000000000000000 --- a/zh-cn/device-dev/quick-start/quickstart-lite-docker-environment.md +++ /dev/null @@ -1,34 +0,0 @@ -# 使用Docker方式搭建编译环境 - -- [安装Docker](#section7337134183512) -- [获取Docker环境](#section15666113905015) - -使用安装包方式搭建Ubuntu编译环境步骤如下: - -1. 安装Docker -2. 获取Docker环境: - -想要详细了解OpenHarmony编译构建模块功能的开发者可参考[编译构建使用指南](../subsystems/subsys-build-mini-lite.md)。 - -## 安装Docker - -- 请参考[官方指导](https://docs.docker.com/engine/install/)。 - -## 获取Docker环境 - ->![](../public_sys-resources/icon-note.gif) **说明:** ->不同的源码版本要匹配使用对应版本的Docker环境,本文以Master主干代码为例进行说明。 - -OpenHarmony的Docker镜像托管在[HuaweiCloud SWR](https://console.huaweicloud.com/swr/?region=cn-south-1#/app/warehouse/warehouseMangeDetail/goldensir/openharmony-docker/openharmony-docker?type=ownImage)上。开发者可以通过该镜像在很大程度上简化编译前的环境配置。下文将介绍具体使用步骤。 - -1. 获取Docker镜像。 - - ``` - docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0 - ``` - -2. 进入OpenHarmony代码根目录执行如下命令,从而进入Docker构建环境。 - - ``` - docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0 - ``` diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-env-prepare.md b/zh-cn/device-dev/quick-start/quickstart-lite-env-prepare.md deleted file mode 100644 index e211b8ba3126aa456ab25efd42272f9d5019250d..0000000000000000000000000000000000000000 --- a/zh-cn/device-dev/quick-start/quickstart-lite-env-prepare.md +++ /dev/null @@ -1,73 +0,0 @@ -# 开发环境准备 - -- [系统要求](#zh-cn_topic_0000001072959308_section1865184385215) -- [安装DevEco Device Tool](#zh-cn_topic_0000001072959308_section86587531620) - -DevEco Device Tool Ubuntu版本支持OpenHarmony源码开发、编译、烧录的一站式开发环境,因此,本章节为您介绍在Ubuntu环境下,如何搭建一套完整的可视化开发环境。 - -## 系统要求 - -- Ubuntu18及以上版本,内存推荐16 GB及以上。 -- 系统的用户名不能含有中文字符。 -- 只能使用普通用户角色搭建开发环境。 - -## 安装DevEco Device Tool - -DevEco Device Tool基于Visual Studio Code进行扩展,在Visual Studio Code上以插件方式运行,Visual Studio Code版本为1.60及以上。同时,DevEco Device Tool还依赖Python工具,并要求Python为3.8\~3.9版本。 - -在安装过程中,DevEco Device Tool会自动检查Visual Studio Code和Python,如果检测到Visual Studio Code、Python未安装或版本不符合要求,安装程序会自动安装Visual Studio Code和Python。 - -1. 将Ubuntu Shell环境修改为bash。 - 1. 执行如下命令,确认输出结果为bash。如果输出结果不是bash,请根据步骤2,将Ubuntu shell修改为bash。 - - ``` - ls -l /bin/sh - ``` - - ![](figures/zh-cn_image_0000001194078294.png) - - 2. 打开终端工具,执行如下命令,输入密码,然后选择**No**,将Ubuntu shell由dash修改为bash。 - - ``` - sudo dpkg-reconfigure dash - ``` - - ![](figures/zh-cn_image_0000001238878219.png) - -2. 下载[DevEco Device Tool 3.0 Beta2](https://device.harmonyos.com/cn/ide#download_beta)Linux版本,下载时,请先使用华为开发者帐号进行登录后下载。如未注册华为开发者账号,请先[注册](https://developer.huawei.com/consumer/cn/doc/start/registration-and-verification-0000001053628148)。 -3. 解压DevEco Device Tool软件包并对解压后的文件夹进行赋权。 - 1. 进入DevEco Device Tool软件包目录,执行如下命令解压软件包,其中devicetool-linux-tool-3.0.0.200.zip为软件包名称,请根据实际进行修改。 - - ``` - unzip devicetool-linux-tool-3.0.0.300.zip - ``` - - 2. 进入解压后的文件夹,执行如下命令,赋予安装文件可执行权限,其中devicetool-linux-tool-3.0.0.300.sh请根据实际进行修改。 - - ``` - chmod u+x devicetool-linux-tool-3.0.0.300.sh - ``` - -4. 执行如下命令,安装DevEco Device Tool,其中devicetool-linux-tool-3.0.0.300.sh请根据实际进行修改。 - - >![](../public_sys-resources/icon-note.gif) **说明:** - >安装过程中,会自动检查Visual Studio Code和Python是否安装,且版本符合要求,其中Visual Studio Code为1.60及以上版本,Python为3.8\~3.9版本。如果不满足,则安装过程中会自动安装,提示“Do you want to continue?”,请输入“Y”后继续安装。 - - ``` - sudo ./devicetool-linux-tool-3.0.0.300.sh -- --install-plugins - ``` - - 安装完成后,当界面输出“Deveco Device Tool successfully installed.”时,表示DevEco Device Tool安装成功。 - - ![](figures/zh-cn_image_0000001239348791.png) - -5. 安装完成后,在Ubuntu左下角的![](figures/zh-cn_image_0000001075566984.png)中,启动Visual Studio Code。 -6. 启动Visual Studio Code,DevEco Device Tool运行依赖C/C++、CodeLLDB插件,请点击Visual Studio Code左侧的![](figures/button.png)按钮,分别搜索和安装C/C++、CodeLLDB插件。 - - >![](../public_sys-resources/icon-note.gif) **说明:** - >如果在插件市场安装C/C++和CodeLLDB插件不成功,可手动下载插件后进行安装,具体请参考:[离线安装C/C++和CodeLLDB插件](https://device.harmonyos.com/cn/docs/documentation/guide/offline_plugin_install-0000001074376846)。 - - ![](figures/deveco-device-tool-install-sucessful.png) - -7. 重启Visual Studio Code,点击![](figures/zh-cn_image_0000001239226427.png)进入DevEco Device Tool工具界面。至此,DevEco Device Tool Ubuntu开发环境安装完成。![](figures/zh-cn_image_0000001194668634.png) - diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-env-setup-faqs.md b/zh-cn/device-dev/quick-start/quickstart-lite-env-setup-faqs.md index b7b3133f5378aa7f4cb4e054da1af675b559fa01..c52bbbfbad5bcaff99dc4cd822afb645aa0b630f 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite-env-setup-faqs.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite-env-setup-faqs.md @@ -1,112 +1,9 @@ -# 常见问题 +# 常见问题 -- [hb 安装过程中出现乱码、段错误](#section411894616119) -- [hb 安装过程中提示"cannot import 'sysconfig' from 'distutils'"](#section629417571626) -- [hb 安装过程中提示"module 'platform' has no attribute 'linux\_distribution'"](#section10871523332) -- [hb 安装过程中提示"Could not find a version that satisfies the requirement ohos-build"](#section47351657163213) -- [Linux编译服务器终端输入不识别的命令时提示“ImportError: No module named apt\_pkg”](#section159891252236) -## hb 安装过程中出现乱码、段错误 -- **现象描述** - - 执行“python3 -m pip install --user ohos-build”出现乱码、段错误(segmentation fault)。 - - -- **可能原因** - - pip版本过低。 - -- **解决办法** - - 执行如下命令升级pip。 - - ``` - python3 -m pip install -U pip - ``` - - -## hb 安装过程中提示"cannot import 'sysconfig' from 'distutils'" - -- **现象描述** - - 执行“python3 -m pip install --user ohos-build”提示"cannot import 'sysconfig' from 'distutils'" - - -- **可能原因** - - 缺少distutils模块。 - -- **解决办法** - - 执行如下命令安装。 - - ``` - sudo apt-get install python3.8-distutils - ``` - - -## hb 安装过程中提示"module 'platform' has no attribute 'linux\_distribution'" - -- **现象描述** - - 执行“python3 -m pip install --user ohos-build”提示"module 'platform' has no attribute 'linux\_distribution'" - - -- **可能原因** - - python3 pip安装兼容性问题。 - -- **解决办法** - - 执行如下命令重新安装pip。 - - ``` - sudo apt remove python3-pip - curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py - python get-pip.py - ``` - - -## hb 安装过程中提示"Could not find a version that satisfies the requirement ohos-build" - -- **现象描述** - - 执行“python3 -m pip install --user ohos-build”提示"Could not find a version that satisfies the requirement ohos-build" - - -- **可能原因** - - 可能是网络环境较差导致的安装失败。 - -- **解决办法** - 1. 请检查网络连接是否正常。如果网络有问题,请修复网络问题后重新安装。 - 2. 若网络正常,请尝试指定临时pypi源的方式安装: - - ``` - python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ohos-build - ``` - - - -## Linux编译服务器终端输入不识别的命令时提示“ImportError: No module named apt\_pkg” - -- **现象描述** - - Linux编译服务器终端输入不识别的命令时,提示"ImportError: No module named apt\_pkg" - - -- **可能原因** - - python3 apt安装兼容性问题。 - -- **解决办法** - - 执行如下命令重新安装python3-apt。 - - ``` - sudo apt-get remove python3-apt - sudo apt-get install python3-apt - ``` +- **[hb安装异常](quickstart-lite-faq-hb.md)** +- **[编译异常](quickstart-lite-faq-compose.md)** +- **[烧录异常](quickstart-lite-faq-burning.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-env-setup-overview.md b/zh-cn/device-dev/quick-start/quickstart-lite-env-setup-overview.md deleted file mode 100644 index 6d4f19d180be977622c1c7e497d9dd869b2d0bd5..0000000000000000000000000000000000000000 --- a/zh-cn/device-dev/quick-start/quickstart-lite-env-setup-overview.md +++ /dev/null @@ -1,6 +0,0 @@ -# 搭建系统环境概述 - -OpenHarmony可以使用DevEco Device Tool进行开发、编译、烧录、调测等。 - -当前DevEco Device Tool发布了Windows和Ubuntu两个版本,本文以Ubuntu版本进行相应开发介绍。 - diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md b/zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md index e0ec56568ea23d405647084fb006cc00327e3bb8..f8a8d1d3a146e7012eecc5b565b3c79329cadf9b 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md @@ -1,15 +1,404 @@ -# 搭建轻量与小型系统环境 +# 搭建轻量与小型系统环境 -- **[搭建系统环境概述](quickstart-lite-env-setup-overview.md)** -- **[开发环境准备](quickstart-lite-env-prepare.md)** +## 系统要求 -- **[获取源码](quickstart-lite-sourcecode-acquire.md)** +- Windows系统要求:Windows10 64位系统。 -- **[使用安装包方式搭建编译环境](quickstart-lite-package-environment.md)** +- Ubuntu系统要求:Ubuntu18.04及以上版本,内存推荐16 GB及以上。 -- **[使用Docker方式搭建编译环境](quickstart-lite-docker-environment.md)** +- Windows系统和Ubuntu系统的用户名不能包含中文字符。 -- **[常见问题](quickstart-lite-env-setup-faqs.md)** +- Windows和Ubuntu上安装的DevEco Device Tool为3.0 Release版本。 +## 安装必要的库和工具 + +编译OpenHarmony需要一些库和工具,可以通过以下步骤进行安装。 + +相应操作在Ubuntu环境中进行。 + +1. 使用如下apt-get命令安装后续操作所需的库和工具: + + ``` + sudo apt-get update && sudo apt-get install binutils binutils-dev git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib gcc-arm-linux-gnueabi libc6-dev-i386 libc6-dev-amd64 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby genext2fs device-tree-compiler make libffi-dev e2fsprogs pkg-config perl openssl libssl-dev libelf-dev libdwarf-dev u-boot-tools mtd-utils cpio doxygen liblz4-tool openjdk-8-jre gcc g++ texinfo dosfstools mtools default-jre default-jdk libncurses5 apt-utils wget scons python3.8-distutils tar rsync git-core libxml2-dev lib32z-dev grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5-dev libncursesw5 libstdc++6 gcc-arm-none-eabi vim ssh locales + ``` + + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 以上安装命令适用于Ubuntu18.04,其他版本请根据安装包名称采用对应的安装命令。其中: + > + > - Python要求安装Python 3.8及以上版本,此处以Python 3.8为例。 + > + > - Java要求java8及以上版本,此处以java8为例。 + +2. 将python 3.8设置为默认python版本。 + 查看python 3.8的位置: + + + ``` + which python3.8 + ``` + + 将python和python3切换为python3.8: + + ``` + sudo update-alternatives --install /usr/bin/python python {python3.8 路径} 1 #{python3.8 路径}为上一步查看的python3.8的位置 + sudo update-alternatives --install /usr/bin/python3 python3 {python3.8 路径} 1 #{python3.8 路径}为上一步查看的python3.8的位置 + ``` + + +## 安装DevEco Device Tool + +通过Windows系统远程访问Ubuntu环境进行烧录等操作,需要先在Windows和Ubuntu下分别安装DevEco Device Tool。 + +> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> DevEco Device Tool是OpenHarmony的一站式开发工具,支持源码开发、编译、烧录,调测等,本文主要用其远端连接Ubuntu环境进行烧录和运行。 + + +### 安装Window版本DevEco Device Tool + +1. 下载[DevEco Device Tool 3.0 Release](https://device.harmonyos.com/cn/ide#download)Windows版。 + +2. 解压DevEco Device Tool压缩包,双击安装包程序,点击Next进行安装。 + +3. 设置DevEco Device Tool的安装路径,建议安装到非系统盘符,点击**Next**。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果您已安装DevEco Device Tool 3.0 Beta2及以前的版本,则在安装新版本时,会先卸载旧版本,卸载过程中出现如下错误提示时,请点击“Ignore”继续安装,该错误不影响新版本的安装。 + > + > ![zh-cn_image_0000001239275843](figures/zh-cn_image_0000001239275843.png) + + ![zh-cn_image_0000001270076961](figures/zh-cn_image_0000001270076961.png) + +4. 根据安装向导提示,勾选要自动安装的软件。 + 1. 在弹出VSCode installation confirm页面,勾选“Install VScode 1.62.2automatically”,点击**Next**。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果检测到Visual Studio Code已安装,且版本为1.62及以上,则会跳过该步骤。 + + ![zh-cn_image_0000001237801283](figures/zh-cn_image_0000001237801283.png) + 2. 在弹出的Python select page选择“Download from Huawei mirror”,点击**Next**。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果系统已安装可兼容的Python版本(Python 3.8~3.9版本),可选择“Use one of compatible on your PC”。 + + ![zh-cn_image_0000001193983334](figures/zh-cn_image_0000001193983334.png) + +5. 在以下界面点击**Next**,进行软件下载和安装。 + + ![zh-cn_image_0000001239634067](figures/zh-cn_image_0000001239634067.png) + +6. 继续等待DevEco Device Tool安装向导自动安装DevEco Device Tool插件,直至安装完成,点击**Finish**,关闭DevEco Device Tool安装向导。 + + ![zh-cn_image_0000001239650137](figures/zh-cn_image_0000001239650137.png) + +7. 打开Visual Studio Code,进入DevEco Device Tool工具界面。至此,DevEco Device Tool Windows开发环境安装完成。 + + ![zh-cn_image_0000001225760456](figures/zh-cn_image_0000001225760456.png) + + +### 安装Ubuntu版本DevEco Device Tool + +1. 将Ubuntu Shell环境修改为bash。 + 1. 执行如下命令,确认输出结果为bash。如果输出结果不是bash,请根据步骤2,将Ubuntu shell修改为bash。 + + ``` + ls -l /bin/sh + ``` + + ![zh-cn_image_0000001226764302](figures/zh-cn_image_0000001226764302.png) + 2. 打开终端工具,执行如下命令,输入密码,然后选择**No**,将Ubuntu shell由dash修改为bash。 + + ``` + sudo dpkg-reconfigure dash + ``` + + ![zh-cn_image_0000001243641075](figures/zh-cn_image_0000001243641075.png) + +2. 下载[DevEco Device Tool 3.0 Release](https://device.harmonyos.com/cn/ide#download)Linux版本。 + +3. 解压DevEco Device Tool软件包并对解压后的文件夹进行赋权。 + 1. 进入DevEco Device Tool软件包目录,执行如下命令解压软件包,其中devicetool-linux-tool-3.0.0.400.zip为软件包名称,请根据实际进行修改。 + + ``` + unzip devicetool-linux-tool-3.0.0.400.zip + ``` + 2. 进入解压后的文件夹,执行如下命令,赋予安装文件可执行权限,其中devicetool-linux-tool-3.0.0.400.sh请根据实际进行修改。 + + ``` + chmod u+x devicetool-linux-tool-3.0.0.400.sh + ``` + +4. 执行如下命令,安装DevEco Device Tool,其中devicetool-linux-tool-3.0.0.400.sh请根据实际进行修改。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 安装过程中,会自动检查Python是否安装,且要求Python为3.8~3.9版本。如果不满足,则安装过程中会自动安装,提示“Do you want to continue?”,请输入“Y”后继续安装。 + + + ``` + sudo ./devicetool-linux-tool-3.0.0.300.sh + ``` + + 安装完成后,当界面输出“Deveco Device Tool successfully installed.”时,表示DevEco Device Tool安装成功。 + + ![zh-cn_image_0000001198722374](figures/zh-cn_image_0000001198722374.png) + + +## 配置Windows远程访问Ubuntu环境 + + +### 安装SSH服务并获取远程访问的IP地址 + +1. 在Ubuntu系统中,打开终端工具,执行如下命令安装SSH服务。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果执行该命令失败,提示openssh-server和openssh-client依赖版本不同,请根据CLI界面提示信息,安装openssh-client相应版本后(例如:sudo apt-get install openssh-client=1:8.2p1-4),再重新执行该命令安装openssh-server。 + + + ``` + sudo apt-get install openssh-server + ``` + +2. 执行如下命令,启动SSH服务。 + + ``` + sudo systemctl start ssh + ``` + +3. 执行如下命令,获取当前用户的IP地址,用于Windows系统远程访问Ubuntu环境。 + + ``` + ifconfig + ``` + + ![zh-cn_image_0000001215737140](figures/zh-cn_image_0000001215737140.png) + + +### 安装Remote SSH + +1. 打开Windows系统下的Visual Studio Code,点击![zh-cn_image_0000001239080359](figures/zh-cn_image_0000001239080359.png),在插件市场的搜索输入框中输入“remote-ssh”。 + + ![zh-cn_image_0000001193920448](figures/zh-cn_image_0000001193920448.png) + +2. 点击Remote-SSH的**Install**按钮,安装Remote-SSH。安装成功后,在**INSTALLED**下可以看到已安装Remote-SSH。 + + ![zh-cn_image_0000001238880335](figures/zh-cn_image_0000001238880335.png) + + +### 远程连接Ubuntu环境 + +1. 打开Windows系统的Visual Studio Code,点击![zh-cn_image_0000001238760373](figures/zh-cn_image_0000001238760373.png),在REMOTE EXOPLORER页面点击+按钮。 + + ![zh-cn_image_0000001215878922](figures/zh-cn_image_0000001215878922.png) + +2. 在弹出的SSH连接命令输入框中输入“ssh _username_\@_ip_address_”,其中ip_address为要连接的远程计算机的IP地址,username为登录远程计算机的帐号。 + + ![zh-cn_image_0000001215879750](figures/zh-cn_image_0000001215879750.png) + +3. 在弹出的输入框中,选择SSH configuration文件,选择默认的第一选项即可。 + + ![zh-cn_image_0000001260519729](figures/zh-cn_image_0000001260519729.png) + +4. 在SSH TARGETS中,找到远程计算机,点击![zh-cn_image_0000001194080414](figures/zh-cn_image_0000001194080414.png),打开远程计算机。 + + ![zh-cn_image_0000001215720398](figures/zh-cn_image_0000001215720398.png) + +5. 在弹出的输入框中,选择**Linux**,然后在选择**Continue**,然后输入登录远程计算机的密码,连接远程计算机 。 + + ![zh-cn_image_0000001215897530](figures/zh-cn_image_0000001215897530.png) + + 连接成功后,等待在远程计算机.vscode-server文件夹下自动安装插件,安装完成后,根据界面提示在Windows系统下重新加载Visual Studio Code,便可以在Windows的DevEco Device Tool界面进行源码开发、编译、烧录等操作。 + + +### 注册访问Ubuntu环境的公钥 + +在完成以上操作后,您就可以通过Windows远程连接Ubuntu环境进行开发了,但在使用过程中,需要您频繁的输入远程连接密码来进行连接。为解决该问题,您可以使用SSH公钥来进行设置。 + +1. 打开Git bash命令行窗口,执行如下命令,生成SSH公钥,请注意,在执行命令过程中,请根据界面提示进行操作。username和ip请填写连接Ubuntu系统时需要的参数。 + + ``` + ssh-keygen -t rsa + ssh-copy-id -i ~/.ssh/id_rsa.pub username@ip + ``` + + ![zh-cn_image_0000001271532317](figures/zh-cn_image_0000001271532317.png) + +2. 在Visual Studio Code中,点击远程连接的设置按钮,并选择打开config文件。 + ![zh-cn_image_0000001226034634](figures/zh-cn_image_0000001226034634.png) + +3. 在config配置文件中添加SSK Key文件信息,如下图所示,然后保存即可。 + ![zh-cn_image_0000001270356233](figures/zh-cn_image_0000001270356233.png) + + +## 获取源码 + +在Ubuntu环境下通过以下步骤拉取OpenHarmony源码。 + + +### 准备工作 + +1. 注册码云gitee帐号。 + +2. 注册码云SSH公钥,请参考[码云帮助中心](https://gitee.com/help/articles/4191)。 + +3. 安装git客户端和git-lfs。(上述工具已在安装必要的库和工具小节安装。如已安装,请忽略) + + 更新软件源: + + ``` + sudo apt-get update + ``` + + 通过以下命令安装: + + ``` + sudo apt-get install git git-lfs + ``` + +4. 配置用户信息。 + + ``` + git config --global user.name "yourname" + git config --global user.email "your-email-address" + git config --global credential.helper store + ``` + +5. 执行如下命令安装码云repo工具。 + + ``` + curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o /usr/local/bin/repo #如果没有权限,可下载至其他目录,并将其配置到环境变量中 + chmod a+x /usr/local/bin/repo + pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests + ``` + + +### 获取源码 + +> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> Master主干为开发分支,开发者可通过Master主干获取最新特性。发布分支代码相对比较稳定,开发者可基于发布分支代码进行商用功能开发。 + +- **OpenHarmony主干代码获取** + 方式一(推荐):通过repo + ssh下载(需注册公钥,请参考[码云帮助中心](https://gitee.com/help/articles/4191))。 + + ``` + repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify + repo sync -c + repo forall -c 'git lfs pull' + ``` + + 方式二:通过repo + https下载。 + + + ``` + repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify + repo sync -c + repo forall -c 'git lfs pull' + ``` + +- **OpenHarmony发布分支代码获取** + OpenHarmony各个版本发布分支的源码获取方式请参考[Release-Notes](../../release-notes/Readme.md)。 + + +### 执行prebuilts + + 在源码根目录下执行prebuilts脚本,安装编译器及二进制工具。 + +``` +bash build/prebuilts_download.sh +``` + + +## 安装编译工具 + +想要详细了解OpenHarmony编译构建模块功能的开发者可参考[编译构建指南](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-build.md)。 + +相关操作在Ubuntu环境下进行。 + + +### 安装hb + +> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> 如需安装代理,请参考[配置代理](../quick-start/quickstart-lite-reference.md#配置代理)。 + +1. 运行如下命令安装hb并更新至最新版本 + + ``` + pip3 install --user build/lite + ``` + +2. 设置环境变量 + + ``` + vim ~/.bashrc + ``` + + 将以下命令拷贝到.bashrc文件的最后一行,保存并退出。 + + ``` + export PATH=~/.local/bin:$PATH + ``` + + 执行如下命令更新环境变量。 + + ``` + source ~/.bashrc + ``` + +3. 在源码目录执行"hb -h",界面打印以下信息即表示安装成功: + + ``` + usage: hb + + OHOS build system + + positional arguments: + {build,set,env,clean} + build Build source code + set OHOS build settings + env Show OHOS build env + clean Clean output + + optional arguments: + -h, --help show this help message and exit + ``` + +> ![icon-notice.gif](public_sys-resources/icon-notice.gif) **须知:** +> - 可采用以下命令卸载hb: +> +> ``` +> pip3 uninstall ohos-build +> ``` +> +> - 若安装hb的过程中遇到问题,请参见下文[常见问题](../quick-start/quickstart-lite-faq-hb.md)进行解决。 + + +### 安装LLVM(仅OpenHarmony_v1.x分支/标签需要) + +> ![icon-notice.gif](public_sys-resources/icon-notice.gif) **须知:** +> 如果下载的源码为OpenHarmony_v1.x分支/标签,请按下面的步骤安装9.0.0版本的llvm。 +> +> 如果下载的源码为Master及非OpenHarmony_v1.x分支/标签,可直接跳过本小节,hb会自动下载最新的llvm。 + +1. 打开Linux编译服务器终端。 + +2. [下载LLVM工具](https://repo.huaweicloud.com/harmonyos/compiler/clang/9.0.0-36191/linux/llvm-linux-9.0.0-36191.tar)。 + +3. 解压LLVM安装包至~/llvm路径下。 + + ``` + tar -zxvf llvm.tar -C ~/ + ``` + +4. 设置环境变量。 + + ``` + vim ~/.bashrc + ``` + + 将以下命令拷贝到.bashrc文件的最后一行,保存并退出。 + + + ``` + export PATH=~/llvm/bin:$PATH + ``` + +5. 生效环境变量。 + + ``` + source ~/.bashrc + ``` diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-faq-burning.md b/zh-cn/device-dev/quick-start/quickstart-lite-faq-burning.md new file mode 100644 index 0000000000000000000000000000000000000000..e453b94f6f6cf01146057df9d819da873cf29349 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-lite-faq-burning.md @@ -0,0 +1,110 @@ +# 烧录异常 + + +## 烧写选择串口后提示“Error: Opening COMxx: Access denied” + +- **现象描述** + 点击烧写并选择串口后,出现Error: Opening COMxx: Access denied。 + + **图1** 打开串口失败图 + ![zh-cn_image_0000001226634728](figures/zh-cn_image_0000001226634728.png) + +- **可能原因** + 串口已经被占用。 + +- **解决办法** + +1. 按图依次选择下拉框,查找带有serial-xx的终端。 + **图2** 查找是否存在占用串口的终端 + ![zh-cn_image_0000001226954644](figures/zh-cn_image_0000001226954644.png) + +2. 点击标号中的垃圾桶图标,关闭串口。 + **图3** 关闭串口终端 + ![zh-cn_image_0000001271234761](figures/zh-cn_image_0000001271234761.png) + +3. 重新点击烧写,选择串口并开始烧写程序。 + **图4** 重新启动烧写任务 + ![zh-cn_image_0000001271594765](figures/zh-cn_image_0000001271594765.png) + + +## Windows电脑与单板网络连接失败 + +- **现象描述** + 点击烧写并选择串口后,无法获取文件。 + + **图5** 网络不通,单板无法获取文件图 + ![zh-cn_image_0000001271234757](figures/zh-cn_image_0000001271234757.png) + +- **可能原因** + 单板网络与Windows电脑不联通。 + + Windows电脑防火墙未允许Visual Studio Code联网。 + +- **解决方法** + +1. 检查网线是否连接。 + +2. 点击Windows防火墙。 + **图6** 网络防火墙设置图 + ![zh-cn_image_0000001226634732](figures/zh-cn_image_0000001226634732.png) + +3. 点击“允许应用通过防火墙”。 + **图7** 防火墙和网络保护界面图 + ![zh-cn_image_0000001271354749](figures/zh-cn_image_0000001271354749.png) + +4. 查找Visual Studio Code应用。 + **图8** 查找Visual Studio Code应用图 + ![zh-cn_image_0000001271234765](figures/zh-cn_image_0000001271234765.png) + +5. 勾选Visual Studio Code的专用和公用网络的访问权限。 + **图9** 允许Visual Studio Code应用访问网络 + ![zh-cn_image_0000001271474585](figures/zh-cn_image_0000001271474585.png) + + +## 烧写失败 + +- **现象描述** + 点击烧写并选择串口后,出现无法烧写的情况。 + +- **可能原因** + 安装IDE插件DevEco后未重启。 + +- **解决方法** + 重启IDE。 + + +## (Hi3516)串口无回显 + +- **现象描述** + 串口显示已连接,重启单板后,回车无任何回显。 + +- **可能原因1** + 串口连接错误。 + +- **解决办法** + 修改串口号。 + + 请查看设备管理器,确认连接单板的串口与终端中连接串口是否一致,若不一致,请按[串口访问失败的步骤](#烧写选择串口后提示error-opening-comxx-access-denied)修改串口号。 + +- **可能原因2** + 单板U-boot被损坏。 + +- **解决办法** + 烧写U-boot。 + + 若上述步骤依旧无法连接串口,可能由于单板U-boot损坏,按下述步骤烧写U-boot。 + +1. 获取引导文件U-boot。 + > ![icon-notice.gif](public_sys-resources/icon-notice.gif) **须知:** + > 单板的U-boot文件请在开源包中获取: + > + > Hi3516DV300:device\hisilicon\hispark_taurus\sdk_liteos\uboot\out\boot\u-boot-hi3516dv300.bin + > + > Hi3518EV300:device\hisilicon\hispark_aries\sdk_liteos\uboot\out\boot\u-boot-hi3518ev300.bin + +2. 根据USB烧写步骤烧写U-boot文件。 + 按照[Hi3516系列USB烧写步骤](https://device.harmonyos.com/cn/docs/documentation/guide/ide-hi3516-upload-0000001052148681)/[Hi3518系列USB烧写步骤](https://device.harmonyos.com/cn/docs/documentation/guide/ide-hi3518-upload-0000001057313128#section93591711580)中描述的烧写方法,选择对应单板的U-boot文件进行烧写。 + +3. 烧写完成后,登录串口如下图所示。 + **图10** U-boot烧写完成串口显示图 + ![zh-cn_image_0000001271234753](figures/zh-cn_image_0000001271234753.png) diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-faq-compose.md b/zh-cn/device-dev/quick-start/quickstart-lite-faq-compose.md new file mode 100644 index 0000000000000000000000000000000000000000..6ac98c5c566fd6bfcc0f5a8c676aa0e02c84ebdc --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-lite-faq-compose.md @@ -0,0 +1,257 @@ +# 编译异常 + + +## Linux编译服务器终端输入不识别的命令时提示“ImportError: No module named apt_pkg” + +- **现象描述** + Linux编译服务器终端输入不识别的命令时,提示"ImportError: No module named apt_pkg" + +- **可能原因** + python3 apt安装兼容性问题。 + +- **解决办法** + 执行如下命令重新安装python3-apt。 + + + ``` + sudo apt-get remove python3-apt + sudo apt-get install python3-apt + ``` + + +## 编译构建过程中,提示找不到“python” + +- **现象描述** + 编译构建过程中出现以下错误: + + + ``` + -bash: /usr/bin/python: No such file or directory + ``` + +- **可能原因**1 + 没有装python。 + +- **解决办法** + 请使用如下命令安装Python,下方以Python3.8为例。 + + + ``` + sudo apt-get install python3.8 + ``` + +- **可能原因2** + usr/bin目录下没有python软链接 + + ![zh-cn_image_0000001271354745](figures/zh-cn_image_0000001271354745.png) + +- **解决办法** + 请运行以下命令添加软链接: + + + ``` + # cd /usr/bin/ + # which python3 + # ln -s /usr/local/bin/python3 python + # python --version + ``` + + 例: + + ![zh-cn_image_0000001227114636](figures/zh-cn_image_0000001227114636.png) + + +## 编译构建过程中,提示找不到“python3” + +- **现象描述** + ![zh-cn_image_0000001227114640](figures/zh-cn_image_0000001227114640.png) + +- **可能原因** + 没有装python3。 + +- **解决办法** + 请使用如下命令安装Python3。 + + + ``` + sudo apt-get install python3.8 + ``` + + +## 安装python3过程中,提示“configure: error: no acceptable C compiler found in $PATH” + +- **现象描述** + 安装python3过程中出现以下错误: + + + ``` + configure: error: no acceptable C compiler found in $PATH. See 'config.log' for more details + ``` + +- **可能原因** + 环境中未安装“gcc”。 + +- **解决办法** + 1. 通过命令“apt-get install gcc”在线安装。 + 2. 完成后,重新安装python3。 + + +## 安装python3过程中,提示“-bash: make: command not found” + +- **现象描述** + 安装python3过程中出现以下错误: + + + ``` + -bash: make: command not found + ``` + +- **可能原因** + 环境中未安装“make”。 + +- **解决办法** + 1. 通过命令“apt-get install make”在线安装。 + 2. 完成后,重新安装python3。 + + +## 安装python3过程中,提示“No module named '_ctypes'” + +- **现象描述** + 安装python3过程中出现以下错误: + + + ``` + ModuleNotFoundError:No module named ‘_ctypes’ + ``` + +- **可能原因** + 环境中未安装“libffi”和“libffi-devel”。 + +- **解决办法** + 1. 通过命令“apt-get install libffi\* -y”,在线安装。 + 2. 完成后,重新安装python3。 + + +## 编译构建过程中,提示“No module named 'Crypto'” + +- **现象描述** + 编译构建过程中出现以下错误: + + + ``` + ModuleNotFoundError: No module named 'Crypto' + ``` + +- **可能原因** + 环境中未安装“Crypto”。 + +- **解决办法** + 方法1:通过命令“pip3 install Crypto”,在线安装。 + + 方法2:离线安装。 + + 通过网页[https://pypi.org/project/pycrypto/#files](https://pypi.org/project/pycrypto/#files),下载源码。 + + ![zh-cn_image_0000001226794696](figures/zh-cn_image_0000001226794696.png) + + 将源码放置在Linux服务器中,解压,并安装“python3 setup.py install”。 + + 完成上述安装后,重新构建。 + + +## (Hi3861)编译构建过程中,提示“No module named 'ecdsa'” + +- **现象描述** + 编译构建过程中出现以下错误: + + + ``` + ModuleNotFoundError:No module named 'ecdsa' + ``` + +- **可能原因** + 环境中未安装“ecdsa”。 + +- **解决办法** + 方法1:通过命令“pip3 install ecdsa”,在线安装。 + + 方法2:离线安装 + + 通过网页[https://pypi.org/project/ecdsa/#files](https://pypi.org/project/ecdsa/#files),下载安装包。 + + ![zh-cn_image_0000001271594753](figures/zh-cn_image_0000001271594753.png) + + 将安装包放置Linux服务器中,并安装“pip3 install ecdsa-0.15-py2.py3-none-any.whl”。 + + 完成上述安装后,重新构建。 + + +## (Hi3861)编译构建过程中,提示“Could not find a version that satisfies the requirement six>=1.9.0” + +- **现象描述** + 编译构建过程中出现以下错误: + + + ``` + Could not find a version that satisfies the requirement six>=1.9.0 + ``` + +- **可能原因** + 环境中未安装合适的“six”。 + +- **解决办法** + 方法1:通过命令“pip3 install six”,在线安装。 + + 方法2:离线安装。 + + 通过网页[https://pypi.org/project/six/#files](https://pypi.org/project/six/#files),下载安装包。 + + ![zh-cn_image_0000001271474573](figures/zh-cn_image_0000001271474573.png) + + 将源码放置在Linux服务器中,并安装“pip3 install six-1.14.0-py2.py3-none-any.whl”。 + + 完成上述安装后,重新构建。 + + +## (Hi3861)编译构建过程中,提示找不到“-lgcc” + +- **现象描述** + 编译构建过程中出现以下错误: + + + ``` + riscv32-unknown-elf-ld: cannot find -lgcc + ``` + +- **可能原因** + 交叉编译器gcc_riscv32的PATH添加错误,如下,在"bin"后多添加了一个“/”,应该删除。 + + + ``` + ~/gcc_riscv32/bin/:/data/toolchain/ + ``` + +- **解决办法** + 重新修改gcc_riscv32的PATH,将多余的“/”删除。 + + + ``` + ~/gcc_riscv32/bin:/data/toolchain/ + ``` + + +## (Hi3861)安装kconfiglib时,遇到lsb_release错误 + +- **现象描述** + 安装kconfiglib过程中遇到如下错误打印: + + + ``` + subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1. + ``` + +- **可能原因** + lsb_release模块基于的python版本与现有python版本不一致。 + +- **解决办法** + 执行"find / -name lsb_release",找到lsb_release位置并删除,如:"sudo rm -rf /usr/bin/lsb_release"。 diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-faq-hb.md b/zh-cn/device-dev/quick-start/quickstart-lite-faq-hb.md new file mode 100644 index 0000000000000000000000000000000000000000..9accfa1781e1ae816c3d304f005e942809ffcf2c --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-lite-faq-hb.md @@ -0,0 +1,71 @@ +# hb安装异常 + + +## hb安装过程中出现乱码、段错误 + +- **现象描述** + 执行“python3 -m pip install --user ohos-build”出现乱码、段错误(segmentation fault)。 + +- **可能原因** + pip版本过低。 + +- **解决办法** + 执行如下命令升级pip。 + + + ``` + python3 -m pip install -U pip + ``` + + +## hb安装过程中提示"cannot import 'sysconfig' from 'distutils'" + +- **现象描述** + 执行“python3 -m pip install --user ohos-build”提示"cannot import 'sysconfig' from 'distutils'" + +- **可能原因** + 缺少distutils模块。 + +- **解决办法** + 执行如下命令安装。 + + + ``` + sudo apt-get install python3.8-distutils + ``` + + +## hb安装过程中提示"module 'platform' has no attribute 'linux_distribution'" + +- **现象描述** + 执行“python3 -m pip install --user ohos-build”提示"module 'platform' has no attribute 'linux_distribution'" + +- **可能原因** + python3 pip安装兼容性问题。 + +- **解决办法** + 执行如下命令重新安装pip。 + + + ``` + sudo apt remove python3-pip + curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py + python get-pip.py + ``` + + +## hb安装过程中提示"Could not find a version that satisfies the requirement ohos-build" + +- **现象描述** + 执行“python3 -m pip install --user ohos-build”提示"Could not find a version that satisfies the requirement ohos-build" + +- **可能原因** + 可能是网络环境较差导致的安装失败。 + +- **解决办法** + 1. 请检查网络连接是否正常。如果网络有问题,请修复网络问题后重新安装。 + 2. 若网络正常,请尝试指定临时pypi源的方式安装: + + ``` + python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ohos-build + ``` diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-introduction-hi3516.md b/zh-cn/device-dev/quick-start/quickstart-lite-introduction-hi3516.md index 4627956c67b342391c73c14edb9fd226d4e2bcfe..2424e5b823237f233eadac771ddfdde72ff8005e 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite-introduction-hi3516.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite-introduction-hi3516.md @@ -1,42 +1,20 @@ -# Hi3516开发板介绍 +# Hi3516开发板介绍 -- [简介](#section26131214194212) -- [开发板规格](#section15192203316533) -## 简介 +## 简介 -Hi3516DV300作为新一代行业专用Smart HD IP摄像机SOC,集成新一代ISP\(Image Signal Processor\)、H.265视频压缩编码器,同时集成高性能NNIE引擎,使得Hi3516DV300在低码率、高画质、智能处理和分析、低功耗等方面引领行业水平。 +Hi3516DV300作为新一代行业专用Smart HD IP摄像机SOC,集成新一代ISP(Image Signal Processor)、H.265视频压缩编码器,同时集成高性能NNIE引擎,使得Hi3516DV300在低码率、高画质、智能处理和分析、低功耗等方面引领行业水平。 -**图 1** Hi3516单板正面外观图 + **图1** Hi3516单板正面外观图 + +![zh-cn_image_0000001271234773](figures/zh-cn_image_0000001271234773.png) -![](figures/3516正面.png) +## 开发板规格 -## 开发板规格 - -**表 1** Hi3516开发板规格清单 - - - - - - - - - - - - - -

规格类型

-

规格清单

-

处理器及内部存储

-
  • Hi3516DV300芯片
  • DDR3 1GB
  • eMMC4.5,8GB容量
-

外部器件

-
  • 以太网口
  • 音频视频
    • 1路语音输入
    • 1路单声道(AC_L)输出,接3W功放(LM4871)
    • MicroHDMI(1路HDMI 1.4)
    -
  • 摄像头
    • 传感器IMX335
    • 镜头M12,焦距4mm,光圈1.8
    -
  • 显示屏
    • LCD连接器(2.35寸)
    • LCD连接器(5.5寸)
    -
  • 外部器件及接口
    • SD卡接口
    • JTAG/I2S 接口
    • ADC接口
    • 舵机接口
    • Grove连接器
    • USB2.0(Type C)
    • 功能按键3个,2个用户自定义按键,1个升级按键
    • LED指示灯,绿灯,红灯
    -
-
+ **表1** Hi3516开发板规格清单 +| 规格类型 | 规格清单 | +| -------- | -------- | +| **处理器及内部存储** | - Hi3516DV300芯片
- DDR3 1GB
- eMMC4.5,8GB容量 | +| **外部器件** | - 以太网口
- 音频视频
  - 1路语音输入
  - 1路单声道(AC_L)输出,接3W功放(LM4871)
  - MicroHDMI(1路HDMI 1.4)
- 摄像头
  - 传感器IMX335
  - 镜头M12,焦距4mm,光圈1.8
- 显示屏
  - LCD连接器(2.35寸)
  - LCD连接器(5.5寸)
- 外部器件及接口
  - SD卡接口
  - JTAG/I2S接口
  - ADC接口
  - 舵机接口
  - Grove连接器
  - USB2.0(Type C)
  - 功能按键3个,2个用户自定义按键,1个升级按键
  - LED指示灯,绿灯,红灯 | diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-introduction-hi3518.md b/zh-cn/device-dev/quick-start/quickstart-lite-introduction-hi3518.md deleted file mode 100644 index ff1f64345ed002848fd3ad2061c01c4125e6e884..0000000000000000000000000000000000000000 --- a/zh-cn/device-dev/quick-start/quickstart-lite-introduction-hi3518.md +++ /dev/null @@ -1,57 +0,0 @@ -# Hi3518开发板介绍 - -- [简介](#section14815247616) -- [开发板规格](#section765112478446) - -## 简介 - -Hi3518EV300作为新一代智慧视觉处理SOC,集成新一代ISP\(Image Signal Processor\)以及H.265视频压缩编码器,同时采用先进低功耗工艺和低功耗架构设计,使其在低码率、高画质、低功耗等方面引领行业水平。 - -**图 1** Hi3518EV300单板正面外观图 -![](figures/Hi3518EV300单板正面外观图.png "Hi3518EV300单板正面外观图") - -**图 2** Hi3518EV300单板背面外观图 - - -![](figures/Hi3518正背面.png) - -## 开发板规格 - -**表 1** Hi3518开发板规格清单 - - - - - - - - - - - - - - - - - - - - - - -

规格类型

-

规格清单

-

处理器内核

-
  • 海思3518EV300
-

成像器件

-
  • 1/2.9 F23
-

外部接口

-
  • 外置麦克风MIC
  • 外置8Ω/1.5W扬声器
-

外部存储器接口

-
  • TF卡

    最大支持128GB(通用FAT32格式)

    -
-

WLAN协议

-
  • 支持 802.11 b/g/n
-
- diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-introduction-hi3861.md b/zh-cn/device-dev/quick-start/quickstart-lite-introduction-hi3861.md index c25192dba43b4a238db330dadb2b7b4d3affe26e..3c180799924f21b1f936d3703a01fd7b44fe6c1e 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite-introduction-hi3861.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite-introduction-hi3861.md @@ -1,155 +1,66 @@ -# Hi3861开发板介绍 +# Hi3861开发板介绍 -- [简介](#section19352114194115) -- [资源和约束](#section82610215014) -- [开发板规格](#section169054431017) -- [OpenHarmony关键特性](#section1317173016507) -## 简介 +## 简介 Hi3861开发板是一片大约2cm\*5cm大小的开发板,是一款高度集成的2.4GHz WLAN SoC芯片,集成IEEE 802.11b/g/n基带和RF(Radio Frequency)电路。支持OpenHarmony,并配套提供开放、易用的开发和调试运行环境。 -**图 1** Hi3861开发板外观图 -![](figures/Hi3861开发板外观图.png "Hi3861开发板外观图") + **图1** Hi3861开发板外观图 + ![zh-cn_image_0000001271474569](figures/zh-cn_image_0000001271474569.png) 另外,Hi3861开发板还可以通过与Hi3861底板连接,扩充自身的外设能力,底板如下图所示。 -**图 2** Hi3861底板外观图 + **图2** Hi3861底板外观图 + +![zh-cn_image_0000001226954632](figures/zh-cn_image_0000001226954632.png) +- RF电路包括功率放大器PA(Power Amplifier)、低噪声放大器LNA(Low Noise Amplifier)、RF Balun、天线开关以及电源管理等模块;支持20MHz标准带宽和5MHz/10MHz窄带宽,提供最大72.2Mbit/s物理层速率。 -![](figures/zh-cn_image_0000001171455564.png) +- Hi3861 WLAN基带支持正交频分复用(OFDM)技术,并向下兼容直接序列扩频(DSSS)和补码键控(CCK)技术,支持IEEE 802.11 b/g/n协议的各种数据速率。 -- RF电路包括功率放大器PA(Power Amplifier)、低噪声放大器LNA(Low Noise Amplifier)、RF Balun、天线开关以及电源管理等模块;支持20MHz标准带宽和5MHz/10MHz窄带宽,提供最大72.2Mbit/s物理层速率。 -- Hi3861 WLAN基带支持正交频分复用(OFDM)技术,并向下兼容直接序列扩频(DSSS)和补码键控(CCK)技术,支持IEEE 802.11 b/g/n协议的各种数据速率。 -- Hi3861芯片集成高性能32bit微处理器、硬件安全引擎以及丰富的外设接口,外设接口包括SPI(Synchronous Peripheral Interface)、UART(Universal Asynchronous Receiver & Transmitter)、I2C(The Inter Integrated Circuit)、PWM(Pulse Width Modulation)、GPIO(General Purpose Input/Output)和多路ADC(Analog to Digital Converter),同时支持高速SDIO2.0(Secure Digital Input/Output)接口,最高时钟可达50MHz;芯片内置SRAM(Static Random Access Memory)和Flash,可独立运行,并支持在Flash上运行程序。 -- Hi3861芯片适用于智能家电等物联网智能终端领域。 +- Hi3861芯片集成高性能32bit微处理器、硬件安全引擎以及丰富的外设接口,外设接口包括SPI(Synchronous Peripheral Interface)、UART(Universal Asynchronous Receiver & Transmitter)、I2C(The Inter Integrated Circuit)、PWM(Pulse Width Modulation)、GPIO(General Purpose Input/Output)和多路ADC(Analog to Digital Converter),同时支持高速SDIO2.0(Secure Digital Input/Output)接口,最高时钟可达50MHz;芯片内置SRAM(Static Random Access Memory)和Flash,可独立运行,并支持在Flash上运行程序。 - **图 3** Hi3861功能框图 +- Hi3861芯片适用于智能家电等物联网智能终端领域。 + **图3** Hi3861功能框图 + ![zh-cn_image_0000001226794688](figures/zh-cn_image_0000001226794688.png) - ![](figures/zh-cn_image_0000001171455566.png) - -## 资源和约束 +## 资源和约束 Hi3861开发板资源十分有限,整板共2MB FLASH,352KB RAM。在编写业务代码时,需注意资源使用效率。 -## 开发板规格 - -**表 1** Hi3861开发板规格清单 - - - - - - - - - - - - - - - - - - - - - - - - - -

规格类型

-

规格清单

-

通用规格

-
  • 1×1 2.4GHz频段(ch1~ch14)
  • PHY支持IEEE 802.11b/g/n
  • MAC支持IEEE802.11 d/e/h/i/k/v/w
-
  • 内置PA和LNA,集成TX/RX Switch、Balun等
  • 支持STA和AP形态,作为AP时最大支持6 个STA接入
  • 支持WFA WPA/WPA2 personal、WPS2.0
  • 支持与BT/BLE芯片共存的2/3/4 线PTA方案
  • 电源电压输入范围:2.3V~3.6V
-
  • IO电源电压支持1.8V和3.3V
-
  • 支持RF自校准方案
  • 低功耗:
    • Ultra Deep Sleep模式:5μA@3.3V
    • DTIM1:1.5mA@3.3V
    • DTIM3:0.8mA@3.3V
    -
-

PHY特性

-
  • 支持IEEE802.11b/g/n单天线所有的数据速率
  • 支持最大速率:72.2Mbps@HT20 MCS7
  • 支持标准20MHz带宽和5M/10M窄带宽
  • 支持STBC
  • 支持Short-GI
-

MAC特性

-
  • 支持A-MPDU,A-MSDU
  • 支持Blk-ACK
  • 支持QoS,满足不同业务服务质量需求
-

CPU子系统

-
  • 高性能 32bit微处理器,最大工作频率160MHz
  • 内嵌SRAM 352KB、ROM 288KB
  • 内嵌 2MB Flash
-

外围接口

-
  • 1个SDIO接口、2个SPI接口、2个I2C接口、3个UART接口、15个GPIO接口、7路ADC输入、6路PWM、1个I2S接口(注:上述接口通过复用实现)
  • 外部主晶体频率40M或24M
-

其他信息

-
  • 封装:QFN-32,5mm×5mm
  • 工作温度:-40℃ ~ +85℃
-
- -## OpenHarmony关键特性 -OpenHarmony基于Hi3861平台提供了多种开放能力,提供的关键组件如下表所示。 +## 开发板规格 + + **表1** Hi3861开发板规格清单 + +| 规格类型 | 规格清单 | +| -------- | -------- | +| 通用规格 | - 1×1 2.4GHz频段(ch1~ch14)
- PHY支持IEEE 802.11b/g/n
- MAC支持IEEE802.11 d/e/h/i/k/v/w
- 内置PA和LNA,集成TX/RX Switch、Balun等
- 支持STA和AP形态,作为AP时最大支持6 个STA接入
- 支持WFA WPA/WPA2 personal、WPS2.0
- 支持与BT/BLE芯片共存的2/3/4 线PTA方案
- 电源电压输入范围:2.3V~3.6V
- IO电源电压支持1.8V和3.3V
- 支持RF自校准方案
- 低功耗:
  - Ultra Deep Sleep模式:5μA\@3.3V
  - DTIM1:1.5mA\@3.3V
  - DTIM3:0.8mA\@3.3V | +| PHY特性 | - 支持IEEE802.11b/g/n单天线所有的数据速率
- 支持最大速率:72.2Mbps\@HT20 MCS7
- 支持标准20MHz带宽和5M/10M窄带宽
- 支持STBC
- 支持Short-GI | +| MAC特性 | - 支持A-MPDU,A-MSDU
- 支持Blk-ACK
- 支持QoS,满足不同业务服务质量需求 | +| CPU子系统 | - 高性能 32bit微处理器,最大工作频率160MHz
- 内嵌SRAM 352KB、ROM 288KB
- 内嵌 2MB Flash | +| 外围接口 | - 1个SDIO接口、2个SPI接口、2个I2C接口、3个UART接口、15个GPIO接口、7路ADC输入、6路PWM、1个I2S接口(注:上述接口通过复用实现)
- 外部主晶体频率40M或24M | +| 其他信息 | - 封装:QFN-32,5mm×5mm
- 工作温度:-40℃ ~ +85℃ | -**表 2** OpenHarmony关键组件列表 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

组件名

-

能力介绍

-

WLAN服务

-

提供WLAN服务能力。包括:station和hotspot模式的连接、断开、状态查询等。

-

模组外设控制

-

提供操作外设的能力。包括:I2C、I2S、ADC、UART、SPI、SDIO、GPIO、PWM、FLASH等。

-

分布式软总线

-

OpenHarmony分布式网络中,提供设备被发现、数据传输的能力。

-

设备安全绑定

-

提供在设备互联场景中,数据在设备之间的安全流转的能力。

-

基础加解密

-

提供密钥管理、加解密等能力。

-

系统服务管理

-

系统服务管理基于面向服务的架构,提供了OpenHarmony统一化的系统服务开发框架。

-

启动引导

-

提供系统服务的启动入口标识。在系统服务管理启动时,调用boostrap标识的入口函数,并启动系统服务。

-

系统属性

-

提供获取与设置系统属性的能力。

-

基础库

-

提供公共基础库能力。包括:文件操作、KV存储管理等。

-

DFX

-

提供DFX能力。包括:流水日志、时间打点等。

-

XTS

-

提供OpenHarmony生态认证测试套件的集合能力。

-
+## OpenHarmony关键特性 + +OpenHarmony基于Hi3861平台提供了多种开放能力,提供的关键组件如下表所示。 + + **表2** OpenHarmony关键组件列表 + +| 组件名 | 能力介绍 | +| -------- | -------- | +| WLAN服务 | 提供WLAN服务能力。包括:station和hotspot模式的连接、断开、状态查询等。 | +| 模组外设控制 | 提供操作外设的能力。包括:I2C、I2S、ADC、UART、SPI、SDIO、GPIO、PWM、FLASH等。 | +| 分布式软总线 | 在OpenHarmony分布式网络中,提供设备被发现、数据传输的能力。 | +| 设备安全绑定 | 提供在设备互联场景中,数据在设备之间的安全流转的能力。 | +| 基础加解密 | 提供密钥管理、加解密等能力。 | +| 系统服务管理 | 系统服务管理基于面向服务的架构,提供了OpenHarmony统一化的系统服务开发框架。 | +| 启动引导 | 提供系统服务的启动入口标识。在系统服务管理启动时,调用boostrap标识的入口函数,并启动系统服务。 | +| 系统属性 | 提供获取与设置系统属性的能力。 | +| 基础库 | 提供公共基础库能力。包括:文件操作、KV存储管理等。 | +| DFX | 提供DFX能力。包括:流水日志、时间打点等。 | +| XTS | 提供OpenHarmony生态认证测试套件的集合能力。 | diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-introduction.md b/zh-cn/device-dev/quick-start/quickstart-lite-introduction.md deleted file mode 100644 index 95c5c0fc921ec6ff41696685ae06ff340a5d7568..0000000000000000000000000000000000000000 --- a/zh-cn/device-dev/quick-start/quickstart-lite-introduction.md +++ /dev/null @@ -1,9 +0,0 @@ -# 附录 - -- **[Hi3861开发板介绍](quickstart-lite-introduction-hi3861.md)** - -- **[Hi3516开发板介绍](quickstart-lite-introduction-hi3516.md)** - -- **[Hi3518开发板介绍](quickstart-lite-introduction-hi3518.md)** - - diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-overview.md b/zh-cn/device-dev/quick-start/quickstart-lite-overview.md index 1feb98128e79e121fe6403300d74196875695ff2..4051bf51f8aed3f6cba3f80915295824f3f4c771 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite-overview.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite-overview.md @@ -1,23 +1,43 @@ -# 轻量与小型系统入门概述 +# 轻量与小型系统入门概述 -OpenHarmony轻量和小型系统适用于内存较小的IOT设备。通过本文,开发者可以快速熟悉OpenHarmony轻量和小型系统的环境搭建、编译、烧录、调测以及运行“Hello World”等。 -轻量和小型系统的开发有以下两种方法: +## 简介 -- 用Windows环境进行开发和烧录,使用Linux环境进行编译。 -- 统一使用Linux环境进行开发、编译和烧录。 -因目前Windows系统不支持编译,暂时无法全部使用Windows环境进行开发,开发者可根据使用习惯选择合适的开发方法。 +OpenHarmony轻量和小型系统适用于内存较小的IOT设备(参考内存≥128KiB)。通过本文,开发者可以快速熟悉OpenHarmony标准系统的环境搭建、编译、烧录、调测以及运行“Hello World”等。 -本文将介绍第二种方法,下方所有操作均在Linux环境下进行。 -本文选取了三款典型开发板:Hi3861 WLAN模组、Hi3516DV300、Hi3518EV300,并基于上述三款开发板进行开发介绍。开发板的具体外观和规格可参见[本文附录](quickstart-lite-introduction-hi3861.md#section19352114194115),开发者可根据需要自行购买的开发板。 +考虑到开发者的开发习惯,OpenHarmony为开发者提供了以下两种入门指导: -轻量和小型系统快速入门流程如下图所示,其中搭建编译环境环节可根据实际情况选择Docker方式或安装包方式其中一种即可。 ->![](../public_sys-resources/icon-note.gif) **说明:** ->Docker环境已经封装了相关编译工具,开发者在使用该Docker环境时可以省去Ubuntu编译环境及开发板环境的的搭建操作。 +- IDE方式:完全采用IDE(Deveco Device Tool)进行一站式开发,编译依赖工具的安装及编译、烧录、运行都通过IDE进行操作。 -**图 1** 轻量和小型系统快速入门流程 -![](figures/轻量和小型系统快速入门流程.png "轻量和小型系统快速入门流程") +- 安装包方式:通过命令行进行编译依赖工具的下载安装,编译操作也通过命令实现。烧录、运行等操作使用IDE。OpenHarmony还为开发者提供了[Docker环境](../get-code/gettools-acquire.md),在很大程度上简化了编译前的环境配置,习惯使用安装包方式的开发者也可以选择Docker环境进行编译 。 + +本文采用安装包方式进行介绍,习惯使用Deveco Device Tool的开发者可参考[标准系统快速入门(IDE方式)](../quick-start/quickstart-ide-lite.md)。 + + +## 开发环境 + +开发者通常习惯采用Windows+Ubuntu环境进行OpenHarmony开发: + +- Windows:用于源码开发、烧录等。 + +- Ubuntu:用于源码编译。 + +本文将介绍如何基于Windows+Ubuntu环境进行OpenHarmony的开发。 + + +## 开发板 + +本文基于以下两款典型开发板进行开发介绍 :Hi3861 WLAN模组、Hi3516DV300。开发板的具体外观和规格可参见[本文附录](../quick-start/quickstart-lite-board-introduction.md),开发者可根据需要自行购买开发板。 + + +## 开发流程 + +轻量和小型系统快速入门流程如下图所示。 + + **图1** 轻量和小型系统快速入门开发流程 + + ![zh-cn_image_0000001227114628](figures/zh-cn_image_0000001227114628.png) diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-package-environment.md b/zh-cn/device-dev/quick-start/quickstart-lite-package-environment.md deleted file mode 100644 index a9740e0ab29ff67b8ce43ba765a3e67d4338da70..0000000000000000000000000000000000000000 --- a/zh-cn/device-dev/quick-start/quickstart-lite-package-environment.md +++ /dev/null @@ -1,131 +0,0 @@ -# 使用安装包方式搭建编译环境 - - -使用安装包方式搭建Ubuntu编译环境步骤如下: - -1. 安装必要的库和工具:编译所需的必要工具和库(如打包、镜像制作等)。 -2. 执行prebuilts。 -3. 安装hb:OpenHarmony编译构建命令行工具。 -4. 安装LLVM\(仅OpenHarmony\_v1.x分支/标签需要\)。 - -想要详细了解OpenHarmony编译构建模块功能的开发者可参考[编译构建使用指南](../subsystems/subsys-build-mini-lite.md)。 - -## 安装必要的库和工具 - -1. 使用如下apt-get命令安装后续操作所需的库和工具: - - ``` - sudo apt-get update && sudo apt-get install binutils binutils-dev git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib gcc-arm-linux-gnueabi libc6-dev-i386 libc6-dev-amd64 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby genext2fs device-tree-compiler make libffi-dev e2fsprogs pkg-config perl openssl libssl-dev libelf-dev libdwarf-dev u-boot-tools mtd-utils cpio doxygen liblz4-tool openjdk-8-jre gcc g++ texinfo dosfstools mtools default-jre default-jdk libncurses5 apt-utils wget scons python3.8-distutils tar rsync git-core libxml2-dev lib32z-dev grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5-dev libncursesw5 libstdc++6 gcc-arm-none-eabi vim ssh locales - ``` - - > ![](../public_sys-resources/icon-note.gif) **说明:** - > 以上安装命令适用于Ubuntu18.04,其他版本请根据安装包名称采用对应的安装命令。其中: - > - > - Python要求安装Python 3.8及以上版本,此处以Python 3.8为例。 - > - > - java要求java8及以上版本,此处以java8为例。 - -2. 将python 3.8设置为默认python版本。 - 查看python 3.8的位置: - - - ``` - which python3.8 - ``` - - 将python和python3切换为python3.8: - - ``` - sudo update-alternatives --install /usr/bin/python python {python3.8 路径} 1 #{python3.8 路径}为上一步查看的python3.8的位置 - sudo update-alternatives --install /usr/bin/python3 python3 {python3.8 路径} 1 #{python3.8 路径}为上一步查看的python3.8的位置 - ``` - -## 执行prebuilts - -在源码根目录下执行prebuilts脚本,安装编译器及二进制工具。 - -``` -bash build/prebuilts_download.sh -``` - -## 安装hb - -1. 运行如下命令安装hb并更新至最新版本 - - ``` - pip3 install --user build/lite - ``` - -2. 设置环境变量 - - ``` - vim ~/.bashrc - ``` - - 将以下命令拷贝到.bashrc文件的最后一行,保存并退出。 - - ``` - export PATH=~/.local/bin:$PATH - ``` - - 执行如下命令更新环境变量。 - - ``` - source ~/.bashrc - ``` - -3. 在源码目录执行"hb -h",界面打印以下信息即表示安装成功: - - ``` - usage: hb - - OHOS build system - - positional arguments: - {build,set,env,clean} - build Build source code - set OHOS build settings - env Show OHOS build env - clean Clean output - - optional arguments: - -h, --help show this help message and exit - ``` - - ->![](../public_sys-resources/icon-notice.gif) **须知:** ->若安装hb的过程中遇到问题,请参见下文[常见问题](quickstart-lite-env-setup-faqs.md)进行解决。 - -## 安装LLVM\(仅OpenHarmony\_v1.x分支/标签需要\) - ->![](../public_sys-resources/icon-notice.gif) **须知:** ->如果下载的源码为OpenHarmony\_v1.x分支/标签, 请按下面的步骤安装9.0.0版本的llvm。 ->如果下载的源码为Master及非OpenHarmony\_v1.x分支/标签,可直接跳过本小节,hb会自动下载最新的llvm。 - -1. 打开Linux编译服务器终端。 -2. [下载LLVM工具](https://repo.huaweicloud.com/harmonyos/compiler/clang/9.0.0-36191/linux/llvm-linux-9.0.0-36191.tar)。 -3. 解压LLVM安装包至\~/llvm路径下。 - - ``` - tar -zxvf llvm.tar -C ~/ - ``` - -4. 设置环境变量。 - - ``` - vim ~/.bashrc - ``` - - 将以下命令拷贝到.bashrc文件的最后一行,保存并退出。 - - ``` - export PATH=~/llvm/bin:$PATH - ``` - -5. 生效环境变量。 - - ``` - source ~/.bashrc - ``` - - diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-reference.md b/zh-cn/device-dev/quick-start/quickstart-lite-reference.md new file mode 100644 index 0000000000000000000000000000000000000000..d8a7f6dfaed2d4b7755224d10d1d971740a40d5b --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-lite-reference.md @@ -0,0 +1,69 @@ +# 参考信息 + + +## 使用build.sh脚本编译源码 + + +1. 进入源码根目录,执行如下命令进行版本编译。 + + ``` + ./build.sh --product-name name --ccache + ``` + + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > _name_为产品名称,例如Hi3516DV300、rk3568等。 + +2. 检查编译结果。编译完成后,log中显示如下: + + ``` + post_process + =====build name successful. + ``` + + 编译所生成的文件都归档在out/{device_name}/目录下,结果镜像输出在out/{device_name}/packages/phone/images/ 目录下。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 其他模块化编译操作,可参见[编译构建指导](../subsystems/subsys-build-standard-large.md)。 + + +## 配置代理 + + +### 配置Python代理 + +1. 新建代理配置文件。 + + ``` + mkdir ~/.pipvim ~/.pip/pip.conf + ``` + +2. 在文件中写入如下代理信息并保存退出。 + + ``` + [global] + index-url = http://代理网址 + trusted-host = 可信任的镜像地址 + timeout = 120 + ``` + + +### 配置NPM代理 + +1. 新建代理配置文件。 + + ``` + vim ~/.npmrc + ``` + +2. 在文件中写入如下代理信息并保存退出。 + + ``` + registry=http://代理网址 + strict-ssl=false + ``` + +3. 将以下内容添加到.bashrc中并保存退出。 + + ``` + export NPM_REGISTRY=http://代理网址 + source .bashrc + ``` diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-sourcecode-acquire.md b/zh-cn/device-dev/quick-start/quickstart-lite-sourcecode-acquire.md deleted file mode 100644 index d29eb18bb1ade1dbe3df4f50b2d75dba8ba980e5..0000000000000000000000000000000000000000 --- a/zh-cn/device-dev/quick-start/quickstart-lite-sourcecode-acquire.md +++ /dev/null @@ -1,52 +0,0 @@ -# 获取源码 - - -## 前提条件 - -1. 注册码云gitee帐号。 -2. 注册码云SSH公钥,请参考[码云帮助中心](https://gitee.com/help/articles/4191)。 -3. 安装[git客户端](https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git)和[git-lfs](https://gitee.com/vcs-all-in-one/git-lfs?_from=gitee_search#downloading)并配置用户信息。 - - ``` - git config --global user.name "yourname" - git config --global user.email "your-email-address" - git config --global credential.helper store - ``` - -4. 安装码云repo工具,可以执行如下命令。 - - ``` - curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o /usr/local/bin/repo #如果没有权限,可下载至其他目录,并将其配置到环境变量中 - chmod a+x /usr/local/bin/repo - pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests - ``` - - -## 操作步骤 - ->![](../public_sys-resources/icon-note.gif) **说明:** ->Master主干为开发分支,开发者可通过Master主干获取最新特性。发布版本代码相对比较稳定,开发者可基于发布版本代码进行商用功能开发。 - -- **OpenHarmony主干代码获取** - - 方式一(推荐):通过repo + ssh下载(需注册公钥,请参考[码云帮助中心](https://gitee.com/help/articles/4191))。 - - ``` - repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify - repo sync -c - repo forall -c 'git lfs pull' - ``` - - 方式二:通过repo + https下载。 - - ``` - repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify - repo sync -c - repo forall -c 'git lfs pull' - ``` - -- **OpenHarmony发布版本代码获取** - - OpenHarmony发布版本获取源码方式请参考[Release-Notes](../get-code/../../release-notes/OpenHarmony-v3.0.2-LTS.md)。 - - diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-application-framework.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-application-framework.md index b2d1d02add26b72b653c9ba31094aa9597705b14..ef824fc8fb8e6f7c8d7bf8cd619d1a7a34d107da 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-application-framework.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-application-framework.md @@ -13,19 +13,8 @@ ``` applications/sample/hello │── BUILD.gn -│── include -│ └── helloworld.h -│── src -│ └── helloworld.c -├── bundle.json -│ -│── test -│ └── moduletest -│ └── unittest -│ -productdefine/common -└── products - └── Hi3516DV300.json +└── src + └── helloworld.c ``` @@ -33,127 +22,114 @@ productdefine/common 请在源码目录中通过以下步骤创建“Hello World”应用程序: - -1. 创建目录,编写业务代码。 - 新建applications/sample/hello/src/helloworld.c目录及文件,代码如下所示,用户可以自定义修改打印内容(例如:修改World为OH)。其中helloworld.h包含字符串打印函数HelloPrint的声明。当前应用程序可支持标准C及C++的代码开发。 +1. 新建目录及源码。 + 新建**applications/sample/hello/src/helloworld.c**目录及文件,代码如下所示,用户可以自定义修改打印内容(例如:修改OHOS为World)。当前应用程序可支持标准C及C++的代码开发。 ``` #include - #include "helloworld.h" int main(int argc, char **argv) { - HelloPrint(); - return 0; - } - - void HelloPrint() - { - printf("\n\n"); - printf("\n\t\tHello World!\n"); printf("\n\n"); + printf("\n\t\tHello OHOS!\n"); + printf("\n\n\n"); + + return 0; } ``` - 再添加头文件applications/sample/hello/include/helloworld.h,代码如下所示。 +2. 新建编译组织文件。 + 新建**applications/sample/hello/BUILD.gn**文件,内容如下所示: ``` - #ifndef HELLOWORLD_H - #define HELLOWORLD_H - #ifdef __cplusplus - #if __cplusplus - extern "C" { - #endif - #endif - - void HelloPrint(); - - #ifdef __cplusplus - #if __cplusplus + import("//build/lite/config/component/lite_component.gni") + lite_component("hello-OHOS") { + features = [ ":helloworld" ] + } + executable("helloworld") { + output_name = "helloworld" + sources = [ "src/helloworld.c" ] } - #endif - #endif - #endif // HELLOWORLD_H ``` -2. 新建编译组织文件。 - 1. 新建applications/sample/hello/BUILD.gn文件,内容如下所示: - - ``` - import("//build/ohos.gni") # 导入编译模板 - ohos_executable("helloworld") { # 可执行模块 - sources = [ # 模块源码 - "src/helloworld.c" - ] - include_dirs = [ # 模块依赖头文件目录 - "include" - ] - cflags = [] - cflags_c = [] - cflags_cc = [] - ldflags = [] - configs = [] - deps =[] # 部件内部依赖 - - part_name = "sample" # 所属部件名称,必选 - install_enable = true # 是否默认安装(缺省默认不安装),可选 - } - ``` - 2. 新建applications/sample/bundle.json文件,添加sample部件描述,内容如下所示。 - - ``` +3. 添加新组件。 + 修改文件**build/lite/components/applications.json**,添加组件hello_world_app的配置,如下所示为applications.json文件片段,"\#\#start\#\#"和"\#\#end\#\#"之间为新增配置("\#\#start\#\#"和"\#\#end\#\#"仅用来标识位置,添加完配置后删除这两行): + + + ``` + { + "components": [ + { + "component": "camera_sample_communication", + "description": "Communication related samples.", + "optional": "true", + "dirs": [ + "applications/sample/camera/communication" + ], + "targets": [ + "//applications/sample/camera/communication:sample" + ], + "rom": "", + "ram": "", + "output": [], + "adapted_kernel": [ "liteos_a" ], + "features": [], + "deps": { + "components": [], + "third_party": [] + } + }, + ##start## + { + "component": "hello_world_app", + "description": "hello world samples.", + "optional": "true", + "dirs": [ + "applications/sample/hello" + ], + "targets": [ + "//applications/sample/hello:hello-OHOS" + ], + "rom": "", + "ram": "", + "output": [], + "adapted_kernel": [ "liteos_a" ], + "features": [], + "deps": { + "components": [], + "third_party": [] + } + }, + ##end## { - "name": "@ohos/hello", - "description": "Hello world example.", - "version": "3.1", - "license": "Apache License 2.0", - "publishAs": "code-segment", - "segment": { - "destPath": "applications/sample/hello" - }, - "dirs": {}, - "scripts": {}, - "component": { - "name": "hello", - "subsystem": "applications", - "syscap": [], - "features": [], - "adapted_system_type": [ - "mini", - "small", - "standard" - ], - "rom": "10KB", - "ram": "10KB", - "deps": { - "components": [], - "third_party": [] - }, - "build": { - "sub_component": [ - "//applications/sample/hello:helloworld" - ], - "inner_kits": [], - "test": [ - "//applications/sample/hello/test:moduletest", - "//applications/sample/hello/test:unittest" - ] - } - } - } - ``` - - bundle.json文件包含两个部分,第一部分说明该子系统的名称,component定义该子系统包含的部件,要添加一个部件,需要把该部件对应的内容添加进component中去。添加的时候需要指明该部件包含的模块sub_component,假如有提供给其它部件的接口,需要在inner_kits中说明,假如有测试用例,需要在test中说明,inner_kits与test没有也可以不添加。 - -3. 修改产品配置文件。 - 在productdefine\common\products\Hi3516DV300.json中添加对应的hello部件,直接添加到原有部件后即可。 + "component": "camera_sample_app", + "description": "Camera related samples.", + "optional": "true", + "dirs": [ + "applications/sample/camera/launcher", + "applications/sample/camera/cameraApp", + "applications/sample/camera/setting", + "applications/sample/camera/gallery", + "applications/sample/camera/media" + ], + ``` + +4. 修改单板配置文件。 + 修改文件**vendor/hisilicon/hispark_taurus/config.json**,新增hello_world_app组件的条目,如下所示代码片段为applications子系统配置,"\#\#start\#\#"和"\#\#end\#\#"之间为新增条目("\#\#start\#\#"和"\#\#end\#\#"仅用来标识位置,添加完配置后删除这两行): ``` - "usb:usb_manager_native":{}, - "applications:prebuilt_hap":{}, - "applications:hello":{}, - "wpa_supplicant-2.9:wpa_supplicant-2.9":{}, + { + "subsystem": "applications", + "components": [ + { "component": "camera_sample_app", "features":[] }, + { "component": "camera_sample_ai", "features":[] }, + ##start## + { "component": "hello_world_app", "features":[] }, + ##end## + { "component": "camera_screensaver_app", "features":[] } + ] + }, ``` diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-building.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-building.md index c1fa7209c911e04aa113c238ff03d2eb5744fb7e..eb1637b718847ace23df761ee99bec9f58595c5d 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-building.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-building.md @@ -1,27 +1,49 @@ -# 编译 +# 编译 -下方将介绍如何使用Hi3516开发板进行编译。使用安装包方式与docker方式搭建Ubuntu编译环境,编译步骤相同。 -1. 请进入源码根目录,执行如下命令进行编译: +OpenHarmony支持hb和build.sh两种编译方式。此处介绍hb方式,build.sh脚本编译方式请参考[使用build.sh脚本编译源码](../quick-start/quickstart-lite-reference.md#使用buildsh脚本编译源码)。 - >![](../public_sys-resources/icon-note.gif) **说明:** - >如果使用Docker方式搭建编译环境,请在[获取Docker环境](quickstart-lite-docker-environment.md#section15666113905015)中进入的Docker构建环境中,执行如下命令进行编译。 - ``` - hb set(设置编译路径) - .(选择当前路径) - 选择ipcamera_hispark_taurus并回车 - hb build -f(执行编译) - ``` +请进入源码根目录,执行如下命令进行编译: - **图 1** Hi3516编译设置图例-Docker方式 - ![](figures/Hi3516编译设置图例-Docker方式.png "Hi3516编译设置图例-Docker方式") -2. 编译结束后,出现“ipcamera\_hispark\_taurus build success”字样,则证明构建成功。 +1. 设置编译路径。 + + ``` + hb set + ``` - >![](../public_sys-resources/icon-notice.gif) **须知:** - >烧录相关文件获取路径: - >结果文件:out/hispark\_taurus/ipcamera\_hispark\_taurus。 - >U-boot文件:device/hisilicon/hispark\_taurus/sdk\_liteos/uboot/out/boot/u-boot-hi3516dv300.bin。 +2. 选择当前路径。 + + ``` + . + ``` +3. 在hisilicon下选择ipcamera_hispark_taurus并回车。 +4. 执行编译。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > - 单独编译一个部件(例如hello),可使用“hb build -T _目标名称_”进行编译。 + > + > - 增量编译整个产品,可使用“hb build”进行编译。 + > + > - 完整编译整个产品,可使用“hb build -f”进行编译。 + > + > 此处以完整编译整个产品为例进行说明。 + + + ``` + hb build -f + ``` + + + **图1** Hi3516编译设置图例 + ![zh-cn_image_0000001271594749](figures/zh-cn_image_0000001271594749.png) + +5. 编译结束后,出现“build success”字样,则证明构建成功。 + > ![icon-notice.gif](public_sys-resources/icon-notice.gif) **须知:** + > 烧录相关文件获取路径: + > + > - 编译结果文件及日志文件:out/hispark_taurus/ipcamera_hispark_taurus。 + > + > - U-boot文件:device/board/hisilicon/hispark_taurus/uboot/out/boot/u-boot-hi3516dv300.bin。 diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-burn.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-burn.md index 413680008e32110206e7cb3f2ccfdea634931468..06a58a13fc00e560c944d6469ffef54bcbdc82a4 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-burn.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-burn.md @@ -1,93 +1,88 @@ -# 烧录 +# 烧录 -- [前提条件](#section762111572589) -- [使用网口烧录](#section12323175612487) -烧录是指将编译后的程序文件下载到芯片开发板上的动作,为后续的程序调试提供基础。DevEco Device Tool提供一键烧录功能,操作简单,能快捷、高效的完成程序烧录,提升烧录的效率。 +Hi3516DV300支持USB烧录、网口烧录和串口烧录三种方式,本文采用USB方式进行烧录。相关操作在Windows环境下进行 。 -DevEco Device Tool以插件方式运行,基于Visual Studio Code进行扩展,用户可点击Visual Studio Code左侧栏的![](figures/2021-01-27_170334.png)图标打开DevEco Device Tool。 -Hi3516开发板的代码烧录支持USB烧录、网口烧录和串口烧录三种方式。此处仅以网口烧录为例进行说明,其它方式请参考[Hi3516DV300开发板烧录](https://device.harmonyos.com/cn/docs/documentation/guide/ide-hi3516-upload-0000001052148681#section1760842019292)。 +### 导入源码 -## 前提条件 +在编译完成后,[保证Windows系统可以远程访问Ubuntu环境](../quick-start/quickstart-lite-env-setup.md#安装deveco-device-tool)的情况下,您还需要通过以下步骤导入源码后,方可进行烧录。 -1. 在DevEco Device Tool工具中点击**Import Project**导入新建应用程序章节修改后的源码文件。 +1. 打开DevEco Device Tool,进入Home页,点击**Import Project**打开工程。 + ![zh-cn_image_0000001171426014](figures/zh-cn_image_0000001171426014.png) - ![](figures/import-project.png) +2. 选择要导入的源码目录(需要访问Ubuntu下的源码目录),点击**Import**打开。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 工程存储路径不能包含中文字符、空格。如果工程存储路径包含中文字符或空格,可能导致编译失败。 -2. 选择源码导入时,系统会提示该工程不是DevEco Device Tool工程,点击**Import**。 + ![zh-cn_image_0000001271791385](figures/zh-cn_image_0000001271791385.png) - ![](figures/import-project-confirm.png) +3. 如果您打开的目录不是DevEco Device Tool工程,则会出现如下提示框,点击**Import**。 + ![zh-cn_image_0000001135394334](figures/zh-cn_image_0000001135394334.png) -3. MCU选择HiSilicom\_Arm下的Hi3516DV300,Board选择hi3516dv300,Framework选择Hb,然后点击**Import**完成导入。 +4. 在Select Project type界面,选择**Import from OpenHarmony Source**。 + ![zh-cn_image_0000001215743910](figures/zh-cn_image_0000001215743910.png) - ![](figures/hi3516-import-projects.png) +5. 在Import Project界面,选择**Product**后,会自动填充对应的MCU、Board、company和kernel信息,然后**ohosVersion**选择对应的OpenHarmony源码版本。此处选择ipcamera_hispark_taurus。 + ![zh-cn_image_0000001227711014](figures/zh-cn_image_0000001227711014.png) +6. 点击**Open**打开工程或源码。 -## 使用网口烧录 -1. 请连接好电脑和待烧录开发板,需要同时连接串口、网口和电源,具体可参考[Hi3516DV300开发板介绍](https://device.harmonyos.com/cn/docs/documentation/guide/quickstart-lite-introduction-hi3516-0000001152041033)。 -2. 查看并记录对应的串口号。 +### 烧录 - >![](../public_sys-resources/icon-note.gif) **说明:** - >如果对应的串口异常,请根据[Hi3516DV300/Hi3518EV300开发板串口驱动安装指导](https://device.harmonyos.com/cn/docs/documentation/guide/hi3516_hi3518-drivers-0000001050743695)安装USB转串口的驱动程序。 +完成源码导入后,通过以下步骤进行烧录: - Windows系统,打开设备管理器查看并记录对应的串口号,或在DevEco Device Tool中,点击QUICK ACCESS \> DevEco Home \> Device,查看并记录对应的串口号。 +1. 请连接好电脑和待烧录开发板,需要同时连接串口和USB口,具体可参考[Hi3516DV300开发板介绍](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-introduction-hi3516.md)。 - ![](figures/record-the-serial-port-number.png) +2. 在DevEco Device Tool中,选择REMOTE DEVELOPMENT > Local PC,查看远程计算机(Ubuntu开发环境)与本地计算机(Windows开发环境)的连接状态。 + - 如果Local PC右边连接按钮为![zh-cn_image_0000001261315939](figures/zh-cn_image_0000001261315939.png),则远程计算机与本地计算机为已连接状态,不需要执行其他操作。 + - 如果Local PC右边连接按钮为![zh-cn_image_0000001261515989](figures/zh-cn_image_0000001261515989.png),则点击绿色连接进行按钮。 - Linux系统,在DevEco Device Tool中,点击QUICK ACCESS \> DevEco Home \> Device,查看并记录对应的串口号。 + ![zh-cn_image_0000001261395999](figures/zh-cn_image_0000001261395999.png) - ![](figures/Snap22.png) + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 该操作仅在远程模式(Windows+Ubuntu混合开发环境)中需要设置,如果采用本地模式(Windows开发环境或Ubuntu开发环境),则请跳过该步骤。 -3. 在QUICK ACCESS \> DevEco Home \> Projects中,点击**Settings**打开工程配置界面。 +3. 在DevEco Device Tool中,点击QUICK ACCESS > DevEco Home > Device,查看并记录对应的串口号。 + ![zh-cn_image_0000001216516128](figures/zh-cn_image_0000001216516128.png) - ![](figures/zh-cn_image_0000001222969587.png) + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果对应的串口异常,请根据[Hi3516DV300/Hi3518EV300开发板串口驱动安装指导](https://device.harmonyos.com/cn/docs/documentation/guide/hi3516_hi3518-drivers-0000001050743695)安装USB转串口的驱动程序。 -4. 在“hi3516dv300”页签,设置烧录选项,包括upload\_partitions、upload\_port和upload\_protocol。 +4. 在QUICK ACCESS > DevEco Home > Projects中,点击**Settings**打开工程配置界面。 + ![zh-cn_image_0000001198566364](figures/zh-cn_image_0000001198566364.png) - - upload\_partitions:选择待烧录的文件,默认情况下会同时烧录fastboot、kernel、rootfs和userfs。 - - upload\_port:选择已查询的串口号。 - - upload\_protocol:选择烧录协议,固定选择“hiburn-net”。 +5. 在“hi3516dv300”页签,设置烧录选项,包括upload_partitions、upload_port和upload_protocol。 + - upload_partitions:选择待烧录的文件,默认情况下会同时烧录fastboot、kernel、rootfs和userfs。 + - upload_port:选择已查询到的串口号。 + - upload_protocol:选择烧录协议,固定选择“hiburn-usb”。 - ![](figures/zh-cn_image_0000001177474882.png) + ![zh-cn_image_0000001223190441](figures/zh-cn_image_0000001223190441.png) -5. 检查和设置连接开发板后的网络适配器的IP地址信息,设置方法请参考[设置Hi3516DV300网口烧录的IP地址信息](https://device.harmonyos.com/cn/docs/documentation/guide/set_ipaddress-0000001141825075)。 -6. 设置网口烧录的IP地址信息,设置如下选项: +6. 分别检查待烧录文件的烧录信息,DevEco Device Tool已预置默认的烧录文件信息,可根据实际情况进行调整。待烧录文件包括:fastboot、kernel、rootfs和userfs。 + 1. 在“hi3516dv300_fastboot”页签,在New Option选项中选择需要修改的项,例如partition_bin(烧录文件路径)、partition_addr(烧录文件起始地址)、partition_length(烧录文件分区长度)等。 + ![zh-cn_image_0000001198889702](figures/zh-cn_image_0000001198889702.png) + 2. 然后在Partition Options中,分别修改上述步骤中选择的修改项。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件的大小进行设置,要求设置的烧录分区大小,要大于待烧录文件的大小;同时,各烧录文件的分区地址设置不能出现重叠。 - - upload\_net\_server\_ip:选择步骤6中设置的IP地址信息。例如192.168.1.2 - - upload\_net\_client\_mask:设置开发板的子网掩码,工具会自动根据选择的upload\_net\_server\_ip进行设置。例如255.255.255.0 - - upload\_net\_client\_gw:设置开发板的网关,工具会自动根据选择的upload\_net\_server\_ip进行设置。例如192.168.1.1 - - upload\_net\_client\_ip:设置开发板的IP地址,工具会自动根据选择的upload\_net\_server\_ip进行设置。例如192.168.1.3 + ![zh-cn_image_0000001243290907](figures/zh-cn_image_0000001243290907.png) + 3. 按照相同的方法修改kernel、rootfs和userfs的烧录文件信息。 - ![](figures/ip-address-information.png) +7. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 -7. 分别检查待烧录文件的烧录信息,DevEco Device Tool已预置默认的烧录文件信息,可根据实际情况进行调整。待烧录文件包括:fastboot、kernel、rootfs和userfs。 - 1. 在“hi3516dv300\_fastboot”页签,在New Option选项中选择需要修改的项,例如partition\_bin(烧录文件路径)、partition\_addr(烧录文件起始地址)、partition\_length(烧录文件分区长度)等。 +8. 点击hi3516dv300下的**Upload**按钮,启动烧录。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果您是第一次在工作台烧录Hi3516DV300/Hi3518EV300开发板,可能烧录失败,提示“not find the Devices”,然后根据[Hi3516DV300/Hi3518EV300开发板USB驱动安装](https://device.harmonyos.com/cn/docs/documentation/guide/usb_driver-0000001058690393)进行处理后再重新烧录。 - ![](figures/zh-cn_image_0000001222994321.png) + ![zh-cn_image_0000001267231481](figures/zh-cn_image_0000001267231481.png) - 2. 然后在Partition Options中,分别修改上述步骤中选择的修改项。 +9. 在终端窗口显示如下提示信息时,按住复位键,插拔USB线,最后松开复位键启动烧录。 + ![zh-cn_image_0000001114129426](figures/zh-cn_image_0000001114129426.png) - >![](../public_sys-resources/icon-note.gif) **说明:** - >在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件的大小进行设置,要求设置的烧录分区大小,要大于待烧录文件的大小;同时,各烧录文件的分区地址设置不能出现重叠。 + 启动烧录后,界面提示如下信息时,表示烧录成功。 - ![](figures/zh-cn_image_0000001223185957.png) - - 3. 按照相同的方法修改kernel、rootfs和userfs的烧录文件信息。 - -8. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 -9. 点击**Open**打开工程文件,然后在“PROJECT TASKS”中,点击hi3516dv300下的**Upload**按钮,启动烧录。 - - ![](figures/hi3516-upload-start-burning.png) - -10. 启动烧录后,显示如下提示信息时,请重启开发板(下电再上电)。 - - ![](figures/hi3516-restart-the-development-board.png) - -11. 重新上电后,界面提示如下信息时,表示烧录成功。 - - ![](figures/hi3516-burning-succeeded-net.png) - -12. 烧录成功后,请根据镜像运行章节进行操作,启动系统。 + ![zh-cn_image_0000001160649343](figures/zh-cn_image_0000001160649343.png) +10. 烧录成功后,请根据镜像运行章节进行操作,启动系统。 diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-faqs.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-faqs.md deleted file mode 100644 index 73982f145d22b78070f1e519b6273ffce983a803..0000000000000000000000000000000000000000 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-faqs.md +++ /dev/null @@ -1,181 +0,0 @@ -# 常见问题 - -- [烧写选择串口后提示“Error: Opening COMxx: Access denied”](#section627268185113) -- [Windows电脑与单板网络连接失败](#section195391036568) -- [烧写失败](#section571164016565) -- [编译构建过程中,提示找不到“python”](#section1039835245619) -- [串口无回显](#section14871149155911) - -## 烧写选择串口后提示“Error: Opening COMxx: Access denied” - -- **现象描述** - - 点击烧写并选择串口后,出现Error: Opening COMxx: Access denied。 - - **图 1** 打开串口失败图 - ![](figures/打开串口失败图.png "打开串口失败图") - -- **可能原因** - - 串口已经被占用。 - -- **解决办法** - -1. 按图依次选择下拉框,查找带有serial-xx的终端。 - - **图 2** 查找是否存在占用串口的终端 - ![](figures/查找是否存在占用串口的终端.png "查找是否存在占用串口的终端") - -2. 点击标号中的垃圾桶图标,关闭串口。 - - **图 3** 关闭串口终端 - ![](figures/关闭串口终端.png "关闭串口终端") - -3. 重新点击烧写,选择串口并开始烧写程序。 - - **图 4** 重新启动烧写任务 - - - ![](figures/changjian1.png) - - -## Windows电脑与单板网络连接失败 - -- **现象描述** - - 点击烧写并选择串口后,无法获取文件。 - - **图 5** 网络不通,单板无法获取文件图 - ![](figures/网络不通-单板无法获取文件图.png "网络不通-单板无法获取文件图") - -- **可能原因** - - 单板网络与Windows电脑不联通。 - - Windows电脑防火墙未允许Visual Studio Code联网。 - -- **解决方法** - -1. 检查网线是否连接。 -2. 点击Windows防火墙。 - - **图 6** 网络防火墙设置图 - ![](figures/网络防火墙设置图.png "网络防火墙设置图") - -3. 点击“允许应用通过防火墙”。 - - **图 7** 防火墙和网络保护界面图 - ![](figures/防火墙和网络保护界面图.png "防火墙和网络保护界面图") - -4. 查找Visual Studio Code应用。 - - **图 8** 查找Visual Studio Code应用图 - ![](figures/查找Visual-Studio-Code应用图.png "查找Visual-Studio-Code应用图") - -5. 勾选Visual Studio Code的专用和公用网络的访问权限。 - - **图 9** 允许Visual Studio Code应用访问网络 - ![](figures/允许Visual-Studio-Code应用访问网络.png "允许Visual-Studio-Code应用访问网络") - - -## 烧写失败 - -- **现象描述** - - 点击烧写并选择串口后,出现无法烧写的情况。 - -- **可能原因** - - 安装IDE插件DevEco后未重启。 - -- **解决方法** - - 重启IDE。 - - -## 编译构建过程中,提示找不到“python” - -- **现象描述** - - ![](figures/zh-cn_image_0000001216693913.png) - -- **可能原因**1 - - 没有装python。 - -- **解决办法**1 - - 请使用如下命令安装Python,下方以Python3.8为例。 - - ``` - sudo apt-get install python3.8 - ``` - - -- **可能原因**2 - - usr/bin目录下没有python软链接。 - - ![](figures/zh-cn_image_0000001217013865.png) - -- **解决办法**2 - - 请运行以下命令: - - ``` - # cd /usr/bin/ - # which python3 - # ln -s /usr/local/bin/python3 python - # python --version - ``` - - 例: - - ![](figures/zh-cn_image_0000001216693915.png) - - -## 串口无回显 - -- **现象描述** - - 串口显示已连接,重启单板后,回车无任何回显。 - -- **可能原因1** - - 串口连接错误。 - -- **解决办法** - - 修改串口号。 - - 请查看设备管理器,确认连接单板的串口与终端中连接串口是否一致,若不一致,请按镜像运行内[步骤1](#section627268185113)修改串口号。 - - -- **可能原因2** - - 单板U-boot被损坏。 - -- **解决办法** - - 烧写U-boot。 - - 若上述步骤依旧无法连接串口,可能由于单板U-boot损坏,按下述步骤烧写U-boot。 - - -1. 获取引导文件U-boot。 - - >![](../public_sys-resources/icon-notice.gif) **须知:** - >单板的U-boot文件请在开源包中获取: - >Hi3516DV300:device\\hisilicon\\hispark\_taurus\\sdk\_liteos\\uboot\\out\\boot\\u-boot-hi3516dv300.bin - >Hi3518EV300:device\\hisilicon\\hispark\_aries\\sdk\_liteos\\uboot\\out\\boot\\u-boot-hi3518ev300.bin - -2. 根据USB烧写步骤烧写U-boot文件。 - - 按照[Hi3516系列USB烧写步骤](https://device.harmonyos.com/cn/docs/documentation/guide/hi3516_upload-0000001052148681)中描述的USB烧写方法,选择对应单板的U-boot文件进行烧写。 - -3. 烧写完成后,登录串口如下图所示。 - - **图 10** U-boot烧写完成串口显示图 - ![](figures/U-boot烧写完成串口显示图.png "U-boot烧写完成串口显示图") - - diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-running.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-running.md index 143115b9dbe1c3d9f300ca57d64cddb99901b709..a830410fbf41a00b57ce137110acf5df6164ccec 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-running.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-running.md @@ -1,33 +1,47 @@ -# 运行 +# 运行 -- [镜像运行](#section11324753143912) -- [下一步学习](#section9712145420182) -## 镜像运行 +## 启动系统 在完成Hi3516DV300的烧录后,还需要设置BootLoader引导程序,才能运行OpenHarmony系统。 -1. 在Hi3516DV300任务中,点击**Configure bootloader(Boot OS)**进行配置即可。 +1. 在Hi3516DV300任务中,点击**Configure bootloader(Boot OS)**进行配置即可。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > DevEco Device Tool针对Hi3516DV300开发板的BootLoader设置进行了适配,无需开发者手动修改。 - >![](../public_sys-resources/icon-note.gif) **说明:** - >DevEco Device Tool针对Hi3516DV300开发板的BootLoader设置进行了适配,无需开发者手动修改。 + ![zh-cn_image_0000001209906547](figures/zh-cn_image_0000001209906547.png) - ![](figures/bootloader.png) +2. 提示如下图中的重启开发板的提示信息时,重启开发板,然后在控制台输出“SUCCESS”表示设置成功。 + ![zh-cn_image_0000001210385161](figures/zh-cn_image_0000001210385161.png) -2. 提示如下图中的重启开发板的提示信息时,重启开发板,然后在控制台输出“SUCCESS”表示设置成功。 +3. 在任务栏点击**Monitor**按钮,启动串口工具。 + ![zh-cn_image_0000001164506870](figures/zh-cn_image_0000001164506870.png) - ![](figures/reset_success.png) +4. 当界面打印回显信息,点击Enter按钮,直到界面显示OHOS \#信息,表示系统启动成功。 + ![zh-cn_image_0000001198626874](figures/zh-cn_image_0000001198626874.png) -3. 在任务栏点击**Monitor**按钮,启动串口工具。 - ![](figures/monitor.png) +## 运行“Hello World” -4. 当界面打印回显信息,点击Enter按钮,直到界面显示OHOS \#信息,表示系统启动成功。 +系统启动成功后,取源码out目录下的helloworld可执行文件放入系统的bin目录,通过以下步骤运行“Hello World”。 - ![](figures/reboot_success.png) +1. 在启动界面进入bin目录。 + + ``` + cd bin + ``` +2. 进入bin目录后可以看到helloworld文件,通过以下命令运行helloworld程序。 + + ``` + ./helloworld + ``` -## 下一步学习 + 界面打印“Hello World!”,程序运行成功。 -恭喜您,已完成Hi3516的快速上手!建议您下一步进入[带屏摄像头产品开发](../guide/device-iotcamera.md)的学习 。 + ![zh-cn_image_0000001271234769](figures/zh-cn_image_0000001271234769.png) + +## 下一步学习 + +恭喜您,已完成Hi3516DV300的快速上手!建议您下一步进入[带屏摄像头产品开发](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/guide/device-camera.md)的学习 。 diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-setting.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-setting.md index 7bd1c393c6ab4d72261b29bdc0581142afe149c4..6bea6069bf0347346ef1e90eda7e8c314d42c656 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-setting.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-setting.md @@ -1,70 +1,30 @@ -# 安装开发板环境 +# 安装Hi3516开发板环境 -- [Hi3516工具要求](#section179175261196) - - [硬件要求](#section5840424125014) - - [软件要求](#section965634210501) -- [安装Linux服务器工具](#section182916865219) - - [安装编译依赖基础软件(仅Ubuntu 20+需要)](#section45512412251) - - [安装文件打包工具及Java虚拟机环境](#section16199102083717) +## Hi3516工具要求 -## Hi3516工具要求 +### 硬件要求 -### 硬件要求 +- Hi3516DV300 IoT Camera开发板 -- Hi3516DV300 IoT Camera开发板 -- USB转串口线、网线(Linux工作台通过USB转串口线、网线与Hi3516DV300 开发板连接) +- USB转串口线、网线(Linux工作台通过USB转串口线、网线与Hi3516DV300 开发板连接) -### 软件要求 ->![](../public_sys-resources/icon-notice.gif) **须知:** ->本节描述安装包方式搭建编译环境的操作步骤。如果使用Docker方式安装编译环境,请跳过此章节,直接从[新建应用程序](quickstart-lite-steps-hi3516-application-framework.md)开始操作。 +### 软件要求 -Hi3516开发板对Linux服务器通用环境配置需要的工具及其用途如下表所示。 +Hi3516DV300开发板对Linux服务器通用环境配置需要的工具及其用途如下表所示。 -**表 1** Linux服务器开发工具及用途 + **表1** Linux服务器开发工具及用途 - - - - - - - - - - - - - - - -

开发工具

-

用途

-

编译基础软件包(仅ubuntu 20+需要)

-

编译依赖的基础软件包

-

dosfstools、mtools、mtd-utils

-

文件打包工具

-

Java 虚拟机环境

-

编译、调试和运行Java程序

-
+| 开发工具 | 用途 | +| -------- | -------- | +| dosfstools、mtools、mtd-utils | 文件打包工具 | +| Java虚拟机环境 | 编译、调试和运行Java程序 | -## 安装Linux服务器工具 -### 安装编译依赖基础软件(仅Ubuntu 20+需要) +## 安装Linux服务器工具 -执行以下命令进行安装: - -``` -sudo apt-get install build-essential gcc g++ make zlib* libffi-dev -``` - -### 安装文件打包工具及Java虚拟机环境 - -运行如下命令,安装dosfstools、mtools、mtd-utils、Java运行时环境(JRE)和Java sdk 开发工具包。 - -``` -sudo apt-get install dosfstools mtools mtd-utils default-jre default-jdk -``` +Hi3516DV300依赖以下工具:dosfstools、mtools、mtd-utils、Java运行时环境(JRE)和Java sdk 开发工具包。 +上述工具已在[ERROR:Invalid link:zh-cn_topic_0000001226794684.xml#xref126711502449,link:zh-cn_topic_0000001215745332.xml#section69901514104616](zh-cn_topic_0000001215745332.xml#section69901514104616)环节完成安装,此处无需再进行安装。 diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516.md index eb5f4ee338bd2644a0aa4136a1d9028797c58376..4d978f73224a46cdc9b9d9573232b2ec30725418 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516.md @@ -1,15 +1,13 @@ -# Hi3516开发板 +# Hi3516开发板 -- **[安装开发板环境](quickstart-lite-steps-hi3516-setting.md)** -- **[新建应用程序](quickstart-lite-steps-hi3516-application-framework.md)** -- **[编译](quickstart-lite-steps-hi3516-building.md)** +- **[安装Hi3516开发板环境](quickstart-lite-steps-hi3516-setting.md)** -- **[烧录](quickstart-lite-steps-hi3516-burn.md)** +- **[编写“Hello World”程序](quickstart-lite-steps-hi3516-application-framework.md)** -- **[运行](quickstart-lite-steps-hi3516-running.md)** - -- **[常见问题](quickstart-lite-steps-hi3516-faqs.md)** +- **[编译](quickstart-lite-steps-hi3516-building.md)** +- **[烧录](quickstart-lite-steps-hi3516-burn.md)** +- **[运行](quickstart-lite-steps-hi3516-running.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3518-application-framework.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3518-application-framework.md deleted file mode 100644 index c6011e5a5659f9e345f0f904c436ffa9b35a996b..0000000000000000000000000000000000000000 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3518-application-framework.md +++ /dev/null @@ -1,120 +0,0 @@ -# 新建应用程序 - -下方将通过修改源码的方式展示如何编写简单程序,输出“Hello OHOS!”。请在[获取源码](quickstart-lite-sourcecode-acquire.md)章节下载的源码目录中进行下述操作。 - -1. 新建目录及源码。 - - 新建**applications/sample/camera/apps/src/helloworld.c**目录及文件,代码如下所示,用户可以自定义修改打印内容(例如:修改OHOS为World)。当前应用程序可支持标准C及C++的代码开发。 - - ``` - #include - - int main(int argc, char **argv) - { - printf("\n************************************************\n"); - printf("\n\t\tHello OHOS!\n"); - printf("\n************************************************\n\n"); - - return 0; - } - ``` - -2. 新建编译组织文件。 - - 新建**applications/sample/camera/apps/BUILD.gn**文件,内容如下所示: - - ``` - import("//build/lite/config/component/lite_component.gni") - lite_component("hello-OHOS") { - features = [ ":helloworld" ] - } - executable("helloworld") { - output_name = "helloworld" - sources = [ "src/helloworld.c" ] - include_dirs = [] - defines = [] - cflags_c = [] - ldflags = [] - } - ``` - -3. 添加新组件。 - - 修改文件**build/lite/components/applications.json**,添加组件hello\_world\_app的配置,如下所示为applications.json文件片段,"\#\#start\#\#"和"\#\#end\#\#"之间为新增配置("\#\#start\#\#"和"\#\#end\#\#"仅用来标识位置,添加完配置后删除这两行): - - ``` - { - "components": [ - { - "component": "camera_sample_communication", - "description": "Communication related samples.", - "optional": "true", - "dirs": [ - "applications/sample/camera/communication" - ], - "targets": [ - "//applications/sample/camera/communication:sample" - ], - "rom": "", - "ram": "", - "output": [], - "adapted_kernel": [ "liteos_a" ], - "features": [], - "deps": { - "components": [], - "third_party": [] - } - }, - ##start## - { - "component": "hello_world_app", - "description": "Communication related samples.", - "optional": "true", - "dirs": [ - "applications/sample/camera/apps" - ], - "targets": [ - "//applications/sample/camera/apps:hello-OHOS" - ], - "rom": "", - "ram": "", - "output": [], - "adapted_kernel": [ "liteos_a" ], - "features": [], - "deps": { - "components": [], - "third_party": [] - } - }, - ##end## - { - "component": "camera_sample_app", - "description": "Camera related samples.", - "optional": "true", - "dirs": [ - "applications/sample/camera/launcher", - "applications/sample/camera/cameraApp", - "applications/sample/camera/setting", - "applications/sample/camera/gallery", - "applications/sample/camera/media" - ], - ``` - -4. 修改单板配置文件。 - - 修改文件**vendor/hisilicon/hispark\_aries/config.json**,新增hello\_world\_app组件的条目,如下所示代码片段为applications子系统配置,"\#\#start\#\#"和"\#\#end\#\#"之间为新增条目("\#\#start\#\#"和"\#\#end\#\#"仅用来标识位置,添加完配置后删除这两行): - - ``` - { - "subsystem": "applications", - "components": [ - ##start## - { "component": "hello_world_app", "features":[] }, - ##end## - { "component": "camera_sample_app", "features":[] } - - ] - }, - ``` - - diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3518-building.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3518-building.md deleted file mode 100644 index c97f546c9c3466b999b2b3ddb45b05647d1cd16f..0000000000000000000000000000000000000000 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3518-building.md +++ /dev/null @@ -1,26 +0,0 @@ -# 编译 - -下方将介绍如何使用Hi3518开发板进行编译。使用安装包方式与docker方式搭建Ubuntu编译环境,编译命令相同。 - -1. 请进入源码根目录,执行如下命令进行编译: - - >![](../public_sys-resources/icon-note.gif) **说明:** - >如果使用Docker方式搭建编译环境,请在[获取Docker环境](quickstart-lite-docker-environment.md#section15666113905015)中进入的Docker构建环境中,执行如下命令进行编译。 - - ``` - hb set(设置编译路径) - .(选择当前路径) - 选择ipcamera_hispark_aries并回车 - hb build -f(执行编译) - ``` - - **图 1** Hi3518编译设置图例-Docker方式 - ![](figures/Hi3518编译设置图例-Docker方式.png "Hi3518编译设置图例-Docker方式") - -2. 编译结束后,出现“ipcamera\_hispark\_aries build success”字样,则证明构建成功。 - ->![](../public_sys-resources/icon-notice.gif) **须知:** ->烧录相关文件获取路径: ->结果文件:out/hispark\_aries/ipcamera\_hispark\_aries。 ->U-boot文件:device/hisilicon/hispark\_aries/sdk\_liteos/uboot/out/boot/u-boot-hi3518ev300.bin。 - diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3518-burn.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3518-burn.md deleted file mode 100644 index b66d785c004816ddc8635dada0c6a5d826b6dbf7..0000000000000000000000000000000000000000 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3518-burn.md +++ /dev/null @@ -1,93 +0,0 @@ -# 烧录 - -- [前提条件](#section14614124417580) -- [使用串口烧录](#section195291211181215) - -烧录是指将编译后的程序文件下载到芯片开发板上的动作,为后续的程序调试提供基础。DevEco Device Tool提供一键烧录功能,操作简单,能快捷、高效的完成程序烧录,提升烧录的效率。 - -DevEco Device Tool以插件方式运行,基于Visual Studio Code进行扩展,用户可点击Visual Studio Code左侧栏的![](figures/2021-01-27_170334.png)图标打开DevEco Device Tool。 - -Hi3518EV300开发板的代码烧录支持USB烧录和串口烧录两种方式,其中: - -- **Windows系统:支持USB烧录和串口烧录。** -- **Linux系统:支持串口烧录**。 - -Hi3861V100在Windows和Linux环境下的烧录操作完全一致,区别仅在于DevEco Device Tool环境搭建不同。 - -此处仅以Linux系统下串口烧录方式为例进行说明。 - -## 前提条件 - -1. 在DevEco Device Tool工具中点击**Import Project**导入新建应用程序章节修改后的源码文件。 - - ![](figures/import-project.png) - -2. 选择源码导入时,系统会提示该工程不是DevEco Device Tool工程,点击**Import**。 - - ![](figures/import-project-confirm.png) - -3. MCU选择HiSilicom\_Arm下的Hi3518EV300,Board选择hi3518ev300,Framework选择Hb,然后点击**Import**完成导入。 - - ![](figures/hi3518-import-projects.png) - - -## 使用串口烧录 - -1. 请连接好电脑和待烧录开发板,需要同时连接串口和电源口,具体可参考[Hi3518EV300开发板介绍](https://device.harmonyos.com/cn/docs/documentation/guide/quickstart-lite-introduction-hi3518-0000001105201138)。 -2. 查看并记录对应的串口号。 - - >![](../public_sys-resources/icon-note.gif) **说明:** - >如果对应的串口异常,请根据[Hi3516DV300/Hi3518EV300开发板串口驱动安装指导](https://device.harmonyos.com/cn/docs/documentation/guide/hi3516_hi3518-drivers-0000001050743695)安装USB转串口的驱动程序。 - - Windows系统,打开设备管理器查看并记录对应的串口号,或在DevEco Device Tool中,点击QUICK ACCESS \> DevEco Home \> Device,查看并记录对应的串口号。 - - ![](figures/record-the-serial-port-number.png) - - Linux系统,在DevEco Device Tool中,点击QUICK ACCESS \> DevEco Home \> Device,查看并记录对应的串口号。 - - ![](figures/Snap22.png) - -3. 在QUICK ACCESS \> DevEco Home \> Projects中,点击**Settings**打开工程配置界面。 - - ![](figures/zh-cn_image_0000001222981447.png) - -4. 在“hi3518ev300”页签,设置烧录选项,包括upload\_port、upload\_partitions和upload\_protocol。 - - - upload\_port:选择已查询的串口号。 - - upload\_protocol:选择烧录协议,固定选择“hiburn-serial”。 - - upload\_partitions:选择待烧录的文件,默认情况下会同时烧录fastboot、kernel、rootfs和userfs。 - - ![](figures/Snap24.png) - -5. 分别检查待烧录文件的烧录信息,DevEco Device Tool已预置默认的烧录文件信息,可根据实际情况进行调整。待烧录文件包括:fastboot、kernel、rootfs和userfs。 - 1. 在“hi3518ev300\_fastboot”页签,在New Option选项中选择需要修改的项,例如partition\_bin(烧录文件路径)、partition\_addr(烧录文件起始地址)、partition\_length(烧录文件分区长度)等。 - - ![](figures/zh-cn_image_0000001177301516.png) - - 2. 然后在Partition Options中,分别修改上述步骤中选择的修改项。 - - >![](../public_sys-resources/icon-note.gif) **说明:** - >在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件的大小进行设置,遵循以下原则: - >- 要求设置的烧录分区大小,要大于待烧录文件的大小。 - >- 同时,各烧录文件的分区地址设置不能出现重叠。 - >- 总的烧录分区大小不能超过16MB。 - - ![](figures/zh-cn_image_0000001222781271.png) - - 3. 按照相同的方法修改kernel、footfs和userfs的烧录文件信息。 - -6. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 -7. 点击**Open**打开工程文件,然后在“PROJECT TASKS”中,点击hi3518ev300下的**Upload**按钮,启动烧录。 - - ![](figures/zh-cn_image_0000001117329380.png) - -8. 启动烧录后,显示如下提示信息时,请重启开发板(下电再上电)。 - - ![](figures/zh-cn_image_0000001074287476.png) - -9. 重新上电后,界面提示如下信息时,表示烧录成功。 - - ![](figures/zh-cn_image_0000001073838982.png) - -10. 烧录成功后,请根据镜像运行章节进行操作,启动系统。 - diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3518-faqs.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3518-faqs.md deleted file mode 100644 index 32b4edfc04f2249f891885620bb7792c8d5e5260..0000000000000000000000000000000000000000 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3518-faqs.md +++ /dev/null @@ -1,168 +0,0 @@ -# 常见问题 - -- [烧写选择串口后提示失败](#section1498892119619) -- [Windows电脑与单板网络连接失败](#section8512971816) -- [烧写失败](#section1767804111198) -- [编译构建过程中,提示找不到“python”](#zh-cn_topic_0000001053466255_section1039835245619) -- [串口无回显](#zh-cn_topic_0000001053466255_section14871149155911) - -## 烧写选择串口后提示失败 - -- **现象描述** - - 点击烧写并选择串口后,出现Error: Opening COMxx: Access denied。 - - **图 1** 打开串口失败图 - ![](figures/打开串口失败图-1.png "打开串口失败图-1") - -- **可能原因** - - 串口已经被占用。 - -- **解决办法** - -1. 按图依次选择下拉框,查找带有serial-xx的终端。 - - **图 2** 查找是否存在占用串口的终端 - ![](figures/查找是否存在占用串口的终端-2.png "查找是否存在占用串口的终端-2") - -2. 点击标号中的垃圾桶图标,关闭串口。 - - **图 3** 关闭串口终端 - ![](figures/关闭串口终端-3.png "关闭串口终端-3") - -3. 重新点击烧写,选择串口并开始烧写程序。 - - **图 4** 重新启动烧写任务 - - - ![](figures/changjian1-4.png) - - -## Windows电脑与单板网络连接失败 - -- **现象描述** - - 点击烧写并选择串口后,无法获取文件。 - - **图 5** 网络不通,单板无法获取文件图 - ![](figures/网络不通-单板无法获取文件图-5.png "网络不通-单板无法获取文件图-5") - -- **可能原因** - - 单板网络与Windows电脑不联通。 - - Windows电脑防火墙未允许Visual Studio Code联网。 - -- **解决方法** - -1. 检查网线是否连接。 -2. 点击Windows防火墙。 - - **图 6** 网络防火墙设置图 - ![](figures/网络防火墙设置图-6.png "网络防火墙设置图-6") - -3. 点击“允许应用通过防火墙”。 - - **图 7** 防火墙和网络保护界面图 - ![](figures/防火墙和网络保护界面图-7.png "防火墙和网络保护界面图-7") - -4. 查找Visual Studio Code应用。 - - **图 8** 查找Visual Studio Code应用图 - ![](figures/查找Visual-Studio-Code应用图-8.png "查找Visual-Studio-Code应用图-8") - -5. 勾选Visual Studio Code的专用和公用网络的访问权限。 - - **图 9** 允许Visual Studio Code应用访问网络 - ![](figures/允许Visual-Studio-Code应用访问网络-9.png "允许Visual-Studio-Code应用访问网络-9") - - -## 烧写失败 - -- **现象描述** - - 点击烧写并选择串口后,出现无法烧写的情况。 - -- **可能原因** - - 安装IDE插件DevEco后未重启。 - -- **解决方法** - - 重启IDE。 - - -## 编译构建过程中,提示找不到“python” - -- **现象描述** - - ![](figures/zh-cn_image_0000001171774086.png) - - -- **可能原因** - - usr/bin目录下没有python软链接。 - - ![](figures/zh-cn_image_0000001171615534.png) - -- **解决办法** - - 请运行以下命令: - - ``` - # cd /usr/bin/ - # which python3 - # ln -s /usr/local/bin/python3 python - # python --version - ``` - - 例: - - ![](figures/zh-cn_image_0000001216535401.png) - - -## 串口无回显 - -- **现象描述** - - 串口显示已连接,重启单板后,回车无任何回显。 - -- **可能原因1** - - 串口连接错误。 - -- **解决办法** - - 修改串口号。 - - 请查看设备管理器,确认连接单板的串口与终端中连接串口是否一致,若不一致,请按镜像运行内[步骤1](#section1498892119619)修改串口号。 - - -- **可能原因2** - - 单板U-boot被损坏。 - -- **解决办法** - - 烧写U-boot。 - - 若上述步骤依旧无法连接串口,可能由于单板U-boot损坏,按下述步骤烧写U-boot。 - - -1. 获取引导文件U-boot。 - - >![](../public_sys-resources/icon-notice.gif) **须知:** - >单板的U-boot文件请在开源包中获取: - >Hi3516DV300:device\\hisilicon\\hispark\_taurus\\sdk\_liteos\\uboot\\out\\boot\\u-boot-hi3516dv300.bin - >Hi3518EV300:device\\hisilicon\\hispark\_aries\\sdk\_liteos\\uboot\\out\\boot\\u-boot-hi3518ev300.bin - -2. 根据USB烧写步骤烧写U-boot文件。 - - 按照[Hi3518系列USB烧写步骤](https://device.harmonyos.com/cn/docs/documentation/guide/hi3518_upload-0000001057313128)中描述的USB烧写方法,选择对应单板的U-boot文件进行烧写。 - -3. 烧写完成后,登录串口如下图所示。 - - ![](figures/zh-cn_image_0000001216535397.png) - - diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3518-running.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3518-running.md deleted file mode 100644 index fdded7a71dfb67fa6c81e2f64b607192bb183e36..0000000000000000000000000000000000000000 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3518-running.md +++ /dev/null @@ -1,33 +0,0 @@ -# 运行 - -- [镜像运行](#section1081111115589) -- [下一步学习](#section9712145420182) - -## 镜像运行 - -在完成Hi3518EV300的烧录后,还需要设置BootLoader引导程序,才能运行OpenHarmony系统。 - -1. 在Hi3518EV300任务中,点击**Configure bootloader(Boot OS)**进行配置即可。 - - >![](../public_sys-resources/icon-note.gif) **说明:** - >DevEco Device Tool针对Hi3518EV300开发板的BootLoader设置进行了适配,无需开发者手动修改。 - - ![](figures/hi3518-bootloader.png) - -2. 提示如下图中的重启开发板的提示信息时,重启开发板,然后在控制台输出“SUCCESS”表示设置成功。 - - ![](figures/hi3518-reset-success.png) - -3. 在任务栏点击**Monitor**按钮,启动串口工具。 - - ![](figures/hi3518-monitor.png) - -4. 当界面打印回显信息,点击Enter按钮,直到界面显示OHOS \#信息,表示系统启动成功。 - - ![](figures/hi3518-reboot-success.png) - - -## 下一步学习 - -恭喜您,已完成Hi3518的快速上手!建议您下一步进入[无屏摄像头产品开发](../guide/device-iotcamera.md)的学习 。 - diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3518-setting.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3518-setting.md deleted file mode 100644 index 61f1469a59a001430fdda4216b0face7e1544a5f..0000000000000000000000000000000000000000 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3518-setting.md +++ /dev/null @@ -1,71 +0,0 @@ -# 安装开发板环境 - -- [Hi3518环境搭建](#section1724111409282) - - [硬件要求](#section487353718276) - - [软件要求](#section17315193935817) - -- [安装Linux服务器工具](#section8831868501) - - [安装编译依赖基础软件(仅Ubuntu 20+需要)](#section25911132141020) - - [安装文件打包工具](#section390214473129) - - -## Hi3518环境搭建 - -### 硬件要求 - -- Hi3518EV300 IoT Camera开发板 -- USB转串口线、网线(Linux工作台通过USB转串口线、网线与开发板连接) - -### 软件要求 - ->![](../public_sys-resources/icon-notice.gif) **须知:** ->本节描述安装包方式搭建编译环境的操作步骤。如果是Docker方式安装编译环境,请跳过此章节,从[新建应用程序](quickstart-lite-steps-hi3518-application-framework.md)开始操作。 - -Hi3518开发板对Linux服务器通用环境配置需要的工具及其获取途径如下表所示。 - -**表 1** Linux服务器开发工具及获取途径 - - - - - - - - - - - - - - - - -

开发工具

-

用途

-

获取途径

-

编译基础软件包(仅ubuntu 20+需要)

-

编译依赖的基础软件包

-

通过互联网获取

-

dosfstools、mtools、mtd-utils

-

文件打包工具

-

通过apt-get install安装

-
- -## 安装Linux服务器工具 - -### 安装编译依赖基础软件(仅Ubuntu 20+需要) - -执行以下命令进行安装: - -``` -sudo apt-get install build-essential gcc g++ make zlib* libffi-dev -``` - -### 安装文件打包工具 - -运行如下命令,安装dosfstools,mtools,mtd-utils。 - -``` -sudo apt-get install dosfstools mtools mtd-utils -``` - diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3518.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3518.md deleted file mode 100644 index ea8759f0fefc2fdab01292b753816cadf574d472..0000000000000000000000000000000000000000 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3518.md +++ /dev/null @@ -1,15 +0,0 @@ -# Hi3518开发板 - -- **[安装开发板环境](quickstart-lite-steps-hi3518-setting.md)** - -- **[新建应用程序](quickstart-lite-steps-hi3518-application-framework.md)** - -- **[编译](quickstart-lite-steps-hi3518-building.md)** - -- **[烧录](quickstart-lite-steps-hi3518-burn.md)** - -- **[运行](quickstart-lite-steps-hi3518-running.md)** - -- **[常见问题](quickstart-lite-steps-hi3518-faqs.md)** - - diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3816-running.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3816-running.md new file mode 100644 index 0000000000000000000000000000000000000000..4d87208d9e71ecedc29d01ef693feacbbf2cb760 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3816-running.md @@ -0,0 +1,19 @@ +# 运行 + + +## 运行结果 + +示例代码编译、烧录、运行、调测后,重启开发板后将自动在界面输出如下结果: + + +``` +ready to OS start +FileSystem mount ok. +wifi init success! +[DEMO] Hello world. +``` + + +## 下一步学习 + +恭喜,您已完成Hi3861 WLAN模组快速上手!建议您下一步进入[WLAN产品开发](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/guide/device-wlan.md)的学习 。 diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-application-framework.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-application-framework.md index 987318fa4418c6ade74f9fec592898cce60ef3cf..268d097afdd10780fac6ea821645f3d932d47b71 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-application-framework.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-application-framework.md @@ -1,138 +1,136 @@ -# 新建应用程序 +# 编写“Hello World”程序 -下方将通过修改源码的方式展示如何编写简单程序,输出“Hello world”。请在下载的源码目录中进行下述操作。 - -1. 确定目录结构。 - - 开发者编写业务时,务必先在./applications/sample/wifi-iot/app路径下新建一个目录(或一套目录结构),用于存放业务源码文件。 - - 例如:在app下新增业务my_first_app,其中hello_world.c为业务代码,BUILD.gn为编译脚本,具体规划目录结构如下: - - ``` - . - └── applications - └── sample - └── wifi-iot - └── app - └── my_first_app - │── hello_world.c - └── BUILD.gn - ``` - -2. 编写业务代码。 - - 新建./applications/sample/wifi-iot/app/my\_first\_app下的hello\_world.c文件,在hello\_world.c中新建业务入口函数HelloWorld,并实现业务逻辑。并在代码最下方,使用OpenHarmony启动恢复模块接口SYS\_RUN\(\)启动业务。(SYS\_RUN定义在ohos\_init.h文件中) - - - ``` - #include - #include "ohos_init.h" - #include "ohos_types.h" - - void HelloWorld(void) - { - printf("[DEMO] Hello world.\n"); - } - SYS_RUN(HelloWorld); - ``` - -3. 编写用于将业务构建成静态库的BUILD.gn文件。 - 新建./applications/sample/wifi-iot/app/my\_first\_app下的BUILD.gn文件,并完成如下配置。 - - 如[步骤1](#li5479332115116)所述,BUILD.gn文件由三部分内容(目标、源文件、头文件路径)构成,需由开发者完成填写。 - - ``` - static_library("myapp") { - sources = [ - "hello_world.c" - ] - include_dirs = [ - "//utils/native/lite/include" - ] - } - ``` - - - static\_library中指定业务模块的编译结果,为静态库文件libmyapp.a,开发者根据实际情况完成填写。 - - sources中指定静态库.a所依赖的.c文件及其路径,若路径中包含"//"则表示绝对路径(此处为代码根路径),若不包含"//"则表示相对路径。 - - include\_dirs中指定source所需要依赖的.h文件路径。 - - -4. 添加新组件。 - - 修改文件build/lite/components/applications.json,添加组件hello\_world\_app的配置,如下所示为applications.json文件片段,“##start##”和“##end##”之间为新增配置(“##start##”和“##end##”仅用来标识位置,添加完配置后删除这两行): - - ``` - { - "components": [ - { - "component": "camera_sample_communication", - "description": "Communication related samples.", - "optional": "true", - "dirs": [ - "applications/sample/camera/communication" - ], - "targets": [ - "//applications/sample/camera/communication:sample" - ], - "rom": "", - "ram": "", - "output": [], - "adapted_kernel": [ "liteos_a" ], - "features": [], - "deps": { - "components": [], - "third_party": [] - } - }, - ##start## - { - "component": "hello_world_app", - "description": "hello world samples.", - "optional": "true", - "dirs": [ - "applications/sample/wifi-iot/app/my_first_app" - ], - "targets": [ - "//applications/sample/wifi-iot/app/my_first_app:myapp" - ], - "rom": "", - "ram": "", - "output": [], - "adapted_kernel": [ "liteos_m" ], - "features": [], - "deps": { - "components": [], - "third_party": [] - } - }, - ##end## - { - "component": "camera_sample_app", - "description": "Camera related samples.", - "optional": "true", - "dirs": [ - "applications/sample/camera/launcher", - "applications/sample/camera/cameraApp", - "applications/sample/camera/setting", - "applications/sample/camera/gallery", - "applications/sample/camera/media" - ], - ``` - -5. 修改单板配置文件。 - - 修改文件vendor/hisilicon/hispark_pegasus/config.json,新增hello\_world\_app组件的条目,如下所示代码片段为applications子系统配置,“##start##”和“##end##”之间为新增条目(“##start##”和“##end##”仅用来标识位置,添加完配置后删除这两行): +下方将通过修改源码的方式展示如何编写简单程序,输出“Hello world”。请在下载的源码目录中进行下述操作。 - ``` - { - "subsystem": "applications", - "components": [ - ##start## - { "component": "hello_world_app", "features":[] }, - ##end## - { "component": "wifi_iot_sample_app", "features":[] } - ] - }, - ``` +1. 确定目录结构。 + 开发者编写业务时,务必先在./applications/sample/wifi-iot/app路径下新建一个目录(或一套目录结构),用于存放业务源码文件。 + + 例如:在app下新增业务my_first_app,其中hello_world.c为业务代码,BUILD.gn为编译脚本,具体规划目录结构如下: + + + ``` + . + └── applications + └── sample + └── wifi-iot + └── app + └── my_first_app + │── hello_world.c + └── BUILD.gn + ``` + +2. 编写业务代码。 + 新建./applications/sample/wifi-iot/app/my_first_app下的hello_world.c文件,在hello_world.c中新建业务入口函数HelloWorld,并实现业务逻辑。并在代码最下方,使用OpenHarmony启动恢复模块接口SYS_RUN()启动业务。(SYS_RUN定义在ohos_init.h文件中) + + ``` + #include + #include "ohos_init.h" + #include "ohos_types.h" + + void HelloWorld(void) + { + printf("[DEMO] Hello world.\n"); + } + SYS_RUN(HelloWorld); + ``` + +3. 编写用于将业务构建成静态库的BUILD.gn文件。 + 新建./applications/sample/wifi-iot/app/my_first_app下的BUILD.gn文件,并完成如下配置。 + + 如[ERROR:Invalid link:zh-cn_topic_0000001226794672.xml#xref7209204195912,link:#li5479332115116](#li5479332115116)所述,BUILD.gn文件由三部分内容(目标、源文件、头文件路径)构成,需由开发者完成填写。 + + + ``` + static_library("myapp") { + sources = [ + "hello_world.c" + ] + include_dirs = [ + "//utils/native/lite/include" + ] + } + ``` + + - static_library中指定业务模块的编译结果,为静态库文件libmyapp.a,开发者根据实际情况完成填写。 + - sources中指定静态库.a所依赖的.c文件及其路径,若路径中包含"//"则表示绝对路径(此处为代码根路径),若不包含"//"则表示相对路径。 + - include_dirs中指定source所需要依赖的.h文件路径。 + +4. 添加新组件。 + 修改文件**build/lite/components/applications.json**,添加组件hello_world_app的配置,如下所示为applications.json文件片段,"\#\#start\#\#"和"\#\#end\#\#"之间为新增配置("\#\#start\#\#"和"\#\#end\#\#"仅用来标识位置,添加完配置后删除这两行): + + + ``` + { + "components": [ + { + "component": "camera_sample_communication", + "description": "Communication related samples.", + "optional": "true", + "dirs": [ + "applications/sample/camera/communication" + ], + "targets": [ + "//applications/sample/camera/communication:sample" + ], + "rom": "", + "ram": "", + "output": [], + "adapted_kernel": [ "liteos_a" ], + "features": [], + "deps": { + "components": [], + "third_party": [] + } + }, + ##start## + { + "component": "hello_world_app", + "description": "hello world samples.", + "optional": "true", + "dirs": [ + "applications/sample/wifi-iot/app/my_first_app" + ], + "targets": [ + "//applications/sample/wifi-iot/app/my_first_app:myapp" + ], + "rom": "", + "ram": "", + "output": [], + "adapted_kernel": [ "liteos_m" ], + "features": [], + "deps": { + "components": [], + "third_party": [] + } + }, + ##end## + { + "component": "camera_sample_app", + "description": "Camera related samples.", + "optional": "true", + "dirs": [ + "applications/sample/camera/launcher", + "applications/sample/camera/cameraApp", + "applications/sample/camera/setting", + "applications/sample/camera/gallery", + "applications/sample/camera/media" + ], + ``` + +5. 修改单板配置文件。 + 修改文件**vendor/hisilicon/hispark_pegasus/config.json**,新增hello_world_app组件的条目,如下所示代码片段为applications子系统配置,"\#\#start\#\#"和"\#\#end\#\#"之间为新增条目("\#\#start\#\#"和"\#\#end\#\#"仅用来标识位置,添加完配置后删除这两行): + + + ``` + { + "subsystem": "applications", + "components": [ + ##start## + { "component": "hello_world_app", "features":[] }, + ##end## + { "component": "wifi_iot_sample_app", "features":[] } + ] + }, + ``` diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-building.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-building.md index d112146c32ec9f335ee9f5c542239799c03aadcb..3e44436ad88d4d3ba20c29d7fa873f781d32de4d 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-building.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-building.md @@ -1,72 +1,44 @@ -# 编译 +# 编译 -- [编译(Docker方式搭建环境)](#section681942105819) -- [编译(安装包方式搭建环境)](#section17726113335715) -本节描述如何进行Hi3861 开发板的编译,根据上方搭建Ubuntu环境方式的不同,编译方式也有所区别。 +OpenHarmony支持hb和build.sh两种编译方式。此处介绍hb方式,build.sh脚本编译方式请参考[使用build.sh脚本编译源码](../quick-start/quickstart-lite-reference.md#使用buildsh脚本编译源码)。 -- 如果Ubuntu编译环境通过Docker方式安装,请参见下方[编译(Docker方式搭建环境)](#section681942105819)。 -- 如果Ubuntu编译环境通过安装包方式安装,请参见下方[编译(安装包方式搭建环境)](#section17726113335715)。 -## 编译(Docker方式搭建环境) +在Ubuntu环境下进入源码根目录,执行如下命令进行编译: -1. 请在[获取Docker环境](quickstart-lite-docker-environment.md#section15666113905015)中进入的Docker构建环境中,执行如下命令进行编译: - ``` - hb set(设置编译路径) - .(选择当前路径) - 选择wifiiot_hispark_pegasus@hisilicon并回车 - hb build -f(执行编译) - ``` +1. 设置编译路径。 + + ``` + hb set + ``` - **图 1** Hi3861编译设置图例-Docker方式 - ![](figures/Hi3861编译设置图例-Docker方式.png "Hi3861编译设置图例-Docker方式") +2. 选择当前路径。 + + ``` + . + ``` -2. 编译结束后,出现“wifiiot\_hispark\_pegasus build success”字样,则证明构建成功。 +3. 在hisilicon下选择wifiiot_hispark_pegasus并回车。 - >![](../public_sys-resources/icon-notice.gif) **须知:** - >烧录结果文件文件获取路径:out/hispark\_pegasus/wifiiot\_hispark\_pegasus。 +4. 执行编译。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > - 单独编译一个部件(例如hello),可使用“hb build -T _目标名称_”进行编译。 + > + > - 增量编译整个产品,可使用“hb build”进行编译。 + > + > - 完整编译整个产品,可使用“hb build -f”进行编译。 + > + > 此处以完整编译整个产品为例进行说明。 + + ``` + hb build -f + ``` -## 编译(安装包方式搭建环境) - -1. 打开DevEco Device Tool工具,点击“View \> Terminal”,进入终端界面。 - - **图 2** IDE终端工具打开方法 - - - ![](figures/1.png) - -2. 进入代码根路径,并在终端窗口,执行脚本命令“hb set”、“.”,选择需要编译的版本“wifiiot\_hispark\_pegasus”。 - - **图 3** 在终端界面选择目标构建版本示意图 - - - ![](figures/3.png) - -3. 执行“hb build”启动版本构建。 - - **图 4** 在终端界面执行编译命令示意图 - - - ![](figures/4.png) - -4. 编译结束后,如果出现“wifiiot\_hispark\_pegasus build success”字样,则证明构建成功,如下图所示。 - - **图 5** 编译成功示意图 - - - ![](figures/5.png) - -5. 构建成功后,会在./out/wifiiot/路径中生成以下文件,使用如下命令可以查看,至此编译构建流程结束。 - - ``` - ls -l out/hispark_pegasus/wifiiot_hispark_pegasus/ - ``` - - **图 6** 编译文件存放目录示意图 - - - ![](figures/3-0.png) - + **图1** Hi3861编译设置图例 + ![zh-cn_image_0000001226634716](figures/zh-cn_image_0000001226634716.png) +5. 编译结束后,出现“build success”字样,则证明构建成功。 + > ![icon-notice.gif](public_sys-resources/icon-notice.gif) **须知:** + > 编译结果文件及编译日志获取路径:out/hispark_pegasus/wifiiot_hispark_pegasus。 diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-burn.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-burn.md index 4d1cce51f9334ee770b7e102b7bae1db0e3a070f..2a424c8b7840536a58cdbc541fbb3312c23e8dae 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-burn.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-burn.md @@ -1,80 +1,77 @@ -# 烧录 +# 烧录 -- [前提条件](#section1535374111495) -- [使用串口烧录](#section5551201122719) -烧录是指将编译后的程序文件下载到芯片开发板上的动作,为后续的程序调试提供基础。DevEco Device Tool提供一键烧录功能,操作简单,能快捷、高效的完成程序烧录,提升烧录的效率。 +在Windows下通过串口烧录Hi3861 WLAN模组。 -DevEco Device Tool以插件方式运行,基于Visual Studio Code进行扩展,用户可点击Visual Studio Code左侧栏的![](figures/2021-01-27_170334.png)图标打开DevEco Device Tool。 -**Hi3861V100开发板支持串口烧录方式,Linux系统串口烧录协议为hiburn-serial。**具体操作步骤如下: +### 导入源码 -## 前提条件 +在编译完成后,[保证Windows系统可以远程访问Ubuntu环境](../quick-start/quickstart-lite-env-setup.md#安装deveco-device-tool)的情况下,您还需要通过以下步骤导入源码后,方可进行烧录。 -1. 在DevEco Device Tool工具中点击**Import Project**导入新建应用程序章节修改后的源码文件。 +1. 打开DevEco Device Tool,进入Home页,点击**Import Project**打开工程。 + ![zh-cn_image_0000001171426014](figures/zh-cn_image_0000001171426014.png) - ![](figures/import-project.png) +2. 选择要导入的源码目录(需要访问Ubuntu下的源码目录),点击**Import**打开。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 工程存储路径不能包含中文字符、空格。如果工程存储路径包含中文字符或空格,可能导致编译失败。 -2. 选择源码导入时,系统会提示该工程不是DevEco Device Tool工程,点击**Import**。 + ![zh-cn_image_0000001227549226](figures/zh-cn_image_0000001227549226.png) - ![](figures/import-project-confirm.png) +3. 如果您打开的目录不是DevEco Device Tool工程,则会出现如下提示框,点击**Import**。 + ![zh-cn_image_0000001135394334](figures/zh-cn_image_0000001135394334.png) -3. MCU选择Hi3861,Board选择Hi3861,Framework选择Hb,然后点击**Import**完成导入。 +4. 在Select Project type界面,选择**Import from OpenHarmony Source**。 + ![zh-cn_image_0000001215743910](figures/zh-cn_image_0000001215743910.png) - ![](figures/hi3861-import-projects.png) +5. 在Import Project界面,选择**Product**后,会自动填充对应的MCU、Board、company和kernel信息,然后**ohosVersion**选择对应的OpenHarmony源码版本。此处选择wifiiot_hispark_pegasus。 + ![zh-cn_image_0000001272109325](figures/zh-cn_image_0000001272109325.png) +6. 点击**Open**打开工程或源码。 -## 使用串口烧录 -1. 请连接好电脑和待烧录开发板,需要连接USB口,具体可参考[Hi3861V100开发板介绍](https://device.harmonyos.com/cn/docs/documentation/guide/quickstart-lite-introduction-hi3861-0000001105041324)[Hi3861V100开发板介绍](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-introduction-hi3861.md)。 -2. 查看并记录对应的串口号。 +### 烧录 - >![](../public_sys-resources/icon-note.gif) **说明:** - >如果对应的串口异常,请根据[Hi3861V100开发板串口驱动安装](https://device.harmonyos.com/cn/docs/documentation/guide/hi3861-drivers-0000001058153433)安装USB转串口的驱动程序。 +完成源码导入后,通过以下步骤进行烧录: - Window系统,打开设备管理器查看并记录对应的串口号,或在DevEco Device Tool中,点击QUICK ACCESS \> DevEco Home \> Device,查看并记录对应的串口号。 +1. 请连接好电脑和待烧录开发板,需要连接USB口,具体可参考[Hi3861V100开发板介绍](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-introduction-hi3861.md)。 - ![](figures/hi3861-record-the-serial-port-number.png) +2. 在DevEco Device Tool中,选择REMOTE DEVELOPMENT > Local PC,查看远程计算机(Ubuntu开发环境)与本地计算机(Windows开发环境)的连接状态。 + - 如果Local PC右边连接按钮为![zh-cn_image_0000001261315939](figures/zh-cn_image_0000001261315939.png),则远程计算机与本地计算机为已连接状态,不需要执行其他操作。 + - 如果Local PC右边连接按钮为![zh-cn_image_0000001261515989](figures/zh-cn_image_0000001261515989.png),则点击绿色连接进行按钮。 - Linux系统,在DevEco Device Tool中,点击QUICK ACCESS \> DevEco Home \> Device,查看并记录对应的串口号。 + ![zh-cn_image_0000001261395999](figures/zh-cn_image_0000001261395999.png) - ![](figures/Snap23.png) + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 该操作仅在远程模式(Windows+Ubuntu混合开发环境)中需要设置,如果采用本地模式(Windows开发环境或Ubuntu开发环境),则请跳过该步骤。 -3. 在QUICK ACCESS \> DevEco Home \> Projects中,点击**Settings**打开工程配置界面。 +3. 在DevEco Device Tool中,点击QUICK ACCESS > DevEco Home > Device,查看并记录对应的串口号。 + ![zh-cn_image_0000001216274840](figures/zh-cn_image_0000001216274840.png) - ![](figures/zh-cn_image_0000001222999125.png) + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果对应的串口异常,请根据[Hi3861V100开发板串口驱动安装](https://device.harmonyos.com/cn/docs/documentation/guide/hi3861-drivers-0000001058153433)安装USB转串口的驱动程序。 -4. 在“hi3861”页签,设置烧录选项,包括upload\_port、upload\_protocol和upload\_partitions。 +4. 在QUICK ACCESS > DevEco Home > Projects中,点击**Settings**打开工程配置界面。 + ![zh-cn_image_0000001198943768](figures/zh-cn_image_0000001198943768.png) - - upload\_port:选择已查询的串口号。 - - upload\_protocol:选择烧录协议,选择“hiburn-serial”。 - - upload\_partitions:选择待烧录的文件,默认选择hi3861\_app。 +5. 在“hi3861”页签,设置烧录选项,包括upload_port、upload_protocol和upload_partitions。 + - upload_port:选择已查询的串口号。 + - upload_protocol:选择烧录协议,选择“hiburn-serial”。 + - upload_partitions:选择待烧录的文件,默认选择hi3861_app。 - ![](figures/zh-cn_image_0000001177798424.png) + ![zh-cn_image_0000001243704061](figures/zh-cn_image_0000001243704061.png) -5. 检查待烧录文件的烧录信息,DevEco Device Tool已预置默认的烧录文件信息,可根据实际情况进行调整。 - 1. 在“hi3861\_app”页签,在New Option选项中选择需要修改的项,例如partition\_bin(烧录文件路径)、partition\_addr(烧录文件起始地址)、partition\_length(烧录文件分区长度)等。 +6. 检查待烧录文件的烧录信息,DevEco Device Tool已预置默认的烧录文件信息,可根据实际情况进行调整。 + 在“hi3861_app”页签,在New Option选项中选择partition_bin(烧录文件路径),然后设置待烧录文件的地址。 - ![](figures/zh-cn_image_0000001177480146.png) + ![zh-cn_image_0000001260919759](figures/zh-cn_image_0000001260919759.png) - 2. 然后在Partition Options中,分别修改上述步骤中选择的修改项。 +7. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 - >![](../public_sys-resources/icon-note.gif) **说明:** - >在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件的大小进行设置,要求设置的烧录分区大小,要大于待烧录文件的大小。 - - ![](figures/zh-cn_image_0000001223000051.png) - -6. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 -7. 点击**Open**打开工程文件,然后在“PROJECT TASKS”中,点击hi3861下的**Upload**按钮,启动烧录。 - - ![](figures/hi3861-upload.png) - -8. 启动烧录后,显示如下提示信息时,请按开发板上的RST按钮重启开发板。 - - ![](figures/zh-cn_image_0000001174595590.png) - -9. 重新上电后,界面提示如下信息时,表示烧录成功。 - - ![](figures/hi3861-burning-succeeded.png) +8. 点击**Open**打开工程文件,然后在“PROJECT TASKS”中,点击hi3861下的**Upload**按钮,启动烧录。 + ![zh-cn_image_0000001216440138](figures/zh-cn_image_0000001216440138.png) +9. 启动烧录后,显示如下提示信息时,请按开发板上的RST按钮重启开发板。 + ![zh-cn_image_0000001198466090](figures/zh-cn_image_0000001198466090.png) +10. 重新上电后,界面提示如下信息时,表示烧录成功。 + ![zh-cn_image_0000001216761476](figures/zh-cn_image_0000001216761476.png) diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-debug.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-debug.md index 650fe58a81a2a6c6abd971c07ab222c299638ec5..a335324d5d808ac463ba7d442ed7c1987d176718 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-debug.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-debug.md @@ -1,19 +1,22 @@ -# 调试验证 +# 调试验证 -- [printf打印](#section42891145143811) -- [根据asm文件进行问题定位](#section754719373917) -完成烧录之后,用户可根据需要进行调试验证。目前调试验证的方法有以下两种,开发者可以根据具体业务情况选择。 +完成烧录及联网之后,用户可根据需要进行调试验证。目前调试验证的方法有以下两种,开发者可以根据具体业务情况选择。 + + +1. 通过printf打印日志 + +2. 通过asm文件定位panic问题 -1. 通过printf打印日志 -2. 通过asm文件定位panic问题 由于本示例业务简单,采用printf打印日志的调试方式即可。下方将介绍这两种调试手段的使用方法。 -## printf打印 + +## printf打印 代码中增加printf维测,信息会直接打印到串口上。开发者可在业务关键路径或业务异常位置增加日志打印,如下所示: + ``` void HelloWorld(void) { @@ -21,13 +24,14 @@ void HelloWorld(void) } ``` -## 根据asm文件进行问题定位 -系统异常退出时,会在串口上打印异常退出原因调用栈信息,如下文所示。通过解析异常栈信息可以定位异常位置。 +## 根据asm文件进行问题定位 + 系统异常退出时,会在串口上打印异常退出原因调用栈信息,如下文所示。通过解析异常栈信息可以定位异常位置。 + ``` =======KERNEL PANIC======= -**********************Call Stack********************* +**Call Stack* Call Stack 0 -- 4860d8 addr:f784c Call Stack 1 -- 47b2b2 addr:f788c Call Stack 2 -- 3e562c addr:f789c @@ -35,27 +39,26 @@ Call Stack 3 -- 4101de addr:f78ac Call Stack 4 -- 3e5f32 addr:f78cc Call Stack 5 -- 3f78c0 addr:f78ec Call Stack 6 -- 3f5e24 addr:f78fc -********************Call Stack end******************* +Call Stack end*** ``` -为解析上述调用栈信息,需要使用到Hi3861\_wifiiot\_app.asm文件,该文件记录了代码中函数在Flash上的符号地址以及反汇编信息。asm文件会随版本打包一同构建输出,存放在./out/wifiiot/路径下。 - -1. 将调用栈CallStack信息保存到txt文档中,以便于编辑。(可选) -2. 打开asm文件,并搜索CallStack中的地址,列出对应的函数名 信息。通常只需找出前几个栈信息对应的函数,就可明确异常代码方向。 - - ``` - Call Stack 0 -- 4860d8 addr:f784c -- WadRecvCB - Call Stack 1 -- 47b2b2 addr:f788c -- wal_sdp_process_rx_data - Call Stack 2 -- 3e562c addr:f789c - Call Stack 3 -- 4101de addr:f78ac - Call Stack 4 -- 3e5f32 addr:f78cc - Call Stack 5 -- 3f78c0 addr:f78ec - Call Stack 6 -- 3f5e24 addr:f78fc - ``` +为解析上述调用栈信息,需要使用到Hi3861_wifiiot_app.asm文件,该文件记录了代码中函数在Flash上的符号地址以及反汇编信息。asm文件会随版本打包一同构建输出,存放在./out/wifiiot/路径下。 -3. 根据以上调用栈信息,可以定位WadRecvCB函数中出现了异常。 +1. 将调用栈CallStack信息保存到txt文档中,以便于编辑。(可选) - ![](figures/zh-cn_image_0000001185334336.png) +2. 打开asm文件,并搜索CallStack中的地址,列出对应的函数名信息。通常只需找出前几个栈信息对应的函数,就可明确异常代码方向。 + + ``` + Call Stack 0 -- 4860d8 addr:f784c -- WadRecvCB + Call Stack 1 -- 47b2b2 addr:f788c -- wal_sdp_process_rx_data + Call Stack 2 -- 3e562c addr:f789c + Call Stack 3 -- 4101de addr:f78ac + Call Stack 4 -- 3e5f32 addr:f78cc + Call Stack 5 -- 3f78c0 addr:f78ec + Call Stack 6 -- 3f5e24 addr:f78fc + ``` -4. 完成代码排查及修改。 +3. 根据以上调用栈信息,可以定位WadRecvCB函数中出现了异常。 + ![zh-cn_image_0000001271354733](figures/zh-cn_image_0000001271354733.png) +4. 完成代码排查及修改。 diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-faqs.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-faqs.md deleted file mode 100644 index 3bb3f5cef0edb16f7b512623eaa8277d2174de58..0000000000000000000000000000000000000000 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-faqs.md +++ /dev/null @@ -1,315 +0,0 @@ -# 常见问题 - -- [编译构建过程中,提示“No module named 'Crypto'”](#section982315398121) -- [编译构建过程中,提示“No module named 'ecdsa'”](#section102035451216) -- [编译构建过程中,提示“Could not find a version that satisfies the requirement six\>=1.9.0”](#section4498158162320) -- [编译构建过程中,提示找不到“-lgcc”](#section11181036112615) -- [编译构建过程中,提示找不到“python”](#section1571810194619) -- [编译构建过程中,提示找不到“python3”](#section108385316482) -- [安装python3过程中,提示“configure: error: no acceptable C compiler found in $PATH”](#section1221016541119) -- [安装python3过程中,提示“-bash: make: command not found”](#section1913477181213) -- [安装python3过程中,提示“zlib not available”](#section108211415131210) -- [安装python3过程中,提示“No module named '\_ctypes'”](#section2062268124) -- [安装 kconfiglib时,遇到lsb\_release错误](#section691681635814) - -## 编译构建过程中,提示“No module named 'Crypto'” - -- **现象描述** - - 编译构建过程中出现以下错误: - - ``` - ModuleNotFoundError: No module named 'Crypto' - ``` - - -- **可能原因** - - 环境中未安装“Crypto”。 - - -- **解决办法** - - 方法1:通过命令“pip3 install Crypto”,在线安装。 - - 方法2:离线安装。 - - 通过网页[https://pypi.org/project/pycrypto/\#files](https://pypi.org/project/pycrypto/#files),下载源码。 - - ![](figures/zh-cn_image_0000001171615542.png) - - 将源码放置在Linux服务器中,解压,并安装“python3 setup.py install”。 - - 完成上述安装后,重新构建。 - - -## 编译构建过程中,提示“No module named 'ecdsa'” - -- **现象描述** - - 编译构建过程中出现以下错误: - - ``` - ModuleNotFoundError:No module named 'ecdsa' - ``` - - -- **可能原因** - - 环境中未安装“ecdsa”。 - - -- **解决办法** - - 方法1:通过命令“pip3 install ecdsa”,在线安装。 - - 方法2:离线安装 - - 通过网页[https://pypi.org/project/ecdsa/\#files](https://pypi.org/project/ecdsa/#files),下载安装包。 - - ![](figures/zh-cn_image_0000001171455574.png) - - 将安装包放置Linux服务器中,并安装“pip3 install ecdsa-0.15-py2.py3-none-any.whl”。 - - 完成上述安装后,重新构建。 - - -## 编译构建过程中,提示“Could not find a version that satisfies the requirement six\>=1.9.0” - -- **现象描述** - - 编译构建过程中出现以下错误: - - ``` - Could not find a version that satisfies the requirement six>=1.9.0 - ``` - - -- **可能原因** - - 环境中未安装合适的“six”。 - - -- **解决办法** - - 方法1:通过命令“pip3 install six”,在线安装。 - - 方法2:离线安装。 - - 通过网页[https://pypi.org/project/six/\#files](https://pypi.org/project/six/#files),下载安装包。 - - ![](figures/zh-cn_image_0000001217013871.png) - - 将源码放置在Linux服务器中,并安装“pip3 install six-1.14.0-py2.py3-none-any.whl”。 - - 完成上述安装后,重新构建。 - - -## 编译构建过程中,提示找不到“-lgcc” - -- **现象描述** - - 编译构建过程中出现以下错误: - - ``` - riscv32-unknown-elf-ld: cannot find -lgcc - ``` - - -- **可能原因** - - 交叉编译器gcc\_riscv32的PATH添加错误,如下,在"bin"后多添加了一个“/”,应该删除。 - - ``` - ~/gcc_riscv32/bin/:/data/toolchain/ - ``` - - -- **解决办法** - - 重新修改gcc\_riscv32的PATH,将多余的“/”删除。 - - ``` - ~/gcc_riscv32/bin:/data/toolchain/ - ``` - - -## 编译构建过程中,提示找不到“python” - -- **现象描述** - - 编译构建过程中出现以下错误: - - ``` - -bash: /usr/bin/python: No such file or directory - ``` - - -- **可能原因**1 - - 没有装python。 - -- **解决办法** - - 请使用如下命令安装Python,下方以Python3.8为例。 - - ``` - sudo apt-get install python3.8 - ``` - -- **可能原因2** - - usr/bin目录下没有python软链接 - - ![](figures/zh-cn_image_0000001171774098.png) - -- **解决办法** - - 请运行以下命令添加软链接: - - ``` - # cd /usr/bin/ - # which python3 - # ln -s /usr/local/bin/python3 python - # python --version - ``` - - 例: - - ![](figures/zh-cn_image_0000001171934032.png) - - -## 编译构建过程中,提示找不到“python3” - -- **现象描述** - - ![](figures/11.png) - - -- **可能原因** - - 没有装python3。 - -- **解决办法** - - 请使用如下命令安装Python3。 - - ``` - sudo apt-get install python3.8 - ``` - - -## 安装python3过程中,提示“configure: error: no acceptable C compiler found in $PATH” - -- **现象描述** - - 安装python3过程中出现以下错误: - - ``` - configure: error: no acceptable C compiler found in $PATH. See 'config.log' for more details - ``` - -- **可能原因** - - 环境中未安装“gcc”。 - -- **解决办法** - 1. 通过命令“apt-get install gcc”在线安装。 - 2. 完成后,重新安装python3。 - - -## 安装python3过程中,提示“-bash: make: command not found” - -- **现象描述** - - 安装python3过程中出现以下错误: - - ``` - -bash: make: command not found - ``` - -- **可能原因** - - 环境中未安装“make”。 - -- **解决办法** - 1. 通过命令“apt-get install make”在线安装。 - 2. 完成后,重新安装python3。 - - -## 安装python3过程中,提示“zlib not available” - -- **现象描述** - - 安装python3过程中出现以下错误: - - ``` - zipimport.ZipImportError: can't decompress data; zlib not avaliable - ``` - -- **可能原因** - - 环境中未安装“zlib”。 - -- **解决办法** - - 方法1:通过命令“apt-get install zlib”在线安装。 - - 方法2:如果软件源中没有该软件,请从“www.zlib.net”下载版本代码,并离线安装。 - - ![](figures/10.png) - - 完成下载后,通过以下命令安装: - - ``` - # tar xvf zlib-1.2.11.tar.gz - # cd zlib-1.2.11 - # ./configure - # make && make install - ``` - - 完成后,重新安装python3。 - - -## 安装python3过程中,提示“No module named '\_ctypes'” - -- **现象描述** - - 安装python3过程中出现以下错误: - - ``` - ModuleNotFoundError:No module named ‘_ctypes’ - ``` - - -- **可能原因** - - 环境中未安装“libffi”和“libffi-devel”。 - - -- **解决办法** - - 1、通过命令“apt-get install libffi\* -y”,在线安装。 - - 2、完成后,重新安装python3。 - - -## 安装 kconfiglib时,遇到lsb\_release错误 - -- **现象描述** - - 安装kconfiglib过程中遇到如下错误打印: - - ``` - subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1. - ``` - -- **可能原因** - - lsb\_release模块基于的python版本与现有python版本不一致。 - -- **解决办法** - - 执行"find / -name lsb\_release",找到lsb\_release位置并删除,如:"sudo rm -rf /usr/bin/lsb\_release"。 - - diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-netconfig.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-netconfig.md new file mode 100644 index 0000000000000000000000000000000000000000..4074626b3f5ce72fcd486b43bebefbd807a52526 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-netconfig.md @@ -0,0 +1,38 @@ +# 联网 + + +完成版本编译及烧录后,下面开始介绍如何在串口终端上执行AT命令,使Hi3861 WLAN模组联网。 + + +1. 保持Windows工作台和WLAN模组的连接状态,在DevEco Device Tool最下方,点击“DevEco:Serial Monitor”按钮。 + **图1** 打开DevEco Device Tool串口终端示意图 + ![zh-cn_image_0000001227114644](figures/zh-cn_image_0000001227114644.png) + +2. 复位Hi3861 WLAN模组,终端界面显示“ready to OS start”,则启动成功。 + **图2** Hi3861 WLAN模组复位成功示意图 + ![zh-cn_image_0000001226794704](figures/zh-cn_image_0000001226794704.png) + +3. 在串口终端中,依次执行如下AT命令,启动STA模式,连接指定AP热点,并开启DHCP功能。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 开发板启动后,串口会打印测试用例信息,待测试用例信息打印完成后再执行AT指令,否则AT指令会被测试用例信息覆盖。 + + + + ``` + AT+STARTSTA # 启动STA模式 + AT+SCAN # 扫描周边AP + AT+SCANRESULT # 显示扫描结果 + AT+CONN="SSID",,2,"PASSWORD" # 连接指定AP,其中SSID/PASSWORD为待连接的热点名称和密码 + AT+STASTAT # 查看连接结果 + AT+DHCP=wlan0,1 # 通过DHCP向AP请求wlan0的IP地址 + ``` + +4. 查看Hi3861 WLAN模组与网关联通是否正常,如下图所示。 + + ``` + AT+IFCFG # 查看模组接口IP + AT+PING=X.X.X.X # 检查模组与网关的联通性,其中X.X.X.X需替换为实际的网关地址 + ``` + + **图3** Hi3861 WLAN模组联网成功示意图 + ![zh-cn_image_0000001226954648](figures/zh-cn_image_0000001226954648.png) diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-running.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-running.md deleted file mode 100644 index a8e7c64c69f5c3e406634f5d3b256c7f4eda647d..0000000000000000000000000000000000000000 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-running.md +++ /dev/null @@ -1,20 +0,0 @@ -# 运行 - -- [运行结果](#section18115713118) -- [下一步学习](#section9712145420182) - -## 运行结果 - -示例代码编译、烧录、运行、调测后,重启开发板后将自动在界面输出如下结果: - -``` -ready to OS start -FileSystem mount ok. -wifi init success! -[DEMO] Hello world. -``` - -## 下一步学习 - -恭喜,您已完成Hi3861开发板快速上手!建议您下一步进入[WLAN产品开发](../guide/device-wlan-led-control.md)的学习 。 - diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-setting.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-setting.md index 8296fe1831a1bfa2f4b80a99e3139e33248087cb..662521525dc8ca426f6d1b1e95e1750e26e6d41f 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-setting.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-setting.md @@ -1,297 +1,240 @@ -# 安装开发板环境 +# 安装Hi3861开发板环境 -- [Hi3861工具要求](#section466851916410) - - [硬件要求](#section19202111020215) - - [软件要求](#section727451210318) -- [安装Linux编译工具](#section497484245614) - - [安装编译依赖基础软件(仅Ubuntu 20+需要)](#section45512412251) - - [安装Scons](#section7438245172514) - - [安装python模块](#section88701892341) - - [安装gcc\_riscv32(WLAN模组类编译工具链)](#section34435451256) +## Hi3861工具要求 -## Hi3861工具要求 +### 硬件要求 -### 硬件要求 +- Linux工作台 -- Linux工作台 -- Hi3861开发板 -- USB Type-C线(Linux工作台通过USB与Hi3861开发板连接) +- Hi3861 WLAN模组 -### 软件要求 +- USB Type-C线(Linux工作台通过USB与Hi3861开发板连接) ->![](../public_sys-resources/icon-notice.gif) **须知:** ->本节描述采用安装包方式安装相关工具的操作步骤。如果使用Docker方式安装,无需安装[表1](#table6299192712513)中的相关工具,请直接从[新建应用程序](quickstart-lite-steps-hi3861-application-framework.md)开始操作。 -Hi3861开发板需要的工具如下表所示。 +### 软件要求 -**表 1** Hi3861开发板需要安装的工具 - - - - - - - - - - - - - - - - - - -

开发工具

-

用途

-

编译基础软件包(仅ubuntu 20+需要)

-

编译依赖的基础软件包

-

SCons3.0.4+

-

编译构建工具

-

python模块:setuptools、kconfiglib、pycryptodome、six、ecdsa

-

编译构建工具

-

gcc riscv32

-

编译构建工具

-
+Hi3861 WLAN模组需要的工具如下表所示。 + + + **表1** Hi3861 WLAN模组需要安装的编译工具 -## 安装Linux编译工具 +| 开发工具 | 用途 | +| -------- | -------- | +| SCons3.0.4+ | 编译构建工具 | +| python模块:setuptools、kconfiglib、pycryptodome、six、ecdsa | 编译构建工具 | +| gcc riscv32 | 编译构建工具 | -### 安装编译依赖基础软件(仅Ubuntu 20+需要) -执行以下命令进行安装: +## 安装编译工具 -``` -sudo apt-get install build-essential gcc g++ make zlib* libffi-dev -``` +编译Hi3861 WLAN模组需要一些特定的编译工具,在Ubuntu下通过以下步骤安装。 -### 安装Scons -1. 运行如下命令,安装SCons安装包。 - - ``` - python3 -m pip install scons - ``` - -2. 运行如下命令,查看是否安装成功。如果安装成功,查询结果下图所示。 - - ``` - scons -v - ``` - - **图 1** SCons安装成功界面,版本要求3.0.4以上 - ![](figures/SCons安装成功界面-版本要求3-0-4以上.png "SCons安装成功界面-版本要求3-0-4以上") - - -### 安装python模块 - -1. 运行如下命令,安装python模块setuptools。 - - ``` - pip3 install setuptools - ``` - -2. 安装GUI menuconfig工具(Kconfiglib),建议安装Kconfiglib 13.2.0+版本,任选如下一种方式。 - - **命令行方式:** - - ``` - sudo pip3 install kconfiglib - ``` - - - **安装包方式:** - 1. 下载.whl文件(例如:kconfiglib-13.2.0-py2.py3-none-any.whl)。 - - 下载路径:“[https://pypi.org/project/kconfiglib\#files](https://pypi.org/project/kconfiglib#files)” - - 1. 运行如下命令,安装.whl文件。 - - ``` - sudo pip3 install kconfiglib-13.2.0-py2.py3-none-any.whl - ``` - - -3. 安装pycryptodome,任选如下一种方式。 - - 安装升级文件签名依赖的Python组件包,包括:pycryptodome、six、ecdsa。安装ecdsa依赖six,请先安装six,再安装ecdsa。 - - - **命令行方式:** - - ``` - sudo pip3 install pycryptodome - ``` - - - **安装包方式:** - 1. 下载.whl文件(例如:pycryptodome-3.9.9-cp38-cp38-manylinux1\_x86\_64.whl)。 - - 下载路径:“[https://pypi.org/project/pycryptodome/\#files](https://pypi.org/project/pycryptodome/#files)”。 - - 1. 运行如下命令,安装.whl文件。 - - ``` - sudo pip3 install pycryptodome-3.9.9-cp38-cp38-manylinux1_x86_64.whl - ``` - - -4. 安装six,任选如下一种方式。 - - **命令行方式:** - - ``` - sudo pip3 install six --upgrade --ignore-installed six - ``` - - - **安装包方式:** - 1. 下载.whl文件(例如:six-1.12.0-py2.py3-none-any.whl)。 - - 下载路径:“[https://pypi.org/project/six/\#files](https://pypi.org/project/six/#files)” - - 1. 运行如下命令,安装.whl文件。 - - ``` - sudo pip3 install six-1.12.0-py2.py3-none-any.whl - ``` - - -5. 安装ecdsa,任选如下一种方式。 - - **命令行方式:** - - ``` - sudo pip3 install ecdsa - ``` - - - **安装包方式:** - 1. 下载.whl文件(例如:ecdsa-0.14.1-py2.py3-none-any.whl)。 - - 下载路径:“[https://pypi.org/project/ecdsa/\#files](https://pypi.org/project/ecdsa/#files)” - - 1. 运行如下命令,安装.whl文件。 - - ``` - sudo pip3 install ecdsa-0.14.1-py2.py3-none-any.whl - ``` - - - - -### 安装gcc\_riscv32(WLAN模组类编译工具链) - ->![](../public_sys-resources/icon-notice.gif) **须知:** ->- Hi3861开发板平台仅支持使用libgcc运行时库的静态链接,不建议开发者使用libgcc运行时库的动态链接,以免产品需遵从GPLV3许可证。 ->- 通过下述步骤2-15,我们编译好了gcc\_riscv32 镜像,提供给开发者[直接下载](https://repo.huaweicloud.com/harmonyos/compiler/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz)使用。直接下载 gcc\_riscv32 镜像的开发者可省略下述2-15步。 - -1. 打开Linux编译服务器终端。 -2. 环境准备,请安装"gcc, g++, bison, flex, makeinfo"软件,确保工具链能正确编译。 - - ``` - sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install flex bison && sudo apt-get install texinfo - ``` - -3. 下载riscv-gnu-toolchain交叉编译工具链。 - - ``` - git clone --recursive https://gitee.com/mirrors/riscv-gnu-toolchain.git - ``` - -4. 打开文件夹riscv-gnu-toolchain,先删除空文件夹,以防止下载newlib,binutils,gcc时冲突。 - - ``` - cd riscv-gnu-toolchain && rm -rf riscv-newlib && rm -rf riscv-binutils && rm -rf riscv-gcc - ``` - -5. 下载riscv-newlib-3.0.0。 - - ``` - git clone -b riscv-newlib-3.0.0 https://github.com/riscv/riscv-newlib.git - ``` - -6. 下载riscv-binutils-2.31.1。 - - ``` - git clone -b riscv-binutils-2.31.1 https://github.com/riscv/riscv-binutils-gdb.git - ``` - -7. 下载riscv-gcc-7.3.0。 - - ``` - git clone -b riscv-gcc-7.3.0 https://github.com/riscv/riscv-gcc - ``` - -8. 添加riscv-gcc-7.3.0补丁。 - - 访问gcc官方补丁链接[89411](https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=026216a753ef0a757a9e368a59fa667ea422cf09;hp=2a23a1c39fb33df0277abd4486a3da64ae5e62c2),[86724](https://gcc.gnu.org/git/?p=gcc.git;a=blobdiff;f=gcc/graphite.h;h=be0a22b38942850d88feb159603bb846a8607539;hp=4e0e58c60ab83f1b8acf576e83330466775fac17;hb=b1761565882ed6a171136c2c89e597bc4dd5b6bf;hpb=fbd5f023a03f9f60c6ae36133703af5a711842a3),按照补丁链接中要求的修改,手动将变更添加到对应的.c和.h文件中,注意由于patch版本与下载的gcc版本有所偏差,行数有可能对应不上,请自行查找patch中的关键字定位到对应行。 - -9. 下载[GMP 6.1.2](https://gmplib.org/download/gmp/gmp-6.1.2.tar.bz2),并解压安装。 - - ``` - tar -xvf gmp-6.1.2.tar.bz2 && mkdir build_gmp && cd build_gmp && ../gmp-6.1.2/configure --prefix=/usr/local/gmp-6.1.2 --disable-shared --enable-cxx && make && make install - ``` - -10. 下载[mpfr-4.0.2 ](https://www.mpfr.org/mpfr-4.0.2/mpfr-4.0.2.tar.gz),并解压安装。 - - ``` - tar -xvf mpfr-4.0.2.tar.gz && mkdir build_mpfr && cd build_mpfr && ../mpfr-4.0.2/configure --prefix=/usr/local/mpfr-4.0.2 --with-gmp=/usr/local/gmp-6.1.2 --disable-shared && make && make install - ``` - -11. 下载[mpc-1.1.0](https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz) ,并解压安装。 - - ``` - tar -xvf mpc-1.1.0.tar.gz && mkdir build_mpc && cd build_mpc && ../mpc-1.1.0/configure --prefix=/usr/local/mpc-1.1.0 --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.2 --disable-shared && make && make install - ``` - -12. 打开文件夹riscv-gnu-toolchain,新建工具链输出目录。 - - ``` - cd /opt && mkdir gcc_riscv32 - ``` - -13. 编译binutils。 - - ``` - mkdir build_binutils && cd build_binutils && ../riscv-binutils-gdb/configure --prefix=/opt/gcc_riscv32 --target=riscv32-unknown-elf --with-arch=rv32imc --with-abi=ilp32 --disable-__cxa_atexit --disable-libgomp --disable-libmudflap --enable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-multilib --enable-poison-system-directories --enable-languages=c,c++ --with-gnu-as --with-gnu-ld --with-newlib --with-system-zlib CFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" CXXFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" CXXFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" CFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" --bindir=/opt/gcc_riscv32/bin --libexecdir=/opt/gcc_riscv32/riscv32 --libdir=/opt/gcc_riscv32 --includedir=/opt/gcc_riscv32 && make -j16 && make install && cd .. - ``` - -14. 编译newlib。 - - ``` - mkdir build_newlib && cd build_newlib && ../riscv-newlib/configure --prefix=/opt/gcc_riscv32 --target=riscv32-unknown-elf --with-arch=rv32imc --with-abi=ilp32 --disable-__cxa_atexit --disable-libgomp --disable-libmudflap --enable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-multilib --enable-poison-system-directories --enable-languages=c,c++ --with-gnu-as --with-gnu-ld --with-newlib --with-system-zlib CFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" CXXFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" \CXXFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" CFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" --bindir=/opt/gcc_riscv32/bin --libexecdir=/opt/gcc_riscv32 --libdir=/opt/gcc_riscv32 --includedir=/opt/gcc_riscv32 && make -j16 && make install && cd .. - ``` - -15. 编译gcc。 - - ``` - mkdir build_gcc && cd build_gcc && ../riscv-gcc/configure --prefix=/opt/gcc_riscv32 --target=riscv32-unknown-elf --with-arch=rv32imc --with-abi=ilp32 --disable-__cxa_atexit --disable-libgomp --disable-libmudflap --enable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-multilib --enable-poison-system-directories --enable-languages=c,c++ --with-gnu-as --with-gnu-ld --with-newlib --with-system-zlib CFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" CXXFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" LDFLAGS="-Wl,-z,relro,-z,now,-z,noexecstack" CXXFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" CFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" --with-headers="/opt/gcc-riscv32/riscv32-unknown-elf/include" --with-mpc=/usr/local/mpc-1.1.0 --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.2 && make -j16 && make install - ``` - -16. 设置环境变量。 - - >![](../public_sys-resources/icon-note.gif) **说明:** - >如果直接采用编译好的riscv32 gcc包,请先执行以下命令将压缩包解压到根目录: - >``` - >tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~ - >``` - - ``` - vim ~/.bashrc - ``` - - 将以下命令拷贝到.bashrc文件的最后一行,保存并退出。 - - ``` - export PATH=~/gcc_riscv32/bin:$PATH - ``` - -17. 生效环境变量。 - - ``` - source ~/.bashrc - ``` - -18. Shell命令行中输入如下命令,如果能正确显示编译器版本号,表明编译器安装成功。 - - ``` - riscv32-unknown-elf-gcc -v - ``` +### 安装Scons +1. 运行如下命令,安装SCons安装包。 + + ``` + python3 -m pip install scons + ``` +2. 运行如下命令,查看是否安装成功。如果安装成功,查询结果下图所示。 + + ``` + scons -v + ``` + + **图1** SCons安装成功界面,版本要求3.0.4以上 + ![zh-cn_image_0000001271234749](figures/zh-cn_image_0000001271234749.png) + + +### 安装python模块 + +1. 运行如下命令,安装python模块setuptools。 + + ``` + pip3 install setuptools + ``` + +2. 安装GUI menuconfig工具(Kconfiglib),建议安装Kconfiglib 13.2.0+版本,任选如下一种方式。 + - **命令行方式:** + + ``` + sudo pip3 install kconfiglib + ``` + - **安装包方式:** + 1. 下载.whl文件(例如:kconfiglib-13.2.0-py2.py3-none-any.whl)。 + 下载路径:“[https://pypi.org/project/kconfiglib#files](https://pypi.org/project/kconfiglib#files)” + 2. 运行如下命令,安装.whl文件。 + + ``` + sudo pip3 install kconfiglib-13.2.0-py2.py3-none-any.whl + ``` + +3. 安装pycryptodome,任选如下一种方式。 + 安装升级文件签名依赖的Python组件包,包括:pycryptodome、six、ecdsa。安装ecdsa依赖six,请先安装six,再安装ecdsa。 + - **命令行方式:** + + ``` + sudo pip3 install pycryptodome + ``` + + - **安装包方式:** + 1. 下载.whl文件(例如:pycryptodome-3.9.9-cp38-cp38-manylinux1_x86_64.whl)。 + 下载路径:“[https://pypi.org/project/pycryptodome/#files](https://pypi.org/project/pycryptodome/#files)”。 + 2. 运行如下命令,安装.whl文件。 + + ``` + sudo pip3 install pycryptodome-3.9.9-cp38-cp38-manylinux1_x86_64.whl + ``` + +4. 安装six,任选如下一种方式。 + - **命令行方式:** + + ``` + sudo pip3 install six --upgrade --ignore-installed six + ``` + - **安装包方式:** + 1. 下载.whl文件(例如:six-1.12.0-py2.py3-none-any.whl)。 + 下载路径:“[https://pypi.org/project/six/#files](https://pypi.org/project/six/#files)” + 2. 运行如下命令,安装.whl文件。 + + ``` + sudo pip3 install six-1.12.0-py2.py3-none-any.whl + ``` + +5. 安装ecdsa,任选如下一种方式。 + - **命令行方式:** + + ``` + sudo pip3 install ecdsa + ``` + - **安装包方式:** + 1. 下载.whl文件(例如:ecdsa-0.14.1-py2.py3-none-any.whl)。 + 下载路径:“[https://pypi.org/project/ecdsa/#files](https://pypi.org/project/ecdsa/#files)” + 2. 运行如下命令,安装.whl文件。 + + ``` + sudo pip3 install ecdsa-0.14.1-py2.py3-none-any.whl + ``` + + +### 安装gcc_riscv32(WLAN模组类编译工具链) + +> ![icon-notice.gif](public_sys-resources/icon-notice.gif) **须知:** +> - Hi3861开发板平台仅支持使用libgcc运行时库的静态链接,不建议开发者使用libgcc运行时库的动态链接,以免产品需遵从GPLV3许可证。 +> +> - 通过下述步骤2-14,我们编译好了gcc_riscv32镜像,提供给开发者[直接下载](https://repo.huaweicloud.com/harmonyos/compiler/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz)使用。直接下载gcc_riscv32镜像的开发者可省略下述2-14步。 + +1. 打开Linux编译服务器终端。 + +2. 下载riscv-gnu-toolchain交叉编译工具链。 + + ``` + git clone --recursive https://gitee.com/mirrors/riscv-gnu-toolchain.git + ``` + +3. 打开文件夹riscv-gnu-toolchain,先删除空文件夹,以防止下载newlib,binutils,gcc时冲突。 + + ``` + cd riscv-gnu-toolchain && rm -rf riscv-newlib && rm -rf riscv-binutils && rm -rf riscv-gcc + ``` + +4. 下载riscv-newlib-3.0.0。 + + ``` + git clone -b riscv-newlib-3.0.0 https://github.com/riscv/riscv-newlib.git + ``` + +5. 下载riscv-binutils-2.31.1。 + + ``` + git clone -b riscv-binutils-2.31.1 https://github.com/riscv/riscv-binutils-gdb.git + ``` + +6. 下载riscv-gcc-7.3.0。 + + ``` + git clone -b riscv-gcc-7.3.0 https://github.com/riscv/riscv-gcc + ``` + +7. 添加riscv-gcc-7.3.0补丁。 + 访问gcc官方补丁链接[89411](https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=026216a753ef0a757a9e368a59fa667ea422cf09;hp=2a23a1c39fb33df0277abd4486a3da64ae5e62c2),[86724](https://gcc.gnu.org/git/?p=gcc.git;a=blobdiff;f=gcc/graphite.h;h=be0a22b38942850d88feb159603bb846a8607539;hp=4e0e58c60ab83f1b8acf576e83330466775fac17;hb=b1761565882ed6a171136c2c89e597bc4dd5b6bf;hpb=fbd5f023a03f9f60c6ae36133703af5a711842a3),按照补丁链接中要求的修改,手动将变更添加到对应的.c和.h文件中,注意由于patch版本与下载的gcc版本有所偏差,行数有可能对应不上,请自行查找patch中的关键字定位到对应行。 + +8. 下载[GMP 6.1.2](https://gmplib.org/download/gmp/gmp-6.1.2.tar.bz2),并解压安装。 + + ``` + tar -xvf gmp-6.1.2.tar.bz2 && mkdir build_gmp && cd build_gmp && ../gmp-6.1.2/configure --prefix=/usr/local/gmp-6.1.2 --disable-shared --enable-cxx && make && make install + ``` + +9. 下载[mpfr-4.0.2 ](https://www.mpfr.org/mpfr-4.0.2/mpfr-4.0.2.tar.gz),并解压安装。 + + ``` + tar -xvf mpfr-4.0.2.tar.gz && mkdir build_mpfr && cd build_mpfr && ../mpfr-4.0.2/configure --prefix=/usr/local/mpfr-4.0.2 --with-gmp=/usr/local/gmp-6.1.2 --disable-shared && make && make install + ``` + +10. 下载[mpc-1.1.0](https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz) ,并解压安装。 + + ``` + tar -xvf mpc-1.1.0.tar.gz && mkdir build_mpc && cd build_mpc && ../mpc-1.1.0/configure --prefix=/usr/local/mpc-1.1.0 --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.2 --disable-shared && make && make install + ``` + +11. 打开文件夹riscv-gnu-toolchain,新建工具链输出目录。 + + ``` + cd /opt && mkdir gcc_riscv32 + ``` + +12. 编译binutils。 + + ``` + mkdir build_binutils && cd build_binutils && ../riscv-binutils-gdb/configure --prefix=/opt/gcc_riscv32 --target=riscv32-unknown-elf --with-arch=rv32imc --with-abi=ilp32 --disable-__cxa_atexit --disable-libgomp --disable-libmudflap --enable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-multilib --enable-poison-system-directories --enable-languages=c,c++ --with-gnu-as --with-gnu-ld --with-newlib --with-system-zlib CFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" CXXFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" CXXFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" CFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" --bindir=/opt/gcc_riscv32/bin --libexecdir=/opt/gcc_riscv32/riscv32 --libdir=/opt/gcc_riscv32 --includedir=/opt/gcc_riscv32 && make -j16 && make install && cd .. + ``` + +13. 编译newlib。 + + ``` + mkdir build_newlib && cd build_newlib && ../riscv-newlib/configure --prefix=/opt/gcc_riscv32 --target=riscv32-unknown-elf --with-arch=rv32imc --with-abi=ilp32 --disable-__cxa_atexit --disable-libgomp --disable-libmudflap --enable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-multilib --enable-poison-system-directories --enable-languages=c,c++ --with-gnu-as --with-gnu-ld --with-newlib --with-system-zlib CFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" CXXFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" \CXXFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" CFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" --bindir=/opt/gcc_riscv32/bin --libexecdir=/opt/gcc_riscv32 --libdir=/opt/gcc_riscv32 --includedir=/opt/gcc_riscv32 && make -j16 && make install && cd .. + ``` + +14. 编译gcc。 + + ``` + mkdir build_gcc && cd build_gcc && ../riscv-gcc/configure --prefix=/opt/gcc_riscv32 --target=riscv32-unknown-elf --with-arch=rv32imc --with-abi=ilp32 --disable-__cxa_atexit --disable-libgomp --disable-libmudflap --enable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-multilib --enable-poison-system-directories --enable-languages=c,c++ --with-gnu-as --with-gnu-ld --with-newlib --with-system-zlib CFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" CXXFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" LDFLAGS="-Wl,-z,relro,-z,now,-z,noexecstack" CXXFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" CFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" --with-headers="/opt/gcc-riscv32/riscv32-unknown-elf/include" --with-mpc=/usr/local/mpc-1.1.0 --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.2 && make -j16 && make install + ``` + +15. 设置环境变量。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果直接采用编译好的riscv32 gcc包,请先执行以下命令将压缩包解压到根目录: + > + > ``` + > tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~ + > ``` + + + + ``` + vim ~/.bashrc + ``` + + 将以下命令拷贝到.bashrc文件的最后一行,保存并退出。 + + + ``` + export PATH=~/gcc_riscv32/bin:$PATH + ``` + +16. 生效环境变量。 + + ``` + source ~/.bashrc + ``` + +17. Shell命令行中输入如下命令,如果能正确显示编译器版本号,表明编译器安装成功。 + + ``` + riscv32-unknown-elf-gcc -v + ``` diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861.md index 7d6e71a329f877022e8b3ce559ff25c09aa18a06..4266d6e5ea673b59b90ac19c571c1c6be397ab4d 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861.md @@ -1,17 +1,17 @@ -# Hi3861开发板 +# Hi3861开发板 -- **[安装开发板环境](quickstart-lite-steps-hi3861-setting.md)** -- **[新建应用程序](quickstart-lite-steps-hi3861-application-framework.md)** -- **[编译](quickstart-lite-steps-hi3861-building.md)** +- **[安装Hi3861开发板环境](quickstart-lite-steps-hi3861-setting.md)** -- **[烧录](quickstart-lite-steps-hi3861-burn.md)** +- **[编写“Hello World”程序](quickstart-lite-steps-hi3861-application-framework.md)** -- **[调试验证](quickstart-lite-steps-hi3861-debug.md)** +- **[编译](quickstart-lite-steps-hi3861-building.md)** -- **[运行](quickstart-lite-steps-hi3861-running.md)** +- **[烧录](quickstart-lite-steps-hi3861-burn.md)** -- **[常见问题](quickstart-lite-steps-hi3861-faqs.md)** +- **[联网](quickstart-lite-steps-hi3861-netconfig.md)** +- **[调试验证](quickstart-lite-steps-hi3861-debug.md)** +- **[运行](quickstart-lite-steps-hi3816-running.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps.md index 43f31a4215b9d7d8fe75b01bd7c15bcec91b0c48..c3ae5aed824239b7decd4e8e99c82bffb9f2a557 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite-steps.md @@ -1,9 +1,7 @@ -# 运行“Hello World” +# 运行“Hello World” -- **[Hi3861开发板](quickstart-lite-steps-hi3861.md)** -- **[Hi3516开发板](quickstart-lite-steps-hi3516.md)** - -- **[Hi3518开发板](quickstart-lite-steps-hi3518.md)** +- **[Hi3861开发板](quickstart-lite-steps-hi3861.md)** +- **[Hi3516开发板](quickstart-lite-steps-hi3516.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-lite.md b/zh-cn/device-dev/quick-start/quickstart-lite.md index 8fb31f485fa0783889855941e8f0ac1beb2df47c..e1b15596db5edbd05c757ba433906cb3036f236e 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite.md @@ -1,11 +1,7 @@ -# 轻量和小型系统入门 +# 轻量和小型系统入门 -- **[轻量与小型系统入门概述](quickstart-lite-overview.md)** -- **[搭建轻量与小型系统环境](quickstart-lite-env-setup.md)** - -- **[运行“Hello World”](quickstart-lite-steps.md)** - -- **[附录](quickstart-lite-introduction.md)** +- **[轻量和小型系统快速入门-安装包](quickstart-docker-lite.md)** +- **[轻量和小型系统快速入门-IDE](quickstart-ide-lite.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-appendix-hi3516.md b/zh-cn/device-dev/quick-start/quickstart-standard-appendix-hi3516.md deleted file mode 100644 index 632fb20062a69a44f98fdf81542a5d15475ff3a3..0000000000000000000000000000000000000000 --- a/zh-cn/device-dev/quick-start/quickstart-standard-appendix-hi3516.md +++ /dev/null @@ -1,40 +0,0 @@ -# Hi3516开发板介绍 - -- [开发板简介](#zh-cn_topic_0000001053666242_section047719215429) -- [开发板规格](#zh-cn_topic_0000001053666242_section15192203316533) - -## 开发板简介 - -Hi3516DV300是新一代行业专用Smart HD IP摄像机SOC,集成新一代ISP\(Image Signal Processor\)、H.265视频压缩编码器、高性能NNIE引擎,在低码率、高画质、智能处理和分析、低功耗等方面引领行业水平。 - -**图 1** Hi3516单板正面外观图 -![](figures/Hi3516单板正面外观图.png "Hi3516单板正面外观图") - -## 开发板规格 - -**表 1** Hi3516开发板规格清单 - - - - - - - - - - - - - -

规格类型

-

规格清单

-

处理器及内部存储

-
  • Hi3516DV300芯片
  • DDR3 1GB
  • eMMC4.5,8GB容量
-

外部器件

-
  • 以太网口
  • 音频视频
    • 1路语音输入
    • 1路单声道(AC_L)输出,接3W功放(LM4871)
    • MicroHDMI(1路HDMI 1.4)
    -
  • 摄像头
    • 传感器IMX335
    • 镜头M12,焦距4mm,光圈1.8
    -
  • 显示屏
    • LCD连接器(2.35寸)
    • LCD连接器(5.5寸)
    -
  • 外部器件及接口
    • SD卡接口
    • JTAG/I2S接口
    • ADC接口
    • 舵机接口
    • Grove连接器
    • USB2.0(Type C)
    • 功能按键3个,2个用户自定义按键,1个升级按键
    • LED指示灯,绿灯,红灯
    -
-
- diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-appendix-rk3568.md b/zh-cn/device-dev/quick-start/quickstart-standard-appendix-rk3568.md deleted file mode 100644 index 331ba010211463a5703d1be2dc3f71f1932b8df8..0000000000000000000000000000000000000000 --- a/zh-cn/device-dev/quick-start/quickstart-standard-appendix-rk3568.md +++ /dev/null @@ -1,3 +0,0 @@ -# RK3568开发板介绍 - -参见:[润和HH-SCDAYU200开发套件](https://gitee.com/hihope_iot/docs/blob/master/HiHope_DAYU200/README.md)。 \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-appendix.md b/zh-cn/device-dev/quick-start/quickstart-standard-appendix.md index 7eaf5733743a9f3688c10c0d99952235df1f89b9..8111fe8a4a24cc37c4f96e690a3180d90015e1d3 100644 --- a/zh-cn/device-dev/quick-start/quickstart-standard-appendix.md +++ b/zh-cn/device-dev/quick-start/quickstart-standard-appendix.md @@ -1,7 +1,7 @@ -# 附录 +# 附录 -- **[Hi3516开发板介绍](quickstart-standard-appendix-hi3516.md)** -- **[RK3568开发板介绍](quickstart-standard-appendix-rk3568.md)** +- **[开发板介绍](quickstart-standard-board-introduction.md)** +- **[参考信息](quickstart-standard-reference.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-board-introduction-hi3516.md b/zh-cn/device-dev/quick-start/quickstart-standard-board-introduction-hi3516.md new file mode 100644 index 0000000000000000000000000000000000000000..fec43eee72f057d81f67ca087521509b32fb8135 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-standard-board-introduction-hi3516.md @@ -0,0 +1,19 @@ +# Hi3516开发板介绍 + + +## 开发板简介 + +Hi3516DV300是新一代行业专用Smart HD IP摄像机SOC,集成新一代ISP(Image Signal Processor)、H.265视频压缩编码器、高性能NNIE引擎,在低码率、高画质、智能处理和分析、低功耗等方面引领行业水平。 + + **图1** Hi3516单板正面外观图 + ![zh-cn_image_0000001226922318](figures/zh-cn_image_0000001226922318.png) + + +## 开发板规格 + + **表1** Hi3516开发板规格清单 + +| 规格类型 | 规格清单 | +| -------- | -------- | +| **处理器及内部存储** | - Hi3516DV300芯片
- DDR3 1GB
- eMMC4.5,8GB容量 | +| **外部器件** | - 以太网口
- 音频视频
  - 1路语音输入
  - 1路单声道(AC_L)输出,接3W功放(LM4871)
  - MicroHDMI(1路HDMI 1.4)
- 摄像头
  - 传感器IMX335
  - 镜头M12,焦距4mm,光圈1.8
- 显示屏
  - LCD连接器(2.35寸)
  - LCD连接器(5.5寸)
- 外部器件及接口
  - SD卡接口
  - JTAG/I2S接口
  - ADC接口
  - 舵机接口
  - Grove连接器
  - USB2.0(Type C)
  - 功能按键3个,2个用户自定义按键,1个升级按键
  - LED指示灯,绿灯,红灯 | diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-board-introduction-rk3568.md b/zh-cn/device-dev/quick-start/quickstart-standard-board-introduction-rk3568.md new file mode 100644 index 0000000000000000000000000000000000000000..724ba0c1fa7d98e0f24d80768e0c1cf8980a9230 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-standard-board-introduction-rk3568.md @@ -0,0 +1,39 @@ +# RK3568开发板介绍 + + +## 开发板简介 + +RK3568开发板基于Rockchip RK3568芯片,集成双核心架构GPU以及高效能NPU;搭载四核64位Cortex-A55处理器,采用22nm先进工艺,主频高达2.0GHz;支持蓝牙、Wi-Fi、音频、视频和摄像头等功能,拥有丰富的扩展接口,支持多种视频输入输出接口;配置双千兆自适应RJ45以太网口,可满足NVR、工业网关等多网口产品需求。 + + **图1** RK3568开发板正面 + ![zh-cn_image_0000001271442261](figures/zh-cn_image_0000001271442261.png) + + **图2** RK3568开发板背面 + ![zh-cn_image_0000001226602394](figures/zh-cn_image_0000001226602394.png) + + +## 开发板规格 + + **表1** RK3568开发板规格说明 + +| 规格类型 | 规格清单 | +| -------- | -------- | +| 显示接口 | - 1×HDMI2.0(Type-A)接口,支持4K/60fps输出
- 2×MIPI接口,支1920\*1080\@60fps输出
- 1×eDP接口,支持2K\@60fps输出 | +| 音频接口 | - 1×8ch I2S/TDM/PDM
- 1×HDMI音频输出
- 1×喇叭输出
- 1×耳机输出
- 1×麦克风,板载音频输入 | +| 以太网 | 2×GMAC(10/100/1000M) | +| 无线网络 | SDIO接口,支持WIFI6 5G/2.5G,BT4.2 | +| 摄像头接口 | MIPI-CSI2,1x4-lane/2x2-lane\@2.5Gbps/lane | +| USB | - 2×USB2.0 Host,Type-A
- 1×USB3.0 Host,Type-A
- 1×USB3.0 OTG | +| PCIe | 1×2Lanes PCIe3.0 Connector (RC Mode) | +| SATA | 1×SATA3.0 Connector | +| SDMMC | 1×Micro SD Card3.0 | +| 按键 | - 1×Vol+/Recovery
- 1×Reset
- 1×Power
- 1×Vol-
- 1×Mute | +| 调试 | 1×调试串口 | +| RTC | 1×RTC | +| IR | 1×IR | +| 三色灯 | 3×LED | +| G-sensor | 1×G-sensor | +| FAN | 1×Fan | +| 扩展接口 | 20Pin扩展接口包括:
- 2×ADC接口
- 2×I2C接口
- 7×GPIO口(或者3×gpio + 4×uart信号)
- 3×VCC电源(12V、3.3V、5V) | +| 底板尺寸 | 180mm×130mm | +| PCB规格 | 4 层板 | diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-board-introduction.md b/zh-cn/device-dev/quick-start/quickstart-standard-board-introduction.md new file mode 100644 index 0000000000000000000000000000000000000000..23dc0e0349cb6a55d41c75dc5979ec4317b14929 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-standard-board-introduction.md @@ -0,0 +1,7 @@ +# 开发板介绍 + + + +- **[Hi3516开发板介绍](quickstart-standard-board-introduction-hi3516.md)** + +- **[RK3568开发板介绍](quickstart-standard-board-introduction-rk3568.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-docker.md b/zh-cn/device-dev/quick-start/quickstart-standard-docker.md new file mode 100644 index 0000000000000000000000000000000000000000..51a2f089be17798cbfc3ffde2c83555cf3bd016a --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-standard-docker.md @@ -0,0 +1,13 @@ +# 标准系统快速入门-安装包 + + + +- **[标准系统入门概述](quickstart-standard-overview.md)** + +- **[搭建标准系统环境](quickstart-standard-env-setup.md)** + +- **[运行“Hello World”](quickstart-standard-running.md)** + +- **[常见问题](quickstart-standard-faqs.md)** + +- **[附录](quickstart-standard-appendix.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-env-setup.md b/zh-cn/device-dev/quick-start/quickstart-standard-env-setup.md index e211b8ba3126aa456ab25efd42272f9d5019250d..e5ec2cc578573c768d394ca397c21fb95b732648 100644 --- a/zh-cn/device-dev/quick-start/quickstart-standard-env-setup.md +++ b/zh-cn/device-dev/quick-start/quickstart-standard-env-setup.md @@ -1,73 +1,365 @@ -# 开发环境准备 +# 搭建标准系统环境 -- [系统要求](#zh-cn_topic_0000001072959308_section1865184385215) -- [安装DevEco Device Tool](#zh-cn_topic_0000001072959308_section86587531620) -DevEco Device Tool Ubuntu版本支持OpenHarmony源码开发、编译、烧录的一站式开发环境,因此,本章节为您介绍在Ubuntu环境下,如何搭建一套完整的可视化开发环境。 +## 系统要求 -## 系统要求 +- Windows系统要求:Windows10 64位系统。 -- Ubuntu18及以上版本,内存推荐16 GB及以上。 -- 系统的用户名不能含有中文字符。 -- 只能使用普通用户角色搭建开发环境。 +- Ubuntu系统要求:Ubuntu18.04及以上版本,内存推荐16 GB及以上。 -## 安装DevEco Device Tool +- Windows系统和Ubuntu系统的用户名不能包含中文字符。 -DevEco Device Tool基于Visual Studio Code进行扩展,在Visual Studio Code上以插件方式运行,Visual Studio Code版本为1.60及以上。同时,DevEco Device Tool还依赖Python工具,并要求Python为3.8\~3.9版本。 +- Windows和Ubuntu上安装的DevEco Device Tool为3.0 Release版本。 -在安装过程中,DevEco Device Tool会自动检查Visual Studio Code和Python,如果检测到Visual Studio Code、Python未安装或版本不符合要求,安装程序会自动安装Visual Studio Code和Python。 -1. 将Ubuntu Shell环境修改为bash。 - 1. 执行如下命令,确认输出结果为bash。如果输出结果不是bash,请根据步骤2,将Ubuntu shell修改为bash。 +## 安装必要的库和工具 - ``` - ls -l /bin/sh - ``` +编译OpenHarmony需要一些库和工具,可以通过以下步骤进行安装。 - ![](figures/zh-cn_image_0000001194078294.png) +相应操作在Ubuntu环境中进行。 - 2. 打开终端工具,执行如下命令,输入密码,然后选择**No**,将Ubuntu shell由dash修改为bash。 +1. 使用如下apt-get命令安装后续操作所需的库和工具: + + ``` + sudo apt-get update && sudo apt-get install binutils binutils-dev git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib gcc-arm-linux-gnueabi libc6-dev-i386 libc6-dev-amd64 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby genext2fs device-tree-compiler make libffi-dev e2fsprogs pkg-config perl openssl libssl-dev libelf-dev libdwarf-dev u-boot-tools mtd-utils cpio doxygen liblz4-tool openjdk-8-jre gcc g++ texinfo dosfstools mtools default-jre default-jdk libncurses5 apt-utils wget scons python3.8-distutils tar rsync git-core libxml2-dev lib32z-dev grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5-dev libncursesw5 libstdc++6 gcc-arm-none-eabi vim ssh locales + ``` - ``` - sudo dpkg-reconfigure dash - ``` + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 以上安装命令适用于Ubuntu18.04,其他版本请根据安装包名称采用对应的安装命令。其中: + > + > - Python要求安装Python 3.8及以上版本,此处以Python 3.8为例。 + > + > - java要求java8及以上版本,此处以java8为例。 - ![](figures/zh-cn_image_0000001238878219.png) +2. 将python 3.8设置为默认python版本。 + 查看python 3.8的位置: -2. 下载[DevEco Device Tool 3.0 Beta2](https://device.harmonyos.com/cn/ide#download_beta)Linux版本,下载时,请先使用华为开发者帐号进行登录后下载。如未注册华为开发者账号,请先[注册](https://developer.huawei.com/consumer/cn/doc/start/registration-and-verification-0000001053628148)。 -3. 解压DevEco Device Tool软件包并对解压后的文件夹进行赋权。 - 1. 进入DevEco Device Tool软件包目录,执行如下命令解压软件包,其中devicetool-linux-tool-3.0.0.200.zip为软件包名称,请根据实际进行修改。 + + ``` + which python3.8 + ``` - ``` - unzip devicetool-linux-tool-3.0.0.300.zip - ``` + 将python和python3切换为python3.8: + + ``` + sudo update-alternatives --install /usr/bin/python python {python3.8 路径} 1 #{python3.8 路径}为上一步查看的python3.8的位置 + sudo update-alternatives --install /usr/bin/python3 python3 {python3.8 路径} 1 #{python3.8 路径}为上一步查看的python3.8的位置 + ``` - 2. 进入解压后的文件夹,执行如下命令,赋予安装文件可执行权限,其中devicetool-linux-tool-3.0.0.300.sh请根据实际进行修改。 - ``` - chmod u+x devicetool-linux-tool-3.0.0.300.sh - ``` +## 安装DevEco Device Tool -4. 执行如下命令,安装DevEco Device Tool,其中devicetool-linux-tool-3.0.0.300.sh请根据实际进行修改。 +通过Windows系统远程访问Ubuntu环境进行烧录等操作,需要先在Windows和Ubuntu下分别安装DevEco Device Tool。 - >![](../public_sys-resources/icon-note.gif) **说明:** - >安装过程中,会自动检查Visual Studio Code和Python是否安装,且版本符合要求,其中Visual Studio Code为1.60及以上版本,Python为3.8\~3.9版本。如果不满足,则安装过程中会自动安装,提示“Do you want to continue?”,请输入“Y”后继续安装。 +> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> DevEco Device Tool 是OpenHarmony的一站式开发工具,支持源码开发、编译、烧录,调测等,本文主要用其远端链接Ubuntu环境进行烧录和运行。 - ``` - sudo ./devicetool-linux-tool-3.0.0.300.sh -- --install-plugins - ``` - 安装完成后,当界面输出“Deveco Device Tool successfully installed.”时,表示DevEco Device Tool安装成功。 +### 安装Window版本DevEco Device Tool - ![](figures/zh-cn_image_0000001239348791.png) +1. 下载[DevEco Device Tool 3.0 Release](https://device.harmonyos.com/cn/ide#download)Windows版。 -5. 安装完成后,在Ubuntu左下角的![](figures/zh-cn_image_0000001075566984.png)中,启动Visual Studio Code。 -6. 启动Visual Studio Code,DevEco Device Tool运行依赖C/C++、CodeLLDB插件,请点击Visual Studio Code左侧的![](figures/button.png)按钮,分别搜索和安装C/C++、CodeLLDB插件。 +2. 解压DevEco Device Tool压缩包,双击安装包程序,点击Next进行安装。 - >![](../public_sys-resources/icon-note.gif) **说明:** - >如果在插件市场安装C/C++和CodeLLDB插件不成功,可手动下载插件后进行安装,具体请参考:[离线安装C/C++和CodeLLDB插件](https://device.harmonyos.com/cn/docs/documentation/guide/offline_plugin_install-0000001074376846)。 +3. 设置DevEco Device Tool的安装路径,建议安装到非系统盘符,点击**Next**。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果您已安装DevEco Device Tool 3.0 Beta2及以前的版本,则在安装新版本时,会先卸载旧版本,卸载过程中出现如下错误提示时,请点击“Ignore”继续安装,该错误不影响新版本的安装。 + > + > ![zh-cn_image_0000001239275843](figures/zh-cn_image_0000001239275843.png) - ![](figures/deveco-device-tool-install-sucessful.png) + ![zh-cn_image_0000001270076961](figures/zh-cn_image_0000001270076961.png) -7. 重启Visual Studio Code,点击![](figures/zh-cn_image_0000001239226427.png)进入DevEco Device Tool工具界面。至此,DevEco Device Tool Ubuntu开发环境安装完成。![](figures/zh-cn_image_0000001194668634.png) +4. 根据安装向导提示,勾选要自动安装的软件。 + 1. 在弹出VSCode installation confirm页面,勾选“Install VScode 1.62.2automatically”,点击**Next**。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果检测到Visual Studio Code已安装,且版本为1.62及以上,则会跳过该步骤。 + ![zh-cn_image_0000001237801283](figures/zh-cn_image_0000001237801283.png) + 2. 在弹出的Python select page选择“Download from Huawei mirror”,点击**Next**。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果系统已安装可兼容的Python版本(Python 3.8~3.9版本),可选择“Use one of compatible on your PC”。 + + ![zh-cn_image_0000001193983334](figures/zh-cn_image_0000001193983334.png) + +5. 在以下界面点击**Next**,进行软件下载和安装。 + + ![zh-cn_image_0000001239634067](figures/zh-cn_image_0000001239634067.png) + +6. 继续等待DevEco Device Tool安装向导自动安装DevEco Device Tool插件,直至安装完成,点击**Finish**,关闭DevEco Device Tool安装向导。 + + ![zh-cn_image_0000001239650137](figures/zh-cn_image_0000001239650137.png) + +7. 打开Visual Studio Code,进入DevEco Device Tool工具界面。至此,DevEco Device Tool Windows开发环境安装完成。 + + ![zh-cn_image_0000001225760456](figures/zh-cn_image_0000001225760456.png) + + +### 安装Ubuntu版本DevEco Device Tool + +1. 将Ubuntu Shell环境修改为bash。 + 1. 执行如下命令,确认输出结果为bash。如果输出结果不是bash,请根据步骤2,将Ubuntu shell修改为bash。 + + ``` + ls -l /bin/sh + ``` + + ![zh-cn_image_0000001226764302](figures/zh-cn_image_0000001226764302.png) + 2. 打开终端工具,执行如下命令,输入密码,然后选择**No**,将Ubuntu shell由dash修改为bash。 + + ``` + sudo dpkg-reconfigure dash + ``` + + ![zh-cn_image_0000001243641075](figures/zh-cn_image_0000001243641075.png) + +2. 下载[DevEco Device Tool 3.0 Release](https://device.harmonyos.com/cn/ide#download)Linux版本。 + +3. 解压DevEco Device Tool软件包并对解压后的文件夹进行赋权。 + 1. 进入DevEco Device Tool软件包目录,执行如下命令解压软件包,其中devicetool-linux-tool-3.0.0.400.zip为软件包名称,请根据实际进行修改。 + + ``` + unzip devicetool-linux-tool-3.0.0.400.zip + ``` + 2. 进入解压后的文件夹,执行如下命令,赋予安装文件可执行权限,其中devicetool-linux-tool-3.0.0.400.sh请根据实际进行修改。 + + ``` + chmod u+x devicetool-linux-tool-3.0.0.400.sh + ``` + +4. 执行如下命令,安装DevEco Device Tool,其中devicetool-linux-tool-3.0.0.400.sh请根据实际进行修改。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 安装过程中,会自动检查Python是否安装,且要求Python为3.8~3.9版本。如果不满足,则安装过程中会自动安装,提示“Do you want to continue?”,请输入“Y”后继续安装。 + + + ``` + sudo ./devicetool-linux-tool-3.0.0.300.sh + ``` + + 安装完成后,当界面输出“Deveco Device Tool successfully installed.”时,表示DevEco Device Tool安装成功。 + + ![zh-cn_image_0000001198722374](figures/zh-cn_image_0000001198722374.png) + + +## 配置Windows远程访问Ubuntu环境 + + +### 安装SSH服务并获取远程访问的IP地址 + +1. 在Ubuntu系统中,打开终端工具,执行如下命令安装SSH服务。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果执行该命令失败,提示openssh-server和openssh-client依赖版本不同,请根据CLI界面提示信息,安装openssh-client相应版本后(例如:sudo apt-get install openssh-client=1:8.2p1-4),再重新执行该命令安装openssh-server。 + + + ``` + sudo apt-get install openssh-server + ``` + +2. 执行如下命令,启动SSH服务。 + + ``` + sudo systemctl start ssh + ``` + +3. 执行如下命令,获取当前用户的IP地址,用于Windows系统远程访问Ubuntu环境。 + + ``` + ifconfig + ``` + + ![zh-cn_image_0000001215737140](figures/zh-cn_image_0000001215737140.png) + + +### 安装Remote SSH + +1. 打开Windows系统下的Visual Studio Code,点击![zh-cn_image_0000001239080359](figures/zh-cn_image_0000001239080359.png),在插件市场的搜索输入框中输入“remote-ssh”。 + + ![zh-cn_image_0000001193920448](figures/zh-cn_image_0000001193920448.png) + +2. 点击Remote-SSH的**Install**按钮,安装Remote-SSH。安装成功后,在**INSTALLED**下可以看到已安装Remote-SSH。 + + ![zh-cn_image_0000001238880335](figures/zh-cn_image_0000001238880335.png) + + +### 远程连接Ubuntu环境 + +1. 打开Windows系统的Visual Studio Code,点击![zh-cn_image_0000001238760373](figures/zh-cn_image_0000001238760373.png),在REMOTE EXOPLORER页面点击+按钮。 + + ![zh-cn_image_0000001215878922](figures/zh-cn_image_0000001215878922.png) + +2. 在弹出的SSH连接命令输入框中输入“ssh _username_\@_ip_address_”,其中ip_address为要连接的远程计算机的IP地址,username为登录远程计算机的帐号。 + + ![zh-cn_image_0000001215879750](figures/zh-cn_image_0000001215879750.png) + +3. 在弹出的输入框中,选择SSH configuration文件,选择默认的第一选项即可。 + + ![zh-cn_image_0000001260519729](figures/zh-cn_image_0000001260519729.png) + +4. 在SSH TARGETS中,找到远程计算机,点击![zh-cn_image_0000001194080414](figures/zh-cn_image_0000001194080414.png),打开远程计算机。 + + ![zh-cn_image_0000001215720398](figures/zh-cn_image_0000001215720398.png) + +5. 在弹出的输入框中,选择**Linux**,然后在选择**Continue**,然后输入登录远程计算机的密码,连接远程计算机 。 + + ![zh-cn_image_0000001215897530](figures/zh-cn_image_0000001215897530.png) + + 连接成功后,等待在远程计算机.vscode-server文件夹下自动安装插件,安装完成后,根据界面提示在Windows系统下重新加载Visual Studio Code,便可以在Windows的DevEco Device Tool界面进行源码开发、编译、烧录等操作。 + + +### 注册访问Ubuntu环境的公钥 + +在完成以上操作后,您就可以通过Windows远程连接Ubuntu环境进行开发了,但在使用过程中,需要您频繁的输入远程连接密码来进行连接。为解决该问题,您可以使用SSH公钥来进行设置。 + +1. 打开Git bash命令行窗口,执行如下命令,生成SSH公钥,请注意,在执行命令过程中,请根据界面提示进行操作。username和ip请填写连接Ubuntu系统时需要的参数。 + + ``` + ssh-keygen -t rsa + ssh-copy-id -i ~/.ssh/id_rsa.pub username@ip + ``` + + ![zh-cn_image_0000001271532317](figures/zh-cn_image_0000001271532317.png) + +2. 在Visual Studio Code中,点击远程连接的设置按钮,并选择打开config文件。 + ![zh-cn_image_0000001226034634](figures/zh-cn_image_0000001226034634.png) + +3. 在config配置文件中添加SSK Key文件信息,如下图所示,然后保存即可。 + ![zh-cn_image_0000001270356233](figures/zh-cn_image_0000001270356233.png) + + +## 获取源码 + +在Ubuntu环境下通过以下步骤拉取OpenHarmony源码。 + + +### 准备工作 + +1. 注册码云gitee帐号。 + +2. 注册码云SSH公钥,请参考[码云帮助中心](https://gitee.com/help/articles/4191)。 + +3. 安装git客户端和git-lfs。(上述工具已在安装必要的库和工具小节安装。如已安装,请忽略) + + 更新软件源: + + ``` + sudo apt-get update + ``` + + 通过以下命令安装: + + ``` + sudo apt-get install git git-lfs + ``` + +4. 配置用户信息。 + + ``` + git config --global user.name "yourname" + git config --global user.email "your-email-address" + git config --global credential.helper store + ``` + +5. 执行如下命令安装码云repo工具。 + + ``` + curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o /usr/local/bin/repo #如果没有权限,可下载至其他目录,并将其配置到环境变量中 + chmod a+x /usr/local/bin/repo + pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests + ``` + + +### 获取源码 + +> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> Master主干为开发分支,开发者可通过Master主干获取最新特性。发布分支代码相对比较稳定,开发者可基于发布分支代码进行商用功能开发。 + +- **OpenHarmony主干代码获取** + 方式一(推荐):通过repo + ssh下载(需注册公钥,请参考[码云帮助中心](https://gitee.com/help/articles/4191))。 + + ``` + repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify + repo sync -c + repo forall -c 'git lfs pull' + ``` + + 方式二:通过repo + https下载。 + + + ``` + repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify + repo sync -c + repo forall -c 'git lfs pull' + ``` + +- **OpenHarmony发布分支代码获取** + OpenHarmony各个版本发布分支的源码获取方式请参考[Release-Notes](../../release-notes/Readme.md)。 + + +### 执行prebuilts + + 在源码根目录下执行prebuilts脚本,安装编译器及二进制工具。 + +``` +bash build/prebuilts_download.sh +``` + + +## 安装编译工具 + +hb是OpenHarmony的编译工具,可通过以下步骤在Ubuntu下进行安装。想要详细了解OpenHarmony编译构建模块功能的开发者可参考[编译构建指南](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-build.md)。 + + +> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> 如需安装代理,请参考[配置代理](../quick-start/quickstart-standard-reference.md#配置代理)。 + + +1. 运行如下命令安装hb并更新至最新版本 + + ``` + pip3 install --user build/lite + ``` + +2. 设置环境变量 + + ``` + vim ~/.bashrc + ``` + + 将以下命令拷贝到.bashrc文件的最后一行,保存并退出。 + + ``` + export PATH=~/.local/bin:$PATH + ``` + + 执行如下命令更新环境变量。 + + ``` + source ~/.bashrc + ``` + +3. 在源码目录执行"hb -h",界面打印以下信息即表示安装成功: + + ``` + usage: hb + + OHOS build system + + positional arguments: + {build,set,env,clean} + build Build source code + set OHOS build settings + env Show OHOS build env + clean Clean output + + optional arguments: + -h, --help show this help message and exit + ``` + + +> ![icon-notice.gif](public_sys-resources/icon-notice.gif) **须知:** +> - 可采用以下命令卸载hb: +> +> ``` +> pip3 uninstall ohos-build +> ``` +> +> - 若安装hb的过程中遇到问题,请参见下文[常见问题](../quick-start/quickstart-standard-faq-hb.md)进行解决。 diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-faq-burning.md b/zh-cn/device-dev/quick-start/quickstart-standard-faq-burning.md new file mode 100644 index 0000000000000000000000000000000000000000..cc00c563c8c1264440e1ddd90ebe49ea82e37781 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-standard-faq-burning.md @@ -0,0 +1,73 @@ +# 烧录异常 + + +## 烧写选择串口后提示“Error: Opening COMxx: Access denied” + +- **现象描述** + 点击烧写并选择串口后,出现Error: Opening COMxx: Access denied。 + + **图1** 打开串口失败图 + ![zh-cn_image_0000001271202461](figures/zh-cn_image_0000001271202461.png) + +- **可能原因** + 串口已经被占用。 + +- **解决办法** + +1. 按图依次选择下拉框,查找带有serial-xx的终端。 + **图2** 查找是否存在占用串口的终端 + ![zh-cn_image_0000001271202473](figures/zh-cn_image_0000001271202473.png) + +2. 点击标号中的垃圾桶图标,关闭串口。 + **图3** 关闭串口终端 + ![zh-cn_image_0000001271202469](figures/zh-cn_image_0000001271202469.png) + +3. 重新点击烧写,选择串口并开始烧写程序。 + **图4** 重新启动烧写任务 + ![zh-cn_image_0000001271562449](figures/zh-cn_image_0000001271562449.png) + + +## Windows电脑与单板网络连接失败 + +- **现象描述** + 点击烧写并选择串口后,无法获取文件。 + + **图5** 网络不通,单板无法获取文件图 + ![zh-cn_image_0000001226922306](figures/zh-cn_image_0000001226922306.png) + +- **可能原因** + 单板网络与Windows电脑不联通。 + + Windows电脑防火墙未允许Visual Studio Code联网。 + +- **解决方法** + +1. 检查网线是否连接。 + +2. 点击Windows防火墙。 + **图6** 网络防火墙设置图 + ![zh-cn_image_0000001227082322](figures/zh-cn_image_0000001227082322.png) + +3. 点击“允许应用通过防火墙”。 + **图7** 防火墙和网络保护界面图 + ![zh-cn_image_0000001271202457](figures/zh-cn_image_0000001271202457.png) + +4. 查找Visual Studio Code应用。 + **图8** 查找Visual Studio Code应用图 + ![zh-cn_image_0000001271562445](figures/zh-cn_image_0000001271562445.png) + +5. 勾选Visual Studio Code的专用和公用网络的访问权限。 + **图9** 允许Visual Studio Code应用访问网络 + ![zh-cn_image_0000001271442273](figures/zh-cn_image_0000001271442273.png) + + +## 烧写失败 + +- **现象描述** + 点击烧写并选择串口后,出现无法烧写的情况。 + +- **可能原因** + 安装IDE插件DevEco后未重启。 + +- **解决方法** + 重启IDE。 diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-faq-compose.md b/zh-cn/device-dev/quick-start/quickstart-standard-faq-compose.md new file mode 100644 index 0000000000000000000000000000000000000000..0ecd50095265f1bfa514b2282973f4be71b89184 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-standard-faq-compose.md @@ -0,0 +1,159 @@ +# 编译异常 + + +## Linux编译服务器终端输入不识别的命令时提示“ImportError: No module named apt_pkg” + +- **现象描述** + Linux编译服务器终端输入不识别的命令时,提示"ImportError: No module named apt_pkg" + +- **可能原因** + python3 apt安装兼容性问题。 + +- **解决办法** + 执行如下命令重新安装python3-apt。 + + + ``` + sudo apt-get remove python3-apt + sudo apt-get install python3-apt + ``` + + +## 编译构建过程中,提示找不到“python” + +- **现象描述** + 编译构建过程中出现以下错误: + + + ``` + -bash: /usr/bin/python: No such file or directory + ``` + +- **可能原因**1 + 没有装python。 + +- **解决办法** + 请使用如下命令安装Python,下方以Python3.8为例。 + + + ``` + sudo apt-get install python3.8 + ``` + +- **可能原因2** + usr/bin目录下没有python软链接 + + ![zh-cn_image_0000001226922322](figures/zh-cn_image_0000001226922322.png) + +- **解决办法** + 请运行以下命令添加软链接: + + + ``` + # cd /usr/bin/ + # which python3 + # ln -s /usr/local/bin/python3 python + # python --version + ``` + + 例: + + ![zh-cn_image_0000001271562453](figures/zh-cn_image_0000001271562453.png) + + +## 编译构建过程中,提示找不到“python3” + +- **现象描述** + ![zh-cn_image_0000001226602414](figures/zh-cn_image_0000001226602414.png) + +- **可能原因** + 没有装python3。 + +- **解决办法** + 请使用如下命令安装Python3。 + + + ``` + sudo apt-get install python3.8 + ``` + + +## 安装python3过程中,提示“configure: error: no acceptable C compiler found in $PATH” + +- **现象描述** + 安装python3过程中出现以下错误: + + + ``` + configure: error: no acceptable C compiler found in $PATH. See 'config.log' for more details + ``` + +- **可能原因** + 环境中未安装“gcc”。 + +- **解决办法** + 1. 通过命令“apt-get install gcc”在线安装。 + 2. 完成后,重新安装python3。 + + +## 安装python3过程中,提示“-bash: make: command not found” + +- **现象描述** + 安装python3过程中出现以下错误: + + + ``` + -bash: make: command not found + ``` + +- **可能原因** + 环境中未安装“make”。 + +- **解决办法** + 1. 通过命令“apt-get install make”在线安装。 + 2. 完成后,重新安装python3。 + + +## 安装python3过程中,提示“No module named '_ctypes'” + +- **现象描述** + 安装python3过程中出现以下错误: + + + ``` + ModuleNotFoundError:No module named ‘_ctypes’ + ``` + +- **可能原因** + 环境中未安装“libffi”和“libffi-devel”。 + +- **解决办法** + 1. 通过命令“apt-get install libffi\* -y”,在线安装。 + 2. 完成后,重新安装python3。 + + +## 编译构建过程中,提示“No module named 'Crypto'” + +- **现象描述** + 编译构建过程中出现以下错误: + + + ``` + ModuleNotFoundError: No module named 'Crypto' + ``` + +- **可能原因** + 环境中未安装“Crypto”。 + +- **解决办法** + 方法1:通过命令“pip3 install Crypto”,在线安装。 + + 方法2:离线安装。 + + 通过网页[https://pypi.org/project/pycrypto/#files](https://pypi.org/project/pycrypto/#files),下载源码。 + + ![zh-cn_image_0000001227082334](figures/zh-cn_image_0000001227082334.png) + + 将源码放置在Linux服务器中,解压,并安装“python3 setup.py install”。 + + 完成上述安装后,重新构建。 diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-faq-hb.md b/zh-cn/device-dev/quick-start/quickstart-standard-faq-hb.md new file mode 100644 index 0000000000000000000000000000000000000000..9accfa1781e1ae816c3d304f005e942809ffcf2c --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-standard-faq-hb.md @@ -0,0 +1,71 @@ +# hb安装异常 + + +## hb安装过程中出现乱码、段错误 + +- **现象描述** + 执行“python3 -m pip install --user ohos-build”出现乱码、段错误(segmentation fault)。 + +- **可能原因** + pip版本过低。 + +- **解决办法** + 执行如下命令升级pip。 + + + ``` + python3 -m pip install -U pip + ``` + + +## hb安装过程中提示"cannot import 'sysconfig' from 'distutils'" + +- **现象描述** + 执行“python3 -m pip install --user ohos-build”提示"cannot import 'sysconfig' from 'distutils'" + +- **可能原因** + 缺少distutils模块。 + +- **解决办法** + 执行如下命令安装。 + + + ``` + sudo apt-get install python3.8-distutils + ``` + + +## hb安装过程中提示"module 'platform' has no attribute 'linux_distribution'" + +- **现象描述** + 执行“python3 -m pip install --user ohos-build”提示"module 'platform' has no attribute 'linux_distribution'" + +- **可能原因** + python3 pip安装兼容性问题。 + +- **解决办法** + 执行如下命令重新安装pip。 + + + ``` + sudo apt remove python3-pip + curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py + python get-pip.py + ``` + + +## hb安装过程中提示"Could not find a version that satisfies the requirement ohos-build" + +- **现象描述** + 执行“python3 -m pip install --user ohos-build”提示"Could not find a version that satisfies the requirement ohos-build" + +- **可能原因** + 可能是网络环境较差导致的安装失败。 + +- **解决办法** + 1. 请检查网络连接是否正常。如果网络有问题,请修复网络问题后重新安装。 + 2. 若网络正常,请尝试指定临时pypi源的方式安装: + + ``` + python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ohos-build + ``` diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-faqs.md b/zh-cn/device-dev/quick-start/quickstart-standard-faqs.md index ceb23edfe59b48dfc36d540e01025f6ed289e313..ad373a5074d14b506847d3fa0fe0bb96aa6bc616 100644 --- a/zh-cn/device-dev/quick-start/quickstart-standard-faqs.md +++ b/zh-cn/device-dev/quick-start/quickstart-standard-faqs.md @@ -1,24 +1,9 @@ -# 常见问题 +# 常见问题 -- [编译构建过程中,提示"ImportError: No module named apt\_pkg"](#section1864714601214) -## 编译构建过程中,提示"ImportError: No module named apt\_pkg" -- **现象描述** - - Linux编译服务器终端输入不识别的命令时,提示"ImportError: No module named apt\_pkg"。 - -- **可能原因** - - python3 apt安装兼容性问题。 - -- **解决办法** - - 执行如下命令重新安装python3-apt。 - - ``` - sudo apt-get remove python3-apt - sudo apt-get install python3-apt - ``` +- **[hb安装异常](quickstart-standard-faq-hb.md)** +- **[编译异常](quickstart-standard-faq-compose.md)** +- **[烧录异常](quickstart-standard-faq-burning.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-ide.md b/zh-cn/device-dev/quick-start/quickstart-standard-ide.md new file mode 100644 index 0000000000000000000000000000000000000000..2ed882b00d00880d47609b4c05b1cd983ecafa4b --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-standard-ide.md @@ -0,0 +1,13 @@ +# 标准系统快速入门-IDE + + + +- **[标准系统入门概述](quickstart-ide-standard-overview.md)** + +- **[准备标准系统环境](quickstart-ide-standard-env-setup.md)** + +- **[创建源码工程](quickstart-ide-standard-create-project.md)** + +- **[运行“Hello World”](quickstart-ide-standard-running.md)** + +- **[附录](quickstart-ide-standard-appendix.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-overview.md b/zh-cn/device-dev/quick-start/quickstart-standard-overview.md index 6fd5b2c9ba337e34e6e877fa03b8ad09fa443abd..e81b2e5784a59dd4b9da1c20f405c4145b6f394a 100644 --- a/zh-cn/device-dev/quick-start/quickstart-standard-overview.md +++ b/zh-cn/device-dev/quick-start/quickstart-standard-overview.md @@ -1,23 +1,40 @@ -# 标准系统入门简介 +# 标准系统入门概述 -- [快速入门流程](#section7825218111517) -开发者可通过本文快速掌握OpenHarmony标准系统的环境搭建、编译、烧录、运行等操作。标准系统的开发有以下两种方法: +## 简介 -- 使用Windows环境进行开发和烧录,使用Linux环境进行编译。 -- 统一使用Linux环境进行开发、编译和烧录。 +OpenHarmony标准系统适用于参考内存≥128MiB的设备。通过本文,开发者可以快速熟悉OpenHarmony标准系统的环境搭建、编译、烧录、调测以及运行“Hello World”等。 -因目前Windows系统不支持编译,暂时无法全部使用Windows环境进行开发,开发者可根据使用习惯选择合适的开发方法。 +考虑到开发者的开发习惯,OpenHarmony为开发者提供了以下两种入门指导: -本文将介绍第二种方法,**所有操作均在Linux环境下进行**。 +- IDE方式:完全采用IDE(Deveco Device Tool)进行一站式开发,编译依赖工具的安装及编译、烧录、运行都通过IDE进行操作。 -## 快速入门流程 +- 安装包方式:通过命令行进行编译依赖工具的下载安装,编译操作也通过命令实现。烧录、运行等操作使用IDE。 + OpenHarmony还为开发者提供了[Docker环境](../get-code/gettools-acquire.md),在很大程度上简化了编译前的环境配置,习惯使用安装包方式的开发者也可以选择Docker环境进行编译 。 -标准系统快速入门流程如下图所示,其中编译源码环节可根据实际情况选择docker方式或安装包方式其中一种即可。 +本文采用安装包方式进行介绍,习惯使用Deveco Device Tool的开发者可参考[标准系统快速入门(IDE方式)](../quick-start/quickstart-standard-ide.md)。 ->![](../public_sys-resources/icon-note.gif) **说明:** ->Docker环境已经封装了相关编译工具,开发者在使用该Docker环境时可以省去Ubuntu编译环境及开发板环境的的搭建操作。 -**图 1** 标准系统快速入门流程 -![](figures/标准系统快速入门流程.png "标准系统快速入门流程") +## 开发环境 +开发者通常习惯采用Windows+Ubuntu环境进行OpenHarmony开发: + +- Windows:用于源码开发、烧录等。 + +- Ubuntu:用于源码编译。 + +本文将介绍如何基于Windows+Ubuntu环境进行OpenHarmony的开发。 + + +## 开发板 + +本文选取了两款典型开发板:Hi3516DV300、RK3516,并基于上述两款开发板进行开发介绍。开发板的具体外观和规格可参见[本文附录](../quick-start/quickstart-standard-board-introduction.md),开发者可根据需要自行购买开发板。 + + +## 开发流程 + +标准系统快速入门流程如下图所示。 + + **图1** 标准系统快速入门开发流程 + + ![zh-cn_image_0000001227082314](figures/zh-cn_image_0000001227082314.png) diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-reference.md b/zh-cn/device-dev/quick-start/quickstart-standard-reference.md new file mode 100644 index 0000000000000000000000000000000000000000..d8a7f6dfaed2d4b7755224d10d1d971740a40d5b --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-standard-reference.md @@ -0,0 +1,69 @@ +# 参考信息 + + +## 使用build.sh脚本编译源码 + + +1. 进入源码根目录,执行如下命令进行版本编译。 + + ``` + ./build.sh --product-name name --ccache + ``` + + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > _name_为产品名称,例如Hi3516DV300、rk3568等。 + +2. 检查编译结果。编译完成后,log中显示如下: + + ``` + post_process + =====build name successful. + ``` + + 编译所生成的文件都归档在out/{device_name}/目录下,结果镜像输出在out/{device_name}/packages/phone/images/ 目录下。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 其他模块化编译操作,可参见[编译构建指导](../subsystems/subsys-build-standard-large.md)。 + + +## 配置代理 + + +### 配置Python代理 + +1. 新建代理配置文件。 + + ``` + mkdir ~/.pipvim ~/.pip/pip.conf + ``` + +2. 在文件中写入如下代理信息并保存退出。 + + ``` + [global] + index-url = http://代理网址 + trusted-host = 可信任的镜像地址 + timeout = 120 + ``` + + +### 配置NPM代理 + +1. 新建代理配置文件。 + + ``` + vim ~/.npmrc + ``` + +2. 在文件中写入如下代理信息并保存退出。 + + ``` + registry=http://代理网址 + strict-ssl=false + ``` + +3. 将以下内容添加到.bashrc中并保存退出。 + + ``` + export NPM_REGISTRY=http://代理网址 + source .bashrc + ``` diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-build.md b/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-build.md index aea1737a28bbbdcc87ecd3677c3470b0b18c2b9c..53eba98be6f17ecacd4e52c3ab08488f15c28bc2 100644 --- a/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-build.md +++ b/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-build.md @@ -1,119 +1,45 @@ -# 源码编译 +# 编译 -- [使用Docker方式获取编译工具链](#section181431248132513) - - [执行prebuilts](#section111934551605) - - [安装Docker](#section1466184743915) - - [获取Docker环境](#section615912103552) -- [使用安装包方式获取编译工具链](#section65647482593) - - [安装依赖工具](#section83441888010) - - [执行prebuilts](#section6389714142011) +OpenHarmony支持hb和build.sh两种编译方式。此处介绍hb方式,build.sh脚本编译方式请参考[使用build.sh脚本编译源码](../quick-start/quickstart-standard-reference.md#使用buildsh脚本编译源码)。 -- [编译](#section92391739152318) -安装编译工具链后,即可对源码进行编译。在Linux环境下获取编译工具链有以下两种方式,二者选其一即可: +在Ubuntu环境下进入源码根目录,执行如下命令进行编译: -1. Docker方式 - OpenHarmony标准系统为开发者提供的Docker环境已经将对应的编译工具链进行了封装,开发者可省略对应工具的安装。 +1. 设置编译路径。 + + ``` + hb set + ``` -2. 安装包方式 +2. 选择当前路径。 + + ``` + . + ``` - 使用安装包方式获取编译工具链时,开发者需自行安装相应的依赖工具。 +3. 在built-in下选择Hi3516DV300并回车。 +4. 执行编译。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > - 单独编译一个部件(例如hello),可使用“hb build -T _目标名称_”进行编译。 + > + > - 增量编译整个产品,可使用“hb build”进行编译。 + > + > - 完整编译整个产品,可使用“hb build -f”进行编译。 + > + > 此处以完整编译整个产品为例进行说明。 -## 使用Docker方式获取编译工具链 + + ``` + hb build -f + ``` -### 执行prebuilts - -在源码根目录下执行脚本,安装编译器及二进制工具。 - -``` -bash build/prebuilts_download.sh -``` - -### 安装Docker - -请参考[官方指导](https://docs.docker.com/engine/install/)。 - -### 获取Docker环境 - -1. 获取Docker镜像。 - - ``` - docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0 - ``` - -2. 进入源码根目录执行如下命令,从而进入Docker构建环境。 - - ``` - docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0 - ``` - - -## 使用安装包方式获取编译工具链 - -### 安装依赖工具 - -1. 使用如下apt-get命令安装后续操作所需的库和工具: - - ``` - sudo apt-get update && sudo apt-get install binutils binutils-dev git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib gcc-arm-linux-gnueabi libc6-dev-i386 libc6-dev-amd64 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby genext2fs device-tree-compiler make libffi-dev e2fsprogs pkg-config perl openssl libssl-dev libelf-dev libdwarf-dev u-boot-tools mtd-utils cpio doxygen liblz4-tool openjdk-8-jre gcc g++ texinfo dosfstools mtools default-jre default-jdk libncurses5 apt-utils wget scons python3.8-distutils tar rsync git-core libxml2-dev lib32z-dev grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5-dev libncursesw5 libstdc++6 gcc-arm-none-eabi vim ssh locales - ``` - - >![](../public_sys-resources/icon-note.gif) **说明:** - >以上安装命令适用于Ubuntu18.04,其他版本请根据安装包名称采用对应的安装命令。其中: - >- Python要求安装Python 3.8及以上版本,此处以Python 3.8为例。 - >- java要求java8及以上版本,此处以java8为例。 - -2. 将python 3.8设置为默认python版本。 - - 查看python 3.8的位置: - - ``` - which python3.8 - ``` - - 将python和python3切换为python3.8: - - ``` - sudo update-alternatives --install /usr/bin/python python {python3.8 路径} 1 #{python3.8 路径}为上一步查看的python3.8的位置 - sudo update-alternatives --install /usr/bin/python3 python3 {python3.8 路径} 1 #{python3.8 路径}为上一步查看的python3.8的位置 - ``` - -### 执行prebuilts - -在源码根目录下执行脚本,安装编译器及二进制工具。 - -``` -bash build/prebuilts_download.sh -``` - -## 编译 - -1. 进入源码根目录,执行如下命令进行版本编译。 - - >![](../public_sys-resources/icon-note.gif) **说明:** - >使用Docker方式获取编译工具链的,请直接通过[获取Docker环境](#section615912103552)最后一步进入的Docker构建环境执行如下命令。 - - ``` - ./build.sh --product-name Hi3516DV300 --ccache - ``` - -2. 检查编译结果。编译完成后,log中显示如下: - - ``` - build system image successful. - =====build Hi3516DV300 successful. - ``` - - 编译所生成的文件都归档在out/\{device\_name\}/目录下,结果镜像输出在out/\{device\_name\}/packages/phone/images/ 目录下。 - - >![](../public_sys-resources/icon-note.gif) **说明:** - >其他模块化编译操作,可参见[编译构建指导](../subsystems/subsys-build-standard-large.md)。 - -3. 编译源码完成,请进行镜像烧录,具体请参见[镜像烧录](quickstart-standard-running-hi3516-burn.md)。 - ->![](../public_sys-resources/icon-note.gif) **说明:** ->若使用Docker环境进行编译,执行exit命令即可退出Docker。 + + **图1** Hi3516编译设置图例 + ![zh-cn_image_0000001271562433](figures/zh-cn_image_0000001271562433.png) +5. 编译结束后,出现“build success”字样,则证明构建成功。 + > ![icon-notice.gif](public_sys-resources/icon-notice.gif) **须知:** + > 编译结果文件及编译日志文件获取路径:out/hi3516dv300。 diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-burn.md b/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-burn.md deleted file mode 100644 index e7b30db8d635a94a4b23e27a8364d1c5fc3171d4..0000000000000000000000000000000000000000 --- a/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-burn.md +++ /dev/null @@ -1,101 +0,0 @@ -# 镜像烧录 - -- [前提条件](#section1956213516576) -- [使用网口烧录](#section14587120161217) - -标准系统烧录,在DevEco Device Tool V2.2 Beta1及以上版本支持,下方烧录操作均在DevEco Device Tool中进行。 - -DevEco Device Tool以插件方式运行,基于Visual Studio Code进行扩展,用户可点击Visual Studio Code左侧栏的![](figures/2021-01-27_170334-10.png)图标打开DevEco Device Tool。 - -Hi3516DV300支持烧录标准系统,其烧录方式包括USB烧录、网口烧录和串口烧录三种方式,其中: - -- **Windows系统:支持USB烧录、网口烧录和串口烧录**。 -- **Linux系统:支持串口烧录和网口烧录。** - -同一种烧录方式(如网口烧录),在Windows和Linux环境下的烧录操作完全一致,区别仅在于DevEco Device Tool环境搭建不同。 - -下方以Linux系统下,USB烧录方式为例进行OpenHarmony标准系统烧录,其他两种烧录方式请参照[Hi3516DV300烧录指导](https://device.harmonyos.com/cn/docs/ide/user-guides/hi3516_upload-0000001052148681)。 - -## 前提条件 - -1. 在DevEco Device Tool工具中点击**Import Project**导入新建应用程序章节修改后的源码文件。 - - ![](figures/import-project.png) - -2. 选择源码导入时,系统会提示该工程不是DevEco Device Tool工程,点击**Import**。 - - ![](figures/import-project-confirm.png) - -3. MCU选择**HiSilicon\_Arm\_Linux**下的Hi3516DV300,Board选择hi3516dv300,Framework选择“Ohos-sources”,然后点击**Import**完成导入。 - - ![](figures/hisilicon-arm-linux.png) - - -## 使用USB口烧录 - -1. 请连接好电脑和待烧录开发板,需要同时连接串口和USB口,具体可参考[Hi3516DV300开发板介绍](https://device.harmonyos.com/cn/docs/documentation/guide/quickstart-lite-introduction-hi3516-0000001152041033)[Hi3516DV300开发板介绍](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-introduction-hi3516.md)。 -2. 查看并记录对应的串口号。 - - >![](../public_sys-resources/icon-note.gif) **说明:** - >如果对应的串口异常,请根据[Hi3516DV300/Hi3518EV300开发板串口驱动安装指导](https://device.harmonyos.com/cn/docs/documentation/guide/hi3516_hi3518-drivers-0000001050743695)安装USB转串口的驱动程序。 - - Windows系统,打开设备管理器查看并记录对应的串口号,或在DevEco Device Tool中,点击QUICK ACCESS \> DevEco Home \> Device,查看并记录对应的串口号。 - - ![](figures/record-the-serial-port-number.png) - - Linux系统,在DevEco Device Tool中,点击QUICK ACCESS \> DevEco Home \> Device,查看并记录对应的串口号。 - - ![](figures/Snap22.png) - -3. 在QUICK ACCESS \> DevEco Home \> Projects中,点击**Settings**打开工程配置界面。 - - ![](figures/zh-cn_image_0000001177608370.png) - -4. 在“hi3516dv300”页签,设置烧录选项,包括upload\_partitions、upload\_port和upload\_protocol。 - - - upload\_partitions:选择待烧录的文件,默认情况下会同时烧录fastboot、boot、updater、misc、system、vendor和userdata。 - - upload\_port:选择已查询的串口号。 - - upload\_protocol:选择烧录协议,固定选择“hiburn-usb”。 - - ![](figures/zh-cn_image_0000001177478136.png) - -5. 分别检查待烧录文件的烧录信息,DevEco Device Tool已预置默认的烧录文件信息,可根据实际情况进行调整。待烧录文件包括:fastboot、boot、updater、misc、system、vendor和userdata。 - 1. 在“hi3516dv300\_fastboot”页签,在New Option选项中选择需要修改的项,例如partition\_bin(烧录文件路径)、partition\_addr(烧录文件起始地址)、partition\_length(烧录文件分区长度)等。 - - ![](figures/zh-cn_image_0000001222997983.png) - - 2. 然后在Partition Options中,分别修改上述步骤中选择的修改项。 - - >![](../public_sys-resources/icon-note.gif) **说明:** - >在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件的大小进行设置,要求设置的烧录分区大小,要大于待烧录文件的大小;同时,各烧录文件的分区地址设置不能出现重叠。 - - ![](figures/zh-cn_image_0000001222794413.png) - - 3. 按照相同的方法修改boot、updater和misc的烧录文件信息。 - -6. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 -7. 点击**Open**打开工程文件,然后在“PROJECT TASKS”中,点击fastboot下的**Erase**按钮,擦除U-Boot。 - - ![](figures/zh-cn_image_0000001163045527.png) - -8. 执行**Erase**擦除操作后,显示如下提示信息时,请重启开发板(插拔USB连线)。 - - ![](figures/zh-cn_image_0000001114129426.png) - -9. 重新上电后,显示如下信息时,表示擦除U-Boot成功。 - - ![](figures/zh-cn_image_0000001113969536.png) - -10. 擦除完成后,点击hi3516dv300下的**Upload**按钮,启动烧录。 - - >![](../public_sys-resources/icon-note.gif) **说明:** - >如果您是第一次在工作台烧录Hi3516DV300/Hi3518EV300开发板,可能烧录失败,提示“not find the Devices”,请根据[Hi3516DV300/Hi3518EV300开发板USB驱动安装](https://device.harmonyos.com/cn/docs/documentation/guide/usb_driver-0000001058690393)进行处理后再重新烧录。 - - ![](figures/1-11.png) - -11. 启动烧录后,界面提示如下信息时,表示烧录成功。 - - ![](figures/zh-cn_image_0000001160649343.png) - -12. 烧录完成后,请根据标准系统镜像运行进行下一步操作,完成系统启动。 - diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-burning.md b/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-burning.md new file mode 100644 index 0000000000000000000000000000000000000000..afdbc12cf98955e4ce2120195c4b685e6c505ef1 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-burning.md @@ -0,0 +1,88 @@ +# 烧录 + + +在Windows下采用USB烧录方式进行Hi3516DV300的烧录,具体步骤如下: + + +### 导入源码 + +在编译完成后,[保证Windows系统可以远程访问Ubuntu环境](../quick-start/quickstart-standard-env-setup.md#安装deveco-device-tool)的情况下,您还需要通过以下步骤导入源码后,方可进行烧录。 + +1. 打开DevEco Device Tool,进入Home页,点击**Import Project**打开工程。 + ![zh-cn_image_0000001171426014](figures/zh-cn_image_0000001171426014.png) + +2. 选择要导入的源码目录(需要访问Ubuntu下的源码目录),点击**Import**打开。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 工程存储路径不能包含中文字符、空格。如果工程存储路径包含中文字符或空格,可能导致编译失败。 + + ![zh-cn_image_0000001227711882](figures/zh-cn_image_0000001227711882.png) + +3. 如果您打开的目录不是DevEco Device Tool工程,则会出现如下提示框,点击**Import**。 + ![zh-cn_image_0000001135394334](figures/zh-cn_image_0000001135394334.png) + +4. 在Select Project type界面,选择**Import from OpenHarmony Source**。 + ![zh-cn_image_0000001215743910](figures/zh-cn_image_0000001215743910.png) + +5. 在Import Project界面,选择**Product**后,会自动填充对应的MCU、Board、company和kernel信息,然后**ohosVersion**选择对应的OpenHarmony源码版本。此处选择Hi3516DV300。 + ![zh-cn_image_0000001271912277](figures/zh-cn_image_0000001271912277.png) + +6. 点击**Open**打开工程或源码。 + + +### 烧录 + +完成源码导入后,通过以下步骤进行烧录: + +1. 请连接好电脑和待烧录开发板,需要同时连接串口和USB口,具体可参考[Hi3516DV300开发板介绍](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-introduction-hi3516.md)。 + +2. 在DevEco Device Tool中,选择REMOTE DEVELOPMENT > Local PC,查看远程计算机(Ubuntu开发环境)与本地计算机(Windows开发环境)的连接状态。 + - 如果Local PC右边连接按钮为![zh-cn_image_0000001261315939](figures/zh-cn_image_0000001261315939.png),则远程计算机与本地计算机为已连接状态,不需要执行其他操作。 + - 如果Local PC右边连接按钮为![zh-cn_image_0000001261515989](figures/zh-cn_image_0000001261515989.png),则点击绿色连接进行按钮。 + + ![zh-cn_image_0000001261395999](figures/zh-cn_image_0000001261395999.png) + + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 该操作仅在远程模式(Windows+Ubuntu混合开发环境)中需要设置,如果采用本地模式(Windows开发环境或Ubuntu开发环境),则请跳过该步骤。 + +3. 在DevEco Device Tool中,点击QUICK ACCESS > DevEco Home > Device,查看并记录对应的串口号。 + ![zh-cn_image_0000001216516128](figures/zh-cn_image_0000001216516128.png) + + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果对应的串口异常,请根据[Hi3516DV300/Hi3518EV300开发板串口驱动安装指导](https://device.harmonyos.com/cn/docs/documentation/guide/hi3516_hi3518-drivers-0000001050743695)安装USB转串口的驱动程序。 + +4. 在QUICK ACCESS > DevEco Home > Projects中,点击**Settings**打开工程配置界面。 + ![zh-cn_image_0000001198566364](figures/zh-cn_image_0000001198566364.png) + +5. 在“hi3516dv300”页签,设置烧录选项,包括upload_partitions、upload_port和upload_protocol。 + - upload_partitions:选择待烧录的文件,默认情况下会同时烧录fastboot、kernel、rootfs和userfs。 + - upload_port:选择已查询到的串口号。 + - upload_protocol:选择烧录协议,固定选择“hiburn-usb”。 + + ![zh-cn_image_0000001223190441](figures/zh-cn_image_0000001223190441.png) + +6. 分别检查待烧录文件的烧录信息,DevEco Device Tool已预置默认的烧录文件信息,可根据实际情况进行调整。待烧录文件包括:fastboot、kernel、rootfs和userfs。 + 1. 在“hi3516dv300_fastboot”页签,在New Option选项中选择需要修改的项,例如partition_bin(烧录文件路径)、partition_addr(烧录文件起始地址)、partition_length(烧录文件分区长度)等。 + ![zh-cn_image_0000001198889702](figures/zh-cn_image_0000001198889702.png) + 2. 然后在Partition Options中,分别修改上述步骤中选择的修改项。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件的大小进行设置,要求设置的烧录分区大小,要大于待烧录文件的大小;同时,各烧录文件的分区地址设置不能出现重叠。 + + ![zh-cn_image_0000001243290907](figures/zh-cn_image_0000001243290907.png) + 3. 按照相同的方法修改kernel、rootfs和userfs的烧录文件信息。 + +7. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 + +8. 点击hi3516dv300下的**Upload**按钮,启动烧录。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果您是第一次在工作台烧录Hi3516DV300/Hi3518EV300开发板,可能烧录失败,提示“not find the Devices”,然后根据[Hi3516DV300/Hi3518EV300开发板USB驱动安装](https://device.harmonyos.com/cn/docs/documentation/guide/usb_driver-0000001058690393)进行处理后再重新烧录。 + + ![zh-cn_image_0000001267231481](figures/zh-cn_image_0000001267231481.png) + +9. 在终端窗口显示如下提示信息时,按住复位键,插拔USB线,最后松开复位键启动烧录。 + ![zh-cn_image_0000001114129426](figures/zh-cn_image_0000001114129426.png) + + 启动烧录后,界面提示如下信息时,表示烧录成功。 + + ![zh-cn_image_0000001160649343](figures/zh-cn_image_0000001160649343.png) + +10. 烧录成功后,请根据镜像运行章节进行操作,启动系统。 diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-create.md b/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-create.md index 9fab1cd171780c18c170118777415572f5d437d2..d9632828c8155aaae5fd6be0f6400108d2a30db8 100644 --- a/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-create.md +++ b/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-create.md @@ -1,12 +1,14 @@ -# 编写“Hello World”程序 +# 编写“Hello World”程序 下方将展示如何在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello World!”。 -## 示例目录 + +## 示例目录 示例完整目录如下。 + ``` applications/sample/hello │ │── BUILD.gn @@ -22,135 +24,135 @@ productdefine/common └── Hi3568DV300.json ``` -## 开发步骤 -请在源码目录中通过以下步骤创建“Hello World”应用程序: +## 开发步骤 -1. 创建目录,编写业务代码。 - - 新建applications/sample/hello/src/helloworld.c目录及文件,代码如下所示,用户可以自定义修改打印内容(例如:修改World为OH)。其中helloworld.h包含字符串打印函数HelloPrint的声明。当前应用程序可支持标准C及C++的代码开发。 - - ``` - #include - #include "helloworld.h" - - int main(int argc, char **argv) - { - HelloPrint(); - return 0; - } - - void HelloPrint() - { - printf("\n************************************************\n"); - printf("\n\t\tHello World!\n"); - printf("\n************************************************\n"); - } - ``` - - 再添加头文件applications/sample/hello/include/helloworld.h,代码如下所示。 - - ``` - #ifndef HELLOWORLD_H - #define HELLOWORLD_H - #ifdef __cplusplus - #if __cplusplus - extern "C" { - #endif - #endif - - void HelloPrint(); - - #ifdef __cplusplus - #if __cplusplus - } - #endif - #endif - #endif // HELLOWORLD_H - ``` - -2. 新建编译组织文件。 - 1. 新建applications/sample/hello/BUILD.gn文件,内容如下所示: - - ``` - import("//build/ohos.gni") # 导入编译模板 - ohos_executable("helloworld") { # 可执行模块 - sources = [ # 模块源码 - "src/helloworld.c" - ] - include_dirs = [ # 模块依赖头文件目录 - "include" - ] - cflags = [] - cflags_c = [] - cflags_cc = [] - ldflags = [] - configs = [] - deps =[] # 部件内部依赖 - part_name = "hello" # 所属部件名称,必选 - install_enable = true # 是否默认安装(缺省默认不安装),可选 - } - ``` - - 2. 新建applications/sample/hello/bundle.json文件,添加sample部件描述,内容如下所示。 - - ``` - { - "name": "@ohos/hello", - "description": "Hello world example.", - "version": "3.1", - "license": "Apache License 2.0", - "publishAs": "code-segment", - "segment": { - "destPath": "applications/sample/hello" - }, - "dirs": {}, - "scripts": {}, - "component": { - "name": "hello", - "subsystem": "sample", - "syscap": [], - "features": [], - "adapted_system_type": [ "mini", "small", "standard" ], - "rom": "10KB", - "ram": "10KB", - "deps": { - "components": [], - "third_party": [] - }, - "build": { - "sub_component": [ - "//applications/sample/hello:helloworld" - ], - "inner_kits": [], - "test": [] - } - } - } - ``` - - bundle.json文件包含两个部分,第一部分描述该部件所属子系统的信息,第二部分component则定义该部件构建相关配置。添加的时候需要指明该部件包含的模块sub\_component,假如有提供给其它部件的接口,需要在inner\_kits中说明,假如有测试用例,需要在test中说明,inner\_kits与test没有也可以不添加。 - -3. 修改子系统配置文件。 - - 在build/subsystem\_config.json中添加新建的子系统的配置。 - - ``` - "sample": { - "path": "applications/sample/hello", - "name": "sample" - }, - ``` - -4. 修改产品配置文件。 - - 在productdefine/common/products/Hi3516DV300.json中添加对应的hello部件,直接添加到原有部件后即可。 - - ``` - "usb:usb_manager_native":{}, - "applications:prebuilt_hap":{}, - "sample:hello":{}, - "wpa_supplicant-2.9:wpa_supplicant-2.9":{}, - ``` +请在源码目录中通过以下步骤创建“Hello World”应用程序: +1. 创建目录,编写业务代码。 + 新建applications/sample/hello/src/helloworld.c目录及文件,代码如下所示,用户可以自定义修改打印内容(例如:修改World为OH)。其中helloworld.h包含字符串打印函数HelloPrint的声明。当前应用程序可支持标准C及C++的代码开发。 + + + ``` + #include + #include "helloworld.h" + + int main(int argc, char **argv) + { + HelloPrint(); + return 0; + } + + void HelloPrint() + { + printf("\n\n"); + printf("\n\t\tHello World!\n"); + printf("\n\n"); + } + ``` + + 再添加头文件applications/sample/hello/include/helloworld.h,代码如下所示。 + + + ``` + #ifndef HELLOWORLD_H + #define HELLOWORLD_H + #ifdef __cplusplus + #if __cplusplus + extern "C" { + #endif + #endif + + void HelloPrint(); + + #ifdef __cplusplus + #if __cplusplus + } + #endif + #endif + #endif // HELLOWORLD_H + ``` + +2. 新建编译组织文件。 + 1. 新建applications/sample/hello/BUILD.gn文件,内容如下所示: + + ``` + import("//build/ohos.gni") # 导入编译模板 + ohos_executable("helloworld") { # 可执行模块 + sources = [ # 模块源码 + "src/helloworld.c" + ] + include_dirs = [ # 模块依赖头文件目录 + "include" + ] + cflags = [] + cflags_c = [] + cflags_cc = [] + ldflags = [] + configs = [] + deps =[] # 部件内部依赖 + part_name = "hello" # 所属部件名称,必选 + install_enable = true # 是否默认安装(缺省默认不安装),可选 + } + ``` + 2. 新建applications/sample/hello/bundle.json文件,添加sample部件描述,内容如下所示。 + + ``` + { + "name": "@ohos/hello", + "description": "Hello world example.", + "version": "3.1", + "license": "Apache License 2.0", + "publishAs": "code-segment", + "segment": { + "destPath": "applications/sample/hello" + }, + "dirs": {}, + "scripts": {}, + "component": { + "name": "hello", + "subsystem": "sample", + "syscap": [], + "features": [], + "adapted_system_type": [ "mini", "small", "standard" ], + "rom": "10KB", + "ram": "10KB", + "deps": { + "components": [], + "third_party": [] + }, + "build": { + "sub_component": [ + "//applications/sample/hello:helloworld" + ], + "inner_kits": [], + "test": [] + } + } + } + ``` + + bundle.json文件包含两个部分,第一部分描述该部件所属子系统的信息,第二部分component则定义该部件构建相关配置。添加的时候需要指明该部件包含的模块sub_component,假如有提供给其它部件的接口,需要在inner_kits中说明,假如有测试用例,需要在test中说明,inner_kits与test没有也可以不添加。 + +3. 修改子系统配置文件。 + 在build/subsystem_config.json中添加新建的子系统的配置。 + + + ``` + "sample": { + "path": "applications/sample/hello", + "name": "sample" + }, + ``` + +4. 修改产品配置文件。 + 在productdefine/common/products/Hi3516DV300.json中添加对应的hello部件,直接添加到原有部件后即可。 + + + ``` + "usb:usb_manager_native":{}, + "applications:prebuilt_hap":{}, + "sample:hello":{}, + "wpa_supplicant-2.9:wpa_supplicant-2.9":{}, + ``` diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-run.md b/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-run.md deleted file mode 100644 index b801df89a5f7eeeda319ea722e6ffeba040b38ff..0000000000000000000000000000000000000000 --- a/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-run.md +++ /dev/null @@ -1,60 +0,0 @@ -# 镜像运行 - -- [启动系统](#section85351839162211) -- [运行“Hello World”](#section137849131182) -- [下一步](#section5600113114323) - -## 启动系统 - -烧录完成后通过以下步骤运行系统: - ->![](../public_sys-resources/icon-note.gif) **说明:** ->初次烧写标准系统,需要完成以下配置,后续烧写或者启动,可以跳过以下操作。 - -1. 在DevEco Device Tool中,点击Monitor,打开串口工具。 - - ![](figures/open-the-serial-port-tool.png) - -2. 重启开发板,在倒计时结束前,按任意键进入系统。 - - ![](figures/press-any-key-to-enter-the-system.gif) - -3. 通过以下两条命令设置启动参数。 - - ``` - setenv bootargs 'mem=640M console=ttyAMA0,115200 mmz=anonymous,0,0xA8000000,384M clk_ignore_unused rootdelay=10 hardware=Hi3516DV300 init=/init root=/dev/ram0 rw blkdevparts=mmcblk0:1M(boot),15M(kernel),20M(updater),2M(misc),3307M(system),256M(vendor),-(userdata)'; - ``` - - ``` - setenv bootcmd 'mmc read 0x0 0x82000000 0x800 0x4800; bootm 0x82000000' - ``` - - ![](figures/setenv-bootargs.png) - -4. 保存参数设置。 - - ``` - save - ``` - - ![](figures/Save-the-parameter-settings.png) - -5. 重启开发板,完成系统启动。 - - ``` - reset - ``` - - ![](figures/start-the-system.png) - - -## 运行“Hello World” - -设备启动后打开串口工具,在任意目录下输入命令helloworld后回车,即出现“Hello World!”字样。 - -![](figures/zh-cn_image_0000001193533352.png) - -## 下一步 - -恭喜!您已经完成了OpenHarmony标准系统的快速入门,接下来可[开发一个小示例](../guide/device-clock-guide.md),进一步熟悉OpenHarmony的开发。 - diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-running.md b/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-running.md new file mode 100644 index 0000000000000000000000000000000000000000..7c94ac3534d4696c5bcb8a105610e170e5a9ad32 --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-running.md @@ -0,0 +1,56 @@ +# 运行 + + +## 启动系统 + +烧录完成后在Windows下通过以下步骤启动系统: + +> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> 初次烧写标准系统,需要完成以下配置,后续烧写或者启动,可以跳过以下操作。 + +1. 在DevEco Device Tool中,点击Monitor,打开串口工具。 + ![zh-cn_image_0000001226762374](figures/zh-cn_image_0000001226762374.png) + +2. 重启开发板,在倒计时结束前,按任意键进入系统。 + ![zh-cn_image_0000001271442265](figures/zh-cn_image_0000001271442265.gif) + +3. 通过以下两条命令设置启动参数。 + + ``` + setenv bootargs 'mem=640M console=ttyAMA0,115200 mmz=anonymous,0,0xA8000000,384M clk_ignore_unused rootdelay=10 hardware=Hi3516DV300 init=/init root=/dev/ram0 rw blkdevparts=mmcblk0:1M(boot),15M(kernel),20M(updater),2M(misc),3307M(system),256M(vendor),-(userdata)'; + ``` + + + ``` + setenv bootcmd 'mmc read 0x0 0x82000000 0x800 0x4800; bootm 0x82000000' + ``` + + ![zh-cn_image_0000001271322437](figures/zh-cn_image_0000001271322437.png) + +4. 保存参数设置。 + + ``` + save + ``` + + ![zh-cn_image_0000001271562437](figures/zh-cn_image_0000001271562437.png) + +5. 重启开发板,完成系统启动。 + + ``` + reset + ``` + + ![zh-cn_image_0000001226762378](figures/zh-cn_image_0000001226762378.png) + + +## 运行“Hello World” + +设备启动后打开串口工具,在任意目录下输入命令helloworld后回车,界面打印“Hello World!”,程序运行成功。 + +![zh-cn_image_0000001226602398](figures/zh-cn_image_0000001226602398.png) + + +## 下一步 + +恭喜!您已经完成了OpenHarmony标准系统的快速入门,接下来可[开发一个小示例](../guide/device-clock-guide.md),进一步熟悉OpenHarmony的开发。 diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516.md b/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516.md index d8e2bdb1ee493e70111bec7fe5fd95dcbc952c42..303c5d6366355b18ea0425b680197450e86338b1 100644 --- a/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516.md +++ b/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516.md @@ -1,11 +1,11 @@ -# Hi3516开发板 +# Hi3516开发板 -- **[创建应用程序](quickstart-standard-running-hi3516-create.md)** -- **[源码编译](quickstart-standard-running-hi3516-build.md)** -- **[镜像烧录](quickstart-standard-running-hi3516-burn.md)** +- **[编写“Hello World”程序](quickstart-standard-running-hi3516-create.md)** -- **[镜像运行](quickstart-standard-running-hi3516-run.md)** +- **[编译](quickstart-standard-running-hi3516-build.md)** +- **[烧录](quickstart-standard-running-hi3516-burning.md)** +- **[运行](quickstart-standard-running-hi3516-running.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-build.md b/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-build.md index 2b414676249d306a6f1717ca220822836f7f0d13..e3c5016f842ee4a8ded521a858fd7bfe3c1203fa 100644 --- a/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-build.md +++ b/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-build.md @@ -1,102 +1,45 @@ -# 源码编译 +# 编译 -- [使用Docker方式获取编译工具链](#section181431248132513) - - [执行prebuilts](#section111934551605) - - [安装Docker](#section1466184743915) - - [获取Docker环境](#section615912103552) -- [使用安装包方式获取编译工具链](#section65647482593) - - [安装依赖工具](#section83441888010) - - [执行prebuilts](#section6389714142011) +OpenHarmony支持hb和build.sh两种编译方式。此处介绍hb方式,build.sh脚本编译方式请参考[使用build.sh脚本编译源码](../quick-start/quickstart-standard-reference.md#使用buildsh脚本编译源码)。 -- [编译](#section92391739152318) -安装编译工具链后,即可对源码进行编译。在Linux环境下获取编译工具链有以下两种方式,二者选其一即可: +在Ubuntu环境下进入源码根目录,执行如下命令进行编译: -1. Docker方式 - OpenHarmony标准系统为开发者提供的Docker环境已经将对应的编译工具链进行了封装,开发者可省略对应工具的安装。 +1. 设置编译路径。 + + ``` + hb set + ``` -2. 安装包方式 +2. 选择当前路径。 + + ``` + . + ``` - 使用安装包方式获取编译工具链时,开发者需自行安装相应的依赖工具。 +3. 在built-in下选择rk3568并回车。 +4. 执行编译。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > - 单独编译一个部件(例如hello),可使用“hb build -T _目标名称_”进行编译。 + > + > - 增量编译整个产品,可使用“hb build”进行编译。 + > + > - 完整编译整个产品,可使用“hb build -f”进行编译。 + > + > 此处以完整编译整个产品为例进行说明。 -## 使用Docker方式获取编译工具链 + + ``` + hb build -f + ``` -### 执行prebuilts - -在源码根目录下执行脚本,安装编译器及二进制工具。 - -``` -bash build/prebuilts_download.sh -``` - -### 安装Docker - -请参考[官方指导](https://docs.docker.com/engine/install/)。 - -### 获取Docker环境 - -1. 获取Docker镜像。 - - ``` - docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:1.0.0 - ``` - -2. 进入源码根目录执行如下命令,从而进入Docker构建环境。 - - ``` - docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0 - ``` - - -## 使用安装包方式获取编译工具链 - -### 安装依赖工具 - -请在终端中输入如下命令安装编译相关的依赖工具: - -``` -sudo apt-get update && sudo apt-get install binutils git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby -``` - ->![](../public_sys-resources/icon-note.gif) **说明:** ->以上安装命令适用于Ubuntu18.04,其他版本请根据安装包名称采用对应的安装命令。其中Python要求安装Python 3.7及以上版本,此处以Python 3.8为例。 - -### 执行prebuilts - -在源码根目录下执行脚本,安装编译器及二进制工具。 - -``` -bash build/prebuilts_download.sh -``` - -## 编译 - -1. 进入源码根目录,执行如下命令进行版本编译。 - - >![](../public_sys-resources/icon-note.gif) **说明:** - >使用Docker方式获取编译工具链的,请直接通过[获取Docker环境](#section615912103552)最后一步进入的Docker构建环境执行如下命令。 - - ``` - ./build.sh --product-name rk3568 --ccache - ``` - -2. 检查编译结果。编译完成后,log中显示如下: - - ``` - post_process - =====build rk3568 successful. - ``` - - 编译所生成的文件都归档在out/\{device\_name\}/目录下,结果镜像输出在out/\{device\_name\}/packages/phone/images/ 目录下。 - - >![](../public_sys-resources/icon-note.gif) **说明:** - >其他模块化编译操作,可参见[编译构建指导](../subsystems/subsys-build-standard-large.md)。 - -3. 编译源码完成,请进行镜像烧录,具体请参见[镜像烧录](quickstart-standard-running-hi3516-burn.md)。 - ->![](../public_sys-resources/icon-note.gif) **说明:** ->若使用Docker环境进行编译,执行exit命令即可退出Docker。 + + **图1** RK3568编译设置图例 + ![zh-cn_image_0000001226922302](figures/zh-cn_image_0000001226922302.png) +5. 编译结束后,出现“rk3568 build success”字样,则证明构建成功。 + > ![icon-notice.gif](public_sys-resources/icon-notice.gif) **须知:** + > 编译结果文件及编译日志文件获取路径:out/rk3568。 diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-burn.md b/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-burn.md deleted file mode 100644 index 50dc908d39bcae333b23cfef1181a00925aa32c2..0000000000000000000000000000000000000000 --- a/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-burn.md +++ /dev/null @@ -1,4 +0,0 @@ -# 镜像烧录 - -请参考:[HiHope\_DAYU200烧写工具及指南](https://gitee.com/hihope_iot/docs/blob/master/HiHope_DAYU200/%E7%83%A7%E5%86%99%E5%B7%A5%E5%85%B7%E5%8F%8A%E6%8C%87%E5%8D%97/HiHope-DAYU200%E9%95%9C%E5%83%8F%E7%83%A7%E5%BD%95%E6%8C%87%E5%8D%97.pdf)。 - diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-burning.md b/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-burning.md new file mode 100644 index 0000000000000000000000000000000000000000..b0d02f482270e43a56f1417638f9bc4ffd188c3b --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-burning.md @@ -0,0 +1,76 @@ +# 烧录 + + +在Windows环境下通过以下步骤进行RK3568的烧录: + + +### 导入源码 + +在编译完成后,[保证Windows系统可以远程访问Ubuntu环境](../quick-start/quickstart-standard-env-setup.md#安装deveco-device-tool)的情况下,您还需要通过以下步骤导入源码后,方可进行烧录。 + +1. 打开DevEco Device Tool,进入Home页,点击**Import Project**打开工程。 + ![zh-cn_image_0000001171426014](figures/zh-cn_image_0000001171426014.png) + +2. 选择要导入的源码目录(需要访问Ubuntu下的源码目录),点击**Import**打开。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 工程存储路径不能包含中文字符、空格。如果工程存储路径包含中文字符或空格,可能导致编译失败。 + + ![zh-cn_image_0000001272032361](figures/zh-cn_image_0000001272032361.png) + +3. 如果您打开的目录不是DevEco Device Tool工程,则会出现如下提示框,点击**Import**。 + ![zh-cn_image_0000001135394334](figures/zh-cn_image_0000001135394334.png) + +4. 在Select Project type界面,选择**Import from OpenHarmony Source**。 + ![zh-cn_image_0000001215743910](figures/zh-cn_image_0000001215743910.png) + +5. 在Import Project界面,选择**Product**后,会自动填充对应的MCU、Board、company和kernel信息,然后**ohosVersion**选择对应的OpenHarmony源码版本。此处选择rk3568。 + ![zh-cn_image_0000001227712350](figures/zh-cn_image_0000001227712350.png) + +6. 点击**Open**打开工程或源码。 + + +### 烧录 + +完成源码导入后,通过以下步骤进行烧录: + +1. [下载](https://gitee.com/hihope_iot/docs/blob/master/HiHope_DAYU200/%E7%83%A7%E5%86%99%E5%B7%A5%E5%85%B7%E5%8F%8A%E6%8C%87%E5%8D%97/windows/DriverAssitant_v5.1.1.zip)并安装驱动DriverInstall.exe,双击DriverInstall.exe打开安装程序,点击“驱动安装”按钮,按提示安装USB驱动。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果已经安装旧版本的烧写工具,请先点击"驱动卸载"按钮卸载驱动,然后再点击"驱动安装"按钮安装驱动。 + +2. 请连接好电脑和待烧录开发板,连接USB接口。 + +3. 在DevEco Device Tool中,选择REMOTE DEVELOPMENT > Local PC,查看远程计算机(Ubuntu开发环境)与本地计算机(Windows开发环境)的连接状态。 + - 如果Local PC右边连接按钮为![zh-cn_image_0000001261315939](figures/zh-cn_image_0000001261315939.png),则远程计算机与本地计算机为已连接状态,不需要执行其他操作。 + - 如果Local PC右边连接按钮为![zh-cn_image_0000001261515989](figures/zh-cn_image_0000001261515989.png),则点击绿色连接进行按钮。 + + ![zh-cn_image_0000001261395999](figures/zh-cn_image_0000001261395999.png) + + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 该操作仅在远程模式(Windows+Ubuntu混合开发环境)中需要设置,如果采用本地模式(Windows开发环境或Ubuntu开发环境),则请跳过该步骤。 + +4. 打开DevEco Device Tool,在QUICK ACCESS > DevEco Home > Projects中,点击**Settings**打开工程配置界面。 + ![zh-cn_image_0000001239661509](figures/zh-cn_image_0000001239661509.png) + +5. 在“hh_scdy200”页签,设置烧录选项,包括upload_partitions和upload_protocol。 + - upload_partitions:选择待烧录的文件。 + - upload_protocol:选择烧录协议,固定选择“upgrade”。 + + ![zh-cn_image_0000001194504874](figures/zh-cn_image_0000001194504874.png) + +6. 分别检查待烧录文件的烧录信息,DevEco Device Tool已预置默认的烧录文件信息,可根据实际情况进行调整。待烧录文件包括:loader、parameter、uboot、boot_linux、system、vendor和userdata。 + 1. 在“hh_scdy200_loader”页签,在New Option选项中选择需要修改的项,例如partition_bin(烧录文件路径)、partition_addr(烧录文件起始地址)、partition_length(烧录文件分区长度)等。 + ![zh-cn_image_0000001224173270](figures/zh-cn_image_0000001224173270.png) + 2. 然后在Partition Options中,分别修改上述步骤中选择的修改项。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件的大小进行设置,要求设置的烧录分区大小,要大于待烧录文件的大小;同时,各烧录文件的分区地址设置不能出现重叠。 + + ![zh-cn_image_0000001268653461](figures/zh-cn_image_0000001268653461.png) + 3. 按照相同的方法修改parameter、uboot、boot_linux、system、vendor和userdata的烧录文件信息。 + +7. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 + +8. 点击工程的Open按钮,打开工程文件,点击![zh-cn_image_0000001239221905](figures/zh-cn_image_0000001239221905.png)图标,打开DevEco Device Tool界面,在“PROJECT TASKS”中,点击hh_scdy200下的**Upload**按钮,启动烧录。 + ![zh-cn_image_0000001194821710](figures/zh-cn_image_0000001194821710.png) + +9. 等待开发板烧录完成,当屏幕提示如下信息时,表示烧录成功。 + ![zh-cn_image_0000001194984912](figures/zh-cn_image_0000001194984912.png) diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-create.md b/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-create.md index 198a9d5c414aa863271c5597b50cd94285a3a419..46f1afe408c25106591b6ad1508bf4bdcc46a417 100644 --- a/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-create.md +++ b/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-create.md @@ -1,11 +1,13 @@ -# 编写“Hello World”程序 +# 编写“Hello World”程序 + 下方将展示如何在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello World!”。 -## 示例目录 -示例完整目录如下。 +## 示例目录 + 示例完整目录如下。 + ``` applications/sample/hello │ │── BUILD.gn @@ -21,135 +23,133 @@ productdefine/common └── rk3568.json ``` -## 开发步骤 - -请在源码目录中通过以下步骤创建“Hello World”应用程序: -1. 创建目录,编写业务代码。 - - 新建applications/sample/hello/src/helloworld.c目录及文件,代码如下所示,用户可以自定义修改打印内容(例如:修改World为OH)。其中helloworld.h包含字符串打印函数HelloPrint的声明。当前应用程序可支持标准C及C++的代码开发。 - - ``` - #include - #include "helloworld.h" - - int main(int argc, char **argv) - { - HelloPrint(); - return 0; - } - - void HelloPrint() - { - printf("\n************************************************\n"); - printf("\n\t\tHello World!\n"); - printf("\n************************************************\n"); - } - ``` - - 再添加头文件applications/sample/hello/include/helloworld.h,代码如下所示。 - - ``` - #ifndef HELLOWORLD_H - #define HELLOWORLD_H - #ifdef __cplusplus - #if __cplusplus - extern "C" { - #endif - #endif - - void HelloPrint(); - - #ifdef __cplusplus - #if __cplusplus - } - #endif - #endif - #endif // HELLOWORLD_H - ``` - -2. 新建编译组织文件。 - 1. 新建applications/sample/hello/BUILD.gn文件,内容如下所示: - - ``` - import("//build/ohos.gni") # 导入编译模板 - ohos_executable("helloworld") { # 可执行模块 - sources = [ # 模块源码 - "src/helloworld.c" - ] - include_dirs = [ # 模块依赖头文件目录 - "include" - ] - cflags = [] - cflags_c = [] - cflags_cc = [] - ldflags = [] - configs = [] - deps =[] # 部件内部依赖 - part_name = "hello" # 所属部件名称,必选 - install_enable = true # 是否默认安装(缺省默认不安装),可选 - } - ``` - - 2. 新建applications/sample/hello/bundle.json文件,添加sample部件描述,内容如下所示。 - - ``` - { - "name": "@ohos/hello", - "description": "Hello world example.", - "version": "3.1", - "license": "Apache License 2.0", - "publishAs": "code-segment", - "segment": { - "destPath": "applications/sample/hello" - }, - "dirs": {}, - "scripts": {}, - "component": { - "name": "hello", - "subsystem": "sample", - "syscap": [], - "features": [], - "adapted_system_type": [ "mini", "small", "standard" ], - "rom": "10KB", - "ram": "10KB", - "deps": { - "components": [], - "third_party": [] - }, - "build": { - "sub_component": [ - "//applications/sample/hello:helloworld" - ], - "inner_kits": [], - "test": [] - } - } - } - ``` - - bundle.json文件包含两个部分,第一部分描述该部件所属子系统的信息,第二部分component则定义该部件构建相关配置。添加的时候需要指明该部件包含的模块sub\_component,假如有提供给其它部件的接口,需要在inner\_kits中说明,假如有测试用例,需要在test中说明,inner\_kits与test没有也可以不添加。 - -3. 修改子系统配置文件。 - - 在build/subsystem\_config.json中添加新建的子系统的配置。 - - ``` - "sample": { - "path": "applications/sample/hello", - "name": "sample" - }, - ``` - -4. 修改产品配置文件。 - - 在productdefine/common/products/rk3568.json中添加对应的hello部件,直接添加到原有部件后即可。 - - ``` - "usb:usb_manager_native":{}, - "applications:prebuilt_hap":{}, - "sample:hello":{}, - "wpa_supplicant-2.9:wpa_supplicant-2.9":{}, - ``` +## 开发步骤 +请在源码目录中通过以下步骤创建“Hello World”应用程序: +1. 创建目录,编写业务代码。 + 新建applications/sample/hello/src/helloworld.c目录及文件,代码如下所示,用户可以自定义修改打印内容(例如:修改World为OH)。其中helloworld.h包含字符串打印函数HelloPrint的声明。当前应用程序可支持标准C及C++的代码开发。 + + + ``` + #include + #include "helloworld.h" + + int main(int argc, char **argv) + { + HelloPrint(); + return 0; + } + + void HelloPrint() + { + printf("\n\n"); + printf("\n\t\tHello World!\n"); + printf("\n\n"); + } + ``` + + 再添加头文件applications/sample/hello/include/helloworld.h,代码如下所示。 + + + ``` + #ifndef HELLOWORLD_H + #define HELLOWORLD_H + #ifdef __cplusplus + #if __cplusplus + extern "C" { + #endif + #endif + + void HelloPrint(); + + #ifdef __cplusplus + #if __cplusplus + } + #endif + #endif + #endif // HELLOWORLD_H + ``` + +2. 新建编译组织文件。 + 1. 新建applications/sample/hello/BUILD.gn文件,内容如下所示: + + ``` + import("//build/ohos.gni") # 导入编译模板 + ohos_executable("helloworld") { # 可执行模块 + sources = [ # 模块源码 + "src/helloworld.c" + ] + include_dirs = [ # 模块依赖头文件目录 + "include" + ] + cflags = [] + cflags_c = [] + cflags_cc = [] + ldflags = [] + configs = [] + deps =[] # 部件内部依赖 + part_name = "hello" # 所属部件名称,必选 + install_enable = true # 是否默认安装(缺省默认不安装),可选 + } + ``` + 2. 新建applications/sample/hello/bundle.json文件,添加sample部件描述,内容如下所示。 + + ``` + { + "name": "@ohos/hello", + "description": "Hello world example.", + "version": "3.1", + "license": "Apache License 2.0", + "publishAs": "code-segment", + "segment": { + "destPath": "applications/sample/hello" + }, + "dirs": {}, + "scripts": {}, + "component": { + "name": "hello", + "subsystem": "sample", + "syscap": [], + "features": [], + "adapted_system_type": [ "mini", "small", "standard" ], + "rom": "10KB", + "ram": "10KB", + "deps": { + "components": [], + "third_party": [] + }, + "build": { + "sub_component": [ + "//applications/sample/hello:helloworld" + ], + "inner_kits": [], + "test": [] + } + } + } + ``` + + bundle.json文件包含两个部分,第一部分描述该部件所属子系统的信息,第二部分component则定义该部件构建相关配置。添加的时候需要指明该部件包含的模块sub_component,假如有提供给其它部件的接口,需要在inner_kits中说明,假如有测试用例,需要在test中说明,inner_kits与test没有也可以不添加。 + +3. 修改子系统配置文件。 + 在build/subsystem_config.json中添加新建的子系统的配置。 + + + ``` + "sample": { + "path": "applications/sample/hello", + "name": "sample" + }, + ``` + +4. 修改产品配置文件。 + 在productdefine/common/products/rk3568.json中添加对应的hello部件,直接添加到原有部件后即可。 + + ``` + "usb:usb_manager_native":{}, + "applications:prebuilt_hap":{}, + "sample:hello":{}, + "wpa_supplicant-2.9:wpa_supplicant-2.9":{}, + ``` diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-run.md b/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-run.md deleted file mode 100644 index fabebb6161db161a54afd127ec832dd47230019c..0000000000000000000000000000000000000000 --- a/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-run.md +++ /dev/null @@ -1,23 +0,0 @@ -# 镜像运行 - -- [启动系统](#section646361191511) -- [运行“Hello World”](#section11845976150) - -## 启动系统 - -镜像烧录完成并连接电源线之后,系统将会自动启动。开发板附带的屏幕呈现以下界面,表明系统已运行成功。 - -**图 1** 系统启动效果图 -![](figures/系统启动效果图.jpg "系统启动效果图") - -## 运行“Hello World” - -- 设备启动后打开串口工具(以putty为例),波特率设置为1500000,连接设备。 - - ![](figures/rk3568-run-configuration.png) - -- 打开串口后,在任意目录(以设备根目录为例)下输入命令helloworld后回车,即出现“Hello World!”字样。 - - ![](figures/rk3568-helloworld.png) - - diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-running.md b/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-running.md new file mode 100644 index 0000000000000000000000000000000000000000..ef998ade37019d08bfd54b2698c50be7f4dd304c --- /dev/null +++ b/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-running.md @@ -0,0 +1,18 @@ +# 运行 + + +## 启动系统 + +镜像烧录完成重启开发板后,系统将会自动启动。开发板附带的屏幕呈现以下界面,表明系统已运行成功。 + + **图1** 系统启动效果图 + ![zh-cn_image_0000001226602406](figures/zh-cn_image_0000001226602406.jpg) + + +## 运行“Hello World” + +1. 设备启动后打开串口工具(以putty为例),波特率设置为1500000,连接设备。 + ![zh-cn_image_0000001226922310](figures/zh-cn_image_0000001226922310.png) + +2. 打开串口后,在任意目录(以设备根目录为例)下输入命令helloworld后回车,界面打印“Hello World!”,程序运行成功。 + ![zh-cn_image_0000001271202465](figures/zh-cn_image_0000001271202465.png) diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568.md b/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568.md index d8f0538282014cf2f84ee26a190f5e10433d2a75..4640773e970682786fdf58b55670bce9757b06d7 100644 --- a/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568.md +++ b/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568.md @@ -1,11 +1,11 @@ -# RK3568开发板 +# RK3568开发板 -- **[创建应用程序](quickstart-standard-running-rk3568-create.md)** -- **[源码编译](quickstart-standard-running-rk3568-build.md)** -- **[镜像烧录](quickstart-standard-running-rk3568-burn.md)** +- **[编写“Hello World”程序](quickstart-standard-running-rk3568-create.md)** -- **[镜像运行](quickstart-standard-running-rk3568-run.md)** +- **[编译](quickstart-standard-running-rk3568-build.md)** +- **[烧录](quickstart-standard-running-rk3568-burning.md)** +- **[运行](quickstart-standard-running-rk3568-running.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-running.md b/zh-cn/device-dev/quick-start/quickstart-standard-running.md index 5f631ce529b527058bf980de50de8d5f4eebd433..0844235c1c6346ad9bf532c8dddd0fec14754d75 100644 --- a/zh-cn/device-dev/quick-start/quickstart-standard-running.md +++ b/zh-cn/device-dev/quick-start/quickstart-standard-running.md @@ -1,7 +1,7 @@ -# 运行“Hello World” +# 运行“Hello World” -- **[Hi3516开发板](quickstart-standard-running-hi3516.md)** -- **[RK3568开发板](quickstart-standard-running-rk3568.md)** +- **[Hi3516开发板](quickstart-standard-running-hi3516.md)** +- **[RK3568开发板](quickstart-standard-running-rk3568.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-sourcecode-acquire.md b/zh-cn/device-dev/quick-start/quickstart-standard-sourcecode-acquire.md deleted file mode 100644 index e2571a0ca54356d343b462347dfc6d6660596934..0000000000000000000000000000000000000000 --- a/zh-cn/device-dev/quick-start/quickstart-standard-sourcecode-acquire.md +++ /dev/null @@ -1,51 +0,0 @@ -# 获取源码 - -### 前提条件 - -1. 注册码云gitee帐号。 -2. 注册码云SSH公钥,请参考[码云帮助中心](https://gitee.com/help/articles/4191)。 -3. 安装[git客户端](https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git)和[git-lfs](https://gitee.com/vcs-all-in-one/git-lfs?_from=gitee_search#downloading)并配置用户信息。 - - ``` - git config --global user.name "yourname" - git config --global user.email "your-email-address" - git config --global credential.helper store - ``` - -4. 安装码云repo工具,可以执行如下命令。 - - ``` - curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o /usr/local/bin/repo #如果没有权限,可下载至其他目录,并将其配置到环境变量中 - chmod a+x /usr/local/bin/repo - pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests - ``` - - -### 获取方式 - ->![](../public_sys-resources/icon-note.gif) **说明:** ->Master主干为开发分支,开发者可通过Master主干获取最新特性。发布版本代码相对比较稳定,开发者可基于发布版本代码进行商用功能开发。 - -- **OpenHarmony主干代码获取** - - 方式一(推荐):通过repo + ssh下载(需注册公钥,请参考[码云帮助中心](https://gitee.com/help/articles/4191))。 - - ``` - repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify - repo sync -c - repo forall -c 'git lfs pull' - ``` - - 方式二:通过repo + https下载。 - - ``` - repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify - repo sync -c - repo forall -c 'git lfs pull' - ``` - -- **OpenHarmony发布版本代码获取** - - OpenHarmony发布版本获取源码方式请参考[Release-Notes](../get-code/../../release-notes/OpenHarmony-v3.0.2-LTS.md)。 - - diff --git a/zh-cn/device-dev/quick-start/quickstart-standard.md b/zh-cn/device-dev/quick-start/quickstart-standard.md index b98e7a307dcc2ea67b0bd01434e5860496ce26a1..975f278798ba827639e4de810d6b2909d87f2f1a 100644 --- a/zh-cn/device-dev/quick-start/quickstart-standard.md +++ b/zh-cn/device-dev/quick-start/quickstart-standard.md @@ -1,15 +1,7 @@ -# 标准系统入门 +# 标准系统入门 -- **[标准系统入门简介](quickstart-standard-overview.md)** -- **[标准系统开发环境准备(仅Hi3516需要)](quickstart-standard-env-setup.md)** - -- **[获取源码](quickstart-standard-sourcecode-acquire.md)** - -- **[运行“Hello World”](quickstart-standard-running.md)** - -- **[常见问题](quickstart-standard-faqs.md)** - -- **[附录](quickstart-standard-appendix.md)** +- **[标准系统快速入门-安装包](quickstart-standard-docker.md)** +- **[标准系统快速入门-IDE](quickstart-standard-ide.md)** \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart.md b/zh-cn/device-dev/quick-start/quickstart.md index 5ab9867ff455695acd09b4325c016a46cae44dc8..972e164668031a7002dcf2c5f38b02d89ef65b6e 100644 --- a/zh-cn/device-dev/quick-start/quickstart.md +++ b/zh-cn/device-dev/quick-start/quickstart.md @@ -1,7 +1,7 @@ -# 快速入门 +# 快速入门 -- **[轻量和小型系统入门](quickstart-lite.md)** -- **[标准系统入门](quickstart-standard.md)** +- **[轻量和小型系统入门](quickstart-lite.md)** +- **[标准系统入门](quickstart-standard.md)** \ No newline at end of file