From 5c35dd86862f9d9ca9b48f3d27d5dfd8ac5230c7 Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Fri, 13 Aug 2021 18:42:10 +0800 Subject: [PATCH 01/22] =?UTF-8?q?update=20=E5=AF=BC=E5=85=A5OpenHarmony?= =?UTF-8?q?=E5=B7=A5=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: duangavin123 --- en/device-dev/{overview.md => Readme-EN.md} | 23 +- .../bundles/bundles-demo-devsample.md | 22 +- .../bundles/bundles-demo-environment.md | 28 +- .../bundles/bundles-demo-hpmdescription.md | 4 +- en/device-dev/bundles/bundles-demo.md | 2 +- .../bundles/bundles-guide-develop.md | 344 +++- .../bundles/bundles-guide-overview.md | 155 +- .../bundles/bundles-guide-prepare.md | 69 +- en/device-dev/bundles/bundles-guide.md | 6 +- .../bundles/bundles-standard-rules.md | 16 +- en/device-dev/bundles/bundles.md | 2 +- ...dware-connections-23.png => 3516dv300.png} | Bin .../figure/en-us_image_0000001051452177.png | Bin 23912 -> 0 bytes .../figure/en-us_image_0000001134127844.png | Bin 0 -> 9185 bytes .../figure/hardware-connections-24.png | Bin 10111 -> 0 bytes ...ersion-requirement-3-0-4-or-later)-28.png} | Bin .../figure/\347\273\204\344\273\2660924.png" | Bin 64238 -> 0 bytes ...\346\210\220-\350\213\261\346\226\207.png" | Bin 0 -> 59159 bytes en/device-dev/driver/Readme-EN.md | 14 +- .../driver/{driver-hdf.md => drive-hdf.md} | 8 +- ...er-peripherals.md => drive-peripherals.md} | 0 .../{driver-platform.md => drive-platform.md} | 2 +- en/device-dev/driver/{driver.md => drive.md} | 6 +- .../driver/driver-hdf-development.md | 4 +- en/device-dev/driver/driver-hdf-news.md | 2 +- .../driver/driver-peripherals-lcd-des.md | 3 +- .../driver/driver-peripherals-touch-des.md | 7 +- .../driver/driver-platform-gpio-des.md | 2 +- .../driver/driver-platform-spi-des.md | 20 +- .../get-code/figure/{3-22.png => 3-27.png} | Bin en/device-dev/get-code/gettools-acquire.md | 9 +- en/device-dev/get-code/gettools-ide.md | 2 +- en/device-dev/get-code/sourcecode-acquire.md | 8 +- en/device-dev/glossary/glossary.md | 99 +- .../public_sys-resources/icon-caution.gif | Bin 580 -> 0 bytes .../public_sys-resources/icon-danger.gif | Bin 580 -> 0 bytes .../public_sys-resources/icon-note.gif | Bin 394 -> 0 bytes .../public_sys-resources/icon-notice.gif | Bin 406 -> 0 bytes .../public_sys-resources/icon-tip.gif | Bin 253 -> 0 bytes .../public_sys-resources/icon-warning.gif | Bin 580 -> 0 bytes en/device-dev/guide/Readme-EN.md | 8 +- ...e.md => device-camera-visual-firstpage.md} | 2 - en/device-dev/guide/device-camera-visual.md | 2 +- ..._clockapp_des.md => device-clock-guide.md} | 12 +- en/device-dev/guide/device-driver-demo.md | 2 +- .../guide/device-outerdriver-demo.md | 4 +- en/device-dev/guide/device-wifi.md | 4 +- ...ntrol.md => device-wlan-led-outcontrol.md} | 0 ...{device-wifi-sdk.md => device-wlan-sdk.md} | 0 en/device-dev/guide/device.md | 2 +- en/device-dev/kernel/Readme-EN.md | 259 ++- ...-result.png => changing-the-directory.png} | Bin ...for-the-hello-harmony-txt-file-to-666.png} | Bin ...nd-output-19.png => command-output-24.png} | Bin ...cpu-accessing-the-memory-or-peripheral.png | Bin 0 -> 17533 bytes .../figure/cpu-accessing-the-memory.png | Bin 0 -> 32681 bytes ...ying-content-of-the-current-directory.png} | Bin ...ying-the-content-of-hello-harmony-txt.png} | Bin ...th.png => displaying-the-current-path.png} | Bin .../kernel/figure/dynamic-loading-process.png | Bin 0 -> 59235 bytes .../figure/dynamic-memory-core-algorithm.png | Bin 0 -> 58123 bytes ...dynamic-memory-management-structure-20.png | Bin 0 -> 32606 bytes .../dynamic-memory-management-structure.png | Bin 0 -> 36975 bytes .../figure/elf-file-linking-process.png | Bin 0 -> 28672 bytes .../figure/en-us_image_0000001127390512.png | Bin 0 -> 13381 bytes .../figure/en-us_image_0000001127519136.png | Bin 0 -> 43891 bytes .../figure/en-us_image_0000001127520662.png | Bin 0 -> 25309 bytes .../figure/en-us_image_0000001132778524.png | Bin 0 -> 48620 bytes .../figure/en-us_image_0000001132935054.png | Bin 0 -> 14495 bytes ...4.png => en-us_image_0000001133848164.png} | Bin ...3.png => en-us_image_0000001133848370.png} | Bin ...3.png => en-us_image_0000001133848906.png} | Bin ...0.png => en-us_image_0000001134008030.png} | Bin ...7.png => en-us_image_0000001134008686.png} | Bin ...3.png => en-us_image_0000001134008688.png} | Bin .../figure/en-us_image_0000001173429547.png | Bin 0 -> 107042 bytes .../figure/en-us_image_0000001173449871.png | Bin 0 -> 45096 bytes .../figure/en-us_image_0000001176974089.png | Bin 0 -> 52119 bytes .../figure/en-us_image_0000001178856385.png | Bin 0 -> 511181 bytes ...8.png => en-us_image_0000001179847649.png} | Bin ...0.png => en-us_image_0000001179848349.png} | Bin ...8.png => en-us_image_0000001179848731.png} | Bin ...6.png => en-us_image_0000001179967527.png} | Bin ...5.png => en-us_image_0000001179967909.png} | Bin .../figure/en-us_image_0000001191018697.png | Bin 0 -> 28182 bytes .../figure/event-working-mechanism-21.png | Bin 0 -> 33007 bytes .../kernel/figure/event-working-mechanism.png | Bin 0 -> 33007 bytes .../exported-symbol-table-information.png | Bin 0 -> 9281 bytes en/device-dev/kernel/figure/futex-design.jpg | Bin 0 -> 830374 bytes .../figure/heap-memory-core-algorithm.png | Bin 0 -> 51453 bytes .../kernel/figure/kernel-architecture.png | Bin 0 -> 28052 bytes .../kernel/figure/kernel-startup-process.png | Bin 0 -> 45752 bytes ...-m-kernel-dynamic-loading-architecture.png | Bin 0 -> 16809 bytes ...-virtual-and-physical-memory-addresses.png | Bin 0 -> 9361 bytes .../figure/mutex-working-mechanism-23.png | Bin 0 -> 39810 bytes .../kernel/figure/mutex-working-mechanism.png | Bin 0 -> 39810 bytes .../overall-file-system-architecture.png | Bin 0 -> 16983 bytes .../physical-memory-usage-distribution.png | Bin 0 -> 9259 bytes .../figure/process-of-creating-a-vnode.png | Bin 0 -> 38518 bytes .../figure/process-of-loading-an-elf-file.png | Bin 0 -> 9475 bytes .../figure/process-of-locating-a-file.png | Bin 0 -> 51389 bytes ...ocess.png => process-state-transition.png} | Bin en/device-dev/kernel/figure/process-tree.png | Bin 0 -> 15699 bytes .../figure/program-execution-process.png | Bin 0 -> 82026 bytes ...ng-information-about-software-timer-1.png} | Bin .../reading-and-writing-data-in-a-queue.png | Bin 0 -> 14495 bytes ...nship-between-the-vfs-and-file-systems.png | Bin 17437 -> 0 bytes .../kernel/figure/releasing-memory.png | Bin 0 -> 45429 bytes .../kernel/figure/requesting-memory.png | Bin 0 -> 43065 bytes .../figure/semaphore-working-mechanism-22.png | Bin 0 -> 41616 bytes .../figure/semaphore-working-mechanism.png | Bin 0 -> 41616 bytes ...ng => snipaste_2021-01-26_10-38-58-25.png} | Bin ...ng => snipaste_2021-01-26_10-38-58-26.png} | Bin .../figure/stack-analysis-mechanism.png | Bin 0 -> 42471 bytes en/device-dev/kernel/figure/static-memory.png | Bin 0 -> 11527 bytes en/device-dev/kernel/figure/system-call.png | Bin 0 -> 24801 bytes .../kernel/figure/task-state-transition.png | Bin 0 -> 12567 bytes ...thread.png => thread-state-transition.png} | Bin .../tree-structure-of-the-file-system.png | Bin 10047 -> 0 bytes .../kernel/figure/vdso-system-design.jpg | Bin 0 -> 840597 bytes .../kernel/kernel-basic-mini-time.md | 7 + en/device-dev/kernel/kernel-lite-mini.md | 11 + .../kernel/kernel-lite-small-basic.md | 11 - .../kernel/kernel-lite-small-file-fat.md | 108 -- .../kernel/kernel-lite-small-file-jffs.md | 171 -- .../kernel/kernel-lite-small-file-nfs.md | 163 -- .../kernel/kernel-lite-small-file-ramfs.md | 90 - .../kernel/kernel-lite-small-file-vfs.md | 171 -- .../kernel/kernel-lite-small-file.md | 54 - .../kernel/kernel-lite-small-lib-differ.md | 96 - en/device-dev/kernel/kernel-lite-small-lib.md | 7 - .../kernel/kernel-lite-small-memory.md | 353 ---- en/device-dev/kernel/kernel-lite-small-net.md | 303 --- .../kernel/kernel-lite-small-process.md | 301 --- .../kernel-lite-small-shell-cmd-file.md | 45 - .../kernel/kernel-lite-small-shell-cmd-mag.md | 40 - .../kernel/kernel-lite-small-shell-cmd-net.md | 25 - .../kernel/kernel-lite-small-shell-cmd-sys.md | 47 - .../kernel/kernel-lite-small-shell-cmd.md | 13 - .../kernel/kernel-lite-small-shell.md | 15 - .../kernel/kernel-lite-small-thread.md | 702 ------- en/device-dev/kernel/kernel-lite-small.md | 12 +- en/device-dev/kernel/kernel-lite.md | 2 + en/device-dev/kernel/kernel-memory-inner.md | 9 + en/device-dev/kernel/kernel-mini-app.md | 9 + en/device-dev/kernel/kernel-mini-appx-code.md | 332 ++++ .../kernel/kernel-mini-appx-data-list.md | 191 ++ en/device-dev/kernel/kernel-mini-appx-data.md | 5 + .../kernel/kernel-mini-appx-lib-cmsis.md | 487 +++++ .../kernel/kernel-mini-appx-lib-posix.md | 1637 +++++++++++++++++ en/device-dev/kernel/kernel-mini-appx-lib.md | 7 + .../kernel-mini-basic-interrupt-concept.md | 37 + .../kernel-mini-basic-interrupt-guide.md | 130 ++ .../kernel/kernel-mini-basic-interrupt.md | 7 + .../kernel-mini-basic-ipc-event-basic.md | 50 + .../kernel-mini-basic-ipc-event-guide.md | 194 ++ .../kernel/kernel-mini-basic-ipc-event.md | 7 + .../kernel-mini-basic-ipc-mutex-basic.md | 19 + .../kernel-mini-basic-ipc-mutex-guide.md | 205 +++ .../kernel/kernel-mini-basic-ipc-mutex.md | 7 + .../kernel-mini-basic-ipc-queue-basic.md | 67 + .../kernel-mini-basic-ipc-queue-guide.md | 199 ++ .../kernel/kernel-mini-basic-ipc-queue.md | 7 + .../kernel/kernel-mini-basic-ipc-sem-basic.md | 53 + .../kernel/kernel-mini-basic-ipc-sem-guide.md | 206 +++ .../kernel/kernel-mini-basic-ipc-sem.md | 7 + en/device-dev/kernel/kernel-mini-basic-ipc.md | 11 + .../kernel/kernel-mini-basic-memory-basic.md | 17 + .../kernel-mini-basic-memory-dynamic.md | 227 +++ .../kernel/kernel-mini-basic-memory-static.md | 182 ++ .../kernel/kernel-mini-basic-memory.md | 9 + .../kernel/kernel-mini-basic-soft-basic.md | 54 + .../kernel/kernel-mini-basic-soft-guide.md | 218 +++ .../kernel/kernel-mini-basic-soft.md | 7 + .../kernel/kernel-mini-basic-task-basic.md | 96 + .../kernel/kernel-mini-basic-task-guide.md | 306 +++ .../kernel/kernel-mini-basic-task.md | 7 + .../kernel/kernel-mini-basic-time-basic.md | 23 + .../kernel/kernel-mini-basic-time-guide.md | 157 ++ en/device-dev/kernel/kernel-mini-basic.md | 15 + .../kernel/kernel-mini-extend-cpup-basic.md | 31 + .../kernel/kernel-mini-extend-cpup-guide.md | 163 ++ .../kernel/kernel-mini-extend-cpup.md | 7 + ...ernel-mini-extend-dynamic-loading-basic.md | 91 + ...ernel-mini-extend-dynamic-loading-guide.md | 187 ++ .../kernel-mini-extend-dynamic-loading.md | 7 + .../kernel/kernel-mini-extend-file-fat.md | 177 ++ .../kernel/kernel-mini-extend-file-lit.md | 7 + .../kernel-mini-extend-file-littlefs-basic.md | 6 + .../kernel-mini-extend-file-littlefs-guide.md | 72 + .../kernel/kernel-mini-extend-file.md | 204 ++ .../kernel/kernel-mini-extend-support.md | 85 + en/device-dev/kernel/kernel-mini-extend.md | 11 + .../kernel/kernel-mini-imemory-debug-det.md | 128 ++ .../kernel/kernel-mini-memory-debug-cet.md | 85 + .../kernel/kernel-mini-memory-debug-mes.md | 116 ++ .../kernel/kernel-mini-memory-debug.md | 11 + .../kernel/kernel-mini-memory-exception.md | 329 ++++ .../kernel/kernel-mini-memory-trace.md | 196 ++ en/device-dev/kernel/kernel-mini-overview.md | 67 + .../kernel/kernel-small-apx-bitwise.md | 125 ++ en/device-dev/kernel/kernel-small-apx-dll.md | 229 +++ ...tandard.md => kernel-small-apx-library.md} | 132 +- .../kernel/kernel-small-apx-structure.md | 7 + en/device-dev/kernel/kernel-small-apx.md | 7 + .../kernel/kernel-small-basic-atomic.md | 288 +++ .../kernel-small-basic-inner-reflect.md | 88 + .../kernel/kernel-small-basic-interrupt.md | 147 ++ .../kernel/kernel-small-basic-memory-heap.md | 249 +++ .../kernel-small-basic-memory-physical.md | 228 +++ .../kernel-small-basic-memory-virtual.md | 333 ++++ .../kernel/kernel-small-basic-memory.md | 11 + .../kernel-small-basic-process-process.md | 178 ++ .../kernel-small-basic-process-scheduler.md | 63 + .../kernel-small-basic-process-thread.md | 331 ++++ .../kernel/kernel-small-basic-process.md | 9 + .../kernel/kernel-small-basic-softtimer.md | 236 +++ .../kernel/kernel-small-basic-time.md | 153 ++ .../kernel/kernel-small-basic-trans-event.md | 251 +++ .../kernel/kernel-small-basic-trans-mutex.md | 317 ++++ .../kernel/kernel-small-basic-trans-queue.md | 266 +++ .../kernel/kernel-small-basic-trans-rwlock.md | 134 ++ .../kernel-small-basic-trans-semaphore.md | 273 +++ .../kernel-small-basic-trans-user-mutex.md | 64 + .../kernel-small-basic-trans-user-signal.md | 86 + .../kernel/kernel-small-basic-trans.md | 17 + en/device-dev/kernel/kernel-small-basics.md | 17 + .../kernel/kernel-small-bundles-fs-new.md | 223 +++ .../kernel-small-bundles-fs-support-fat.md | 45 + .../kernel-small-bundles-fs-support-jffs2.md | 121 ++ .../kernel-small-bundles-fs-support-nfs.md | 138 ++ .../kernel-small-bundles-fs-support-procfs.md | 85 + .../kernel-small-bundles-fs-support-ramfs.md | 64 + .../kernel/kernel-small-bundles-fs-support.md | 13 + .../kernel/kernel-small-bundles-fs-virtual.md | 794 ++++++++ .../kernel/kernel-small-bundles-fs.md | 16 + .../kernel/kernel-small-bundles-ipc.md | 70 + .../kernel/kernel-small-bundles-linking.md | 82 + .../kernel/kernel-small-bundles-share.md | 47 + .../kernel/kernel-small-bundles-system.md | 176 ++ en/device-dev/kernel/kernel-small-bundles.md | 13 + .../kernel-small-debug-memory-corrupt.md | 84 + .../kernel/kernel-small-debug-memory-info.md | 112 ++ .../kernel/kernel-small-debug-memory-leak.md | 126 ++ .../kernel/kernel-small-debug-memory.md | 9 + .../kernel/kernel-small-debug-other.md | 7 + .../kernel/kernel-small-debug-process-cpu.md | 195 ++ .../kernel/kernel-small-debug-process.md | 5 + ...e.md => kernel-small-debug-shell-build.md} | 28 +- ...d => kernel-small-debug-shell-cmd-cpup.md} | 27 +- ...d => kernel-small-debug-shell-cmd-date.md} | 24 +- ... => kernel-small-debug-shell-cmd-dmesg.md} | 20 +- ...d => kernel-small-debug-shell-cmd-exec.md} | 20 +- ...d => kernel-small-debug-shell-cmd-free.md} | 42 +- ...d => kernel-small-debug-shell-cmd-help.md} | 10 +- ...md => kernel-small-debug-shell-cmd-hwi.md} | 40 +- ...d => kernel-small-debug-shell-cmd-kill.md} | 26 +- ...md => kernel-small-debug-shell-cmd-log.md} | 20 +- ... kernel-small-debug-shell-cmd-memcheck.md} | 10 +- ...md => kernel-small-debug-shell-cmd-oom.md} | 47 +- ...md => kernel-small-debug-shell-cmd-pmm.md} | 32 +- ... => kernel-small-debug-shell-cmd-reset.md} | 8 +- ...md => kernel-small-debug-shell-cmd-sem.md} | 32 +- ... => kernel-small-debug-shell-cmd-stack.md} | 24 +- ....md => kernel-small-debug-shell-cmd-su.md} | 26 +- ... => kernel-small-debug-shell-cmd-swtmr.md} | 46 +- ...> kernel-small-debug-shell-cmd-sysinfo.md} | 30 +- ...d => kernel-small-debug-shell-cmd-task.md} | 44 +- ... => kernel-small-debug-shell-cmd-uname.md} | 34 +- ...md => kernel-small-debug-shell-cmd-vmm.md} | 50 +- ... => kernel-small-debug-shell-cmd-watch.md} | 44 +- .../kernel/kernel-small-debug-shell-cmd.md | 47 + .../kernel-small-debug-shell-details.md | 13 + ...n.md => kernel-small-debug-shell-error.md} | 2 +- ...d => kernel-small-debug-shell-file-cat.md} | 16 +- ...md => kernel-small-debug-shell-file-cd.md} | 18 +- ...=> kernel-small-debug-shell-file-chgrp.md} | 10 +- ...=> kernel-small-debug-shell-file-chmod.md} | 14 +- ...=> kernel-small-debug-shell-file-chown.md} | 21 +- ...md => kernel-small-debug-shell-file-cp.md} | 16 +- ...> kernel-small-debug-shell-file-format.md} | 20 +- ...md => kernel-small-debug-shell-file-ls.md} | 19 +- ... => kernel-small-debug-shell-file-lsfd.md} | 10 +- ...=> kernel-small-debug-shell-file-mkdir.md} | 12 +- ...=> kernel-small-debug-shell-file-mount.md} | 20 +- ...kernel-small-debug-shell-file-partinfo.md} | 16 +- ...ernel-small-debug-shell-file-partition.md} | 12 +- ...d => kernel-small-debug-shell-file-pwd.md} | 12 +- ...md => kernel-small-debug-shell-file-rm.md} | 14 +- ...=> kernel-small-debug-shell-file-rmdir.md} | 12 +- ...> kernel-small-debug-shell-file-statfs.md} | 16 +- ... => kernel-small-debug-shell-file-sync.md} | 10 +- ...=> kernel-small-debug-shell-file-touch.md} | 14 +- ...> kernel-small-debug-shell-file-umount.md} | 14 +- ...=> kernel-small-debug-shell-file-write.md} | 18 +- .../kernel/kernel-small-debug-shell-file.md | 45 + ...e.md => kernel-small-debug-shell-guide.md} | 56 +- .../kernel-small-debug-shell-magickey.md | 44 + ...md => kernel-small-debug-shell-net-arp.md} | 36 +- ... kernel-small-debug-shell-net-dhclient.md} | 16 +- ...md => kernel-small-debug-shell-net-dns.md} | 22 +- ... kernel-small-debug-shell-net-ifconfig.md} | 131 +- ...> kernel-small-debug-shell-net-ipdebug.md} | 4 +- ...> kernel-small-debug-shell-net-netstat.md} | 22 +- ...> kernel-small-debug-shell-net-ntpdate.md} | 14 +- ...d => kernel-small-debug-shell-net-ping.md} | 25 +- ... => kernel-small-debug-shell-net-ping6.md} | 16 +- ...=> kernel-small-debug-shell-net-telnet.md} | 12 +- ...d => kernel-small-debug-shell-net-tftp.md} | 20 +- .../kernel/kernel-small-debug-shell-net.md | 25 + ...d => kernel-small-debug-shell-overview.md} | 18 +- .../kernel/kernel-small-debug-shell.md | 15 + .../kernel-small-debug-trace-other-faqs.md | 36 + ...ernel-small-debug-trace-other-lastwords.md | 96 + .../kernel/kernel-small-debug-trace.md | 102 + en/device-dev/kernel/kernel-small-debug.md | 13 + en/device-dev/kernel/kernel-small-overview.md | 97 + .../kernel/kernel-small-start-kernel.md | 135 ++ .../kernel/kernel-small-start-user.md | 82 + en/device-dev/kernel/kernel-small-start.md | 7 + ...ard-des.md => kernel-standard-overview.md} | 0 en/device-dev/kernel/kernel-standard.md | 2 +- en/device-dev/porting/Readme-EN.md | 63 +- ...bundle.md => porting-chip-board-bundle.md} | 1 - ...ent.md => porting-chip-board-component.md} | 0 ...-drive.md => porting-chip-board-driver.md} | 0 ...board-hal.md => porting-chip-board-hal.md} | 0 ...view.md => porting-chip-board-overview.md} | 2 +- ...board-xts.md => porting-chip-board-xts.md} | 0 en/device-dev/porting/porting-chip-board.md | 15 + ...lant-chip-faqs.md => porting-chip-faqs.md} | 0 ...t.md => porting-chip-kernel-adjustment.md} | 0 ...iew.md => porting-chip-kernel-overview.md} | 0 ...erify.md => porting-chip-kernel-verify.md} | 2 +- en/device-dev/porting/porting-chip-kernel.md | 9 + ...knows.md => porting-chip-prepare-knows.md} | 4 +- ...ess.md => porting-chip-prepare-process.md} | 1 - ...hip-prepare.md => porting-chip-prepare.md} | 4 +- en/device-dev/porting/porting-minichip.md | 11 + ...oom.md => porting-smallchip-driver-oom.md} | 0 ...d => porting-smallchip-driver-overview.md} | 0 ...at.md => porting-smallchip-driver-plat.md} | 0 .../porting/porting-smallchip-driver.md | 9 + ...nel-a.md => porting-smallchip-kernel-a.md} | 1 + ...x.md => porting-smallchip-kernel-linux.md} | 1 - ...-kernel.md => porting-smallchip-kernel.md} | 4 +- ... => porting-smallchip-prepare-building.md} | 0 ....md => porting-smallchip-prepare-needs.md} | 0 ...repare.md => porting-smallchip-prepare.md} | 4 +- ...lant-smallchip.md => porting-smallchip.md} | 6 +- ...y-cmake.md => porting-thirdparty-cmake.md} | 0 ...file.md => porting-thirdparty-makefile.md} | 4 +- ...view.md => porting-thirdparty-overview.md} | 0 en/device-dev/porting/porting-thirdparty.md | 9 + en/device-dev/porting/porting.md | 9 + .../porting/standard-system-porting-guide.md | 377 ++++ .../porting/transplant-chip-board.md | 15 - .../porting/transplant-chip-kernel.md | 9 - en/device-dev/porting/transplant-minichip.md | 11 - .../porting/transplant-smallchip-drive.md | 9 - .../porting/transplant-thirdparty.md | 9 - en/device-dev/porting/transplant.md | 9 - .../figure/2021-01-27_170334-17.png | Bin 16573 -> 0 bytes .../figure/2021-01-27_170334-18.png | Bin 386 -> 16573 bytes .../figure/2021-01-27_170334-19.png | Bin 0 -> 386 bytes .../3516\346\255\243\351\235\242-17.png" | Bin 0 -> 206035 bytes .../quickstart-lite-env-setup-lin.md | 3 +- ...quickstart-lite-steps-board3861-running.md | 4 +- ...quickstart-lite-steps-board3861-setting.md | 9 - .../quick-start/quickstart-standard-burn.md | 6 +- .../quickstart-standard-description.md | 2 +- ...quickstart-standard-package-environment.md | 2 +- en/device-dev/security/Readme-EN.md | 4 +- en/device-dev/security/safety.md | 7 + ...rity.md => security-guidelines-overall.md} | 0 ...vacy.md => security-privacy-protection.md} | 4 +- en/device-dev/subsystems/Readme-EN.md | 18 +- .../subsystems/oem_subsys_utils_guide.md | 2 - ... subsys-application-framework-envbuild.md} | 2 +- .../subsys-application-framework-guide.md | 2 - .../subsys-application-framework-overview.md | 1 - .../subsys-application-framework.md | 2 +- .../subsystems/subsys-build-mini-lite.md | 1 - ...s-sensor-demo.md => subsys-densor-demo.md} | 0 ...sensor-guide.md => subsys-densor-guide.md} | 0 ...-overview.md => subsys-densor-overview.md} | 0 en/device-dev/subsystems/subsys-densor.md | 9 + .../subsystems/subsys-dfx-hisyseventread.md | 103 -- ...de3.md => subsys-graphics-common-guide.md} | 0 ....md => subsys-graphics-container-guide.md} | 0 ...de2.md => subsys-graphics-layout-guide.md} | 0 en/device-dev/subsystems/subsys-graphics.md | 6 +- .../subsys-multimedia-camera-overview.md | 1 - en/device-dev/subsystems/subsys-sensor.md | 9 - .../subsystems/subsys-testguide-test.md | 33 +- en/device-dev/subsystems/subsys-toolchain.md | 7 +- en/device-dev/subsystems/subsys-xts-guide.md | 2 - en/device-dev/subsystems/subsys.md | 4 +- en/readme.md | 24 +- summary.md | 1018 ---------- zh-cn/device-dev/Readme-CN.md | 10 +- .../bundles/bundles-demo-hpmdescription.md | 2 +- zh-cn/device-dev/bundles/bundles.md | 2 +- .../driver/driver-hdf-development.md | 2 - zh-cn/device-dev/driver/driver-hdf.md | 15 + .../driver/driver-peripherals-lcd-des.md | 1 - .../driver/driver-peripherals-touch-des.md | 7 +- .../driver/driver-platform-i2c-des.md | 2 +- .../driver/driver-platform-spi-des.md | 2 +- zh-cn/device-dev/driver/driver.md | 12 +- .../get-code/figure/{3-20.png => 3-28.png} | Bin zh-cn/device-dev/get-code/gettools-acquire.md | 9 +- zh-cn/device-dev/get-code/gettools-ide.md | 2 +- .../device-dev/get-code/sourcecode-acquire.md | 9 +- zh-cn/device-dev/glossary/glossary.md | 98 +- zh-cn/device-dev/guide/Readme-CN.md | 69 +- .../guide/device-camera-control-example.md | 2 +- ...e.md => device-camera-visual-firstpage.md} | 2 - .../guide/device-camera-visual-run.md | 2 +- .../device-dev/guide/device-camera-visual.md | 2 +- zh-cn/device-dev/guide/device-clock-guide.md | 4 +- zh-cn/device-dev/guide/device-driver-demo.md | 2 +- .../guide/device-iotcamera-control-example.md | 2 +- zh-cn/device-dev/guide/device-lite.md | 9 + .../guide/device-outerdriver-demo.md | 6 +- zh-cn/device-dev/guide/device-standard.md | 9 + ...{device-wifi-sdk.md => device-wlan-sdk.md} | 0 .../guide/{device-wifi.md => device-wlan.md} | 4 +- zh-cn/device-dev/guide/device.md | 14 +- ...-led-outcontrol.md => oem_wifi_sdk_des.md} | 4 +- zh-cn/device-dev/kernel/Readme-CN.md | 85 +- .../figure/zh-cn_image_0000001179063579.png | Bin 38403 -> 0 bytes .../figure/zh-cn_image_0000001191018697.png | Bin 0 -> 35313 bytes ...7\347\244\272\346\204\217\345\233\276.png" | Bin 28762 -> 22893 bytes ...6\347\244\272\346\204\217\345\233\276.png" | Bin 29664 -> 23443 bytes ...45\277\203\347\256\227\346\263\225-19.png" | Bin 49593 -> 51453 bytes ...3\344\275\223\347\273\223\346\236\204.png" | Bin ...4\347\244\272\346\204\217\345\233\276.png" | Bin .../kernel-mini-extend-dynamic-loading.md | 2 +- zh-cn/device-dev/kernel/kernel-mini-extend.md | 2 +- .../kernel-small-basic-inner-reflect.md | 2 +- .../kernel-small-basic-memory-physical.md | 10 +- .../kernel-small-basic-memory-virtual.md | 100 +- .../kernel-small-basic-process-process.md | 2 +- .../kernel/kernel-small-basic-trans-mutex.md | 14 +- .../kernel/kernel-small-basic-trans-queue.md | 5 +- .../kernel-small-basic-trans-semaphore.md | 6 +- .../kernel-small-basic-trans-user-signal.md | 23 +- .../kernel/kernel-small-bundles-fs-new.md | 4 +- .../kernel-small-bundles-fs-support-jffs2.md | 4 +- .../kernel/kernel-small-bundles-fs-virtual.md | 6 +- .../kernel/kernel-small-bundles-fs.md | 5 +- .../kernel/kernel-small-bundles-linking.md | 4 +- .../kernel-small-debug-shell-cmd-free.md | 4 +- .../kernel-small-debug-trace-other-faqs.md | 4 +- .../kernel/kernel-small-debug-trace.md | 2 +- .../kernel/kernel-small-overview.md | 2 +- .../kernel/kernel-small-start-user.md | 6 +- zh-cn/device-dev/porting/Readme-CN.md | 37 +- zh-cn/device-dev/porting/figure/HDF_WIFI.png | Bin 22043 -> 60062 bytes .../figure/WLAN\350\212\257\347\211\207.png" | Bin 0 -> 22043 bytes ...d => oem_transplant_chip_prepare_knows.md} | 4 +- ...bundle.md => porting-chip-board-bundle.md} | 1 - ...ent.md => porting-chip-board-component.md} | 0 ...-drive.md => porting-chip-board-driver.md} | 0 ...board-hal.md => porting-chip-board-hal.md} | 0 ...view.md => porting-chip-board-overview.md} | 2 +- ...board-xts.md => porting-chip-board-xts.md} | 0 .../device-dev/porting/porting-chip-board.md | 15 + ...lant-chip-faqs.md => porting-chip-faqs.md} | 0 ...t.md => porting-chip-kernel-adjustment.md} | 0 ...iew.md => porting-chip-kernel-overview.md} | 0 ...erify.md => porting-chip-kernel-verify.md} | 2 +- .../device-dev/porting/porting-chip-kernel.md | 9 + ...ess.md => porting-chip-prepare-process.md} | 1 - ...hip-prepare.md => porting-chip-prepare.md} | 4 +- zh-cn/device-dev/porting/porting-minichip.md | 11 + ...oom.md => porting-smallchip-driver-oom.md} | 0 ...d => porting-smallchip-driver-overview.md} | 0 ...at.md => porting-smallchip-driver-plat.md} | 0 .../porting/porting-smallchip-driver.md | 9 + ...nel-a.md => porting-smallchip-kernel-a.md} | 10 +- ...x.md => porting-smallchip-kernel-linux.md} | 1 - ...-kernel.md => porting-smallchip-kernel.md} | 4 +- ... => porting-smallchip-prepare-building.md} | 0 ....md => porting-smallchip-prepare-needs.md} | 0 ...repare.md => porting-smallchip-prepare.md} | 4 +- zh-cn/device-dev/porting/porting-smallchip.md | 9 + ...y-cmake.md => porting-thirdparty-cmake.md} | 10 +- ...file.md => porting-thirdparty-makefile.md} | 8 +- ...view.md => porting-thirdparty-overview.md} | 0 .../device-dev/porting/porting-thirdparty.md | 9 + zh-cn/device-dev/porting/porting.md | 11 + .../porting/standard-system-porting-guide.md | 887 +++++---- .../porting/transplant-chip-board.md | 15 - .../porting/transplant-chip-kernel.md | 9 - zh-cn/device-dev/porting/transplant-chip.md | 11 - .../device-dev/porting/transplant-minichip.md | 11 - .../porting/transplant-smallchip-drive.md | 9 - .../porting/transplant-smallchip.md | 9 - .../porting/transplant-thirdparty.md | 9 - zh-cn/device-dev/porting/transplant.md | 9 - .../quickstart-lite-steps-hi3861-running.md | 2 +- zh-cn/device-dev/security/Readme-CN.md | 4 +- ...rity.md => security-guidelines-overall.md} | 0 ...uide.md => security-privacy-protection.md} | 4 +- .../security/{safety.md => security.md} | 4 +- zh-cn/device-dev/subsystems/Readme-CN.md | 148 +- .../figure/zh-cn_image_0000001181934155.png | Bin 0 -> 16919 bytes ...0\345\255\220\347\263\273\347\273\237.png" | Bin 25609 -> 0 bytes ... subsys-application-framework-envbuild.md} | 0 .../subsys-application-framework-guide.md | 2 - .../subsys-application-framework-overview.md | 1 - .../subsys-application-framework.md | 2 +- .../subsystems/subsys-build-mini-lite.md | 5 +- .../subsystems/subsys-build-mini.md | 5 - .../subsystems/subsys-build-standard.md | 5 - ...s-sensor-demo.md => subsys-densor-demo.md} | 0 ...sensor-guide.md => subsys-densor-guide.md} | 0 ...-overview.md => subsys-densor-overview.md} | 0 zh-cn/device-dev/subsystems/subsys-densor.md | 9 + .../subsystems/subsys-dfx-hisyseventread.md | 103 -- ...de3.md => subsys-graphics-common-guide.md} | 0 ....md => subsys-graphics-container-guide.md} | 0 ...de2.md => subsys-graphics-layout-guide.md} | 0 .../device-dev/subsystems/subsys-graphics.md | 6 +- .../subsys-multimedia-camera-overview.md | 1 - .../subsys-security-communicationverify.md | 2 +- .../subsystems/subsys-security-overview.md | 33 +- .../subsystems/subsys-security-sigverify.md | 242 +-- zh-cn/device-dev/subsystems/subsys-sensor.md | 9 - .../subsystems/subsys-testguide-test.md | 11 +- .../subsystems/subsys-toolchain-hdc-guide.md | 2 +- .../device-dev/subsystems/subsys-toolchain.md | 7 +- .../subsystems/subsys-utils-guide.md | 2 - .../device-dev/subsystems/subsys-xts-guide.md | 5 +- zh-cn/device-dev/subsystems/subsys.md | 10 +- zh-cn/readme.md | 10 +- 538 files changed, 17532 insertions(+), 6606 deletions(-) rename en/device-dev/{overview.md => Readme-EN.md} (90%) rename en/device-dev/bundles/figure/{hardware-connections-23.png => 3516dv300.png} (100%) delete mode 100644 en/device-dev/bundles/figure/en-us_image_0000001051452177.png create mode 100644 en/device-dev/bundles/figure/en-us_image_0000001134127844.png delete mode 100755 en/device-dev/bundles/figure/hardware-connections-24.png rename en/device-dev/bundles/figure/{successful-installation-(scons-version-requirement-3-0-4-or-later)-25.png => successful-installation-(scons-version-requirement-3-0-4-or-later)-28.png} (100%) delete mode 100644 "en/device-dev/bundles/figure/\347\273\204\344\273\2660924.png" create mode 100644 "en/device-dev/bundles/figure/\347\273\204\344\273\266\345\222\214\345\217\221\350\241\214\347\211\210\347\232\204\346\236\204\346\210\220-\350\213\261\346\226\207.png" rename en/device-dev/driver/{driver-hdf.md => drive-hdf.md} (40%) rename en/device-dev/driver/{driver-peripherals.md => drive-peripherals.md} (100%) rename en/device-dev/driver/{driver-platform.md => drive-platform.md} (86%) rename en/device-dev/driver/{driver.md => drive.md} (36%) rename en/device-dev/get-code/figure/{3-22.png => 3-27.png} (100%) delete mode 100644 en/device-dev/glossary/public_sys-resources/icon-caution.gif delete mode 100644 en/device-dev/glossary/public_sys-resources/icon-danger.gif delete mode 100644 en/device-dev/glossary/public_sys-resources/icon-note.gif delete mode 100644 en/device-dev/glossary/public_sys-resources/icon-notice.gif delete mode 100644 en/device-dev/glossary/public_sys-resources/icon-tip.gif delete mode 100644 en/device-dev/glossary/public_sys-resources/icon-warning.gif rename en/device-dev/guide/{device-camera-visual-first-page.md => device-camera-visual-firstpage.md} (99%) rename en/device-dev/guide/{oem_device_clockapp_des.md => device-clock-guide.md} (96%) rename en/device-dev/guide/{device-wifi-led-outcontrol.md => device-wlan-led-outcontrol.md} (100%) rename en/device-dev/guide/{device-wifi-sdk.md => device-wlan-sdk.md} (100%) rename en/device-dev/kernel/figure/{directory-switching-result.png => changing-the-directory.png} (100%) rename en/device-dev/kernel/figure/{changing-the-permission-on-the-hello-harmony-txt-file-to-666.png => changing-the-permission-for-the-hello-harmony-txt-file-to-666.png} (100%) rename en/device-dev/kernel/figure/{command-output-19.png => command-output-24.png} (100%) create mode 100644 en/device-dev/kernel/figure/cpu-accessing-the-memory-or-peripheral.png create mode 100644 en/device-dev/kernel/figure/cpu-accessing-the-memory.png rename en/device-dev/kernel/figure/{viewing-content-of-the-current-directory.png => displaying-content-of-the-current-directory.png} (100%) rename en/device-dev/kernel/figure/{viewing-content-of-the-hello-harmony-txt-file.png => displaying-the-content-of-hello-harmony-txt.png} (100%) rename en/device-dev/kernel/figure/{querying-the-current-path.png => displaying-the-current-path.png} (100%) create mode 100644 en/device-dev/kernel/figure/dynamic-loading-process.png create mode 100644 en/device-dev/kernel/figure/dynamic-memory-core-algorithm.png create mode 100644 en/device-dev/kernel/figure/dynamic-memory-management-structure-20.png create mode 100644 en/device-dev/kernel/figure/dynamic-memory-management-structure.png create mode 100644 en/device-dev/kernel/figure/elf-file-linking-process.png create mode 100644 en/device-dev/kernel/figure/en-us_image_0000001127390512.png create mode 100644 en/device-dev/kernel/figure/en-us_image_0000001127519136.png create mode 100644 en/device-dev/kernel/figure/en-us_image_0000001127520662.png create mode 100644 en/device-dev/kernel/figure/en-us_image_0000001132778524.png create mode 100644 en/device-dev/kernel/figure/en-us_image_0000001132935054.png rename en/device-dev/kernel/figure/{en-us_image_0000001052810304.png => en-us_image_0000001133848164.png} (100%) rename en/device-dev/kernel/figure/{en-us_image_0000001054624363.png => en-us_image_0000001133848370.png} (100%) rename en/device-dev/kernel/figure/{en-us_image_0000001052370303.png => en-us_image_0000001133848906.png} (100%) rename en/device-dev/kernel/figure/{en-us_image_0000001053710680.png => en-us_image_0000001134008030.png} (100%) rename en/device-dev/kernel/figure/{en-us_image_0000001052370307.png => en-us_image_0000001134008686.png} (100%) rename en/device-dev/kernel/figure/{en-us_image_0000001051690323.png => en-us_image_0000001134008688.png} (100%) create mode 100644 en/device-dev/kernel/figure/en-us_image_0000001173429547.png create mode 100644 en/device-dev/kernel/figure/en-us_image_0000001173449871.png create mode 100644 en/device-dev/kernel/figure/en-us_image_0000001176974089.png create mode 100644 en/device-dev/kernel/figure/en-us_image_0000001178856385.png rename en/device-dev/kernel/figure/{en-us_image_0000001052530298.png => en-us_image_0000001179847649.png} (100%) rename en/device-dev/kernel/figure/{en-us_image_0000001052810300.png => en-us_image_0000001179848349.png} (100%) rename en/device-dev/kernel/figure/{en-us_image_0000001053224218.png => en-us_image_0000001179848731.png} (100%) rename en/device-dev/kernel/figure/{en-us_image_0000001053826366.png => en-us_image_0000001179967527.png} (100%) rename en/device-dev/kernel/figure/{en-us_image_0000001052370305.png => en-us_image_0000001179967909.png} (100%) create mode 100644 en/device-dev/kernel/figure/en-us_image_0000001191018697.png create mode 100644 en/device-dev/kernel/figure/event-working-mechanism-21.png create mode 100644 en/device-dev/kernel/figure/event-working-mechanism.png create mode 100644 en/device-dev/kernel/figure/exported-symbol-table-information.png create mode 100644 en/device-dev/kernel/figure/futex-design.jpg create mode 100644 en/device-dev/kernel/figure/heap-memory-core-algorithm.png create mode 100644 en/device-dev/kernel/figure/kernel-architecture.png create mode 100644 en/device-dev/kernel/figure/kernel-startup-process.png create mode 100644 en/device-dev/kernel/figure/liteos-m-kernel-dynamic-loading-architecture.png create mode 100644 en/device-dev/kernel/figure/mapping-between-the-virtual-and-physical-memory-addresses.png create mode 100644 en/device-dev/kernel/figure/mutex-working-mechanism-23.png create mode 100644 en/device-dev/kernel/figure/mutex-working-mechanism.png create mode 100644 en/device-dev/kernel/figure/overall-file-system-architecture.png create mode 100644 en/device-dev/kernel/figure/physical-memory-usage-distribution.png create mode 100644 en/device-dev/kernel/figure/process-of-creating-a-vnode.png create mode 100644 en/device-dev/kernel/figure/process-of-loading-an-elf-file.png create mode 100644 en/device-dev/kernel/figure/process-of-locating-a-file.png rename en/device-dev/kernel/figure/{state-transition-of-a-process.png => process-state-transition.png} (100%) create mode 100644 en/device-dev/kernel/figure/process-tree.png create mode 100644 en/device-dev/kernel/figure/program-execution-process.png rename en/device-dev/kernel/figure/{querying-information-about-a-specified-software-timer.png => querying-information-about-software-timer-1.png} (100%) create mode 100644 en/device-dev/kernel/figure/reading-and-writing-data-in-a-queue.png delete mode 100644 en/device-dev/kernel/figure/relationship-between-the-vfs-and-file-systems.png create mode 100644 en/device-dev/kernel/figure/releasing-memory.png create mode 100644 en/device-dev/kernel/figure/requesting-memory.png create mode 100644 en/device-dev/kernel/figure/semaphore-working-mechanism-22.png create mode 100644 en/device-dev/kernel/figure/semaphore-working-mechanism.png rename en/device-dev/kernel/figure/{snipaste_2021-01-26_10-38-58-20.png => snipaste_2021-01-26_10-38-58-25.png} (100%) rename en/device-dev/kernel/figure/{snipaste_2021-01-26_10-38-58-21.png => snipaste_2021-01-26_10-38-58-26.png} (100%) create mode 100644 en/device-dev/kernel/figure/stack-analysis-mechanism.png create mode 100644 en/device-dev/kernel/figure/static-memory.png create mode 100644 en/device-dev/kernel/figure/system-call.png create mode 100644 en/device-dev/kernel/figure/task-state-transition.png rename en/device-dev/kernel/figure/{state-transition-of-a-thread.png => thread-state-transition.png} (100%) delete mode 100644 en/device-dev/kernel/figure/tree-structure-of-the-file-system.png create mode 100644 en/device-dev/kernel/figure/vdso-system-design.jpg create mode 100644 en/device-dev/kernel/kernel-basic-mini-time.md delete mode 100644 en/device-dev/kernel/kernel-lite-small-basic.md delete mode 100644 en/device-dev/kernel/kernel-lite-small-file-fat.md delete mode 100644 en/device-dev/kernel/kernel-lite-small-file-jffs.md delete mode 100644 en/device-dev/kernel/kernel-lite-small-file-nfs.md delete mode 100644 en/device-dev/kernel/kernel-lite-small-file-ramfs.md delete mode 100644 en/device-dev/kernel/kernel-lite-small-file-vfs.md delete mode 100644 en/device-dev/kernel/kernel-lite-small-file.md delete mode 100644 en/device-dev/kernel/kernel-lite-small-lib-differ.md delete mode 100644 en/device-dev/kernel/kernel-lite-small-lib.md delete mode 100644 en/device-dev/kernel/kernel-lite-small-memory.md delete mode 100644 en/device-dev/kernel/kernel-lite-small-net.md delete mode 100644 en/device-dev/kernel/kernel-lite-small-process.md delete mode 100644 en/device-dev/kernel/kernel-lite-small-shell-cmd-file.md delete mode 100644 en/device-dev/kernel/kernel-lite-small-shell-cmd-mag.md delete mode 100644 en/device-dev/kernel/kernel-lite-small-shell-cmd-net.md delete mode 100644 en/device-dev/kernel/kernel-lite-small-shell-cmd-sys.md delete mode 100644 en/device-dev/kernel/kernel-lite-small-shell-cmd.md delete mode 100644 en/device-dev/kernel/kernel-lite-small-shell.md delete mode 100644 en/device-dev/kernel/kernel-lite-small-thread.md create mode 100644 en/device-dev/kernel/kernel-memory-inner.md create mode 100644 en/device-dev/kernel/kernel-mini-app.md create mode 100644 en/device-dev/kernel/kernel-mini-appx-code.md create mode 100644 en/device-dev/kernel/kernel-mini-appx-data-list.md create mode 100644 en/device-dev/kernel/kernel-mini-appx-data.md create mode 100644 en/device-dev/kernel/kernel-mini-appx-lib-cmsis.md create mode 100644 en/device-dev/kernel/kernel-mini-appx-lib-posix.md create mode 100644 en/device-dev/kernel/kernel-mini-appx-lib.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-interrupt-concept.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-interrupt-guide.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-interrupt.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-ipc-event-basic.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-ipc-event-guide.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-ipc-event.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-ipc-mutex-basic.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-ipc-mutex-guide.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-ipc-mutex.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-ipc-queue-basic.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-ipc-queue-guide.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-ipc-queue.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-ipc-sem-basic.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-ipc-sem-guide.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-ipc-sem.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-ipc.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-memory-basic.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-memory-dynamic.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-memory-static.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-memory.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-soft-basic.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-soft-guide.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-soft.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-task-basic.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-task-guide.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-task.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-time-basic.md create mode 100644 en/device-dev/kernel/kernel-mini-basic-time-guide.md create mode 100644 en/device-dev/kernel/kernel-mini-basic.md create mode 100644 en/device-dev/kernel/kernel-mini-extend-cpup-basic.md create mode 100644 en/device-dev/kernel/kernel-mini-extend-cpup-guide.md create mode 100644 en/device-dev/kernel/kernel-mini-extend-cpup.md create mode 100644 en/device-dev/kernel/kernel-mini-extend-dynamic-loading-basic.md create mode 100644 en/device-dev/kernel/kernel-mini-extend-dynamic-loading-guide.md create mode 100644 en/device-dev/kernel/kernel-mini-extend-dynamic-loading.md create mode 100644 en/device-dev/kernel/kernel-mini-extend-file-fat.md create mode 100644 en/device-dev/kernel/kernel-mini-extend-file-lit.md create mode 100644 en/device-dev/kernel/kernel-mini-extend-file-littlefs-basic.md create mode 100644 en/device-dev/kernel/kernel-mini-extend-file-littlefs-guide.md create mode 100644 en/device-dev/kernel/kernel-mini-extend-file.md create mode 100644 en/device-dev/kernel/kernel-mini-extend-support.md create mode 100644 en/device-dev/kernel/kernel-mini-extend.md create mode 100644 en/device-dev/kernel/kernel-mini-imemory-debug-det.md create mode 100644 en/device-dev/kernel/kernel-mini-memory-debug-cet.md create mode 100644 en/device-dev/kernel/kernel-mini-memory-debug-mes.md create mode 100644 en/device-dev/kernel/kernel-mini-memory-debug.md create mode 100644 en/device-dev/kernel/kernel-mini-memory-exception.md create mode 100644 en/device-dev/kernel/kernel-mini-memory-trace.md create mode 100644 en/device-dev/kernel/kernel-mini-overview.md create mode 100644 en/device-dev/kernel/kernel-small-apx-bitwise.md create mode 100644 en/device-dev/kernel/kernel-small-apx-dll.md rename en/device-dev/kernel/{kernel-lite-small-lib-standard.md => kernel-small-apx-library.md} (46%) create mode 100644 en/device-dev/kernel/kernel-small-apx-structure.md create mode 100644 en/device-dev/kernel/kernel-small-apx.md create mode 100644 en/device-dev/kernel/kernel-small-basic-atomic.md create mode 100644 en/device-dev/kernel/kernel-small-basic-inner-reflect.md create mode 100644 en/device-dev/kernel/kernel-small-basic-interrupt.md create mode 100644 en/device-dev/kernel/kernel-small-basic-memory-heap.md create mode 100644 en/device-dev/kernel/kernel-small-basic-memory-physical.md create mode 100644 en/device-dev/kernel/kernel-small-basic-memory-virtual.md create mode 100644 en/device-dev/kernel/kernel-small-basic-memory.md create mode 100644 en/device-dev/kernel/kernel-small-basic-process-process.md create mode 100644 en/device-dev/kernel/kernel-small-basic-process-scheduler.md create mode 100644 en/device-dev/kernel/kernel-small-basic-process-thread.md create mode 100644 en/device-dev/kernel/kernel-small-basic-process.md create mode 100644 en/device-dev/kernel/kernel-small-basic-softtimer.md create mode 100644 en/device-dev/kernel/kernel-small-basic-time.md create mode 100644 en/device-dev/kernel/kernel-small-basic-trans-event.md create mode 100644 en/device-dev/kernel/kernel-small-basic-trans-mutex.md create mode 100644 en/device-dev/kernel/kernel-small-basic-trans-queue.md create mode 100644 en/device-dev/kernel/kernel-small-basic-trans-rwlock.md create mode 100644 en/device-dev/kernel/kernel-small-basic-trans-semaphore.md create mode 100644 en/device-dev/kernel/kernel-small-basic-trans-user-mutex.md create mode 100644 en/device-dev/kernel/kernel-small-basic-trans-user-signal.md create mode 100644 en/device-dev/kernel/kernel-small-basic-trans.md create mode 100644 en/device-dev/kernel/kernel-small-basics.md create mode 100644 en/device-dev/kernel/kernel-small-bundles-fs-new.md create mode 100644 en/device-dev/kernel/kernel-small-bundles-fs-support-fat.md create mode 100644 en/device-dev/kernel/kernel-small-bundles-fs-support-jffs2.md create mode 100644 en/device-dev/kernel/kernel-small-bundles-fs-support-nfs.md create mode 100644 en/device-dev/kernel/kernel-small-bundles-fs-support-procfs.md create mode 100644 en/device-dev/kernel/kernel-small-bundles-fs-support-ramfs.md create mode 100644 en/device-dev/kernel/kernel-small-bundles-fs-support.md create mode 100644 en/device-dev/kernel/kernel-small-bundles-fs-virtual.md create mode 100644 en/device-dev/kernel/kernel-small-bundles-fs.md create mode 100644 en/device-dev/kernel/kernel-small-bundles-ipc.md create mode 100644 en/device-dev/kernel/kernel-small-bundles-linking.md create mode 100644 en/device-dev/kernel/kernel-small-bundles-share.md create mode 100644 en/device-dev/kernel/kernel-small-bundles-system.md create mode 100644 en/device-dev/kernel/kernel-small-bundles.md create mode 100644 en/device-dev/kernel/kernel-small-debug-memory-corrupt.md create mode 100644 en/device-dev/kernel/kernel-small-debug-memory-info.md create mode 100644 en/device-dev/kernel/kernel-small-debug-memory-leak.md create mode 100644 en/device-dev/kernel/kernel-small-debug-memory.md create mode 100644 en/device-dev/kernel/kernel-small-debug-other.md create mode 100644 en/device-dev/kernel/kernel-small-debug-process-cpu.md create mode 100644 en/device-dev/kernel/kernel-small-debug-process.md rename en/device-dev/kernel/{kernel-lite-small-shell-sample.md => kernel-small-debug-shell-build.md} (74%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-sys-cpup.md => kernel-small-debug-shell-cmd-cpup.md} (59%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-sys-date.md => kernel-small-debug-shell-cmd-date.md} (84%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-sys-demsg.md => kernel-small-debug-shell-cmd-dmesg.md} (88%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-sys-exec.md => kernel-small-debug-shell-cmd-exec.md} (72%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-sys-free.md => kernel-small-debug-shell-cmd-free.md} (80%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-sys-help.md => kernel-small-debug-shell-cmd-help.md} (84%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-sys-hwi.md => kernel-small-debug-shell-cmd-hwi.md} (72%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-sys-kill.md => kernel-small-debug-shell-cmd-kill.md} (77%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-sys-log.md => kernel-small-debug-shell-cmd-log.md} (80%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-sys-mem.md => kernel-small-debug-shell-cmd-memcheck.md} (82%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-sys-oom.md => kernel-small-debug-shell-cmd-oom.md} (70%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-sys-pmm.md => kernel-small-debug-shell-cmd-pmm.md} (73%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-sys-reset.md => kernel-small-debug-shell-cmd-reset.md} (75%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-sys-sem.md => kernel-small-debug-shell-cmd-sem.md} (67%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-sys-stack.md => kernel-small-debug-shell-cmd-stack.md} (83%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-sys-su.md => kernel-small-debug-shell-cmd-su.md} (76%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-sys-swymr.md => kernel-small-debug-shell-cmd-swtmr.md} (68%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-sys-sys.md => kernel-small-debug-shell-cmd-sysinfo.md} (84%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-sys-task.md => kernel-small-debug-shell-cmd-task.md} (81%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-sys-uname.md => kernel-small-debug-shell-cmd-uname.md} (37%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-sys-vmm.md => kernel-small-debug-shell-cmd-vmm.md} (81%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-sys-watch.md => kernel-small-debug-shell-cmd-watch.md} (62%) create mode 100644 en/device-dev/kernel/kernel-small-debug-shell-cmd.md create mode 100644 en/device-dev/kernel/kernel-small-debug-shell-details.md rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-abn.md => kernel-small-debug-shell-error.md} (98%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-file-cat.md => kernel-small-debug-shell-file-cat.md} (80%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-file-cd.md => kernel-small-debug-shell-file-cd.md} (81%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-file-chgrp.md => kernel-small-debug-shell-file-chgrp.md} (89%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-file-chmod.md => kernel-small-debug-shell-file-chmod.md} (84%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-file-chown.md => kernel-small-debug-shell-file-chown.md} (83%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-file-cp.md => kernel-small-debug-shell-file-cp.md} (83%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-file-format.md => kernel-small-debug-shell-file-format.md} (90%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-file-is.md => kernel-small-debug-shell-file-ls.md} (81%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-file-isfd.md => kernel-small-debug-shell-file-lsfd.md} (71%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-file-mkdir.md => kernel-small-debug-shell-file-mkdir.md} (89%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-file-mount.md => kernel-small-debug-shell-file-mount.md} (88%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-file-part.md => kernel-small-debug-shell-file-partinfo.md} (80%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-file-partion.md => kernel-small-debug-shell-file-partition.md} (91%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-file-pwd.md => kernel-small-debug-shell-file-pwd.md} (71%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-file-rm.md => kernel-small-debug-shell-file-rm.md} (91%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-file-rmdir.md => kernel-small-debug-shell-file-rmdir.md} (89%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-file-sta.md => kernel-small-debug-shell-file-statfs.md} (85%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-file-sync.md => kernel-small-debug-shell-file-sync.md} (69%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-file-touch.md => kernel-small-debug-shell-file-touch.md} (88%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-file-umount.md => kernel-small-debug-shell-file-umount.md} (85%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-file-write.md => kernel-small-debug-shell-file-write.md} (85%) create mode 100644 en/device-dev/kernel/kernel-small-debug-shell-file.md rename en/device-dev/kernel/{kernel-lite-small-shell-guide.md => kernel-small-debug-shell-guide.md} (67%) create mode 100644 en/device-dev/kernel/kernel-small-debug-shell-magickey.md rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-net-arp.md => kernel-small-debug-shell-net-arp.md} (69%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-net-dh.md => kernel-small-debug-shell-net-dhclient.md} (93%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-net-dns.md => kernel-small-debug-shell-net-dns.md} (87%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-net-ipc.md => kernel-small-debug-shell-net-ifconfig.md} (54%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-net-ipd.md => kernel-small-debug-shell-net-ipdebug.md} (95%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-net-net.md => kernel-small-debug-shell-net-netstat.md} (85%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-net-ntp.md => kernel-small-debug-shell-net-ntpdate.md} (83%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-net-ping.md => kernel-small-debug-shell-net-ping.md} (84%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-net-ping6.md => kernel-small-debug-shell-net-ping6.md} (93%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-net-tel.md => kernel-small-debug-shell-net-telnet.md} (91%) rename en/device-dev/kernel/{kernel-lite-small-shell-cmd-net-tftp.md => kernel-small-debug-shell-net-tftp.md} (89%) create mode 100644 en/device-dev/kernel/kernel-small-debug-shell-net.md rename en/device-dev/kernel/{kernel-lite-small-shell-des.md => kernel-small-debug-shell-overview.md} (55%) create mode 100644 en/device-dev/kernel/kernel-small-debug-shell.md create mode 100644 en/device-dev/kernel/kernel-small-debug-trace-other-faqs.md create mode 100644 en/device-dev/kernel/kernel-small-debug-trace-other-lastwords.md create mode 100644 en/device-dev/kernel/kernel-small-debug-trace.md create mode 100644 en/device-dev/kernel/kernel-small-debug.md create mode 100644 en/device-dev/kernel/kernel-small-overview.md create mode 100644 en/device-dev/kernel/kernel-small-start-kernel.md create mode 100644 en/device-dev/kernel/kernel-small-start-user.md create mode 100644 en/device-dev/kernel/kernel-small-start.md rename en/device-dev/kernel/{kernel-standard-des.md => kernel-standard-overview.md} (100%) rename en/device-dev/porting/{transplant-chip-board-bundle.md => porting-chip-board-bundle.md} (99%) rename en/device-dev/porting/{transplant-chip-board-component.md => porting-chip-board-component.md} (100%) rename en/device-dev/porting/{transplant-chip-board-drive.md => porting-chip-board-driver.md} (100%) rename en/device-dev/porting/{transplant-chip-board-hal.md => porting-chip-board-hal.md} (100%) rename en/device-dev/porting/{transplant-chip-board-overview.md => porting-chip-board-overview.md} (93%) rename en/device-dev/porting/{transplant-chip-board-xts.md => porting-chip-board-xts.md} (100%) create mode 100644 en/device-dev/porting/porting-chip-board.md rename en/device-dev/porting/{transplant-chip-faqs.md => porting-chip-faqs.md} (100%) rename en/device-dev/porting/{transplant-chip-kernel-adjustment.md => porting-chip-kernel-adjustment.md} (100%) rename en/device-dev/porting/{transplant-chip-kernel-overview.md => porting-chip-kernel-overview.md} (100%) rename en/device-dev/porting/{transplant-chip-kernel-verify.md => porting-chip-kernel-verify.md} (98%) create mode 100644 en/device-dev/porting/porting-chip-kernel.md rename en/device-dev/porting/{transplant-chip-prepare-knows.md => porting-chip-prepare-knows.md} (96%) rename en/device-dev/porting/{transplant-chip-prepare-process.md => porting-chip-prepare-process.md} (99%) rename en/device-dev/porting/{transplant-chip-prepare.md => porting-chip-prepare.md} (33%) create mode 100644 en/device-dev/porting/porting-minichip.md rename en/device-dev/porting/{transplant-smallchip-drive-oom.md => porting-smallchip-driver-oom.md} (100%) rename en/device-dev/porting/{transplant-smallchip-drive-des.md => porting-smallchip-driver-overview.md} (100%) rename en/device-dev/porting/{transplant-smallchip-drive-plat.md => porting-smallchip-driver-plat.md} (100%) create mode 100644 en/device-dev/porting/porting-smallchip-driver.md rename en/device-dev/porting/{transplant-smallchip-kernel-a.md => porting-smallchip-kernel-a.md} (99%) rename en/device-dev/porting/{transplant-smallchip-kernel-linux.md => porting-smallchip-kernel-linux.md} (99%) rename en/device-dev/porting/{transplant-smallchip-kernel.md => porting-smallchip-kernel.md} (33%) rename en/device-dev/porting/{transplant-smallchip-prepare-building.md => porting-smallchip-prepare-building.md} (100%) rename en/device-dev/porting/{transplant-smallchip-prepare-needs.md => porting-smallchip-prepare-needs.md} (100%) rename en/device-dev/porting/{transplant-smallchip-prepare.md => porting-smallchip-prepare.md} (32%) rename en/device-dev/porting/{transplant-smallchip.md => porting-smallchip.md} (30%) rename en/device-dev/porting/{transplant-thirdparty-cmake.md => porting-thirdparty-cmake.md} (100%) rename en/device-dev/porting/{transplant-thirdparty-makefile.md => porting-thirdparty-makefile.md} (98%) rename en/device-dev/porting/{transplant-thirdparty-overview.md => porting-thirdparty-overview.md} (100%) create mode 100644 en/device-dev/porting/porting-thirdparty.md create mode 100644 en/device-dev/porting/porting.md create mode 100644 en/device-dev/porting/standard-system-porting-guide.md delete mode 100644 en/device-dev/porting/transplant-chip-board.md delete mode 100644 en/device-dev/porting/transplant-chip-kernel.md delete mode 100644 en/device-dev/porting/transplant-minichip.md delete mode 100644 en/device-dev/porting/transplant-smallchip-drive.md delete mode 100644 en/device-dev/porting/transplant-thirdparty.md delete mode 100644 en/device-dev/porting/transplant.md delete mode 100644 en/device-dev/quick-start/figure/2021-01-27_170334-17.png create mode 100644 en/device-dev/quick-start/figure/2021-01-27_170334-19.png create mode 100644 "en/device-dev/quick-start/figure/3516\346\255\243\351\235\242-17.png" create mode 100644 en/device-dev/security/safety.md rename en/device-dev/security/{safety-safeguide-security.md => security-guidelines-overall.md} (100%) rename en/device-dev/security/{oem_security_privacy.md => security-privacy-protection.md} (99%) rename en/device-dev/subsystems/{subsys-application-framework-builden.md => subsys-application-framework-envbuild.md} (99%) rename en/device-dev/subsystems/{subsys-sensor-demo.md => subsys-densor-demo.md} (100%) rename en/device-dev/subsystems/{subsys-sensor-guide.md => subsys-densor-guide.md} (100%) rename en/device-dev/subsystems/{subsys-sensor-overview.md => subsys-densor-overview.md} (100%) create mode 100644 en/device-dev/subsystems/subsys-densor.md delete mode 100644 en/device-dev/subsystems/subsys-dfx-hisyseventread.md rename en/device-dev/subsystems/{subsys-graphics-bundle-guide3.md => subsys-graphics-common-guide.md} (100%) rename en/device-dev/subsystems/{subsys-graphics-bundle-guide1.md => subsys-graphics-container-guide.md} (100%) rename en/device-dev/subsystems/{subsys-graphics-bundle-guide2.md => subsys-graphics-layout-guide.md} (100%) delete mode 100644 en/device-dev/subsystems/subsys-sensor.md delete mode 100644 summary.md create mode 100644 zh-cn/device-dev/driver/driver-hdf.md rename zh-cn/device-dev/get-code/figure/{3-20.png => 3-28.png} (100%) rename zh-cn/device-dev/guide/{device-camera-visual-first-page.md => device-camera-visual-firstpage.md} (99%) create mode 100644 zh-cn/device-dev/guide/device-lite.md create mode 100644 zh-cn/device-dev/guide/device-standard.md rename zh-cn/device-dev/guide/{device-wifi-sdk.md => device-wlan-sdk.md} (100%) rename zh-cn/device-dev/guide/{device-wifi.md => device-wlan.md} (39%) rename zh-cn/device-dev/guide/{device-wifi-led-outcontrol.md => oem_wifi_sdk_des.md} (91%) delete mode 100644 zh-cn/device-dev/kernel/figure/zh-cn_image_0000001179063579.png create mode 100644 zh-cn/device-dev/kernel/figure/zh-cn_image_0000001191018697.png rename zh-cn/device-dev/kernel/figure/zh-cn_image_0000001125101908.png => "zh-cn/device-dev/kernel/figure/\346\226\207\344\273\266\347\263\273\347\273\237\347\232\204\346\200\273\344\275\223\347\273\223\346\236\204.png" (100%) rename zh-cn/device-dev/kernel/figure/zh-cn_image_0000001132875772.png => "zh-cn/device-dev/kernel/figure/\351\230\237\345\210\227\350\257\273\345\206\231\346\225\260\346\215\256\346\223\215\344\275\234\347\244\272\346\204\217\345\233\276.png" (100%) create mode 100644 "zh-cn/device-dev/porting/figure/WLAN\350\212\257\347\211\207.png" rename zh-cn/device-dev/porting/{transplant-chip-prepare-knows.md => oem_transplant_chip_prepare_knows.md} (94%) rename zh-cn/device-dev/porting/{transplant-chip-board-bundle.md => porting-chip-board-bundle.md} (99%) rename zh-cn/device-dev/porting/{transplant-chip-board-component.md => porting-chip-board-component.md} (100%) rename zh-cn/device-dev/porting/{transplant-chip-board-drive.md => porting-chip-board-driver.md} (100%) mode change 100755 => 100644 rename zh-cn/device-dev/porting/{transplant-chip-board-hal.md => porting-chip-board-hal.md} (100%) mode change 100755 => 100644 rename zh-cn/device-dev/porting/{transplant-chip-board-overview.md => porting-chip-board-overview.md} (94%) rename zh-cn/device-dev/porting/{transplant-chip-board-xts.md => porting-chip-board-xts.md} (100%) create mode 100644 zh-cn/device-dev/porting/porting-chip-board.md rename zh-cn/device-dev/porting/{transplant-chip-faqs.md => porting-chip-faqs.md} (100%) mode change 100755 => 100644 rename zh-cn/device-dev/porting/{transplant-chip-kernel-adjustment.md => porting-chip-kernel-adjustment.md} (100%) rename zh-cn/device-dev/porting/{transplant-chip-kernel-overview.md => porting-chip-kernel-overview.md} (100%) rename zh-cn/device-dev/porting/{transplant-chip-kernel-verify.md => porting-chip-kernel-verify.md} (95%) create mode 100644 zh-cn/device-dev/porting/porting-chip-kernel.md rename zh-cn/device-dev/porting/{transplant-chip-prepare-process.md => porting-chip-prepare-process.md} (99%) rename zh-cn/device-dev/porting/{transplant-chip-prepare.md => porting-chip-prepare.md} (31%) create mode 100644 zh-cn/device-dev/porting/porting-minichip.md rename zh-cn/device-dev/porting/{transplant-smallchip-drive-oom.md => porting-smallchip-driver-oom.md} (100%) rename zh-cn/device-dev/porting/{transplant-smallchip-drive-des.md => porting-smallchip-driver-overview.md} (100%) rename zh-cn/device-dev/porting/{transplant-smallchip-drive-plat.md => porting-smallchip-driver-plat.md} (100%) create mode 100644 zh-cn/device-dev/porting/porting-smallchip-driver.md rename zh-cn/device-dev/porting/{transplant-smallchip-kernel-a.md => porting-smallchip-kernel-a.md} (96%) rename zh-cn/device-dev/porting/{transplant-smallchip-kernel-linux.md => porting-smallchip-kernel-linux.md} (99%) rename zh-cn/device-dev/porting/{transplant-smallchip-kernel.md => porting-smallchip-kernel.md} (33%) rename zh-cn/device-dev/porting/{transplant-smallchip-prepare-building.md => porting-smallchip-prepare-building.md} (100%) rename zh-cn/device-dev/porting/{transplant-smallchip-prepare-needs.md => porting-smallchip-prepare-needs.md} (100%) rename zh-cn/device-dev/porting/{transplant-smallchip-prepare.md => porting-smallchip-prepare.md} (32%) create mode 100644 zh-cn/device-dev/porting/porting-smallchip.md rename zh-cn/device-dev/porting/{transplant-thirdparty-cmake.md => porting-thirdparty-cmake.md} (97%) rename zh-cn/device-dev/porting/{transplant-thirdparty-makefile.md => porting-thirdparty-makefile.md} (96%) rename zh-cn/device-dev/porting/{transplant-thirdparty-overview.md => porting-thirdparty-overview.md} (100%) mode change 100755 => 100644 create mode 100644 zh-cn/device-dev/porting/porting-thirdparty.md create mode 100644 zh-cn/device-dev/porting/porting.md delete mode 100644 zh-cn/device-dev/porting/transplant-chip-board.md delete mode 100644 zh-cn/device-dev/porting/transplant-chip-kernel.md delete mode 100644 zh-cn/device-dev/porting/transplant-chip.md delete mode 100644 zh-cn/device-dev/porting/transplant-minichip.md delete mode 100644 zh-cn/device-dev/porting/transplant-smallchip-drive.md delete mode 100644 zh-cn/device-dev/porting/transplant-smallchip.md delete mode 100644 zh-cn/device-dev/porting/transplant-thirdparty.md delete mode 100644 zh-cn/device-dev/porting/transplant.md rename zh-cn/device-dev/security/{safety-safeguide-security.md => security-guidelines-overall.md} (100%) rename zh-cn/device-dev/security/{safety-protection-privacyguide.md => security-privacy-protection.md} (98%) rename zh-cn/device-dev/security/{safety.md => security.md} (36%) create mode 100644 zh-cn/device-dev/subsystems/figure/zh-cn_image_0000001181934155.png delete mode 100755 "zh-cn/device-dev/subsystems/figure/\345\256\211\345\205\250\345\255\220\347\263\273\347\273\237.png" rename zh-cn/device-dev/subsystems/{subsys-application-framework-builden.md => subsys-application-framework-envbuild.md} (100%) delete mode 100644 zh-cn/device-dev/subsystems/subsys-build-mini.md delete mode 100644 zh-cn/device-dev/subsystems/subsys-build-standard.md rename zh-cn/device-dev/subsystems/{subsys-sensor-demo.md => subsys-densor-demo.md} (100%) mode change 100755 => 100644 rename zh-cn/device-dev/subsystems/{subsys-sensor-guide.md => subsys-densor-guide.md} (100%) rename zh-cn/device-dev/subsystems/{subsys-sensor-overview.md => subsys-densor-overview.md} (100%) create mode 100644 zh-cn/device-dev/subsystems/subsys-densor.md delete mode 100644 zh-cn/device-dev/subsystems/subsys-dfx-hisyseventread.md rename zh-cn/device-dev/subsystems/{subsys-graphics-bundle-guide3.md => subsys-graphics-common-guide.md} (100%) rename zh-cn/device-dev/subsystems/{subsys-graphics-bundle-guide1.md => subsys-graphics-container-guide.md} (100%) rename zh-cn/device-dev/subsystems/{subsys-graphics-bundle-guide2.md => subsys-graphics-layout-guide.md} (100%) delete mode 100644 zh-cn/device-dev/subsystems/subsys-sensor.md diff --git a/en/device-dev/overview.md b/en/device-dev/Readme-EN.md similarity index 90% rename from en/device-dev/overview.md rename to en/device-dev/Readme-EN.md index d8e511406ec..59e9959accb 100644 --- a/en/device-dev/overview.md +++ b/en/device-dev/Readme-EN.md @@ -1,4 +1,4 @@ -# Overview +# Overview - [System Types](#section767218232110) - [Document Outline](#section19810171681218) @@ -69,21 +69,21 @@ In addition, OpenHarmony provides a series of optional system components that ca

Using basic capabilities of OpenHarmony

- +

Advanced development

Developing smart devices based on system capabilities

- +

Porting and adaptation

- +

Contributing components

@@ -114,9 +114,9 @@ In addition, OpenHarmony provides a series of optional system components that ca -

About OpenHarmony

+

About OpenHarmony

-

Getting familiar with OpenHarmony

+

Getting familiar with OpenHarmony

@@ -137,28 +137,29 @@ In addition, OpenHarmony provides a series of optional system components that ca

Basic capabilities

-

Using basic capabilities of OpenHarmony

+

Using basic capabilities of OpenHarmony

- +

Advanced development

Developing smart devices based on system capabilities

- +

Porting and adaptation

Porting and adapting the OpenHarmony to a third-party library

-

Third-Party Library Porting Guide

+

Third-Party Library Porting Guide

+

Standard System SoC Porting Guide

Contributing components

-

Contributing components to OpenHarmony

+

Contributing components to OpenHarmony

diff --git a/en/device-dev/bundles/bundles-demo-devsample.md b/en/device-dev/bundles/bundles-demo-devsample.md index 4b896d48114..51b24597883 100644 --- a/en/device-dev/bundles/bundles-demo-devsample.md +++ b/en/device-dev/bundles/bundles-demo-devsample.md @@ -1,25 +1,25 @@ # Development Example -This following uses the Hi3861 platform as an example to describe how to install, compile, and package components by using HPM. +The following uses the Hi3861 platform as an example to describe how to install and build bundles by using the hpm. -1. Run the following commands to initialize the installation directory \(whose name can be customized\): +1. Run the following commands to create a directory \(its name can be customized\) and create a default project based on the dist template: ``` mkdir test3861 cd test3861 - hpm init -t dist + hpm init -t dist myproduct ``` - If the following information is displayed, the initialization is successful: + If the following information is displayed, the project is created: ``` Initialization finished. ``` -2. Run the following command to install the **wifi\_iot** distribution: +2. Run the following command to install the **hispark\_pegasus** distribution: ``` - hpm install @ohos/wifi_iot + hpm install @ohos/hispark_pegasus ``` If the following information is displayed, the installation is successful: @@ -29,16 +29,16 @@ This following uses the Hi3861 platform as an example to describe how to install ``` >![](../public_sys-resources/icon-note.gif) **NOTE:** - >Run the following command for the Hi3516 platform: + >If you are using the Hi3516 platform, run the following command: >``` - >hpm install @ohos/ip_camera_hi3516dv300 + >hpm install @ohos/hispark_taurus >``` - >Run the following command for the Hi3518 platform: + >If you are using the Hi3518 platform, run the following command: >``` - >hpm install @ohos/ip_camera_hi3518ev300 + >hpm install @ohos/hispark_aries >``` -3. Run the following command to build and package components: +3. Run the following command to build and package bundles: ``` hpm dist diff --git a/en/device-dev/bundles/bundles-demo-environment.md b/en/device-dev/bundles/bundles-demo-environment.md index 6780aa705ee..ac3cbf3b0b1 100644 --- a/en/device-dev/bundles/bundles-demo-environment.md +++ b/en/device-dev/bundles/bundles-demo-environment.md @@ -1,15 +1,17 @@ -# Preparations +# Configuring the Compilation Environment - [Linux Server](#section20979554791) - [Node.js](#section9954105413153) -- [HPM](#section15937194904819) +- [Installing hpm-cli Tool](#section15937194904819) - [Python Environment](#section1621819180417) - [File Packaging Tool](#section77617165913) - [SCons](#section20558439191516) +![](figure/3516dv300.png) + ## Linux Server -Prepare a 64-bit Linux server running Ubuntu 16.04 or later. HPM supports Windows Server, but the open-source Hi3861, Hi3516, and Hi3518 solutions support only Ubuntu. +Prepare a 64-bit Linux server running Ubuntu 16.04 or later. \(Currently, the compilation in the Windows environment is not fully supported.\) Configure Ubuntu to use bash as the Linux system shell, by performing the following: @@ -26,7 +28,7 @@ ln -s bash /bin/sh ## Node.js >![](../public_sys-resources/icon-note.gif) **NOTE:** ->If the Node.js version of the source is outdated, run the following command before running **apt-get install**: +>If the **Node.js** version of the source is outdated, run the following command before running **apt-get install**: >``` >curl -L https://deb.nodesource.com/setup_12.x | bash >``` @@ -38,31 +40,31 @@ sudo apt-get install nodejs sudo apt-get install npm ``` -Run the following commands to view Node.js and NPM versions: +Run the following commands to view **Node.js** and npm versions: ``` node --version # Check the Node.js version. -npm --version # Check the NPM version. +npm --version # Check the npm version. ``` -## HPM +## Installing hpm-cli Tool -Install the **hpm-cli** command line tool by using the NPM \(default source: https://registry.npmjs.org/\) provided by the Node.js. +Install the **hpm-cli** command line tool by using the npm \(default source: https://registry.npmjs.org/\) provided by **Node.js**. ``` npm install -g @ohos/hpm-cli ``` -After **hpm-cli** is installed, run the following command to view default HPM configurations: +After **hpm-cli** is installed, run the following command to view the default hpm configurations: ``` hpm config ``` -You can modify the default configurations as required. The following lists common HPM configurations: +You can modify the default configurations as required. The following lists common hpm configurations: ``` -registry = https://hpm.harmonyos.com # Register with the HPM registration center. This is mandatory for downloading components. +registry = https://hpm.harmonyos.com # Address of the hpm registry. This is mandatory for downloading bundles. strictSsl = true # Enable strict SSL verification as HTTPS is used for connection. http_proxy = http://your-proxy-server:port # Configure the HTTP proxy. https_proxy = http://your-proxy-server:port # Configure the HTTPS proxy. @@ -124,14 +126,14 @@ sudo apt-get install mtools python3 -m pip install scons ``` -3. Run the following command to check whether SCons is successfully installed. If the installation is successful, the query result as shown in [Figure 1](#fig235815252492) is displayed. +3. Run the following command to check whether SCons is successfully installed. If the installation is successful, the query result shown in [Figure 1](#fig235815252492) is displayed. ``` scons -v ``` **Figure 1** Successful installation \(SCons version requirement: 3.0.4 or later\) - ![](figure/successful-installation-(scons-version-requirement-3-0-4-or-later)-25.png "successful-installation-(scons-version-requirement-3-0-4-or-later)-25") + ![](figure/successful-installation-(scons-version-requirement-3-0-4-or-later)-28.png "successful-installation-(scons-version-requirement-3-0-4-or-later)-28") >![](../public_sys-resources/icon-note.gif) **NOTE:** diff --git a/en/device-dev/bundles/bundles-demo-hpmdescription.md b/en/device-dev/bundles/bundles-demo-hpmdescription.md index a4ce85e8707..da9a147ee4b 100644 --- a/en/device-dev/bundles/bundles-demo-hpmdescription.md +++ b/en/device-dev/bundles/bundles-demo-hpmdescription.md @@ -1,6 +1,6 @@ # Introduction -HarmonyOS Package Manager \(HPM\) manages and distributes OpenHarmony component packages. It offers you a tool set to obtain and customize OpenHarmony source code and perform operations such as installation, compilation, packaging, and upgrade. +HarmonyOS package manager \(hpm\) manages and distributes OpenHarmony bundles. It offers you a tool set to obtain and customize OpenHarmony source code and perform operations such as installation, building, packaging, and upgrade. -This document describes how to use HPM to install, compile, and package OpenHarmony components. +This document describes how to use the hpm to install, build, and package OpenHarmony bundles. diff --git a/en/device-dev/bundles/bundles-demo.md b/en/device-dev/bundles/bundles-demo.md index 846d6b1bde0..b4ba3900262 100644 --- a/en/device-dev/bundles/bundles-demo.md +++ b/en/device-dev/bundles/bundles-demo.md @@ -2,7 +2,7 @@ - **[Introduction](bundles-demo-hpmdescription.md)** -- **[Preparations](bundles-demo-environment.md)** +- **[Configuring the Compilation Environment](bundles-demo-environment.md)** - **[Development Example](bundles-demo-devsample.md)** diff --git a/en/device-dev/bundles/bundles-guide-develop.md b/en/device-dev/bundles/bundles-guide-develop.md index d7f0fdad1f6..a562a010d59 100644 --- a/en/device-dev/bundles/bundles-guide-develop.md +++ b/en/device-dev/bundles/bundles-guide-develop.md @@ -1,130 +1,234 @@ -# Bundle Development +# Developing Bundles -- [Developing OpenHarmony Bundles](#section1976410130540) - [Creating a Bundle](#section717481119145) -- [Modifying a Bundle](#section102861955201410) -- [Using HPM-provided Template to Create a Bundle](#section15882846181510) -- [Building a Bundle](#section136732148541) -- [Defining the Building Script](#section10274147111610) -- [Executing the Building Script](#section879301916172) +- [Defining an Existing Project as a Bundle](#section102861955201410) +- [Releasing the Bundle on the HPM Platform](#section1318574233211) +- [Referencing a Bundle](#section19311124115315) +- [Installing a Bundle Globally](#section165131927192120) +- [Compiling a Bundle](#section136732148541) +- [Defining the Build Script](#section10274147111610) +- [Executing the Build Script](#section879301916172) - [Defining a Distribution](#section413216495619) - [Defining Scripts](#section11503171219190) -- [Distributing](#section4694125521912) -- [Burning](#section1746331545413) -- [Debugging](#section6742131615549) +- [Building a Distribution](#section4694125521912) -## Developing OpenHarmony Bundles +You can use any of the following methods to develop OpenHarmony bundles: -You have an option to use any of the following methods to develop OpenHarmony bundles: - -- Develop a brand new bundle from scratch. -- Rewrite code of an existing non-bundle to develop a bundle. -- Use HPM-provided bundle templates to quickly develop a bundle. +- Create a new bundle from scratch. +- Define an existing source code project as a bundle. ## Creating a Bundle -Generally, you can find commonly used bundles on the [HPM](https://hpm.harmonyos.com/#/en/home) website. If they cannot meet your requirements, you can develop your own bundles. +Generally, you can find commonly used bundles on the [HPM](https://hpm.harmonyos.com/#/en/home) website. If they cannot meet your requirements, you can develop a bundle on your own. -You can publish bundles in the HPM repository if you like, so that your peers have an option to use them. Assume that you want to create a bundle named **my-bundle** in the **D:/source** directory: +You can publish bundles in the HPM repository if you like, so that your peers have an option to use them. -Run the **hpm init** command to create the scaffold code for this bundle. For example, you can go to the **D:/source** directory and run the following command: +Assume that you are planning to create a new bundle **my-bundle** in **D:/source**. Run the **hpm init** command to create the scaffold code for this bundle. For example, you can go to **D:/source** and run the following command: ``` -hpm init -t default -d demo my-bundle +hpm init -t default -d demo mybundle ``` -The following files are generated in the **source** directory: +The **'default'** template will be used to create a bundle named **mybundle** in the **demo** directory in **D:/source**. ``` -mybundle -├── bundle.json # Metadata description file of the bundle -├── example # Example of testing bundle functions -│ └── main.c -├── include # Internal header files of the bundle -│ └── mybundle.h -├── README.md # Brief description of the bundle -└── src # Source code of the bundle - └─ mybundle.c +demo +├── headers # Header file (example) +│ └── main.h +└── src # Source code (example) +│ └─ main.c +├── bundle.json # Metadata declaration file +└── LICENSE # License agreement +└── Makefile # Compilation description file (example) +└── README.md # Readme file + ``` -Then, complete your coding based on service requirements. Finally, use **git** to commit your code \(including the **bundle.json** file\) to the code hosting repository, such as gitee. +Then, complete your coding based on service requirements and generate the build script. Finally, use **git** to commit your code \(including the **bundle.json** file\) to the code hosting repository, such as gitee. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>``` +>hpm init -t {templatename} -d {dir} {name} +>``` +>- **-t \{templatename\}** indicates the template name. +>- **-d \{dir\}** indicates the path for storing the bundle to be created. +>- **name** indicates the name of the bundle to be created. + +The hpm provides a few default templates. More templates are available on the HPM server. You can run the **hpm search -t template** command to search for a template stored on the server. + +![](figure/en-us_image_0000001134127844.png) -## Modifying a Bundle +## Defining an Existing Project as a Bundle -If you have code unqualified for the OpenHarmony bundle structure, modify your code to match an HPM bundle. In the code directory \(for example, **mybundle2**\) storing your code, run the following command with the bundle name and version specified: +If you have a code project and need to distribute it on the HPM platform, run the following command in the current project directory, for example, **mybundle2**: ``` hpm init ``` 1. Enter a bundle name \(**mybundle2** as an example\) and press **Enter**. -2. Enter the bundle version \(**1.0.0** as an example\) and press **Enter**. A **bundle.json** file is generated in the current bundle directory. -3. Add other descriptions in **bundle.json**, which is publishable. +2. Enter the version and description. A **bundle.json** file will be generated in the current directory. +3. Open the** bundle.json** file as you like. ``` $ hpm init - Your bundle will be created in dirname E:\demo\mybundle2 + Your bundle will be created in directory ~\demo\mybundle2 ? bundle name mybundel2 ? version 1.0.0 - Init finished! + ... + Initialization finished. ``` -1. Modify other information \(such as the author, code repository, code directory, command script, and dependent bundles\) in **bundle.json**. +1. Modify other information \(such as the author, code repository, code directory, command script, and dependent bundles\) in **bundle.json**. An example is shown below: ``` { "name": "mybundle2", "version": "1.0.0", - "publishAs": "source", + "publishAs": "code-segment", "dirs":{ - ".":[ - "README.md" - ], - "src":[ - "test.c" - ], - "header":[ - "header/test.h" - ], - "src/common":[ - "src/common/foobar.txt" - ] + ".":["README.md"], + "src":["test.c"], + "header":["header/test.h" ], + "src/common":["src/common/foobar.txt"] }, "scripts": { - "build": "make -${args}" + "build": "make -${args}" }, "dependencies": { - "@ohos/cjson": "^1.0.0", - "@ohos/": "^1.2.0" + "@ohos/cjson": "^1.0.0", + "@ohos/foobar": "^1.2.0" } } ``` -## Using HPM-provided Template to Create a Bundle +## Releasing the Bundle on the HPM Platform + +To release a bundle on the HPM platform, you need to obtain an account and create an organization \(or join an existing organization\). For details, see the online help on the [HPM](https://hpm.harmonyos.com/#/en/home) website. + +After that, generate a public key on the local PC based on your invitation code \(which can be obtained on the **My profile** page on the HPM website\), and configure the public key on the **My profile** page. + +``` +hpm config set loginUser {your-invitation-code} +hpm gen-keys +``` + +The generated file will be stored in **\~\\Users\\yourname\\.hpm\\key**. Copy the content in the public key file **publicKey\_your-account.pem** to the SSH public key on your **My profile** page. + +After finishing the preceding operations, you then have the permission to release bundles in your organization. + +In the directory where the bundle is located, run the following command to package and release the bundle: + +``` +hpm publish +``` + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- To avoid bundle name conflicts, name a released bundle in the format of **@org\_name/bundle\_name**. +>- Your account must also be a member of **org\_name** so that you can release or update bundles in the organization. +>- The released bundles take effect only after security and content reviews. + +## Referencing a Bundle + +Generally, when developing a project, you may need to reference other bundles in order to accelerate development of specific functions. Installing dependencies could be a good way. + +Go to the HPM website, search for bundles that meet your service requirements by keywords, and then introduce the bundles to your project. -The HPM provides **default** and **simple** templates as well as other templates that are stored on the server. +Run the following command in your bundle project. Make sure that the project directory contains the **bundle.json** file. -You can run the **hpm search -t template** command to search for a template stored on the server. +``` +$ hpm install @scope/the_bundle +``` + +The referenced bundle will be installed under **ohos\_bundle** in the directory where your project is located. The directory structure is as follows: + +``` +project +├── ohos_bundle +│ └── scope +│ └─ the_bundle # <--- Referenced bundle +└── src +│ └─ main.c +├── bundle.json # Metadata declaration file +└── LICENSE +└── Makefile +└── README.md +``` -![](figure/en-us_image_0000001051452177.png) +Open the **bundle.json** file. You will see that the bundle has been introduced to the dependencies of your project. + +``` +{ +"dependencies": { + "@scope/the_bundle": "^1.0.0" + } +} +``` -Then, select your desired template based on the information below **description**, use the selected template to quickly create the bundle scaffold, and run the following command with the **-t** and **-d** parameters specified: +You can also edit the dependencies of multiple bundles in this file at a time. ``` -hpm init -t {templatename} -d dir name +{ +"dependencies": { + "@scope/the_bundle1": "^1.0.0", + "@scope/the_bundle2": "^2.0.0", + "@scope/the_bundle3": "^3.0.0", + "@scope/the_bundle4": "^1.1.0" + } +} ``` -- **\{templatename\}** indicates the template name. -- **dir** indicates the path for storing the bundle to be created. -- **name** indicates the name of the bundle to be created. +Run the **hpm install** command again to download and install all bundles that have not been installed. + +## Installing a Bundle Globally -## Building a Bundle +If the referenced bundle is one shared by multiple projects, for example, the compiler toolchain, you can install it globally. -After completing code development, you need to build the bundle. The HPM supports command integration so that you can select any build tool \(such as **make**, **gcc**, and **gn**\) suitable for your project. You only need to define the **build** command in the **scripts** in the **bundle.json** file of your project, and then you run the hpm command **build** to perform building. +Run the following command in your bundle project. Make sure that the project directory contains the **bundle.json** file. -## Defining the Building Script +``` +$ hpm install -g @scope/the_tool +``` + +The referenced bundle will be installed in the directory specified by the **globalRepo** parameter of the **hpm config** command. + +``` +~\.hpm\global +│ └── scope +│ └─ the_tool # <--- Referenced bundle +``` + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- For a bundle installed in a project, you can reference it using the environment variable **DEP\_SCOPE\_bundle\_name** when running the hpm compilation command. +>For example, after you run **hpm i @opensource/gn** to install a bundle, you can edit the build script in the **bundle.json** file as follows: +>``` +>"scripts": { +> "build": "${DEP_OPENSOURCE_gn}/gn --version" +> }, +>``` +>Then, you can run the **hpm build** command to call GN functions. +>- For a globally installed bundle, you can directly call the bundle using an environment variable or reference the bundle using the **$\{key\}/tool\_name** parameter when running the **hpm config set key value** command. For example: +>``` +>hpm i -g @ohos/opensource/gn +>hpm config BUILD_SYS_GN ~/.hpm/global/ohos_bundles/opensource/gn +>``` +>You can edit the build script in the **bundle.json** file as follows: +>``` +>"scripts": { +> "build": "${BUILD_SYS_GN}/gn --version" +> }, +>``` +>Then, you can run the **hpm build** command to call GN functions. + +## Compiling a Bundle + +If the bundle code can be independently compiled once you finish coding, you can configure build tools and scripts to generate binary files. + +The hpm supports command integration so that you can select any build tool \(such as **make**, **gcc**, and **gn**\) suitable for your project. You only need to define the **build** command in the **scripts** in the **bundle.json** file of your project, and then you run the hpm command **build** to perform building. + +## Defining the Build Script This section uses how to build an executable file **helloworld** in the **app** directory as an example. @@ -162,7 +266,7 @@ executable("hello_world") { >- **executable** is a built-in template of **gn**. You can run the **gn help executable** command to view how to use this template. >- **sources** represents the source code path, and **include\_dirs** represents the header file path. -## Executing the Building Script +## Executing the Build Script Run the following command: @@ -176,41 +280,87 @@ After all building operations are complete, the message "build succeed" is displ ## Defining a Distribution -A distribution refers to an image file of an executable OpenHarmony solution composed of a group of bundles. It contains many dependent bundles and provides scripts to illustrate how to compile and link these bundles. +This process states the dependent bundles and how to compile and link the bundles to generate image files. + +This section uses the hb compilation framework as an example. ## Defining Scripts -Define scripts in **bundle.json** as follows: +An example definition in the **bundle.json** file is as follows: + +\{ + +"name": "@your/dist\_name", + +"version": "2.2.0", -``` -{ -"name": "my_dist", -"version": "1.0.0", "publishAs": "distribution", -"scripts": { -"dist": "make -${args}" - }, -"base": { -"name": "dist-bundle", -"version": "1.0.0" - }, -"envs": { -"args": "x86" - }, -"dependencies": { -} -} -``` -## Distributing +"description": "describe it", + +"scripts": \{ + +"config\_hb": "hb set -root $DEP\_BUNDLE\_BASE", + +"dist": "PATH=/root/.local/bin:$\{DEP\_OHOS\_gn\}:$\{DEP\_OHOS\_ninja\}/ninja:$\{DEP\_OHOS\_llvm\}/llvm/bin:$\{DEP\_OHOS\_hc\_gen\}/hc-gen:$\{PATH\} && ./scripts/dist.sh" + +\}, + +"envs": \{ + +"debug": false + +\}, + +"dirs": \{ + +"scripts": "scripts/\*" -Run the following command in the current distribution directory: +\}, + +"dependencies": \{ + +"@ohos/build\_lite": "2.2.0", + +"@ohos/gn": "1.1.1", + +"@ohos/llvm": "1.1.1", + +"@ohos/hc\_gen": "1.1.0", + +"@ohos/ninja": "1.1.0", + +... + +\}, + +"ohos": \{ + +"os": "2.2-Beta", + +"board": "hi3516", + +"kernel": "liteos-a" + +\}, + +"keywords": \[ "hispark", "hi3516" \], + +"repository": "https://gitee.com/openharmony/your-project", + +"license": "Apache V2" + +\} + +## Building a Distribution + +Run the following command in the root directory of the current distribution: ``` hpm dist ``` -The **hpm-cli** tool automatically performs compiling and packing, and generates an image file of the **dist** script defined based on **scripts**. The following is an example: +The **hpm-cli** tool automatically starts compilation. After the compilation is complete, an image file will be generated, as shown below: ``` out @@ -218,23 +368,23 @@ out |-xx.file ``` -## Burning +Burning -The building result of the distribution can be burnt into devices, for example, by using the **hiburn** tool. You need to configure burning parameters in the **bundle.json** file of the distribution. +The build result of the distribution can be burnt into devices, for example, by using the **hiburn** tool. You need to configure burning parameters in the **bundle.json** file of the distribution. ``` "scripts": { -"flash": "{$DEP_HIBURN}/hiburn" + "flash": "{$DEP_HIBURN}/hiburn" }, ``` -You should set burning parameters by referring to the specific guide on the burning tool you use. +Set the path of the **hiburn** tool and set burning parameters. For details, see the **hiburn** tool guide. ``` +hpm config set DEP_HIBURN {hiburn_path} hpm run flash ``` -## Debugging - -Start debugging after you have burnt the image file of the distribution into devices. The debugging process varies according to specific development boards and IDE debugging tools. +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>The preceding example describes only how to define the **bundle.json** file. The burning tool is subject to the actual development board. diff --git a/en/device-dev/bundles/bundles-guide-overview.md b/en/device-dev/bundles/bundles-guide-overview.md index a6d16e00da5..445312c9620 100644 --- a/en/device-dev/bundles/bundles-guide-overview.md +++ b/en/device-dev/bundles/bundles-guide-overview.md @@ -1,146 +1,41 @@ -# Bundle Development - -- [Overview](#section112136415486) -- [Preparations](#section12731192104816) - - [Hardware Requirements](#section71851750144814) - - [Installing Node.js and the hpm-cli Tool](#section675199493) - - [\(Optional\) Modifying HPM Configurations](#section1940205015499) - - [Downloading OpenHarmony Code](#section42591118155217) - - [Installing Dependent Bundles](#section644212530524) +# Overview -- [Bundle Development](#section15640113715318) +- [Bundle](#section196713235514) +- [Distribution](#section155387501033) -## Overview +This section describes the bundle-specific concepts in HarmonyOS. It uses an example to step you through how to create, develop, build, release, and install a bundle using the **hpm-cli** tool. -This document describes how to develop OpenHarmony bundles and distributions, and how to create, develop, and build code, as well as burn and debug devices by using a command line tool. +## Bundle -- A bundle usually maps onto a code repository, which is a code archive with the **bundle.json**, **README**, and **LICENSE** files. -- A distribution consists of multiple bundles. Each distribution integrates various bundles of a comprehensive system, such as the driver, kernel, framework, and applications. These bundles can be used for device burning. +A bundle is a term used in HarmonyOS to indicate a distribution. A bundle is equivalent to a package and it usually contains the following contents: -**Table 1** Differences between a bundle and a distribution +- Distributed binary file \(binary type\) +- Distributed source code file \(source code/code snippet type\) +- Build script \(distribution type\) +- Bundle description files: + - **bundle.json**: metadata declaration \(name, version, dependency, etc.\) + - **LICENSE**: license agreement + - **README.md**: readme file + - **CHANGELOG.md**: change log \(optional\) - - - - - - - - - - - - - - - - - - - - - - - -

Aspect

-

Bundle

-

Distribution

-

Application scenario

-

Feature-oriented

-

System-oriented

-

Content

-

Codes or a binary library for implementing features

-

List of dependent bundles as well as their compiling and building scripts

-

Integrity

-

A part of the operating system

-

An entire operating system

-

Compilation result

-

Bundles

-

System image

-
-**Figure 1** Composition of bundles and distributions +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>Bundles can be classified into the following types: binary, source code, code snippet, template, plug-in, distribution, and so on. A bundle can depend on other bundles. The dependency relationship can be represented by a directed acyclic graph \(DAG\). +After you release a bundle on the [HPM](https://hpm.harmonyos.com/#/en/home) platform, other developers can download, install, and use the bundle through the HarmonyOS Package Manager \(hpm\). -![](figure/组件0924.png) +A bundle must be uniquely named in the format **@scope/name** in the namespace. Independent evolution is supported for each bundle. -## Preparations +## Distribution -### Hardware Requirements +A distribution is a complete HarmonyOS release that integrates various bundles, including drivers, kernels, frameworks, and applications. A distribution can also be distributed on the [HPM](https://hpm.harmonyos.com/#/en/home) platform through bundles. -- Development boards \(examples: Hi3861, Hi3516D V300, and Hi3518E V300\) -- Host computer \(Windows workstation\) -- Linux server +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>The metadata of a distribution describes only the dependent bundles and build script compilation methods. It does not cover binary images of the distribution. When downloading a distribution, you also need to download the dependent bundles. You can obtain the system image file for burning only after finishing installation and compilation. +>A distribution is inheritable. Specifically, you can add bundles to or delete bundles from an existing distribution to create your own distribution. -**Figure 2** Hardware connections -![](figure/hardware-connections-23.png "hardware-connections-23") +**Figure 1** Relationship between bundles and a distribution -### Installing **Node.js** and the **hpm-cli** Tool -1. Install **Node.js**. - - Download **Node.js** from its official website and install it on your local PC. - - You are advised to install [Node.js](https://nodejs.org/) 12.x \(including npm 6.14.4\) or a later version \(12.13.0 or later is recommended\). - -2. Install the **hpm-cli** tool using **npm** delivered with **Node.js**. Run the following command: - - ``` - npm install -g @ohos/hpm-cli - ``` - -3. Run the following command to check whether the installation is successful. If an HPM version is displayed, the installation is successful. - - ``` - hpm -V or hpm --version - ``` - -4. \(Optional\) Run the following command to upgrade the HPM version if needed: - - ``` - npm update -g @ohos/hpm-cli - ``` - - -### \(Optional\) Modifying HPM Configurations - -After the **hpm-cli** tool is installed, run the following command to view HPM configurations: - -``` -hpm config -``` - -Default HPM configurations are displayed upon the command execution. You can modify the default configurations as required. The following lists common HPM configurations: - -``` -registry = https://hpm.harmonyos.com/hpm/registry/api # Configure the address of the HPM registry (mandatory for downloading bundles). -login = https://hpm.harmonyos.com/hpm/auth/pk # Configure the address for HPM login (mandatory for publishing bundles). -loginUser = {your-account} # Configure the account for HPM login (mandatory for publishing bundles). -shellPath = C:\WINDOWS\System32\cmd.exe # Configure the shell for running HPM commands. -globalRepo = C:\Users\yourname\.global # Configure the path for storing bundles that are installed globally. -http_proxy = http://your-proxy-server:port # Configure the HTTP proxy. -https_proxy = http://your-proxy-server:port # Configure the HTTPS proxy. -``` - -For details about **hpm-cli** commands, see [HPM Commands](bundles-guide-overview.md). - -### Downloading OpenHarmony Code - -For details, see [Source Code Acquisition](../get-code/sourcecode-acquire.md). - -### Installing Dependent Bundles - -The HPM publishes commonly used development tools \(such as those for burning, compiling, and compression\) as bundles. You can run the following command to install these tools. After the command is executed, the system automatically downloads and installs the tools, which need to be installed globally only once. - -``` -hpm i -g @ohos/llvm -hpm i -g @ohos/ninja -hpm i -g @ohos/gn -hpm i -g @ohos/hc_gen -hpm i -g @ohos/sysroot -``` - -These are a set of development tools \(such as **gn** and **ninja**\). With these tools, you can start your general bundle development based on source code. - -## Bundle Development +![](figure/组件和发行版的构成-英文.png) diff --git a/en/device-dev/bundles/bundles-guide-prepare.md b/en/device-dev/bundles/bundles-guide-prepare.md index f706e2c2f8e..865279a0f1c 100644 --- a/en/device-dev/bundles/bundles-guide-prepare.md +++ b/en/device-dev/bundles/bundles-guide-prepare.md @@ -1,21 +1,12 @@ -# Preparations +# Installing hpm-cli Tool -- [Hardware Requirements](#section98535485518) -- [Installing Node.js and the hpm-cli Tool](#section106591616205311) -- [\(Optional\) Modifying HPM Configurations](#section71821165412) +- [Installing Node.js and hpm](#section106591616205311) +- [\(Optional\) Configuring hpm](#section71821165412) - [Downloading OpenHarmony Code](#section102338221707) -- [Installing Dependent Bundles](#section19233183315020) -## Hardware Requirements +To develop a bundle, you first need to install the HarmonyOS Package Manager \(hpm\), a cross-platform command line tool developed based on Node.js. To run the hpm, you need to install Node.js, and then install the hpm using the Node Package Manager \(npm\). -- Development boards \(examples: Hi3861, Hi3516D V300, and Hi3518E V300\) -- Host computer \(Windows workstation\) -- Linux server - -**Figure 1** Hardware connections -![](figure/hardware-connections-24.png "hardware-connections-24") - -## Installing **Node.js** and the **hpm-cli** Tool +## Installing Node.js and hpm 1. Install **Node.js**. @@ -29,37 +20,49 @@ npm install -g @ohos/hpm-cli ``` -3. Run the following command to check whether the installation is successful. If an HPM version is displayed, the installation is successful. +3. Run the following command to check whether the installation is successful. If an hpm version is displayed, the installation is successful. ``` hpm -V or hpm --version ``` -4. \(Optional\) Run the following command to upgrade the HPM version if needed: +4. \(Optional\) Run the following command to upgrade the hpm version if needed: ``` npm update -g @ohos/hpm-cli ``` -## \(Optional\) Modifying HPM Configurations +## \(Optional\) Configuring hpm -After the **hpm-cli** tool is installed, run the following command to view HPM configurations: +After the **hpm-cli** tool is installed, run the following command to view the hpm configuration if you need to modify the configuration information, such as proxy and shell: ``` hpm config ``` -Default HPM configurations are displayed upon the command execution. You can modify the default configurations as required. The following lists common HPM configurations: +Default hpm configurations are displayed upon successful command execution. You can modify the default configurations as required. The following lists common hpm configurations: ``` -registry = https://hpm.harmonyos.com/hpm/registry/api # Configure the address of the HPM registry, mandatory for downloading bundles. -login = https://hpm.harmonyos.com/hpm/auth/pk # Configure the address for HPM login, mandatory for publishing bundles. -loginUser = {your-account} # Configure the account for HPM login, mandatory for publishing bundles. -shellPath = C:\WINDOWS\System32\cmd.exe # Configure the shell for running HPM commands. -globalRepo = C:\Users\yourname\.global # Configure the path for storing bundles that are installed globally. -http_proxy = http://your-proxy-server:port # Configure the HTTP proxy. -https_proxy = http://your-proxy-server:port # Configure the HTTPS proxy. +registry = https://hpm.harmonyos.com +### login Settings +# loginUser = invitation_code + +#### Path Settings +shellPath = C:\WINDOWS\System32\cmd.exe +# shellPath = C:\Program Files\Git\bin\sh.exe +# globalRepo = C:\Users\username\.hpm\global + +#### Network Settings +# no_proxy = *.server.com +# http_proxy = http://user:pwd@proxy_server:port +# https_proxy = http://user:pwd@proxy_server:port +# strictSsl = true + +#### Other Settings +# privateSupport = true|false +# ignoreBundles = @ohos/llvm,@ohos/gn, +# OSPlatform = Auto|linux|darwin|win32 ``` For details about **hpm-cli** commands, see [HPM Commands](bundles-guide-overview.md). @@ -68,17 +71,3 @@ For details about **hpm-cli** commands, see [HPM Commands](bundles-guide-over For details, see [Source Code Acquisition](../get-code/sourcecode-acquire.md). -## Installing Dependent Bundles - -The HPM publishes commonly used development tools \(such as those for burning, compiling, and compression\) as bundles. You can run the following command to install these tools. After the command is executed, the system automatically downloads and installs the tools, which need to be installed globally only once. - -``` -hpm i -g @ohos/llvm -hpm i -g @ohos/ninja -hpm i -g @ohos/gn -hpm i -g @ohos/hc_gen -hpm i -g @ohos/sysroot -``` - -These are a set of development tools \(such as **gn** and **ninja**\). With these tools, you can start your general bundle development based on source code. - diff --git a/en/device-dev/bundles/bundles-guide.md b/en/device-dev/bundles/bundles-guide.md index 162b7be93ab..1a7510e16a3 100644 --- a/en/device-dev/bundles/bundles-guide.md +++ b/en/device-dev/bundles/bundles-guide.md @@ -1,9 +1,9 @@ # Development Guidelines -- **[Bundle Development](bundles-guide-overview.md)** +- **[Overview](bundles-guide-overview.md)** -- **[Preparations](bundles-guide-prepare.md)** +- **[Installing hpm-cli Tool](bundles-guide-prepare.md)** -- **[Bundle Development](bundles-guide-develop.md)** +- **[Developing Bundles](bundles-guide-develop.md)** diff --git a/en/device-dev/bundles/bundles-standard-rules.md b/en/device-dev/bundles/bundles-standard-rules.md index 8adaac0e618..cebbd0a3459 100644 --- a/en/device-dev/bundles/bundles-standard-rules.md +++ b/en/device-dev/bundles/bundles-standard-rules.md @@ -1,8 +1,8 @@ -# Development Specifications +# Bundle Development Specifications - [Overview](#section1725818533344) - [Definition](#section4821219183514) - - [Bundle Division Principles](#section1089794263513) + - [Bundle Division Rules](#section1089794263513) - [Bundle Dependency](#section25701647163710) - [Bundle Composition](#section185538333914) @@ -40,7 +40,7 @@ Bundles are designed for reuse purposes. Any reusable modules can be defined as - Code snippet - Distribution -### Bundle Division Principles +### Bundle Division Rules In principle, bundles should be grouped at a fine-grained granularity as much as possible to achieve maximum reuse. The following factors are taken into account regarding bundle division: @@ -59,7 +59,7 @@ A bundle dependency can be mandatory or optional. A bundle contains the following: -- **src** directory for storing code files or code library +- **src** directory for storing code files or code library of the bundle - **ohos\_bundles** folder for storing dependent bundles \(It is automatically generated during bundle installation, without the need to submit to the code library.\) - **README.md** file for describing the bundle - **bundle.json** file for declaring metadata of the bundle @@ -138,7 +138,7 @@ Each **bundle.json** file has the following fields: - **version**: a bundle version number, for example, 1.0.0. The version number must comply with the Semantic Versioning Specification \(SemVer\) standards. - **description**: a brief description of a bundle -- **dependencies**: bundles that a bundle depends on +- **dependencies**: bundles on which this bundle depends. - **envs**: parameters required for bundle compilation, including global parameters and dependency parameters. @@ -170,7 +170,7 @@ A basic **bundle.json** file needs to be enriched by bundle dependencies to im } ``` -In this example, **my-bundle** depends on **net 1.0.0**. After you globally install the hpm-cli tool, run the following command to obtain bundle dependencies from the remote repository: +In the preceding example, the **my-bundle** bundle depends on the **net 1.0.0** bundle. After you globally install the hpm-cli tool, run the following command to obtain bundle dependencies from the remote repository: ``` hpm install @@ -246,7 +246,7 @@ You can use the hpm-cli tool to manage the lifecycle of a bundle. The following

hpm init bundle

-

Creates a bundle project.

+

Create a bundle project.

hpm init -t template

@@ -472,7 +472,7 @@ As it is rather complex to redefine the functionality of a distribution, OpenHar } ``` -In this example, the current bundle inherits from the **dist-wifi-iot 1.0.0** bundle of the distribution. +In this example, the current bundle inherits from the **Bundledist-wifi-iot 1.0.0** bundle of the distribution. Each distribution consists of many dependent bundles, which are represented by the **dependencies** field in **bundle.json**. Some dependencies are mandatory, and others can be added or removed required. In the **bundle.json** file, bundle names prefixed with a question mark \(?\) represent optional dependent bundles. If you want to inherit from a distribution involving such bundles, you can remove them and then add other bundles. diff --git a/en/device-dev/bundles/bundles.md b/en/device-dev/bundles/bundles.md index 21586387bbd..668b3d43e0e 100644 --- a/en/device-dev/bundles/bundles.md +++ b/en/device-dev/bundles/bundles.md @@ -1,6 +1,6 @@ # Bundle Development -- **[Development Specifications](bundles-standard-rules.md)** +- **[Bundle Development Specifications](bundles-standard-rules.md)** - **[Development Guidelines](bundles-guide.md)** diff --git a/en/device-dev/bundles/figure/hardware-connections-23.png b/en/device-dev/bundles/figure/3516dv300.png similarity index 100% rename from en/device-dev/bundles/figure/hardware-connections-23.png rename to en/device-dev/bundles/figure/3516dv300.png diff --git a/en/device-dev/bundles/figure/en-us_image_0000001051452177.png b/en/device-dev/bundles/figure/en-us_image_0000001051452177.png deleted file mode 100644 index 1fb6e4a1742434b1151b428647a161f5107d244e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23912 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 Na>?xC2Ls0^{|EOXl6e3C diff --git a/en/device-dev/bundles/figure/en-us_image_0000001134127844.png b/en/device-dev/bundles/figure/en-us_image_0000001134127844.png new file mode 100644 index 0000000000000000000000000000000000000000..8988fc2cf8e2d7218a5812764e0022226fec4d53 GIT binary patch literal 9185 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 literal 0 HcmV?d00001 diff --git a/en/device-dev/bundles/figure/hardware-connections-24.png b/en/device-dev/bundles/figure/hardware-connections-24.png deleted file mode 100755 index c4636401a20e37794d8ec28dc173e9308b2b72db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10111 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 R57Z$bypdCrt&lbk`+osrDuVz3 diff --git a/en/device-dev/bundles/figure/successful-installation-(scons-version-requirement-3-0-4-or-later)-25.png b/en/device-dev/bundles/figure/successful-installation-(scons-version-requirement-3-0-4-or-later)-28.png similarity index 100% rename from en/device-dev/bundles/figure/successful-installation-(scons-version-requirement-3-0-4-or-later)-25.png rename to en/device-dev/bundles/figure/successful-installation-(scons-version-requirement-3-0-4-or-later)-28.png diff --git "a/en/device-dev/bundles/figure/\347\273\204\344\273\2660924.png" "b/en/device-dev/bundles/figure/\347\273\204\344\273\2660924.png" deleted file mode 100644 index cffe8ab030605165f23eb369be4eb37de7865edf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64238 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

_TRSM(3%dn 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%0DKT`KRA~m4IRfU7>^x%e}ocX zsY_3(IS%$L2B0OSrc#GL<)hm$UNbSuT`#*w)UsZ_o{ z}5&I-Y~7Kl5)(PMdd0A~#hM9@y1OeFxWi_-rI$ zcBDesqzXZ?c9~ToumZS(FWBQlZbzDtkrCF}sX9}@qGtKx=NQS*UXt)#X?gg!mG9sx z!*G#r0mh?TvWUkRP?VNH3z0Fk?JEH6D){XBRa%hwn|Y+NKeRYY3O6m~U0Rkb7d-nZ zzc51NZpog53r~>)>-sRT{A)&(_aI)D#gt(nS%|L#O0qE|n>}7xpmwsVvp!`V1?T_L zm*F%Dj~q@$%;F7_vJCj`?&4p^gWYj3uALshcKZ_t&peLUMgfCf>zAX4f3@3spomh!vuD(^ zH$woRe}vj{I<;Lukhm$f@J?Jeun_swIXc5@0K-!|n<3+@iZhHH(;sLx(n&y?@xJQ_ zbiF1hexc49K#b@PvU8ZBk+h<@wEO$J&`oz>ybWFn69qxu&cuWt>FahA_eB@?O?bUT zhxg7lCk9m=jKmK7@;f9=%1=cfEW9WYK^M_V$O5`-f(?2Q<8QKZ={JVh*!q zq<|&`tn8{!-_6I!I36O)C;|<}t}RPQ%xe-Y{&Qd-j(gn6)cW{{J2<{%XVQ-U8J=)8 zhf|E3Netut(VhM0ycnVezxpIo71z+h7(hv?zD|E4#%+ zx8T9_G*SBU&%-05^1(HLk4&D#hy1m;9KFL(5nd2*Gy7}W9jyj+ypSjh^L}+8|8w?# zmJoY*p`~Aq_uo@H309opXDMkf|NY%@WONv}|A~hj-HwG|Sc%$>^PNGS_tDoL{8X0! zFW9er4gUA-FoBrq!M%(r=6`?p1iTPel>T4KtS|%Iab8IUnZJ_6|Mw{V4NTBz27FefC2x>N-Ij`N*F%;{{V!5aDe~- literal 0 HcmV?d00001 diff --git a/en/device-dev/driver/Readme-EN.md b/en/device-dev/driver/Readme-EN.md index c82515419fe..3f9bef19fb8 100644 --- a/en/device-dev/driver/Readme-EN.md +++ b/en/device-dev/driver/Readme-EN.md @@ -1,13 +1,13 @@ # drivers -- [HDF](driver-hdf.md) +- [HDF](drive-hdf.md) - [HDF Overview](driver-hdf-overview.md) - - [driverr Development](driver-hdf-development.md) - - [driverr Service Management](driver-hdf-servicemanage.md) - - [driverr Message Mechanism Management](driver-hdf-news.md) - - [driverr Configuration Management](driver-hdf-manage.md) + - [Driver Development](driver-hdf-development.md) + - [Driver Service Management](driver-hdf-servicemanage.md) + - [Driver Message Mechanism Management](driver-hdf-news.md) + - [Driver Configuration Management](driver-hdf-manage.md) - [HDF Development Example](driver-hdf-sample.md) -- [Platform driverrs](driver-platform.md) +- [Platform Drivers](drive-platform.md) - [GPIO](driver-platform-gpio-des.md) - [I2C](driver-platform-i2c-des.md) - [RTC](driver-platform-rtc-des.md) @@ -16,7 +16,7 @@ - [UART](driver-platform-uart-des.md) - [Watchdog](driver-platform-watchdog-des.md) - [MIPI DSI](driver-platform-mipidsi-des.md) -- [Peripherals](driver-peripherals.md) +- [Peripherals](drive-peripherals.md) - [LCD](driver-peripherals-lcd-des.md) - [TOUCHSCREEN](driver-peripherals-touch-des.md) - [Sensor](driver-peripherals-sensor-des.md) diff --git a/en/device-dev/driver/driver-hdf.md b/en/device-dev/driver/drive-hdf.md similarity index 40% rename from en/device-dev/driver/driver-hdf.md rename to en/device-dev/driver/drive-hdf.md index cc7e51c2b54..dd3d27b7a8d 100644 --- a/en/device-dev/driver/driver-hdf.md +++ b/en/device-dev/driver/drive-hdf.md @@ -2,13 +2,13 @@ - **[HDF Overview](driver-hdf-overview.md)** -- **[driverr Development](driver-hdf-development.md)** +- **[Driver Development](driver-hdf-development.md)** -- **[driverr Service Management](driver-hdf-servicemanage.md)** +- **[Driver Service Management](driver-hdf-servicemanage.md)** -- **[driverr Message Mechanism Management](driver-hdf-news.md)** +- **[Driver Message Mechanism Management](driver-hdf-news.md)** -- **[driverr Configuration Management](driver-hdf-manage.md)** +- **[Driver Configuration Management](driver-hdf-manage.md)** - **[HDF Development Example](driver-hdf-sample.md)** diff --git a/en/device-dev/driver/driver-peripherals.md b/en/device-dev/driver/drive-peripherals.md similarity index 100% rename from en/device-dev/driver/driver-peripherals.md rename to en/device-dev/driver/drive-peripherals.md diff --git a/en/device-dev/driver/driver-platform.md b/en/device-dev/driver/drive-platform.md similarity index 86% rename from en/device-dev/driver/driver-platform.md rename to en/device-dev/driver/drive-platform.md index c15f954770c..ddbfedc5a0e 100644 --- a/en/device-dev/driver/driver-platform.md +++ b/en/device-dev/driver/drive-platform.md @@ -1,4 +1,4 @@ -# Platform drivers +# Platform Drivers - **[GPIO](driver-platform-gpio-des.md)** diff --git a/en/device-dev/driver/driver.md b/en/device-dev/driver/drive.md similarity index 36% rename from en/device-dev/driver/driver.md rename to en/device-dev/driver/drive.md index a046ce6e68b..b448704264a 100644 --- a/en/device-dev/driver/driver.md +++ b/en/device-dev/driver/drive.md @@ -1,9 +1,9 @@ # Driver Usage Guidelines -- **[HDF](driver-hdf.md)** +- **[HDF](drive-hdf.md)** -- **[Platform Drivers](driver-platform.md)** +- **[Platform Drivers](drive-platform.md)** -- **[Peripherals](driver-peripherals.md)** +- **[Peripherals](drive-peripherals.md)** diff --git a/en/device-dev/driver/driver-hdf-development.md b/en/device-dev/driver/driver-hdf-development.md index 7d9e91390c0..4f5d237341d 100644 --- a/en/device-dev/driver/driver-hdf-development.md +++ b/en/device-dev/driver/driver-hdf-development.md @@ -66,7 +66,6 @@ Driver development based on the HDF consists of two parts: driver implementation HDF_INIT(g_sampleDriverEntry); ``` - 2. Compile the driver code. - Use the **Makefile** template provided by the HDF to compile the driver code. @@ -86,7 +85,6 @@ Driver development based on the HDF consists of two parts: driver implementation LIB_SUBDIRS += # Directory of Makefile ``` - 3. Configure the driver. HDF Configuration Source \(HCS\) is the source code that describes the configuration of the HDF. For details about the HCS, see [Driver Configuration Management](driver-hdf-manage.md). @@ -169,7 +167,7 @@ Driver development based on the HDF consists of two parts: driver implementation > DEVICE_PRELOAD_INVALID > } DevicePreload; > ``` -> When the **preload** field in the configuration file is set to **0** \(**DEVICE\_PRELOAD\_ENABLE**\), the driver is loaded by default during system startup. When this field is set to **1** \(**DEVICE\_PRELOAD\_ENABLE\_STEP2**\), the driver is loaded after system startup if quick start is enabled; it is loaded during system startup otherwise. When this field is set to **2** \(**DEVICE\_PRELOAD\_DISABLE**\), the driver is not loaded by default during system startup and can be dynamically loaded later. If the driver service does not exist when a user-level application obtains the driver service \(for details about how to obtain the driver service, see [Driver Message Mechanism Management](drive-hdf-news.md)\), the HDF attempts to dynamically load the driver. +> When the **preload** field in the configuration file is set to **0** \(**DEVICE\_PRELOAD\_ENABLE**\), the driver is loaded by default during system startup. When this field is set to **1** \(**DEVICE\_PRELOAD\_ENABLE\_STEP2**\), the driver is loaded after system startup if quick start is enabled; it is loaded during system startup otherwise. When this field is set to **2** \(**DEVICE\_PRELOAD\_DISABLE**\), the driver is not loaded by default during system startup and can be dynamically loaded later. If the driver service does not exist when a user-level application obtains the driver service \(for details about how to obtain the driver service, see [Driver Message Mechanism Management](driver-hdf-news.md)\), the HDF attempts to dynamically load the driver. >- Sequential loading \(drivers must be loaded by default\) > In the configuration file, the **priority** field \(the value is an integer ranging from 0 to 200\) indicates the priority of the host and driver. For drivers in different hosts, a smaller host priority value indicates a higher driver loading priority; for drivers in the same host, a smaller driver priority value indicates a higher driver loading priority. diff --git a/en/device-dev/driver/driver-hdf-news.md b/en/device-dev/driver/driver-hdf-news.md index 90f70d1aa93..0ddcc4901fa 100644 --- a/en/device-dev/driver/driver-hdf-news.md +++ b/en/device-dev/driver/driver-hdf-news.md @@ -49,7 +49,7 @@ The message mechanism provides the following features: ## How to Develop -1. Set the value of the **policy** field in the driver configuration information to **2** \(SERVICE\_POLICY\_CAPACITY, see [Driver Service Management](drive-hdf-servicemanage.md)\). +1. Set the value of the **policy** field in the driver configuration information to **2** \(SERVICE\_POLICY\_CAPACITY, see [Driver Service Management](driver-hdf-servicemanage.md)\). ``` device_sample :: Device { diff --git a/en/device-dev/driver/driver-peripherals-lcd-des.md b/en/device-dev/driver/driver-peripherals-lcd-des.md index 2b8dd1543a5..fb7eaec0acd 100644 --- a/en/device-dev/driver/driver-peripherals-lcd-des.md +++ b/en/device-dev/driver/driver-peripherals-lcd-des.md @@ -10,7 +10,7 @@ ## Overview -The Liquid Crystal Display \(LCD\) driver powers on the LCD and initializes internal LCD registers through APIs to enable the LCD to work properly. The display driver is developed based on the hardware driver foundation \([HDF](drive-hdf-overview.md)\). It provides power-on, power-off, and sending of the initialization sequence for LCD hardware across OSs and platforms. The display driver model is shown in [Figure 1](#fig69138814229). +The Liquid Crystal Display \(LCD\) driver powers on the LCD and initializes internal LCD registers through APIs to enable the LCD to work properly. The display driver is developed based on the hardware driver foundation \([HDF](driver-hdf-overview.md)\). It provides power-on, power-off, and sending of the initialization sequence for LCD hardware across OSs and platforms. The display driver model is shown in [Figure 1](#fig69138814229). **Figure 1** Architecture of the display driver model ![](figure/architecture-of-the-display-driver-model.png "architecture-of-the-display-driver-model") @@ -66,7 +66,6 @@ The display driver model is developed based on the HDF, platform APIs, and APIs Based on the LCD hardware interfaces, use the I2C, SPI, and MIPI interfaces provided by the platform to download the LCD initialization sequence. For details, see the SPEC provided by the LCD supplier. - 4. Implement other HDF interfaces as required, for example, the **Release** interface. 5. Use the HDF to create other device nodes for implementing service logic or debugging as required. diff --git a/en/device-dev/driver/driver-peripherals-touch-des.md b/en/device-dev/driver/driver-peripherals-touch-des.md index f4bfd35be3c..4298d466b0c 100644 --- a/en/device-dev/driver/driver-peripherals-touch-des.md +++ b/en/device-dev/driver/driver-peripherals-touch-des.md @@ -68,14 +68,13 @@ The interfaces shown in the figure are described as follows: Generally, the touchscreen driver IC is separated from the LCD driver IC. In this case, the touchscreen driver IC requires both 1.8 V and 3.3 V power supplies. Nowadays, the touchscreen driver IC and LCD driver IC can be integrated. Therefore, the touchscreen, requires only the 1.8 V power supply, and the 3.3 V power required internally is supplied by the LCD VSP power \(typical value: 5.5 V\) in the driver IC. - 2. **I/O control interfaces** - RESET: reset pin, which is used to reset the driver IC on the host when suspending or resuming the system. - INT: interrupt pin, which needs to be set to the input direction and pull-up status during driver initialization. After detecting an external touch signal, the driver triggers the interrupt by operating the interrupt pin. The driver reads the touch reporting data in the ISR function. 3. **Communications interfaces** - - I2C: Since only a small amount of touch data is reported by the touchscreen, I2C is used to transmit the reported data. For details about the I2C protocol and interfaces, see [I2C](drive-platform-i2c-des.md#section1695201514281). - - SPI: In addition to touch reporting data coordinates, some vendors need to obtain basic capacitance data. Therefore, Serial Peripheral Interface \(SPI\) is used to transmit such huge amount of data. For details about the SPI protocol and interfaces, see [SPI](drive-platform-spi-des.md#section71363452477). + - I2C: Since only a small amount of touch data is reported by the touchscreen, I2C is used to transmit the reported data. For details about the I2C protocol and interfaces, see [I2C](driver-platform-i2c-des.md#section1695201514281). + - SPI: In addition to touch reporting data coordinates, some vendors need to obtain basic capacitance data. Therefore, Serial Peripheral Interface \(SPI\) is used to transmit such huge amount of data. For details about the SPI protocol and interfaces, see [SPI](driver-platform-spi-des.md#section71363452477). ## Development Guidelines @@ -109,7 +108,7 @@ Regardless of the OS and system on a chip \(SoC\), the input driver is developed 3. Implement differentiated adaptation APIs of the touchscreen. - Use the platform APIs to perform operations for the reset pins, interrupt pins, and power based on the communications interfaces designed for boards. For details about the GPIO-related operations, see [GPIO](drive-platform-gpio-des.md#section259614242196). + Use the platform APIs to perform operations for the reset pins, interrupt pins, and power based on the communications interfaces designed for boards. For details about the GPIO-related operations, see [GPIO](driver-platform-gpio-des.md#section259614242196). ## Development Example diff --git a/en/device-dev/driver/driver-platform-gpio-des.md b/en/device-dev/driver/driver-platform-gpio-des.md index 045a23db3e9..b18c31bf7b4 100644 --- a/en/device-dev/driver/driver-platform-gpio-des.md +++ b/en/device-dev/driver/driver-platform-gpio-des.md @@ -106,7 +106,7 @@ The method for converting GPIO pin numbers varies according to the GPIO controll A controller manages 12 groups of GPIO pins. Each group contains 8 GPIO pins. - GPIO pin number = GPIO group index \(0-11\) x Number of GPIO pins in each group \(8\) + Offset in the group + GPIO pin number = GPIO group index \(0–11\) x Number of GPIO pins in each group \(8\) + Offset in the group Example: GPIO number of GPIO10\_3 = 10 x 8 + 3 = 83 diff --git a/en/device-dev/driver/driver-platform-spi-des.md b/en/device-dev/driver/driver-platform-spi-des.md index b2c1b311470..28da985d3b9 100644 --- a/en/device-dev/driver/driver-platform-spi-des.md +++ b/en/device-dev/driver/driver-platform-spi-des.md @@ -132,7 +132,7 @@ Before performing SPI communication, obtain an SPI device handle by calling **S DevHandle SpiOpen\(const struct SpiDevInfo \*info\); -**Table 2** Description of **SpiOpen** +**Table 2** Description of SpiOpen

Parameter

@@ -185,7 +185,7 @@ After obtaining the SPI device handle, obtain the SPI device configuration param int32\_t SpiGetCfg\(DevHandle handle, struct SpiCfg \*cfg\); -**Table 3** Description of **SpiGetCfg** +**Table 3** Description of SpiGetCfg

Parameter

@@ -224,7 +224,7 @@ int32\_t SpiGetCfg\(DevHandle handle, struct SpiCfg \*cfg\); ``` int32_t ret; struct SpiCfg cfg = {0}; /* SPI configuration information */ -ret = SpiGetCfg(spiHandle, &cfg); /* Set SPI device configuration parameters. */ +ret = SpiGetCfg(spiHandle, &cfg); /* Obtain SPI device configuration parameters. */ if (ret != 0) { HDF_LOGE("SpiGetCfg: failed, ret %d\n", ret); } @@ -236,7 +236,7 @@ After obtaining the SPI device handle, set SPI device configuration parameters b int32\_t SpiSetCfg\(DevHandle handle, struct SpiCfg \*cfg\); -**Table 4** Description of **SpiSetCfg** +**Table 4** Description of SpiSetCfg

Parameter

@@ -293,7 +293,7 @@ To write data into an SPI device only once, call the following function: int32\_t SpiWrite\(DevHandle handle, uint8\_t \*buf, uint32\_t len\); -**Table 5** Description of **SpiWrite** +**Table 5** Description of SpiWrite

Parameter

@@ -350,7 +350,7 @@ To read data from an SPI device only once, call the following function: int32\_t SpiRead\(DevHandle handle, uint8\_t \*buf, uint32\_t len\); -**Table 6** Description of **SpiRead** +**Table 6** Description of SpiRead

Parameter

@@ -407,7 +407,7 @@ To launch a custom transfer, call the following function: int32\_t SpiTransfer\(DevHandle handle, struct SpiMsg \*msgs, uint32\_t count\); -**Table 7** Description of **SpiTransfer** +**Table 7** Description of SpiTransfer

Parameter

@@ -474,7 +474,7 @@ void SpiClose\(DevHandle handle\); This function will release the resources previously obtained. -**Table 8** Description of **SpiClose** +**Table 8** Description of SpiClose

Parameter

@@ -491,7 +491,7 @@ This function will release the resources previously obtained.
``` -PalHandleDestroy(spiHandle); /* Destroy the SPI device handle. */ +SpiClose(spiHandle); /* Destroy the SPI device handle. */ ``` ## Usage Example @@ -540,7 +540,7 @@ void SpiTestSample(void) HDF_LOGE("SpiWrite: failed, ret %d\n", ret); goto err; } - /* Read data of a specified length from an SPI device. */ + /* Read data of a specific length from an SPI device. */ ret = SpiRead(spiHandle, rbuff, 4); if (ret != 0) { HDF_LOGE("SpiRead: failed, ret %d\n", ret); diff --git a/en/device-dev/get-code/figure/3-22.png b/en/device-dev/get-code/figure/3-27.png similarity index 100% rename from en/device-dev/get-code/figure/3-22.png rename to en/device-dev/get-code/figure/3-27.png diff --git a/en/device-dev/get-code/gettools-acquire.md b/en/device-dev/get-code/gettools-acquire.md index e1654c255a4..63f4da06cd6 100644 --- a/en/device-dev/get-code/gettools-acquire.md +++ b/en/device-dev/get-code/gettools-acquire.md @@ -180,13 +180,13 @@ hb set 1. Obtain the Docker image. ``` - docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:0.0.2 + docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:0.0.1 ``` 2. Go to the root directory of OpenHarmony code and run the following command to access the Docker build environment: ``` - docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:0.0.2 + docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:0.0.1 ``` @@ -208,7 +208,7 @@ hb set 3. Go to the root directory of OpenHarmony code and run the following command to access the Docker build environment: ``` - docker run -it -v $(pwd):/home/openharmony openharmony-docker-standard:0.0.2 + docker run -it -v $(pwd):/home/openharmony openharmony-docker-standard:0.0.1 ``` @@ -287,9 +287,8 @@ Start building. Docker can be automatically installed only in Ubuntu. If you are hpm run docker ``` - This example uses the **@ohos/hispark\_taurus** solution for illustration. If the execution is successful, the output is as follows: - + ``` ... ohos ipcamera_hispark_taurus build success! diff --git a/en/device-dev/get-code/gettools-ide.md b/en/device-dev/get-code/gettools-ide.md index ec5de1cf9a4..73f534bb8ae 100644 --- a/en/device-dev/get-code/gettools-ide.md +++ b/en/device-dev/get-code/gettools-ide.md @@ -9,7 +9,7 @@ HUAWEI DevEco Device Tool is a one-stop integrated development environment \(IDE The roadmap of Huawei DevEco Device Tool for supporting OpenHarmony device development is shown in the figure below. -![](figure/3-22.png) +![](figure/3-27.png) ## Acquiring the Application Development Tool \(HUAWEI DevEco Studio\) diff --git a/en/device-dev/get-code/sourcecode-acquire.md b/en/device-dev/get-code/sourcecode-acquire.md index c581d9b3fba..7605710422b 100644 --- a/en/device-dev/get-code/sourcecode-acquire.md +++ b/en/device-dev/get-code/sourcecode-acquire.md @@ -51,7 +51,7 @@ This document describes how to acquire OpenHarmony source code and provides its 1. Register your account with Gitee. 2. Register an SSH public key for access to Gitee. -3. Install the [git client](http://git-scm.com/book/en/v2/Getting-Started-Installing-Git) and [git-lfs](https://gitee.com/vcs-all-in-one/git-lfs?_from=gitee_search#downloading), and configure basic user information. +3. Install the [git client](http://git-scm.com/book/en/v2/Getting-Started-Installing-Git) and [git-lfs](https://gitee.com/vcs-all-in-one/git-lfs?_from=gitee_search#downloading)), and configure basic user information. ``` git config --global user.name "yourname" @@ -109,7 +109,7 @@ This document describes how to acquire OpenHarmony source code and provides its - Obtaining the source code of other OpenHarmony releases - For details about how to obtain the source code of other OpenHarmony releases, see the [Release Notes](https://gitee.com/openharmony/docs/blob/master/en/release-notes/Readme.md). + For details about how to obtain the source code of other OpenHarmony releases, see the [Release Notes](https://gitee.com/openharmony/docs/blob/master/en/release-notes/OpenHarmony-Release-Notes.md). ## Method 2: Acquiring Source Code from HPM @@ -162,7 +162,6 @@ You must install **Node.js** and HPM on your local PC. The installation proced ![](figure/en-us_image_0000001119915556.png) - 2. Learn more about the distribution. 1. Read carefully the information about the distribution to learn its application scenarios, features, bundles, usage, and customization methods, as shown in the following figure. @@ -185,7 +184,6 @@ You must install **Node.js** and HPM on your local PC. The installation proced ![](figure/en-us_image_0000001166715379.png) - 4. Download and install bundles. 1. Decompress the downloaded file using the CLI tool CMD \(shell in Linux\). 2. In the generated directory, run the **hpm install** command. @@ -197,7 +195,7 @@ You must install **Node.js** and HPM on your local PC. The installation proced To ensure the download performance, you are advised to download the source code or the corresponding solution from the image library of the respective site listed in the table below. >![](../public_sys-resources/icon-note.gif) **NOTE:** ->- The table below provides only the sites for downloading the latest OpenHarmony master and LTS code. For details about how to obtain the source code of earlier versions, see the [Release Notes](https://gitee.com/openharmony/docs/tree/master/en/release-notes/Readme.md). +>- The table below provides only the sites for downloading the latest OpenHarmony master and LTS code. For details about how to obtain the source code of earlier versions, see the [Release Notes](https://gitee.com/openharmony/docs/tree/master/en/release-notes). >- The Master 1.0 version is no longer maintained. **Table 1** Sites for acquiring source code from image sites diff --git a/en/device-dev/glossary/glossary.md b/en/device-dev/glossary/glossary.md index 662188c5f97..8ece9abda66 100644 --- a/en/device-dev/glossary/glossary.md +++ b/en/device-dev/glossary/glossary.md @@ -1,100 +1,5 @@ -# Glossary +# Glossary -- [A](#en-us_topic_0000001050749051_section1679023922312) -- [B](#en-us_topic_0000001050749051_section62182102017) -- [D](#en-us_topic_0000001050749051_section1670294920236) -- [F](#en-us_topic_0000001050749051_section5406185415236) -- [H](#en-us_topic_0000001050749051_section891816813243) -- [I](#en-us_topic_0000001050749051_section10124052142516) -- [P](#en-us_topic_0000001050749051_section779354121411) -- [S](#en-us_topic_0000001050749051_section25661636182615) - -## A - -- **Ability** - - An ability is an abstraction of a functionality that an application can provide. Abilities of applications are classified into two types: Feature Ability \(FA\) and Particle Ability \(PA\). - - -- **AbilitySlice** - - An AbilitySlice is the combination of a single visualized UI and its interactive logic. AbilitySlice is the fundamental unit of a Feature Ability. A Feature Ability can contain a group of UIs representing closely associated services, and each UI corresponds to one AbilitySlice. - -- **AMS** - - Ability Manager Service, a service that manages abilities - - -## B - -- **BMS** - - Bundle Manager Service, a service that manages application bundles - - -## D - -- **DevEco Studio for Embedded** - - Integrated development environment \(IDE\) for developing embedded devices - -- **DMS** - - Distributed Management Service, a service used for distributed data management - - -## F - -- **FA** - - Feature Ability, representing an ability with a UI for interacting with users - - -## H - -- **HAP** - - OpenHarmony Ability Package, released as a HAP file. One HAP file describes all content of an application, including code, resources, third-party libraries, and a configuration file. - -- **HCS** - - HDF Configuration Source \(HCS\) describes the HDF configuration using key-value pairs. HCS is designed to decouple configuration code from driver code, thereby facilitating configuration management. - - -- **HC-GEN** - - HDF Configuration Generator \(HC-GEN\) is a tool for converting a configuration file into a file that can be read by the target software. - - -- **HDF** - - Hardware Driver Foundation that allows unified access from peripheral devices and provides foundation for driver development and management in OpenHarmony - - -## I - -- **IDN** - - Intelligent Distributed Networking, a distributed networking capability unit specific to OpenHarmony. You can use IDN to obtain the device list and device states and subscribe to the connection state changes of devices on the distributed network. - - -## P - -- **PA** - - Particle Ability, representing an ability without a UI. PAs are invoked to implement Feature Ability \(FA\) functionalities. For example, a PA runs in the background to provide the computing capability or acts as a data warehouse to provide the data access capability. - - -## S - -- **Super virtual device** - - Also called super device. It integrates the capabilities of multiple devices through the distributed technology into a virtual hardware resource pool and then centrally manages and schedules these capabilities based on application requirements. - -- **System type** - - Mini system: refers to a system running on the devices whose memory is greater than or equal to 128 KB and that are equipped with only limited resources and MCU processors such as ARM Cortex-M and 32-bit RISC-V. This system provides rich short-distance connection capabilities and a bus for accessing peripherals. This system applies to smart home products such as LinkIoT module devices and sensors. - - Small system: refers to a system running on the devices whose memory is greater than or equal to 1 MB and that are equipped with application processors such as ARM Cortex-A. This system provides higher security capabilities, standard graphics frameworks, and video encoding and decoding capabilities. This system applies to smart home products such as IP cameras, peephole cameras, and routers as well as smart travel products such as event data recorders \(EDRs\). - - Standard system: refers to a system running on the devices whose memory is greater than or equal to 128 MB and that are equipped with application processors such as ARM Cortex-A. This system provides a complete application framework supporting the enhanced interaction, 3D GPU, hardware composer, diverse components, and rich animations. This system applies to high-end refrigerator displays. - - Large system: refers to a system running on the devices whose memory is greater than or equal to 1 GB and that are equipped with application processors such as ARM Cortex-A. This system provides a complete compatible application framework. This system applies to smart TVs and watches. +- **[Glossary](glossary.md)** diff --git a/en/device-dev/glossary/public_sys-resources/icon-caution.gif b/en/device-dev/glossary/public_sys-resources/icon-caution.gif deleted file mode 100644 index 6e90d7cfc2193e39e10bb58c38d01a23f045d571..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580 zcmV-K0=xZ3Nk%w1VIu$?0Hp~4{QBgqmQ+MG9K51r{QB&)np^||1PlfQ%(86!{`~yv zv{XhUWKt}AZaiE{EOcHp{O-j3`t;<+eEiycJT4p@77X;(jQsMfB$R?oG%6hQ z+MMLZbQBH@)Vg&1^3?qHb(5!%>3r0+`eq=&V&E}0Dypi0000000000 z00000A^8LW000R9EC2ui03!e$000L5z=Uu}ED8YtqjJd<+B}(9bIOb$3-31_h|V>=0A{ z1Hh0#H30>fNT})^fRU_83uewx9oRr{f{Sx1Ml`t)EQ zGkHZ67&~y{W5Jpq4H_WfuLxp*3<7O}GEl;1ESe36fLNs=B0&LQM1Buf(R)qg(BRd`t1OPjI1m_q4 diff --git a/en/device-dev/glossary/public_sys-resources/icon-danger.gif b/en/device-dev/glossary/public_sys-resources/icon-danger.gif deleted file mode 100644 index 6e90d7cfc2193e39e10bb58c38d01a23f045d571..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580 zcmV-K0=xZ3Nk%w1VIu$?0Hp~4{QBgqmQ+MG9K51r{QB&)np^||1PlfQ%(86!{`~yv zv{XhUWKt}AZaiE{EOcHp{O-j3`t;<+eEiycJT4p@77X;(jQsMfB$R?oG%6hQ z+MMLZbQBH@)Vg&1^3?qHb(5!%>3r0+`eq=&V&E}0Dypi0000000000 z00000A^8LW000R9EC2ui03!e$000L5z=Uu}ED8YtqjJd<+B}(9bIOb$3-31_h|V>=0A{ z1Hh0#H30>fNT})^fRU_83uewx9oRr{f{Sx1Ml`t)EQ zGkHZ67&~y{W5Jpq4H_WfuLxp*3<7O}GEl;1ESe36fLNs=B0&LQM1Buf(R)qg(BRd`t1OPjI1m_q4 diff --git a/en/device-dev/glossary/public_sys-resources/icon-note.gif b/en/device-dev/glossary/public_sys-resources/icon-note.gif deleted file mode 100644 index 6314297e45c1de184204098efd4814d6dc8b1cda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 394 zcmZ?wbhEHblx7fPSjxcg=ii?@_wH=jwxy=7CMGH-B`L+l$wfv=#>UF#$gv|VY%C^b zCQFtrnKN(Bo_%|sJbO}7RAORe!otL&qo<>yq_Sq+8Xqqo5h0P3w3Lvb5E(g{p01vl zxR@)KuDH0l^z`+-dH3eaw=XqSH7aTIx{kzVBN;X&hha0dQSgWuiw0NWUvMRmkD|> diff --git a/en/device-dev/glossary/public_sys-resources/icon-notice.gif b/en/device-dev/glossary/public_sys-resources/icon-notice.gif deleted file mode 100644 index 86024f61b691400bea99e5b1f506d9d9aef36e27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmV;H0crk6Nk%w1VIu$@0J8u9|NsB@_xJDb@8;&_*4Ea}&d#;9wWXz{jEszHYim+c zQaU<1At50E0000000000A^8Le000gEEC2ui03!e%000R7038S%NU)&51O^i-Tu6`s z0)`MFE@;3YqD6xSC^kTNu_J>91{PH8XfZ(p1pp2-SU@u3#{mEUC}_}tg3+I#{z}{Ok@D_ZUDg- zt0stin4;pC8M{WLSlRH*1pzqEw1}3oOskyNN?j;7HD{BBZ*OEcv4HK!6Bk6beR+04 z&8}k>SkTusVTDmkyOz#5fCA$JTPGJVQvr3uZ?QzzPQFvD0rGf_PdrcF`pMs}p^BcF zKtKTd`0wipR%nKN&Wj+V}pX;WC3SdJV!a_8Qi zE7z`U*|Y^H0^}fB$R?oG%6hQ z+MMLZbQBH@)Vg&1^3?qHb(5!%>3r0+`eq=&V&E}0Dypi0000000000 z00000A^8LW000R9EC2ui03!e$000L5z=Uu}ED8YtqjJd<+B}(9bIOb$3-31_h|V>=0A{ z1Hh0#H30>fNT})^fRU_83uewx9oRr{f{Sx1Ml`t)EQ zGkHZ67&~y{W5Jpq4H_WfuLxp*3<7O}GEl;1ESe36fLNs=B0&LQM1Buf(R)qg(BRd`t1OPjI1m_q4 diff --git a/en/device-dev/guide/Readme-EN.md b/en/device-dev/guide/Readme-EN.md index ca124ea327c..73cd1dffd06 100644 --- a/en/device-dev/guide/Readme-EN.md +++ b/en/device-dev/guide/Readme-EN.md @@ -1,8 +1,8 @@ # Development Examples - [WLAN-connected Products](device-wifi.md) - - [LED Peripheral Control](device-wifi-led-outcontrol.md) - - [Third-Party SDK Integration](device-wifi-sdk.md) + - [LED Peripheral Control](device-wlan-led-outcontrol.md) + - [Third-Party SDK Integration](device-wlan-sdk.md) - [Cameras Without a Screen](device-iotcamera.md) - [Camera Control](device-iotcamera-control.md) - [Overview](device-iotcamera-control-overview.md) @@ -22,11 +22,11 @@ - [Overview](device-camera-visual-overview.md) - [Preparations](device-camera-visual-prepare.md) - [Adding Pages](device-camera-visual-addpage.md) - - [Building the Home Page](device-camera-visual-first-page.md) + - [Building the Home Page](device-camera-visual-firstpage.md) - [Building the Details Page](device-camera-visual-details.md) - [Debugging and Packaging](device-camera-visual-debug.md) - [Running on the Device](device-camera-visual-run.md) - [FAQs](device-camera-visual-faqs.md) -- [Development Guidelines on Clock Apps](oem_device_clockapp_des.md) +- [Development Guidelines on Clock Apps](device-clock-guide.md) - [Development Example for Platform Drivers](device-driver-demo.md) - [Development Example for Peripheral Drivers](device-outerdriver-demo.md) \ No newline at end of file diff --git a/en/device-dev/guide/device-camera-visual-first-page.md b/en/device-dev/guide/device-camera-visual-firstpage.md similarity index 99% rename from en/device-dev/guide/device-camera-visual-first-page.md rename to en/device-dev/guide/device-camera-visual-firstpage.md index 5fe705f70f0..a610376cea6 100644 --- a/en/device-dev/guide/device-camera-visual-first-page.md +++ b/en/device-dev/guide/device-camera-visual-firstpage.md @@ -111,7 +111,6 @@ The following steps describe how to build the home page with a flexible layout t } ``` - - **index="\{\{swiperPage\}\}" duration="500" onchange="swiperChange"** sets the component attribute and event. **duration="500"** indicates that the duration of the swiping animation is 500 ms. - **index="\{\{swiperPage\}\}"** specifies the index of the child component of ****. **\{\{swiperPage\}\}** indicates that the index value is dynamically bound to the **swiperPage** variable in the JavaScript code. The index value changes with the **swiperPage** value. - **onchange="swiperChange"** binds the change event of the **** component to the **swiperChange** function. The JavaScript code is as follows: @@ -141,7 +140,6 @@ The following steps describe how to build the home page with a flexible layout t } ``` - 4. Set the information about a city to be displayed on a screen. On each screen, information of different types is displayed using different components. Add two **** as child components \(directional layout\) to ****. Add ****, ****, ****, and other components to each **** to display the information. The following example shows the page structure: diff --git a/en/device-dev/guide/device-camera-visual.md b/en/device-dev/guide/device-camera-visual.md index 183a3c5758f..223659e705e 100644 --- a/en/device-dev/guide/device-camera-visual.md +++ b/en/device-dev/guide/device-camera-visual.md @@ -6,7 +6,7 @@ - **[Adding Pages](device-camera-visual-addpage.md)** -- **[Building the Home Page](device-camera-visual-first-page.md)** +- **[Building the Home Page](device-camera-visual-firstpage.md)** - **[Building the Details Page](device-camera-visual-details.md)** diff --git a/en/device-dev/guide/oem_device_clockapp_des.md b/en/device-dev/guide/device-clock-guide.md similarity index 96% rename from en/device-dev/guide/oem_device_clockapp_des.md rename to en/device-dev/guide/device-clock-guide.md index 5a7836cea35..9ddbe73f5d1 100644 --- a/en/device-dev/guide/oem_device_clockapp_des.md +++ b/en/device-dev/guide/device-clock-guide.md @@ -29,7 +29,7 @@ Download and install DevEco Studio. For details, see the [HUAWEI DevEco Studio The Clock app displays the current time through a clock face and numbers. -As shown in [Figure 1 Clock display effect](oem_device_clockapp_des.md#fig7763172132019), the UI consists of two parts: +As shown in [Figure 1 Clock display effect](#fig7763172132019), the UI consists of two parts: - Clock face area: displays a dynamic analog clock whose hands rotate accurately. - Digital time area: displays the current time in numerals. @@ -177,9 +177,8 @@ To build such an app, we can create a page that has a flexible layout with two r ``` - - **index.css** - + ``` .container { flex-direction: column; @@ -217,11 +216,10 @@ To build such an app, we can create a page that has a flexible layout with two r } ``` - - **index.js** - + A **.js** file is used to implement logic interactions of the clock app. The following **.js** file implements the function of periodically obtaining the system time. - + ``` export default { timer: undefined, @@ -263,7 +261,7 @@ After finishing writing the app code, you need to sign and package the app befor ## Running on the Real Device -Before you install the app and run it on the development board, install the DevEco Device Tool by following operations provided in [HUAWEI DevEco Device Tool User Guide](https://device.harmonyos.com/en/docs/ide/user-guides/tool_install-0000001050164976). Burn OpenHarmony into the development board, and run it on the board. For details about how to build, burn, and run an image, see [Getting Started with Hi3516](../quick-start/quickstart-standard.md). After the image is running normally and the system is started properly, perform the following steps to install or uninstall the app: +Before you install the app and run it on the development board, install the DevEco Device Tool by following operations provided in [HUAWEI DevEco Device Tool User Guide](https://device.harmonyos.com/en/docs/ide/user-guides/service_introduction-0000001050166905). Burn OpenHarmony into the development board, and run it on the board. For details about how to build, burn, and run an image, see . After the image is running normally and the system is started properly, perform the following steps to install or uninstall the app: 1. Obtain the HDC client from the following path: diff --git a/en/device-dev/guide/device-driver-demo.md b/en/device-dev/guide/device-driver-demo.md index 9415d532308..88e2e5a1e6c 100644 --- a/en/device-dev/guide/device-driver-demo.md +++ b/en/device-dev/guide/device-driver-demo.md @@ -34,7 +34,7 @@ In this example, an I2C driver is used. [Figure 1](#fig148041484161) shows the ## Preparations -Follow the instructions in [Environment Setup for Standard System](../quick-start/quickstart-standard.md). +Follow the instructions in [Environment Setup for Standard System](../quick-start/quickstart-standard-description.md). >![](../public_sys-resources/icon-notice.gif) **NOTICE:** >This development example applies to standard, small, and mini OpenHarmony systems. The following sections use the standard system as an example. You can refer to the specific guide for your system to set up the environment. diff --git a/en/device-dev/guide/device-outerdriver-demo.md b/en/device-dev/guide/device-outerdriver-demo.md index 6ac02acd647..5ae984c6f5f 100644 --- a/en/device-dev/guide/device-outerdriver-demo.md +++ b/en/device-dev/guide/device-outerdriver-demo.md @@ -22,7 +22,7 @@ ## Overview -This document describes how to develop a touchscreen driver on the Hi3516D V300 development board using the HDF input driver model, helping you quickly get started with peripheral driver development. +This document describes how to develop a touchscreen driver on the Hi3516D V300 development board using the HDF input driver model, helping you quickly get started with OpenHarmony peripheral driver development. ### Hardware Resources @@ -40,7 +40,7 @@ The input driver model mainly consists of the device manager, common drivers, an In addition, the input driver model implements functions for reporting input data and parsing input device configurations. -For details about the input driver model, see [Touchscreen Overview](../driver/drive-peripherals-touch-des.md#section175431838101617). +For details about the input driver model, see [Touchscreen Overview](../driver/driver-peripherals-touch-des.md#section175431838101617). ## Setting Up the Environment diff --git a/en/device-dev/guide/device-wifi.md b/en/device-dev/guide/device-wifi.md index 73a5fc8cae7..791c0edb689 100644 --- a/en/device-dev/guide/device-wifi.md +++ b/en/device-dev/guide/device-wifi.md @@ -1,7 +1,7 @@ # WLAN-connected Products -- **[LED Peripheral Control](device-wifi-led-outcontrol.md)** +- **[LED Peripheral Control](device-wlan-led-outcontrol.md)** -- **[Third-Party SDK Integration](device-wifi-sdk.md)** +- **[Third-Party SDK Integration](device-wlan-sdk.md)** diff --git a/en/device-dev/guide/device-wifi-led-outcontrol.md b/en/device-dev/guide/device-wlan-led-outcontrol.md similarity index 100% rename from en/device-dev/guide/device-wifi-led-outcontrol.md rename to en/device-dev/guide/device-wlan-led-outcontrol.md diff --git a/en/device-dev/guide/device-wifi-sdk.md b/en/device-dev/guide/device-wlan-sdk.md similarity index 100% rename from en/device-dev/guide/device-wifi-sdk.md rename to en/device-dev/guide/device-wlan-sdk.md diff --git a/en/device-dev/guide/device.md b/en/device-dev/guide/device.md index bbce9d52a9d..894af2e23da 100644 --- a/en/device-dev/guide/device.md +++ b/en/device-dev/guide/device.md @@ -6,7 +6,7 @@ - **[Cameras with a Screen](device-camera.md)** -- **[Development Guidelines on Clock Apps](oem_device_clockapp_des.md)** +- **[Development Guidelines on Clock Apps](device-clock-guide.md)** - **[Development Example for Platform Drivers](device-driver-demo.md)** diff --git a/en/device-dev/kernel/Readme-EN.md b/en/device-dev/kernel/Readme-EN.md index b8a0bb66040..90a19335037 100644 --- a/en/device-dev/kernel/Readme-EN.md +++ b/en/device-dev/kernel/Readme-EN.md @@ -1,86 +1,187 @@ # Kernel - [Kernel for Mini and Small Systems](kernel-lite.md) + - [Kernel for Mini Systems](kernel-lite-mini.md) + - [Kernel Overview](kernel-mini-overview.md) + - [Basic Kernel](kernel-mini-basic.md) + - [Interrupt Management](kernel-mini-basic-interrupt.md) + - [Basic Concepts](kernel-mini-basic-interrupt-concept.md) + - [Development Guidelines](kernel-mini-basic-interrupt-guide.md) + - [Task Management](kernel-mini-basic-task.md) + - [Basic Concepts](kernel-mini-basic-task-basic.md) + - [Development Guidelines](kernel-mini-basic-task-guide.md) + - [Memory Management](kernel-mini-basic-memory.md) + - [Basic Concepts](kernel-mini-basic-memory-basic.md) + - [Static Memory](kernel-mini-basic-memory-static.md) + - [Dynamic Memory](kernel-mini-basic-memory-dynamic.md) + - [Kernel Communication Mechanisms](kernel-mini-basic-ipc.md) + - [Event](kernel-mini-basic-ipc-event.md) + - [Basic Concepts](kernel-mini-basic-ipc-event-basic.md) + - [Development Guidelines](kernel-mini-basic-ipc-event-guide.md) + - [Mutex](kernel-mini-basic-ipc-mutex.md) + - [Basic Concepts](kernel-mini-basic-ipc-mutex-basic.md) + - [Development Guidelines](kernel-mini-basic-ipc-mutex-guide.md) + - [Queue](kernel-mini-basic-ipc-queue.md) + - [Basic Concepts](kernel-mini-basic-ipc-queue-basic.md) + - [Development Guidelines](kernel-mini-basic-ipc-queue-guide.md) + - [Semaphore](kernel-mini-basic-ipc-sem.md) + - [Basic Concepts](kernel-mini-basic-ipc-sem-basic.md) + - [Development Guidelines](kernel-mini-basic-ipc-sem-guide.md) + - [Time Management](kernel-basic-mini-time.md) + - [Basic Concepts](kernel-mini-basic-time-basic.md) + - [Development Guidelines](kernel-mini-basic-time-guide.md) + - [Software Timer](kernel-mini-basic-soft.md) + - [Basic Concepts](kernel-mini-basic-soft-basic.md) + - [Development Guidelines](kernel-mini-basic-soft-guide.md) + - [Extension Components](kernel-mini-extend.md) + - [C++ Support](kernel-mini-extend-support.md) + - [CPUP](kernel-mini-extend-cpup.md) + - [Basic Concepts](kernel-mini-extend-cpup-basic.md) + - [Development Guidelines](kernel-mini-extend-cpup-guide.md) + - [Dynamic Loading](kernel-mini-extend-dynamic-loading.md) + - [Basic Concepts](kernel-mini-extend-dynamic-loading-basic.md) + - [Development Guidelines](kernel-mini-extend-dynamic-loading-guide.md) + - [File System](kernel-mini-extend-file.md) + - [FAT](kernel-mini-extend-file-fat.md) + - [LittleFS](kernel-mini-extend-file-lit.md) + - [Basic Concepts](kernel-mini-extend-file-littlefs-basic.md) + - [Development Guidelines](kernel-mini-extend-file-littlefs-guide.md) + - [Kernel Debugging](kernel-memory-inner.md) + - [Memory Debugging](kernel-mini-memory-debug.md) + - [Memory Information Statistics](kernel-mini-memory-debug-mes.md) + - [Memory Leak Check](kernel-mini-imemory-debug-det.md) + - [Memory Corruption Check](kernel-mini-memory-debug-cet.md) + - [Exception Debugging](kernel-mini-memory-exception.md) + - [Trace Debugging](kernel-mini-memory-trace.md) + - [Appendix](kernel-mini-app.md) + - [Kernel Coding Specification](kernel-mini-appx-code.md) + - [Basic Data Structure](kernel-mini-appx-data.md) + - [Doubly Linked List](kernel-mini-appx-data-list.md) + - [Standard Libraries](kernel-mini-appx-lib.md) + - [CMSIS Support](kernel-mini-appx-lib-cmsis.md) + - [POSIX Support](kernel-mini-appx-lib-posix.md) - [Kernel for Small Systems](kernel-lite-small.md) - - [Basic Kernel](kernel-lite-small-basic.md) - - [Process](kernel-lite-small-process.md) - - [Thread](kernel-lite-small-thread.md) - - [Memory](kernel-lite-small-memory.md) - - [Network](kernel-lite-small-net.md) - - [File System](kernel-lite-small-file.md) - - [VFS](kernel-lite-small-file-vfs.md) - - [NFS](kernel-lite-small-file-nfs.md) - - [RAMFS](kernel-lite-small-file-ramfs.md) - - [FAT](kernel-lite-small-file-fat.md) - - [JFFS2](kernel-lite-small-file-jffs.md) - - [Standard Library](kernel-lite-small-lib.md) - - [Standard Library](kernel-lite-small-lib-standard.md) - - [Differences from the Linux Standard Library](kernel-lite-small-lib-differ.md) - - [Commissioning](kernel-lite-small-shell.md) - - [Introduction to the Shell](kernel-lite-small-shell-des.md) - - [Shell Command Development Guidelines](kernel-lite-small-shell-guide.md) - - [Shell Command Programming Example](kernel-lite-small-shell-sample.md) - - [Shell Command Reference](kernel-lite-small-shell-cmd.md) - - [System Commands](kernel-lite-small-shell-cmd-sys.md) - - [cpup](kernel-lite-small-shell-cmd-sys-cpup.md) - - [date](kernel-lite-small-shell-cmd-sys-date.md) - - [dmesg](kernel-lite-small-shell-cmd-sys-demsg.md) - - [exec](kernel-lite-small-shell-cmd-sys-exec.md) - - [free](kernel-lite-small-shell-cmd-sys-free.md) - - [help](kernel-lite-small-shell-cmd-sys-help.md) - - [hwi](kernel-lite-small-shell-cmd-sys-hwi.md) - - [kill](kernel-lite-small-shell-cmd-sys-kill.md) - - [log](kernel-lite-small-shell-cmd-sys-log.md) - - [memcheck](kernel-lite-small-shell-cmd-sys-mem.md) - - [oom](kernel-lite-small-shell-cmd-sys-oom.md) - - [pmm](kernel-lite-small-shell-cmd-sys-pmm.md) - - [reset](kernel-lite-small-shell-cmd-sys-reset.md) - - [sem](kernel-lite-small-shell-cmd-sys-sem.md) - - [stack](kernel-lite-small-shell-cmd-sys-stack.md) - - [su](kernel-lite-small-shell-cmd-sys-su.md) - - [swtmr](kernel-lite-small-shell-cmd-sys-swymr.md) - - [systeminfo](kernel-lite-small-shell-cmd-sys-sys.md) - - [task](kernel-lite-small-shell-cmd-sys-task.md) - - [uname](kernel-lite-small-shell-cmd-sys-uname.md) - - [vmm](kernel-lite-small-shell-cmd-sys-vmm.md) - - [watch](kernel-lite-small-shell-cmd-sys-watch.md) - - [File Commands](kernel-lite-small-shell-cmd-file.md) - - [cat](kernel-lite-small-shell-cmd-file-cat.md) - - [cd](kernel-lite-small-shell-cmd-file-cd.md) - - [chgrp](kernel-lite-small-shell-cmd-file-chgrp.md) - - [chmod](kernel-lite-small-shell-cmd-file-chmod.md) - - [chown](kernel-lite-small-shell-cmd-file-chown.md) - - [cp](kernel-lite-small-shell-cmd-file-cp.md) - - [format](kernel-lite-small-shell-cmd-file-format.md) - - [ls](kernel-lite-small-shell-cmd-file-is.md) - - [lsfd](kernel-lite-small-shell-cmd-file-isfd.md) - - [mkdir](kernel-lite-small-shell-cmd-file-mkdir.md) - - [mount](kernel-lite-small-shell-cmd-file-mount.md) - - [partinfo](kernel-lite-small-shell-cmd-file-part.md) - - [partition](kernel-lite-small-shell-cmd-file-partion.md) - - [pwd](kernel-lite-small-shell-cmd-file-pwd.md) - - [rm](kernel-lite-small-shell-cmd-file-rm.md) - - [rmdir](kernel-lite-small-shell-cmd-file-rmdir.md) - - [statfs](kernel-lite-small-shell-cmd-file-sta.md) - - [sync](kernel-lite-small-shell-cmd-file-sync.md) - - [touch](kernel-lite-small-shell-cmd-file-touch.md) - - [writeproc](kernel-lite-small-shell-cmd-file-write.md) - - [umount](kernel-lite-small-shell-cmd-file-umount.md) - - [Network Commands](kernel-lite-small-shell-cmd-net.md) - - [arp](kernel-lite-small-shell-cmd-net-arp.md) - - [dhclient](kernel-lite-small-shell-cmd-net-dh.md) - - [dns](kernel-lite-small-shell-cmd-net-dns.md) - - [ifconfig](kernel-lite-small-shell-cmd-net-ipc.md) - - [ipdebug](kernel-lite-small-shell-cmd-net-ipd.md) - - [netstat](kernel-lite-small-shell-cmd-net-net.md) - - [ntpdate](kernel-lite-small-shell-cmd-net-ntp.md) - - [ping](kernel-lite-small-shell-cmd-net-ping.md) - - [ping6](kernel-lite-small-shell-cmd-net-ping6.md) - - [telnet](kernel-lite-small-shell-cmd-net-tel.md) - - [tftp](kernel-lite-small-shell-cmd-net-tftp.md) - - [Magic Key Usage](kernel-lite-small-shell-cmd-mag.md) - - [User-Space Exception Information](kernel-lite-small-shell-cmd-abn.md) + - [Kernel Overview](kernel-small-overview.md) + - [Kernel Startup](kernel-small-start.md) + - [Startup in Kernel Space](kernel-small-start-kernel.md) + - [Startup in User Space](kernel-small-start-user.md) + - [Basic Kernel](kernel-small-basics.md) + - [Interrupt and Exception Handling](kernel-small-basic-interrupt.md) + - [Process Management](kernel-small-basic-process.md) + - [Process](kernel-small-basic-process-process.md) + - [Thread](kernel-small-basic-process-thread.md) + - [Scheduler](kernel-small-basic-process-scheduler.md) + - [Memory Management](kernel-small-basic-memory.md) + - [Heap Memory Management](kernel-small-basic-memory-heap.md) + - [Physical Memory Management](kernel-small-basic-memory-physical.md) + - [Virtual Memory Management](kernel-small-basic-memory-virtual.md) + - [Virtual-to-Physical Mapping](kernel-small-basic-inner-reflect.md) + - [Kernel Communication Mechanisms](kernel-small-basic-trans.md) + - [Event](kernel-small-basic-trans-event.md) + - [Semaphore](kernel-small-basic-trans-semaphore.md) + - [Mutex](kernel-small-basic-trans-mutex.md) + - [Queue](kernel-small-basic-trans-queue.md) + - [RW Lock](kernel-small-basic-trans-rwlock.md) + - [Futex](kernel-small-basic-trans-user-mutex.md) + - [Signal](kernel-small-basic-trans-user-signal.md) + - [Time Management](kernel-small-basic-time.md) + - [Software Timer](kernel-small-basic-softtimer.md) + - [Atomic Operation](kernel-small-basic-atomic.md) + - [Extension Components](kernel-small-bundles.md) + - [System Call](kernel-small-bundles-system.md) + - [Dynamic Loading and Linking](kernel-small-bundles-linking.md) + - [Virtual Dynamic Shared Object](kernel-small-bundles-share.md) + - [LiteIPC](kernel-small-bundles-ipc.md) + - [File Systems](kernel-small-bundles-fs.md) + - [Virtual File System](kernel-small-bundles-fs-virtual.md) + - [Supported File Systems](kernel-small-bundles-fs-support.md) + - [FAT](kernel-small-bundles-fs-support-fat.md) + - [JFFS2](kernel-small-bundles-fs-support-jffs2.md) + - [NFS](kernel-small-bundles-fs-support-nfs.md) + - [Ramfs](kernel-small-bundles-fs-support-ramfs.md) + - [procfs](kernel-small-bundles-fs-support-procfs.md) + - [File System Adaptation](kernel-small-bundles-fs-new.md) + - [Debugging and Tools](kernel-small-debug.md) + - [Shell](kernel-small-debug-shell.md) + - [Introduction to the Shell](kernel-small-debug-shell-overview.md) + - [Shell Command Development Guidelines](kernel-small-debug-shell-guide.md) + - [Shell Command Programming Example](kernel-small-debug-shell-build.md) + - [Shell Command Reference](kernel-small-debug-shell-details.md) + - [System Commands](kernel-small-debug-shell-cmd.md) + - [cpup](kernel-small-debug-shell-cmd-cpup.md) + - [date](kernel-small-debug-shell-cmd-date.md) + - [dmesg](kernel-small-debug-shell-cmd-dmesg.md) + - [exec](kernel-small-debug-shell-cmd-exec.md) + - [free](kernel-small-debug-shell-cmd-free.md) + - [help](kernel-small-debug-shell-cmd-help.md) + - [hwi](kernel-small-debug-shell-cmd-hwi.md) + - [kill](kernel-small-debug-shell-cmd-kill.md) + - [log](kernel-small-debug-shell-cmd-log.md) + - [memcheck](kernel-small-debug-shell-cmd-memcheck.md) + - [oom](kernel-small-debug-shell-cmd-oom.md) + - [pmm](kernel-small-debug-shell-cmd-pmm.md) + - [reset](kernel-small-debug-shell-cmd-reset.md) + - [sem](kernel-small-debug-shell-cmd-sem.md) + - [stack](kernel-small-debug-shell-cmd-stack.md) + - [su](kernel-small-debug-shell-cmd-su.md) + - [swtmr](kernel-small-debug-shell-cmd-swtmr.md) + - [systeminfo](kernel-small-debug-shell-cmd-sysinfo.md) + - [task](kernel-small-debug-shell-cmd-task.md) + - [uname](kernel-small-debug-shell-cmd-uname.md) + - [vmm](kernel-small-debug-shell-cmd-vmm.md) + - [watch](kernel-small-debug-shell-cmd-watch.md) + - [File Commands](kernel-small-debug-shell-file.md) + - [cat](kernel-small-debug-shell-file-cat.md) + - [cd](kernel-small-debug-shell-file-cd.md) + - [chgrp](kernel-small-debug-shell-file-chgrp.md) + - [chmod](kernel-small-debug-shell-file-chmod.md) + - [chown](kernel-small-debug-shell-file-chown.md) + - [cp](kernel-small-debug-shell-file-cp.md) + - [format](kernel-small-debug-shell-file-format.md) + - [ls](kernel-small-debug-shell-file-ls.md) + - [lsfd](kernel-small-debug-shell-file-lsfd.md) + - [mkdir](kernel-small-debug-shell-file-mkdir.md) + - [mount](kernel-small-debug-shell-file-mount.md) + - [partinfo](kernel-small-debug-shell-file-partinfo.md) + - [partition](kernel-small-debug-shell-file-partition.md) + - [pwd](kernel-small-debug-shell-file-pwd.md) + - [rm](kernel-small-debug-shell-file-rm.md) + - [rmdir](kernel-small-debug-shell-file-rmdir.md) + - [statfs](kernel-small-debug-shell-file-statfs.md) + - [sync](kernel-small-debug-shell-file-sync.md) + - [touch](kernel-small-debug-shell-file-touch.md) + - [writeproc](kernel-small-debug-shell-file-write.md) + - [umount](kernel-small-debug-shell-file-umount.md) + - [Network Commands](kernel-small-debug-shell-net.md) + - [arp](kernel-small-debug-shell-net-arp.md) + - [dhclient](kernel-small-debug-shell-net-dhclient.md) + - [dns](kernel-small-debug-shell-net-dns.md) + - [ifconfig](kernel-small-debug-shell-net-ifconfig.md) + - [ipdebug](kernel-small-debug-shell-net-ipdebug.md) + - [netstat](kernel-small-debug-shell-net-netstat.md) + - [ntpdate](kernel-small-debug-shell-net-ntpdate.md) + - [ping](kernel-small-debug-shell-net-ping.md) + - [ping6](kernel-small-debug-shell-net-ping6.md) + - [telnet](kernel-small-debug-shell-net-telnet.md) + - [tftp](kernel-small-debug-shell-net-tftp.md) + - [Magic Key](kernel-small-debug-shell-magickey.md) + - [User-Space Exception Information](kernel-small-debug-shell-error.md) + - [Trace](kernel-small-debug-trace.md) + - [Process Commissioning](kernel-small-debug-process.md) + - [CPUP](kernel-small-debug-process-cpu.md) + - [Memory Debugging](kernel-small-debug-memory.md) + - [Memory Information Statistics](kernel-small-debug-memory-info.md) + - [Memory Leak Check](kernel-small-debug-memory-leak.md) + - [Memory Corruption Check](kernel-small-debug-memory-corrupt.md) + - [Other Kernel Debugging Methods](kernel-small-debug-other.md) + - [Dying Gasp](kernel-small-debug-trace-other-lastwords.md) + - [Common Fault Locating Methods](kernel-small-debug-trace-other-faqs.md) + - [Appendix](kernel-small-apx.md) + - [Basic Data Structure](kernel-small-apx-structure.md) + - [Doubly Linked List](kernel-small-apx-dll.md) + - [Bitwise Operation](kernel-small-apx-bitwise.md) + - [Standard Library](kernel-small-apx-library.md) - [Kernel for Standard Systems](kernel-standard.md) - - [Linux Kernel Overview](kernel-standard-des.md) + - [Linux Kernel Overview](kernel-standard-overview.md) - [Guidelines for Using Patches on OpenHarmony Development Boards](kernel-standard-patch.md) - [Guidelines for Compiling and Building the Linux Kernel](kernel-standard-build.md) \ No newline at end of file diff --git a/en/device-dev/kernel/figure/directory-switching-result.png b/en/device-dev/kernel/figure/changing-the-directory.png similarity index 100% rename from en/device-dev/kernel/figure/directory-switching-result.png rename to en/device-dev/kernel/figure/changing-the-directory.png diff --git a/en/device-dev/kernel/figure/changing-the-permission-on-the-hello-harmony-txt-file-to-666.png b/en/device-dev/kernel/figure/changing-the-permission-for-the-hello-harmony-txt-file-to-666.png similarity index 100% rename from en/device-dev/kernel/figure/changing-the-permission-on-the-hello-harmony-txt-file-to-666.png rename to en/device-dev/kernel/figure/changing-the-permission-for-the-hello-harmony-txt-file-to-666.png diff --git a/en/device-dev/kernel/figure/command-output-19.png b/en/device-dev/kernel/figure/command-output-24.png similarity index 100% rename from en/device-dev/kernel/figure/command-output-19.png rename to en/device-dev/kernel/figure/command-output-24.png diff --git a/en/device-dev/kernel/figure/cpu-accessing-the-memory-or-peripheral.png b/en/device-dev/kernel/figure/cpu-accessing-the-memory-or-peripheral.png new file mode 100644 index 0000000000000000000000000000000000000000..557c335dae9a8974bc040a983c148043edde308d GIT binary patch literal 17533 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%0DO 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 XI3vqObo1eU;k$Rb?Vx?P|EK=|T5g!P literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/viewing-content-of-the-current-directory.png b/en/device-dev/kernel/figure/displaying-content-of-the-current-directory.png similarity index 100% rename from en/device-dev/kernel/figure/viewing-content-of-the-current-directory.png rename to en/device-dev/kernel/figure/displaying-content-of-the-current-directory.png diff --git a/en/device-dev/kernel/figure/viewing-content-of-the-hello-harmony-txt-file.png b/en/device-dev/kernel/figure/displaying-the-content-of-hello-harmony-txt.png similarity index 100% rename from en/device-dev/kernel/figure/viewing-content-of-the-hello-harmony-txt-file.png rename to en/device-dev/kernel/figure/displaying-the-content-of-hello-harmony-txt.png diff --git a/en/device-dev/kernel/figure/querying-the-current-path.png b/en/device-dev/kernel/figure/displaying-the-current-path.png similarity index 100% rename from en/device-dev/kernel/figure/querying-the-current-path.png rename to en/device-dev/kernel/figure/displaying-the-current-path.png diff --git a/en/device-dev/kernel/figure/dynamic-loading-process.png b/en/device-dev/kernel/figure/dynamic-loading-process.png new file mode 100644 index 0000000000000000000000000000000000000000..82fd2618ba2601ebf58a35de9f15783cfcf2f6f6 GIT binary patch literal 59235 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 At^fc4 literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/dynamic-memory-management-structure-20.png b/en/device-dev/kernel/figure/dynamic-memory-management-structure-20.png new file mode 100644 index 0000000000000000000000000000000000000000..9d98f09b73bd77ef25c732a750611bb3fb3c6b65 GIT binary patch literal 32606 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 Ra})4S|MFFx;!Ac9{ued1xC{UQ literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/dynamic-memory-management-structure.png b/en/device-dev/kernel/figure/dynamic-memory-management-structure.png new file mode 100644 index 0000000000000000000000000000000000000000..e67cd13c295d19b6ce45c4749644eea42ada7f05 GIT binary patch literal 36975 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 literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/elf-file-linking-process.png b/en/device-dev/kernel/figure/elf-file-linking-process.png new file mode 100644 index 0000000000000000000000000000000000000000..dc43aa951c78b8c9d495ab3aa6d8799309e103c9 GIT binary patch literal 28672 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 literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/en-us_image_0000001127390512.png b/en/device-dev/kernel/figure/en-us_image_0000001127390512.png new file mode 100644 index 0000000000000000000000000000000000000000..e51374c3cdd50fa6b7375d70871407903a5ddb3d GIT binary patch literal 13381 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 F{tvKS@J0Xt literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/en-us_image_0000001127519136.png b/en/device-dev/kernel/figure/en-us_image_0000001127519136.png new file mode 100644 index 0000000000000000000000000000000000000000..35c9ac9964d62ec8633b843873a39491f33f0e8b GIT binary patch literal 43891 zcmdqJc{tQ-{5P(n6V-{Nl59zcLYBzb3K3%sDH(DsSsG#n4Tf_{DeJLL_N-$mia|5B zN@d?>EHz^}#mpEQia}-!zt2dW&iS6s@4BArcm1B{dj2@48S|O@zTeCJUS9X>o_kgn z#=CYL+`+}gwaet3;dw4DZWtHWPbs|HfWK5kxG;c!w!qFC>vL7~h|+*JTd$rmKf}fK zBw^>O%g@03?bpv;0=}^a&iQZ4n1{p-F0OK36T>sMH=O8f{x0ZXI)x|1`;Q%glD#!% zJ8_Rmink7;D+i13M(w^{pO~5d4663$9r-`Zw(c`a_wDeveuXdoWTuI`2{DYzN5OwOxEN-SLG`FVr z?Tl9F+(Kw!ZqwYunk8aHPyKRuZuL@bu)=PAU>M+k<`(xgIsXE0G9H|OefguL+8Gzh z<`bSbUvzCeDH++f^>(_!mnZVJ?@*1}d_r)q2jAusGDo{azYc8m|NX#reL~Hj&vLb$ z=9N@?$XTrI8SBG4AI}_$+MeN{iUSV5`OHKt$5`F_zhCt=Pj9rg!X-1F6EKK^-&Kc|oL&{iYA@b4eH zj}=5v(yv-f+2<0N10TGE@u2&<8@iF=*v4+R$E=&%8~8nUHF;EzkgA5>hKh{8Xs^pr zFHBF&!}o6!!_;6(4IlMgaj_lYA8$z<_r;RaUPb9L@`@WfB#?}L!Qz)2=Pt{RzlLip#)EckR+(NHjgx}kyrJBlYH3%sL0_#564R>h9G_ve25Bj_v zT`ps>wL!GS!S!jq<`1?dW`R!O?7^!Fm&eqhb94F;HGKU6UYfR4^7Zll658(Xr3Kcu zg7i~4Q@S18Zhl7hQFjcnh%8X#(L*t9d-HZHxeZfDAa}}Cr&QPzn|!iw|6+@2koUPP zo_tVIA!5MDa}Dd_R3k>1Gnf&qQHFZ>3x21K2appmT8V{sq2usLs5b?lD4&?nRm6rT zD&6{6Mc#J&q{d1WneCZb0`Z+^G{+_ye~eAjli1!FmsM=tEG`D#RbYh2*OtL9qr5T( z;6^MdlJ^wqa@5_Cnz>t~){}^_DBNb+ z`NvRd(vl>1^1<4XyX}rxMQ3$M!IT86(ym3UON?34%)E6q92?2>QuSD=J+~{{XwJ5n z29XJnO3xS2sRP%Yf&N1vtfU}xvAkG}*hO1!Xo8N;yMv9}&3x~>IWDM|_M67x%gClC z-Dz!cmokOHXln#~Jil$&u2U4UAEfp-FY*oZsDKJzP`K=sSqnv_J#wgP;D2Ns9qZsQ zN3%tx?TiyIYaZA=y$+x3Eg27cdHvjX3pvy^at~O9d3T$93&DsOwbnaBN^=>kIt$GQ z3olroM4{cGQXVqnYvmu|4moXo+tYCj6^po+rN_NRpmmbZfPiEr#)(iRH&4JOG+^p( z{wwmVU#J_!! z>6gd5&K8`LhNoj!ot`ixWu<4N@nAuzmgFHc8(nPL+2`IDKscZiTa*&kn6ECw9#aP5 zmfE+~v%4JElCCL45j_jb7+x`@>B&#%SFB3)FtADX(@<>`JC?JC6XB%moRXs+>w2w-a7-%Dv_uY+wq-m@v08@ zc99q5O8aStHO@fW+6oDe9BNYr4%H+sJF8@OrIR{%iwnY_n8vG$FJ_KR2oGl3Nkz@v z1R{POh?4@Wes-ZS(=`G2bJ`)tz`_eXQ`2pbYU4@n;Qjz3kMc(m1oiBWfEIZJY3}=e z{CO&I7=%+l+uumam!?8npURWfM;1y&8+<>a`CwPv7RZ_`!8!y{WYV3rhLSw5m;c%` zIkp$XUe4|z89Y?E>_xIe)@R?Hj@rsmd0-@GMLS+}(e<$DF~nyS+gX)jwZF{r7=+ouse+qMU`^jgu|38S*azcB3b-_gwWApE# z_TDoVN4S0JGvHUq37IZ^45ak|C&JmqqJ|mBoP%T7r&lhJ$k=gu-FVZ}<+0EfCM56Q z<;)ROu~oS+7qQN2VT#txxxPG%W8O9T5HGGnG?SXgL4Kf~96|M~zYdn5j3!2E)6#v8 zp`O>jk3P1)ZX}@7B(UD_-%Y9`>z2hQu6@z1ucCey_o{xJJzG3lR$D&hL-|we-;F)3 z>Ec>!tt4Dp8%kAEDGm|FwOyyFoEs&ir3t5&>ne1ztk$FWC44&q+tJ1C=osePlRq3t z6%9V_UPx4QO-Vf8C?38iT@!f$;oyGp-Gi{Wwwx@dA@sVS@d9?{qxLN1>Uy8Z9| z8e&l>)3y8xu~iW|(XS!R*d+L94?D$^@gEsF=(K$Oh(Wl$%r-R~t;FR*5uo4s8 zI0JDReRD63Jr+6#83||6wV?Aqu=bOF4_}H0Wo&(IS;Jig?zN)$gUFq5Pq9T^Lp7K& z)nB}tXe_Ro7l!(Q6^$<(arChe@T zLxNt&xVmwt)(&D;3@)kdNVBX|&v2T&bHbrgQ5Efe&RC#Pw=DP)QCC8a!QANGcS(Mq ze|2OI6OxC?uT67d1+EKHuBq{Fis%K2Co><6tdegWu`UQ#OkO#E$@_&F#tGt~DDk_X zxc>sxQ#h9On$!Is)ZZwUHWP4&S;~EEi3K?^9o(4@O3&WgE2ZM5VwrK_&AB3WC~-u) zIM6Gdg05=oDso3;>xDAIY!x37#v6Rieh?2_53A@%2g=(w>Y?u_KxMUW7AGnW8W(Oe zxpPh`EJMZ^I;tq43AV0p@U>B;hHfdS<*Y{E;BVzZ!o4;|%0Q{(;@XHi#cjYeE}qnJ ziY(=eSXU485)o8j6?^n7(_JX>6aTY1;b_O^JUU>I1w*C7An?jd@znHjwCw!aXj z7o=0Y*28Ol?>L#wN=}3!K;Ctw>4FXyQV}a|Dt2j##>DVzKT@y0M{B{w*9BJ-)0O2d z<5FYIozkRS(|W;e2j0Tl&xNEMs~lcOtUC;0EYszM%i5mqa-m?t6g3V?!pFa8`b)F3 zS(qgVG;cdpCUQ_%wYz*K37jrd^Xce2`6bxO?cwLSP)a_F_WB1U!>)xERC$o_fU?!U z*Fi1tejUV%Vsoh|@zfdIOZf302y_CX{S!(`%09$oO8p1MaUp&V*NtnViDREQJEWig z_xb)8V(b5@C1z!33%_2&XQB1?&XIv!(*LG7jlIpQoy`q5hU>>_o_?t6d=c`SuAy>0 z-#-g!jlC-VDli^C(Tid4b~^KtxKj4K`T+XALRW*UICfn2YpnVFj7PWc0FE_VuXK(3 zkkgHKw`H92ae2?bYtU=mDKGmAj73y~m)>5TyIjRbcwbBMCE2$meAih*30-1ZLD&3W z3tv@hXKFNkihI24gSv`8%j+|zUAFxKPd$KUXuj*mCWJEzTy%hsud4*GPJ*JoABWUc zQ~bv)SZ@NZ&DjSCyj^dVh ze>uJNJM=(JT{W1R9jv~57J?wBy6BuX|89l{Ptviu>0?!@{eD6tRarhU(90=61qat!#Y2x@tNtDi z>ATpSrC6Y~IA9~3ed~fYX!)LH*x`rHJm296o)0}NrgBPDdrrB2WaVEG2eh-H@8a+K z>Aw5jSxJkot?{=5xqhAM*Zl7LZSBXN?Zqw*T^7gJ*~ z@`=>k_?iAd6o>uzVrOQjLM3jx>~Xl*x6U%}(hN8PN@-e_ji_3UG%f0s8V9NuvMi7o zTsHveAVr51pu+#$qEAcym1>2tZ$yAI}9jegp$;bdTSrswkidr)+mluBRzBg zM;0+sVMYrWQGu0eZ=mkpY8%g=_!SO7POoJ-bLAPC_PI|UNH>7aPmKf)L+Xy7;g!Ug ze_5@=eeAo*eynD5$4`=x#YZ-tzqC_T;~`+mmEMT(OE-a`FK-N;Q3Hr#S^xw3EhkZ6 z@BQN=U`Z7Djqh89SThO|baAU{kndEYFH57LbA4xHKnq=}LLAJ!=6H7ThA3aZ2Y9xV z>(nfkn&aNC_MH`YZ{wxYUpcXd*>TZ?*Q z4v-lNs1JkITPx7}iR;wwm22pA+WYqr%j1yMf@2jISNnmNx1q1&yGHsWmU{O`d}KBA z@B94Tk3IAr=Tiw8S(8}hana$r7PUVAoChT=o>6@Q=4okqBj1phD=0G}Y;iCykJY?h zBN;v2+Oy6Q8NayN9^732ImX`U_Z_PdYpnI~Phg49&)#S8BRxMg3ONBW@!8ruUT>Wm zBNaSa)Ag}03y?1~i4!;+n}TO!oLAphZOs!5oQTudBgGqcZhbm}HGTr7b+}8ECunH=n6dnDDwT_`~u9enYC zKyp8JrlQ^#Fc~rJ1gsta_BTe2?32Nl@7S$R68dfg)01S>U8%^vk=yAc0Cnuk0c@0K z2MYRd5#~1#rMLR-70Iu;@%UL_7szbPf)yKRUUgm{ezm+dX=$PFp(t-38o4{k?N4CW zWKqrt@oRs4R<#$X*lPqTWnq%ju~h3ueV(1>9y9XG3J#7 z%UF2KN=dA=0UEjJ*SI(|uNP^hz|M?V@Y~)`>0E_MDw!e=R zvnO$;2Xu*_8X=>cd)h?3?LeT``t1T`m9-l~9P1j1KXx$N)fSMX&uV@u%P2rVKX6|h zXBB>cDNHzHajI)m@oa)l8enK!=amha_IvPUpV$zIH!p7y*tt2K{sKfD`lXCwB;jh$tyKM^(ixN_W8<#5}pUGh|S}yt-<#- z-%QlqQh6iJYi{D#%wBqbOJem3;0Q5FO-}(IphxE~9N-c~r`7sW7+^)<)sjVmm4ckF zJEa1Mzkp6X?G2rHcH3xGwsdWYjU{U7=+`hfj?0OfckG=I?w6wb?&1AseVkbi3qsw- zlYv~yH4C6F(PwQXjRYxM8;!9WuBsq(Gw)e^3FqaOHz8KHD2s;xc-!zGDt%yad^wifu5NYFfOSAKzbmZ>@I*U>_Lc~HlsK2 zsq&mq@t$JMz+zp=L+YVQ9-!07^cA;7nl}$C*D*u<++p8@ z7ZuC_ve4tPlDNCmT*dnI247nb3#|`j&R4>?`o>GduS{<);oW|a@5~t?PPDN+i-3p# zo+9l{4Frx(6Rkth#-1WT4tj)7w$y#AJ$fER&ZlvvIPjv2w#VFj9q^(<4>ih^ysm~b z3AyU@MU67Q0yrX)YK^b8Y|bxioMtlK-lhr-o-Jv-J3WwabaY9Y-WXQSJWeYwG&clR zb-}|zWLN}L*(nFTio01Er`stddfgggIvx%tEz_!Z_Es_uy<1{t4zK)XgQJ6qq2U`} zo|{j#`fGJM%OixBcYhJf$jNW0h%@iX@~!Uoe;N4RK!RztAa$B(L3JmmcxfSfdWUh1 z#(@rLm^u8JTS??k+P0K+bBq}?to!6}R-Z-5cx~7O$Ah1W($p14WuQkR=GCU{+4U0L zTH_vGq3qlqEocEWNr|OUH-aB1Vi(Z~wfaaj0$m%33p+fmIz6)r9D3$eCaFUJSMqS7 z%yTId1@K0er_~!AqQb=&I zQ+8-EX*zf&N8%x2X{FY>8T1qzSBo9efeJ2`lH-`BsLH}_+=ltmblEgZ4c3kV*wLi; zh^sjW4?!uAVu2UOMt#`xf_%0Whi+=`-eCK4Q42er-jiRHB9eXF3-mCp#%1vb2+Pw}Iw;($ZTQ z$PHnJ{Yuu5)X5}=w1&ns1J4!P$`#xgHmCMB)3h#TdY&BMRNm}811;$FEm+e*5?>R@ zbTz%2PwLhpy>*4%@_>s0+1R4bjDj_mbW4(YIk3gMUvz0oT9U|9V9%NHdkAJx`J=lx{q{+BN(~hE@(Cnv zgF4LqMhBf@0A9(^Ifre$%a@f=H$6|!=S~|w$+jzdgf!i&@q*`!ANM0are=O&x6Foz z6f>fK8r54)&Ruo8bhFQ&c3`R>+bR(eb}72}!O=>e7V4zk_9`N8M9^5i_OWj6^I=Z* znGK4dh&nQlbjtCBDTnb2$K$O~8&%ip{?xg}Q5gul#tu78SRA0%hT&HNF!TmTuke{A z$V$#GXYZfPeVf>gM`Lfx&8+mM!PJWm z7?*&>vy(p=6RcB)Yx+|)3QOY7b*@T1>03ug^k~83FU%$;FTbrht|DC4YeK4U5YO`> zQr=~mBTSttL}jxp7t|j`kr3JWO>xr$#qdmcVz1sSO$Vj{(w=3v(A`ZcTY5oqAgMx( z->o%h6JPi6*FZ5ynCm6H$G(~c+@<@PKbNXM?x=ZghmxgF+b=Q?vx^Q!n0VzvI`a?N zkwk}4fc7$sF$TOpV`9xf&PvU}ZgUtYQe?0kLIb=PieEu{Hrk=r9ES$S0-;}KG=ds7 z<-8bAMH!QZ={3;&e!x3s&I5stH%}SddM2TVhIdrk#R=08#OdhXY6P|i+hY^iL++`@ zi=JEXYC+N>Y7)|3A<2b=mj>W9ZLd}e|;C0{fbvsJ00J6?RXl2!A zAZnWMJhoy968K_*3!FL8 zsvf?k>EsbH>)l+YRGC=^DA))Je_+Q_$2&U=nT#DU5J}{l`lH?kOfTN+vO0{RRk3Py+<+6 zXD=Ll*Pz&;HDB9ffSc#Hw8xp_+NinjwNFBNE0)Rxt+U&P&DYT@ZiZgh$W!%0YGX_N z3~A_LATkxG!c6ZHszf79fK=;)zAo}ktY=GqEjOhEdikSV$=(u8Yf>#oyKTX|30o0{ z@~>tnwM^2GdeNM^SIdkLlzZ_J4z5#Athb0*03}vtlF-FKD7ol7vbvJ7)9{efje5gd{1pUel%^lOW98aUw~ZOh zKSgmq;?mIb9Q~`n*4{IUjJMEEUvfVmnH(mub#-S#F?~nS1o`gtkfgJCzj}gaRNuOM zC;!$RM@3RGJ?^yC0Ol7VaKxSF6Wn1I`cCmN*-K|>^Ebo+nh!fLKBW>p>`cHunm=9F3p1wPEgQyp9c0^KVM)5A z!ky-oM9}lUU+cW0UJ- zRAbXf%?y`iIubXcjdePf0Zx71_nL5L88xXS!@n0v^Rn`4DbGH4>zUSl<^_=mxr_u# z=2B@8^m$!0p8Sbf2(3BZA5zAj>Z2)UKvWG{x!7KpM?z?_8w))%j_Trw4>@5;UR9QH*0Y6t<}hCAkTml=>8AYj<=lk_ z{t`4yQHo+h2kXOb^OK1OAwwO&$snKIi6wz zx+lXOP*cC<1vy!;Z>ILz7m~gv(u2v208hH!m$oA>xv10MIedjomQ^#VAqN&6mEA3E zUsn=GG{T;b@9CTky$gfCEF+sNqsdTjYE%@43Hro}p1Danr7|x`*%GpL9X9vH0?#z)@(` z?3uEyN})7nny;~v>*e~S#RDM_b0BEuDVxYxv?joMG_QVIBKawS1we}IyXa1Tpxb(C zmo!Y5m)85$^0r#=Z57TQQ-{H>Dr&vV;yds9fKvnAKf*05g?8lyYDxSP*Vd(qhR;30 zP1VQGx(Xs7TKBP|8?6}WFzl@)fFN;_lIOLJ-T>9SN|rJD(kC9wY?~oI@1m=7dcTqV z>79JPr;DU7Pzijk6 z+E=MRWRgGsmM^f-`&b2KwAinTJf%-Iwry<4>ZjIB*X{aHyuYy#w z&8CGnPc9nxd(1!j$K4ra@M|gQ69+VPS4Q?_4|4?x&xzDTer+#-kJUh}D$dY%TIu+z=`7a-Z z$_HxBHZG6VA3wwTXUDAX86U!;*P+()p#Nj7iaO*yl4^?oLlcXQb4Wk`F$DF~m}aC= zi7q0W^iyo&Q4fvh>><2cR~Ctz^KSSR@^GX@%DCL?Q0nf3xy&s7(fwCqfm4$0vvmN} z#>Kt+)d$>D%gDa=d97Evthc?2;N8)S^PNgc>jtbmU8+GHyIPN>`dfdW>>bvh;XYmg z9*V@zz@d?!DC$pL0e#ud0+{}~R0_D&8WP_bN?o!?_C)!LWZMJGsoVpzw^)y)0jOjf zBW_~Ph^+q6G-E15DDPZDu0R3s2;e4}aLb}!CjnqWn+?w$_^&S!$%&{;zb3?nb4(_IGY)8meg0Urb+yj_!aKE{+|okO*H$0)?`i`D?|VHXcSPuBrj@W_7=x9>Y&P>uEppo zkMJyC2B59qc1?-2N(0sbKyLYIm@b?&)v)8S0`ui{i4i{q0G&~PuxSP|p4+-4Ht*xS7%}0O^<&btLa>-_MT$clF zG$!GzCN)&V5tE6p4ES|0H>OL`FPNe=HlgN1gQ)x?Q}1Jx_+}2n|9Hw?A_)ORFTab; z$2MJ|#L-fB#SJE^1;Fi@Y~H+c;d+wFDh-=j==qs!($Q;ZEAehA^MEqh1GIlBy)r=4 zyl!UOc5R$qPsYZn|Hf;+rl_^o)up z&fN%lZEA_s^<3-QZi@RwM0KtYy4>UCX11sTXJ(2hvODnVjurD^ZF+MCYzf`4r*gv| z>olHF%#;akvL`tH1VN!T$J7kL{<#<6MG zSk#(*JQY!54uTByD&qh0jB6D5y`msoZRY_(wp|3kB*<1*P_?DE>yU^hx2Jsvtau<=yBCvX#VDQg*}%s(~F;xmtji?s|>H)OJeGsw40U9Q1>49 z=pu3k*@OJ`DgQ7j;pg+0psyc33bPwk{1&b>RL%=hSnuc2hf3p&=OT%d#qxAn z*$q0IabUQylLe@I>HK6iKQFVyE@_O z+W8WT74%wfI!h<;JBc)0R=R=X$ul^c8JO?Wja6A+vPalb5tKqgS6q|7<4u+!aHv-N zO<`vcnE{8WJ}UamEQ)!^8%T(jx!d2rXxMo|_FM2Wy0a@$kJPa8TuMEdRw>2I5~*m& zP1)oTDywMx0t8!3`dG-!BM)aBaAeAXfgLtO7Dy;%{ivnsE-PkXKxRGTc|hX3Xr{6? ztK?z1cA2Z2Vmv9(|I5Zr+zv|*I?TSAJo{Nc5c};ZK)Drt8u8%kxx9JZldOFBL;S>) zfIa~JY$T;X#kSR{H^~_%P_!hlNXfvVvv-b7w;Iw5sw(E~fXMQfv)whjFLC2NF6=4{ z;xM$71JbjV_N%N~9n(hDeIZ?L2I$OAOND`gDS>HD33>y#ZSj{R<+L}+nE>t3a8lD2 zu>Ubk?0o&y?a5iGMhzu}gkMBFX2rf!TF^DR6#{ECY3tya!`@_Yngra z8VJ=%(po1ZFum5joJy9MAHw)mm-+s3j20~qr&%#`EoUe6e4Fjc8mOQb$L9bIymF2d zA}f@E>I^*eIB_p?JdhciE)w1v3@F%zQ`bq4Y1LuBy8O?=Qmcq< zdWD)00n^c|ouH;+yDt7j&`YmJ*?ibWEjaOOI>e?=WL^Y-c*}46#!cO}oNHfUjV(9H zTylZ)o&9xdFlLJd+fjcN00%8Nhiu6usvB|p zTJeA7YqczlpPY&Piyn9Q(WGA|yHtDK;J)UY)BXHr|2I8xiEO$TkdJ{A&qtO2HELwv znrZ75BkIs*Ui$Y!Mc;G1NcOUKq(!T%ZN+~Mw>u;Hzp4o<9h&6P1iiJ-z%jL_&A%+3 z6+1R3kZQSQ%p~Az<|#ubAV0WvBdviN=|k04$#3DyVtW7%@lC6B37@-J)_><;B2RC+ zp_Pspka9GOAtAIPPX8eDbr1Z^z(d9KQn=49y2>~Nk^Pwu8x*1SKHoB#-GlCtuI{eJ zb@p8Dhv(Ohel1QcImcXCK}4@^o+izkeN-0vvdw!_ zQ(`+IccAf7FndS;SMSp<`)cOV|8gsh6ZLKsF4d^Ml*NrxM4iO}%A40yqS1u{Bf#$4 zE%ozPq4x*1f1j;)-3@;ZR?<t2}>`ShyglT;;G?)wTW>u$!#F9Lq)(YTjEb>sg5pkRYEp+);@i zX+xHeGxk_eb$Zf?^J;pPr|I}CIqzctq0gpC4)3nP%<56?ZD9IG_1>zw#g z$qOP<-?jsH9(Y#`Y_e?x8~4*?_Z`>Rsb{K8LYC{tkuQ4giyy_PPDMmqXbd`RSss3y zxqHPuK^{zcd)=Ff$?gjy5o0iq($2bPymt4lR8hFa?8hhyu5{NpP~nLAl{h4I?n{wu zg+#zDrXnH(ltK1iH?iyK;x5Fw=Y22v%=cO9|dHxoWZE zOiYNlcwKAxSbh}hh7Q2E4=+*ysFNvCWxCyO@wD3u`hE%U@WXz3>fZwKw%5Otfa9z~ zCr|UO!Kup@g|&##cg`2)ovp7uz}IG|umAi?>jtQi=oykI^1`#RVT4wN%}zVRBZdk^ z+RjyBkT}s7Gbo8`ufNtmOU4Ph%%etpfk1;l_{~SM>I@NgXB_85I}s@zgob0?>-eP? z*vx7Ce66-pZ!hB#eSV}@)4`XQGz50{il+oQsHdX2`J5zb+DX)zymdQ8NA(NeEqcqC z9cml)`hz;UA&oDkc9<_YZRgx7jc@>sq%&+)(_!00 z)55LpH{Z&OiQUWg6&E&3!zX`gAMY@5M6L1qZ{zy3?=!9yLGmj_YAi4o*`9X+mel>@o28cu2@Je;%bKviDt5;Oj|5_HO4hzuq zjrtmfZnr&78CdL&%gQY^7x68Zc)xgwE;SON7T`flgSgWGEh%))j6`kQLL}}OyjS9D z_ALVLiVd!63S6=1s}T&O7i#(*n@CA`N@lZuOR81wuUgi*LPp*=r|Uh_1RnCw-0ZM` zBmI5fLKa7unM{#D_8&O~wH<@=V3h>~(|BE%gG0)~>oLbGVG{j=PIAEU!RY`vNkI~dUH-VllF>37~%azUuUzc4?I43rwG%t z0v;bZ+R=DkyLYOoJ}k$#(>;y-kHJeD;Iezxq>Y>J7%skE=<3cg{(xUYb_X`y@*z&4 z3Ih2ru03>4V`w@UClJYsHGs}J{+oIee z(H-F6!!A;VVs;Bwp}k7T`9JvOLFY=G2wrdTKA6!9%{#D;1gswaOu06jTr#)im_x+e zs*|qRfbAFh@}?m;d3)dVo0d?j)jfEZ(cIUv{GwG;f$Q({0%QxLzz%z2KuQxf@f=LD z+kl=`DaUUkLQZnnpXX=-oflQ0kL&f7`zeKHtkWXu_Q````irS3av+Ua9+6tqiFW_E zYDjE7@K-x|fW9jJN<~~JrYqJOaA7yh#N@&r(1AB_FX}M0#A%(%_PIpRtr7IT8pmgW z&eEQegQ}d0yX-cGdX84);5=S)* zkO;n@K^Psx25BY+poS^{xO9cY`sdc}HqipuS1Ze#36lMol1`|bA-2|1@FoeXbt)k? z?z@5ePrlbTs+iex>&e%SgbvUc-^=Q)v~%E!B5Td;Y7V)O4pQ-$fH0vjlcW1#fXrvcaT#Ea&?(6_!o-5`u+Ft*5_AK zBU+mY=-l6vJ1UUcj4|{GY?TE(o2) zq7f#TH2}}t4D&x2FhLx+#7~hF;?PE_bAiYI6aPDi;;`#p_W{0+E9~^o4V!N#qeuT= zmV6-Fp!|pwa0J0Gdg}41pbu}V;2K}O=U)NM*RlycqoH$+K;3IGU}p~*eA%`^ZK~hE zSbyf+P4&IWdQ{Y&jx~P@bh|>iD_vJ#fPOQ-`)d#cKu$fwm=ulXw@0P{sG{dRaBb{_7h>eCwKsmJ{jQo<~z5-tp;m8fSyfP>XvJJ^VfG~2ajQIyuT;= z0>|c@rvTt4E_n8L9`P$~d^O%e#?&RPN>u#WU{4T1c_Hn2-K*tV!l6Pu_pvNXWhL~^A&myO1@L(lqk955XsP0k2 zY<`TQckKc|I+7UTz6;G*BO*q7(lr;}xF(!5>bb`P80j;^qTIVwbvR=0)Gt+5b?oE zfrsu+y96WXHN*RdogWu?>0A@5HlTNJY(ixOdnTqAISX?c?c$jM&J^%!;>KpUzvHoBAi2RMACiCZ$3cXlfrZoFE}l~ z*r}w(0&b7-w1jXyF(){42#+-nLW_NIv|>t(5WoiJ*+0%4s(VrUm=v~H?hMfefLWJO z(6^zp{N z_md%=xnYW3#~>c1uFs@Vj#bCcOu5NfsNF1|SQR~)+Q1i-ykTH5kBZ%+s*6A;U$=d$ z^jt&l)=0(XLHDQXaCCN%!-6+=FtdWdlqiZ5p?l%g_DMb)Ai>+i%8F$&{NY7UL3U7koEQl$lU64 zDzU_he2#SwIvK?Eu%|26ya@?wM)S&)|*OgS|MM89E&~TNy*-+T;T; zZ|Qx$r2{*>F#l4}^7z`k(t1@X!E;2Td8NBipkD4At8%tr)bKub15!Ytl8rSO45>ns#X#V+Az*p zfkT&ooz#~+wNEzW4;NeK7|z%gKbgMqtEbn#l0#?Vx5gzcOFGN%BAk8V-zpaTp|Rui zlf>qZjZ@(Rg`t09`0whzHbgmfOx?9x?x%%o*ASe+1z{Pv5{8ni5B9Nf<1*=%H701A z@n%+ib0|KbbunSf3_SdJi|BV4LpM0b05 zq+9Bwy+C4K^6#<4jMbc`5_5}8|Ce2PrQQIk%W2yqq(K4PTIaWq3ABUz5~h8uIQ~uN zu54m@U*tOkoODyS(wkVbHrei2 zBz5D0_oSM0<_YrxT{UyxhiZp|f#9bI{1gtqLPhf$)19V;Tv^=76cN7IC7MxIn>~zt zFPQ7Ow5##((K4RhJy>|ty^ST1aOouX@Cl7@*H5>V!XzKw8a<=@ad~}h+(nkdT@>Uc}HJM!5J~md#zk+B6itjjsZ0$Md%8|cb#)} z1w4*0MWY}yi91!Jipv-cwY%14$JzDWP5vunRMaBZd%tyh^XSWVAffIX8ZHD5G%xFK zZFwFmtbzDj`TN-z<%E_Vw|`mntXC%45%0c)}|aFcLmQ z5x)liOY`xodwV^P>{hMIWC9ms>sS479lb8BIC1#`q(NPsAut`l`adTq%el$X!ps=J z4|R=HfSU($0A@m{ETuPmsk&PU%S#RcE`|w>1Bhf=?(Phpu7r>8Em`_*vM(#c=+G8)|~w3#vit}ihv2NZ{wRJ&SK;E2WZWZ$surc@@p?Z=3hf|W|)|7PyTHp-uZLFe4vaBid>^|VI8#vc8p}=6-M5QgabnqX zI$9i*WV+aY&R)J5W}Xrui?5J zNjecZ>LG`I$!HRfSpC%4>2DoD``v}87cZ*0k;uEd8LkwWBR^-48B>$7;*W@FmXgi*ofIo0lLh6R3*;3{X+LZ| zr-w`{$us^;Br>bldsD}xO2{V0JBkMWoQ^OP({C*r*76$vyh_z;-Y6gR&SwF?{<9TO zr)l#~tX)g`C})*Dw~mY&<~DVlMtxX)C$T13sdBm?<(KSOEAO=PZb3w&$@8UgXqt*f znNKEanrQaGXaSSe4_C2WN$^&IuY|dEX;&>5DIrVcV!E=@Bu`#D45=7#qLDIzc z6tmwGa@QC@OO{M#*(|P&Y4WOSSj%Y+D_P+f=kIA*J~J$xw--M8?wCom05Q$&{@#M( z1ia8)lv#ay1D;0g$|VP>TuBpmD0Hn=M6EyP4}W}I=TcLcYPNbRD_&9LtfzgE_6iG&Vy$4dqV_XG%`K&DV$a`W_io%NZf(KN|ir#e^N7Esd`n*>Uu5HSbVy(9E=2h zXvRb{aY=#Q2Yk~B*pV_84A39I@}l~>iew9EziWmF>u3xWVCBS8Gdpx%itAXtXh%LO zF%Jo-aZ+0c7~+axt9xqGkJvHDoi!%>yKQ5qJ22XBwkWrOBjGyz=vjITJJge&+vhhAP-82DhDRFb- zr(k?`gRE5$4fVUt&-Qbh*$xHyy}ek}zh6PC0N`HGLa7I`kDo?7wN8jN|=+@X68DVSt;sto1ltBLGZi5LiyHUe%8lNT~l(&Hb`E8;^mnN z&#eZUdCkZ>gV4IsA#E;qKBcMFF8Xh3^5|eZE%HG>NU_ndl%Xqb^X-^5moADP+r0VX6 zM_Oe9Ps)snypq-_F+Z5PpmXp&hb%D!{C*$t4$vd=25twgr7q(it(d)~-Aqxd(cmpYzX-Dg}-P4l9FhStKbg zCw>}s4p%VpJV1-)g$U>I2>1tX)z56NWN$VW*$=Vz!@ER5XH0tl!kf}u96p!jamw{w85Orgb$_cm9^1e-`Cu0 zYT4MZI^VgRw4}G%qUSht2;=GdBKW-={PbkN{z&!Yiuk^@LhvXM;li&V7rHf2xmJqJ zJ!kYRfExh-eFu9lxik}4&vZ&s3_$gY?hNlUId9fB$+FuP!jzV^07g(^^*;evL^w30 z6%wbLcM+uFrN{hmRS%$6O}WuJsx>+C=zB`h#Lfke_#3-YHe%IT-bYf9UrQ(TrN(*B zh5$DiGcHTQy9VvlfbZ0RhzU3PLDNZNkF_QcJYJ`cR^1~*M9 z{8Nm1>F`R3qWe0Q(uQAO$-C2#!fpJ2=rf0~eM_C^LqCs-MH5k+Y<<0 z-Yb8m^+Ud*oJRUBj-hG_of8%h&^b4uwQgF-YcK9Oi+BH}p@SDV~+XBlP0=K-W zHOnr;G?#-6sFq!fCRXBYnFH!cD~f07_Fi_m%?n!1gxD_jNH2TjeO>rW-8Pyky3kUL z5SXP@G%0!_Rd=6+3U^TnTi(3LlKr3(79!`}Y-&TZVcl8C*fY>nyfoV7|I8Q@f3VmSMY+Zo5F{j>qMCI{dK8(`Ocln+{fsqD3EX=VRo9jM{L`?X7 zc-0y@wvhAcXCcSO7jkVh-waOyW7oNC2c}^NTS}bC9nJ5(!Q^Fr*pGZoFz&lrSB$61 z5QA0gI-LhbSd4<{#rVQip%2OmS5Z@{Il4D>>(AzXVhAwaDllWw2@iUG`>$#vw<3dL zbSG$1rpytbui5|opQfrW*N;$bjVyiQucN9S>7oPN4dQft9FZ!iz-wt6&TFVT=QS-f zPPerfsR1LN$rn5;!qLOVaed&eV=9SE5>{HNLHAI9D@pvh%x8^($#h!mwMs7O^3I)W61 z2vS2+6bKyzB)EY9(os=5C@plPg{B}%k*-JwDG5zNQF=f?x&)GZ6Wsfpy`S@*=lOo< zFLKY^bI+`Gt!vi0R!MHrY1C+3fy%LXbvS;|-;GGfgKD0VyXW@klf2!@rK0-nx)l*f z?axNLRwkmk?Xi2{#I&0E{wzEZG`=%4ys}|~I_a)nc|UFxUv(LKO{aWfp4K+#B0$+1}IjrzZ?brGLF&X2kfXswqdMzf=-qJmiGZTAFJA7g_*QtbKUXFAq?C&*&<3(?F9T*e zdmtBWHez}wXP1C#Kc|emsMuS4tKqC0MG#n*+l5VWfN1tVT)R|(4;#madl+>{l=leU z!2qFI&fJY@A@fCu;#O(2_Li}op^=8u#CH9*C6P(lUI-CZNw9XsIG1lr&`EZ(wLqMg-_Emg;*F1VWVO}a88a8 z4!y==O=y+P!QB0XV^8eYeyW1$sCn?I5r0;`Uh(M0Vu`c2 zkt|gSxA!avd1G0i6c_?)K;Dy-8GF#~hq5om=Ax=)!f3P32lXz4FJQ;3Ao)y>-G++k zYfU-682jI#GPhQQ(1hwrVOfeKY#wWupPAlk4Co<6`X z7{fR`2{^K8eJx1`FH{s8EE_`2bN(XskWDQQRUS1+0`w#z;XLZy{t0x++I^A74}#(} zEUm?{I$h)FVzoBnR%OGN-4lII`w1^~0S034!n55#zNPE?nT9(>^l{UGs#TCDF>C99Vm;=ih51zH&%NFcDAxh9IHsGL3P4q7 z3;}>TI}yHFcG>=1)TM2Ze=^$cqtUyO+b7GnSX+Ih+ySjNSJrLp>Hp(80vl}=7F#fu z{xnJD+GSM>U12^s)2MKa@G^rc-^f5;6+j^+_Z}|4R7I>Uu^H^@(Mtq-+^KHTk%6si zN&^7{gsz-iUMHjH&FUaC##`1lC*9kXJm#g-gaD}V&}er7u1b_4FR5f|2mX&TMFyFz_&e=X)5j##`vj-o~pS_ zE!6MrUZkdQ`0h>dOlS^QZ7|QoWa2*SvGRyhh)jV-9IwPQ(XlQ(=ai38>&1f-G*~xLwDj*|udXgG+`zzaC6 z;YGJ)S2>t}8Kvqr2ez+8llzp6eW!VO?(NM!B-`C(q!B$+Ts52A(nV^7?ln@CVNT#_ z=0BN-#dbn!uDs4*0pYw)ihCWIxCn^YRYvkBC41MpecG4A-w#aSt3W7Fsrka^F2}UD z*F)Kxq*gc@oGCx@3uHvsegHCt;8uXt7+M_@o6r3XkR(o4ux*+iQtFmw!-nRU>V@F1 zfRo*ugp#cQQ$f8%AZq95zDbltd}b7tG6ShMElmyrY_yErruz)9$uNT3=SOKBd)0ha z_?Zcyh4$HlrrZlq^(j~7ry?YhI|*6RG*l`-Kr`I zL#-^I`b5iPN~Pq!bVJIf8i)%;mL|gr8>iAr{5Oky&>Qo&k5+O7W-jh-e%2BQ2UU;t%#K^EPvaf=h{!7u4$w7su{wx9y35fcH^G z=6>#X8P9K6zn+|a&gFb;ap(Z3dba{`l@5JG^>r?)7_?heuFgqukFcctb2J|-UWDSr zsK2ikQC@sR-kAebQzJTWu_8I&{~UN*8j0%-#}{*_^uXUrug<3~m!vK->L?NWqLVKn z7TLkf$L5xKq_c?bAG;1{#m%Mr6mt}3tScO&p%G<_Yw9Msnj&2H-aPcX{QA(TYOIFc za=!tb;rFy|*nC3?1)n_TO>+QV7X(3>_NyGrk^^e&!%EMkfyoaH-6wIo!OcKRFP*~X zTKSOK34G&n7L#dfNO9lX?W4LUNNqVj+3ZQw-+8|HEVL|UY3u@3r}r*uWU37Uxo%G{Kqh}S;&_4jtSgwX zcg&lkCZ8ej`|u%AV2cAeGJWPY5{cjrM~Pwa0M>}(Se?KXN7}b1{exqcXClGwSpFWr zIu~Oa_~ldA0h%A@z2hINx@F4+y7%FZZ`yls$T7Ryt1t#8W)p@Uuoc&BjWmOZ?abhz zej1RT&sz)jkSXyn%|OzFtdpO`jBqQSUl?{yiY4+?OQ~YaVVi#7sXva@=jp&DQx`Q& zEZH|;%8-U2caQ|Akyu0+k|T^y=byYzPbvm-Js+c9`P{<_a4v|SO1D2IOSHWwz~0=R zr?@G!+z?c*n^k-jOBD|&#!z0r?{*wiH~I|tzQQzdbrF5$;1@2v0IGGk@iFqO1h zQpZ`!pN+xbiPv1G+r~px>2}U}j+QYfe_{?B=Z5R<3av5@#SDfr^uhD;o#^M|x_49UL zl_{QuW}ZOoWL@oxMPw5dEoLovsd@x!i@2b^{8XJBxcn;YF5^$&Inpflyh2XW(1$u7 z=(VM|akLM_)63oAR`k94n)a0UO3|cEh-ROd+uJkZf9Nd3`j27`pnGo6fdL<#gc6U? z*v~E3tT?Y-9K)Uh^QE4_(AW!R){m1GKN;1p#m67zmyu28ca(7#b;C^>`Og?_)n6uo zB%>)4xWtA56t@<~=r^wt4y2DT9B=vrk>dh1f!~8^hL3FY3L=&o6|#GuK|bH+b_drk z`)jai0koFI7lV%;+O>}7`C!8iz4$s5J?s4hWjI0GWy*LbNj9lcvNUb|))6~rV^orC zbHU`mCYfonH&ew2UZ>T!F~U~AkqZ^+R-){&ENoaGwP3F zV1AmGhbGYSQ`hFJ&Mt>byl+x=>44&p2%y4-qEA(K>2Ir7neD{}tig2>$sjye$TZtk zHfCH`wOa-k$)i3pV*q~-j-Gh6map)GKa8oFHrwrO7`P~MTwxBNxyxWzOpCPBX%P`I z-z<|Excqp_K159}i;1E9c3tnSkPe$1`HPcY1>H-gvkn6~>(w&}CUR=pKwbUAL(;$; zmAuV%n+ha8P8VmTo_f|13{swgd=*;hl?)y zN2nk~3Xbfw_a{5oJ&gEXqk;E1x7jc#VqT2>V0N>9tc-r)GpW$DGY-zS1WhhssHxB! z87CDYt84o_I{RD;-eCI5sM!!~RNKDZ&`YTff+5S(uq&+-5Af11KCO?*j_0ywu&%!z zz1SMt@~hC3gO^nHZpS5fk%glxG6s!E1?CS=e6PRL9Fm}i^X3=`R#aOotUs$pAWn-CJ?s$;mtEMDYm6^YZjXA}~Gs0~=DCyEM$6ISg@L+MU z5^?gqz3h&aUqdDe_@;N;duyZl2hvq1JgfaS8)kX2JN6?e?pCms$~gQ z1|dk_T3p{D226P*^NS3`G+k=4TcfefP_F0Xn4YXk%EP~bo0ePz%I^j=#L*Y0((r4yWrcnc(r7gvecuZwY{9{N7uy38gpjnzqG5z6kUR zRCxkUCSfL$DlCU8ZZ)jjZk6AR?Y@lYj_~?) z2Z$Jq@XPdE98+)p( z^`mdW8-={G@_K}jy!VTkX|o-&2-+iXBTAvBI*aLd!dg)C3?B@yhrh&mLr^`UEVX!u z;*b_|ny*M>yiP}hID!!x8|OzBt@N&oBI%6T2=6@l?0)d}D)|)!ZbRJcs#v<#Xo9JXlQilJ1)z;UFyUzvF^6c@_LJofQY2ct3 zm_ACGr)->kp%V*9A;Wh&+8a!eCwe~TZ1#CFiXO!%%FX%dWkbMabZ@kASnLVNhx4zY zMg(3?!ifYs=lz>Q+AhLllI-mzP_0gA9ZB3<%BZ5%2k*M2v*fq!m2 zG$y*jeaJIb2d|3X(!DsnCXMyKlUbjw=!)GWWR)qs+%8yp&0^y?STiV-CJjHei6Hv) z;ZEQLI5FE=1<3J|TWD>+n@H@;hWE;lXYSQ7EtPSdxRy;}ERq>nSwYIO324W|vL%2Z zY-A_y-R;F#ecA1+z2Fv1Oa_!;?3Tbt`;d$g{SG3NFLho9~)s_v{cF{SwFpi;)2xH2(~ zj?MH^-;JA{r^?}I?FmrI$XPzzv!b#4VU~>}7!`1u&!sL5l>)xB;M zGi*DI7a;J?tWF7owH38>?LK)({jbS7X+jZw(1;+n>BB5`J@bO^GDQhuc{b?;?@;jZ z2JsuSxEV2alEnp$EyisB(L44vIqPjMqcjmrk=@!muBKxiuSlYWheQ?4cDLd{@U!`9 z@lrY^CQX3J;fbzzn1u#2ZK?2%=C1l;c`Af0SHP3+AOWS9qMs_5M=A&ym|1u6l0zD= zETwPd9hOhyFM(I8)t@b@P)mM`zZLbe_*buMjSj5c&$t8`H>5U?ZkOnhcY9bZ2)Wr_ z|J|F(uhpud{xV;igEl=`dFk%s5f2lsi$-<*$e^&S)_-u3s3{ zTN^w0k^HU5P?89o!m-E>B&PuIxv%9y^8^C;t`kajy{xi>MAIrFZ?8)d=#(@pu;9z@ zP4n<^FnM7=2)~3}Sn5%qFPxT~P#m9i@QS0!owz-;rK?0h$?kYAHzA!+&B66Gs3xHi zvtpK_3U!Sk-^i_JWt6>Z-HW7i57%onh8_&~j_FJ<4z?7oXm+j;Q5lHxhQ!-O%sHD5 zlpX0GBP+XSO*X=FxKp!ZjZw;-Lzhe7>f5A>#LJn;bWqk+rQT4p5u8&dFVncAnAl?I zzkK(!ii4BAIrrqSDNAI%@1n`X@kJU;7nPZ{Q<}C^>V39cG%Beh>ZWklow+CWwdBjT z#h@52l51h?d!1q8YiWm!qFDzl?1F|xHFGM;cxZR+Ea~=SCX846;u=g%-7Gl}m8m#z z$Ire-P!`UTfa027?|YZ8m6OeKQTxpL;kI>LEiOm>^$0g%JI5b;Sjb#a#HTvKu>=|0 zW8I)WBxIZbtnkXaqT=w|>$jOpkV*amBhQKCS`wDTFLT&|Qp~ef6LUe2YqQ|$ZQueB z{3(r!)O}x9hOE^|4jycGZ=Ag|y_nzQ(7->TR5qR*+*aveL@|~QFfx`#QY01E>On2V zs2N^bp+b;bvToNfsiK7F&SQLMyTo;KYUMgE2d_r@fMoNVEvSI7neia6m3J=6BaHLz z{zNT6BL!YMt2FBymr%}CCg+h?jO#b9>H7>k;L2SeKI7l^te2w465g>~FO&%jkMS$+k-zCc?{F=5onUMx@}N3x?QY-p zi;C!5+e0zG^lCBSrM)+56Vw=MLKY6t%tmNaz`Y*FAUg23pBxF`x(LYzXl)3Us#9^R9cf!Hvji-rt$y$Z&DD+NqaPL~~gyu-Mt@2`w&d|*vUuw?e z(tuE=54ivMj2z!Q7oI#3KPe{8Ys?SmjU-|da288vGKszctUF}pa`isNvv15zC>W$% z{LE@5vcCdpn80nafv7mg^UP{?bIAPRh+}faik@FiYagU~wt&38^lCGFgcJF+?Qr;f zBEeR>Vcnhw=L&PlB$xTElT`d*6EAg@keweU>?!@?Vsf+y`v&xP%IKUT+u)%e;y?@} zEB3vEreWn{ono`%+jK7ze8${$CyHjXt0n3B?nBMfb1J`Y6%FPxXq(72pnO8|8ET)d z#Jai`*-+z7Cx|-X{TBnG*3cY?)QT5sE)^TST<}Wd zDJ3&s@_NREk9g`NpPyLW9~l>yvY~{v@;7kjS;JWe4S*Tf=aq3AN#?|J@juw`fqk-f zn={CS4Cz*yOiH#iO%3Q7r5efnLed30mw!%+jl>C3e}`85TB&)Y9^}WzsI82Ca8|Q6 zGqRqVgFyQtM+Ps6yS?QQPZ~+^PHU&;O1)+H$RIP?+Z0Mx-TeJP1|aj=>*@3J+oxHd zdIBb;QM%@!UGX^%(nj+J^&)q;_)KDz+;IK_lwu(*K%?i6O3-E>m8dkC$5w&#TA#U< zv`<~`*_tk!igJoa zMy&`au7=J&G*lAUJ0FFmb^I9GHcjBJ$#*u`yZ*9NQR}e9vKG+PTqr7WPS_;xt}reh z2%3aj2eN`tUOJ0ALaW(Qn>>qk37vuHJlScoZ$xkr8P9Y z|Lj0XBRP+%)**UKqa!V6@s%gg7617_AP6Ku*h6(tgpQ#GvO8qrP@tb$dsUQ5Ee~UL z@B4$S0*m$OMVCPno=^MCCHvUMA) z#Xeq}eRY__|J?eZmpvO8$u5+68)&!3=W#S@*qp)q>@Gxn2GsAEr#Ya;Mjn(%F@DB| z9BuVZ6z{kHb0{P?YT>}_$^D^JjW-U9rA;^Q%w_c8=r6$dA$~JQcyCNSrk)TW{4>x5l2G0j z0VdUAa2hVrACd<75;_9t*&&npg8V2dNVe$T{{G{5ME4CkAZZQ(GVOt1r}E4e9G>g+ zXM4~PE<>BDp)Sw915WZ%+7Rn?uD|{&?GxHeackHbB)w9(#uQDcEqR|rXP}7)FOBMU z=r@N8Py6NTHp(fff(d|LpEl&GGDZu|M<|``x+n*bOHDF{ME+9Sq*3PA!33mTrSh_S zQq@6=Z7+FEJC5A^*)12inu+d;UQM?*pX`ZN>20nC(aj;6Uk^|YQ75y!dk>;5mD#FG zbOaD%!J#{}fw$*tv(`_nybpp<8R>EWglTDh4$U*CQ8`aqeV3VdBM8`OJkOApm3>|< zE?EM(9iumwUY(S;WyQ2m0mkejfW+WI;CPPh&*w^CE9UyyJ<_F4P2Wyh+Iw;9*+Y_U*_LI0T^l;QA;Er~ROr4t%cjQ@~J9 zT+2Vsx1@KCCJnXu@kn#1nLN3w#}DE}`}q}*3E&09K_F`p@k`tvk$etBcJ5QuSLl5L znZsTq#9aqwLm7Tyy@-B;_j>=)=QpyarF+1qW2;7)@m5)XcsB`dF&nb340#1g_??Z1hLrjYC2HthHMs4?Yv6 z!NI0^@QOu3=DmtgV(s@^YIBd)u9RiIG-(d8dbXQx*-ibJgWtejb&M4>_4sNV4x%_A z(4PQR1t}3{KckR%Yd3>io(0TaEVBDR|3T^mj)J=n$|O}IC{}R(6C214L}Ov#Bj`B^ z>Kq2YIy#m&pVz&{s%QTcDDfZJpF>uVJ{%gC}K#cj=*hO2vT`ssiQ z*xxkl$Lid)&}M6p3-cHKqA#@Yyi(*$t6A%~%vMsjWqh}RXFix~X z9s)EKps~1)qM1b-3EtqXHg%-a%@7-f&KWt5{w|>SBX#~vRKDW=tHS3MZ1iNWpJaSM zlgL&-YQP%=LQ?Pt>Rx%V4NAHYVbwnhO zmc{FNO9eUFpYMF;8(p$!?QU)|CCbtS`dwei#nrT+Ufjt7nCI8Qi@r&bS9gEBXJb^_ z`(yZIl-p+p8A-fmK(==vGF$WK>FnwfxqVAEbK=jTGkWtML(=}p@&~s_GSIlFkw&mm z9oJnx=Nnubk@l9$x48C6SQ2>Ip%(bNnR-VsyguXUY zy=msRIq*FHnJQLe=pe<%R z%@U~*>HZ!+zuicGQ4K>267;3HA%~IFt$9!a{rys-`q7WXJ

XIRMdB&lXmc8Pv=?!W+M*53|yM0CU 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 AE&u=k literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/en-us_image_0000001127520662.png b/en/device-dev/kernel/figure/en-us_image_0000001127520662.png new file mode 100644 index 0000000000000000000000000000000000000000..4b583a70058c965ebe857ef500343003375220af GIT binary patch literal 25309 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 literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/en-us_image_0000001052810304.png b/en/device-dev/kernel/figure/en-us_image_0000001133848164.png similarity index 100% rename from en/device-dev/kernel/figure/en-us_image_0000001052810304.png rename to en/device-dev/kernel/figure/en-us_image_0000001133848164.png diff --git a/en/device-dev/kernel/figure/en-us_image_0000001054624363.png b/en/device-dev/kernel/figure/en-us_image_0000001133848370.png similarity index 100% rename from en/device-dev/kernel/figure/en-us_image_0000001054624363.png rename to en/device-dev/kernel/figure/en-us_image_0000001133848370.png diff --git a/en/device-dev/kernel/figure/en-us_image_0000001052370303.png b/en/device-dev/kernel/figure/en-us_image_0000001133848906.png similarity index 100% rename from en/device-dev/kernel/figure/en-us_image_0000001052370303.png rename to en/device-dev/kernel/figure/en-us_image_0000001133848906.png diff --git a/en/device-dev/kernel/figure/en-us_image_0000001053710680.png b/en/device-dev/kernel/figure/en-us_image_0000001134008030.png similarity index 100% rename from en/device-dev/kernel/figure/en-us_image_0000001053710680.png rename to en/device-dev/kernel/figure/en-us_image_0000001134008030.png diff --git a/en/device-dev/kernel/figure/en-us_image_0000001052370307.png b/en/device-dev/kernel/figure/en-us_image_0000001134008686.png similarity index 100% rename from en/device-dev/kernel/figure/en-us_image_0000001052370307.png rename to en/device-dev/kernel/figure/en-us_image_0000001134008686.png diff --git a/en/device-dev/kernel/figure/en-us_image_0000001051690323.png b/en/device-dev/kernel/figure/en-us_image_0000001134008688.png similarity index 100% rename from en/device-dev/kernel/figure/en-us_image_0000001051690323.png rename to en/device-dev/kernel/figure/en-us_image_0000001134008688.png diff --git a/en/device-dev/kernel/figure/en-us_image_0000001173429547.png b/en/device-dev/kernel/figure/en-us_image_0000001173429547.png new file mode 100644 index 0000000000000000000000000000000000000000..1d8df5ef5d0f321e976008cbf382e228d12677d6 GIT binary patch literal 107042 zcmV)uK$gFWP)^eCN!}opuJ{3RgozgV5B}Bbe-PeYeT4-}Ulcld{W`zIDSs1|J$;MdbD6zNcwmw6!tDcGSYL+Af4%Lv^!@*8 z^K$->OG5X7H*)>>URY{#dH=PyIaY7OJ0+8wCJZGmP{V<*KjDKdd$9{%jJ^JDhV}KL z%;t|uzZ=^XWzf)L;*AXN6ppQ~3cI^Ein;^5_T~=+48NU+$EI=Q#}8P%E(`Exz>O2= z80w2(a3qEkKeF_l@2C~jbeno7a|T4R&JZ$OhGAaCOAw(j@hYM%Ao5R+cO4@ zcLkAFNtV&+u3yXCX$yKFoo`*Qp3 z6NywevSHQRe0`|Yk!s(GcaV|nhnsH%meb#}^u4brZ@x$%$E}3G#0+knIhsg~i38t# z%9_nb3FtY75g~Payly9k;P%`+Dutg`f6Q5XJ8rmlHvJ;qIl6T{tH0bxlMNF3PiM~L zp4ci2`ShJ-94u=@>XF1vcg>`0sEPyYSF+-V9Hd^+Tz~5W#{1romCWww6vF&||~m^eI)AK&|mGEFEGrVXWH z!)NR+(Os@s+p|<6X}fpbxDaq5@Yf(9{UeeI?lggWW_4%Rn)lc%@6PFL?CI|>JtfI%C?*wMpL5(hA&g*-b<=x4~t%3 zO|i^}0KhA;JA-?rpcK>giDuxCKKR%)jGFflr}*Zh75uR8G}4H4h7Rn3uPB$&m!5+MlH_|e8*u=K z(Q@S+alUo^cOl?H;Lkwd8hRcQBvP>3oE4+^#hlQ+FSW;i;IlnhU|7%ixhVu9;Y6*T zJBMA*AdLe5C=EgG?P%Y<11EQW!uR_RAlGbU=x7bHt7v9zF6Yqh91Nx~{PR!X;olym zLV~`skRvC~kdb6*i7Ca@c!p0u`ikrWrRcV0@>p^T5^|_7JxlJXBH}%My@HY0OdMIi znvcKVeLV*xEu0@Rjp0KE60a`dosGpv!=}=yeIzAS6PPFq zCMd|AFgG>XRTiw(XZUu@J7gUyy1@5mcTH^mekbi`jpnxb3GDm!6UxN)!fK?k$>8ku zne;T)*I@BXqDz{JPoG}Gu0pZbl-3fL(t(NBq1WHRws8jx|%hmeY_3J{wg}|SH zz%}$dY+%*m;pHsQV5gy~7N3xIXaRL_IC5J(dXjnYk$bV7`I-;E+eM{GhDR~)N;pQ_my;$NMtCKN)&P#a)lCwOoAXdhl0#jJ63aRg<(Y^^Cmu4{HBKB zkU&h$O>HbKHaixRq3!uVkIzMVY8R(WATw7|Q(nr!^t*@#0Mwnhm6k zyN#z(?c<-OPKpVyM+h;O-Kp)!4V)=(hJJ!DO0eOZi_d>+fE=>`7O`OMs@H+0B z|0F}^f5?M(pXKove?WgZp*fGWpJem!6U&IGu+g)fJ3q9{c{sUVJTC9e@SAR7~%RD&T8c)(9&(W zdWK2Wqz@TG|9D@t9)aX+*-S0auyZQ~Galis*ZjznC*!LqMX(g|)%zQG`fvYYappP7 z3-ejMawVsCtzq|&=XrJIOPoG$Ci|NutSvvyC#$wIZ`^gvO0Pj?Eau#?<9Nh(!ou>f^Y#$!^xd&Zyd*yD_&q%g%2@a5`Jpw zd6ewh%84m=vv`3oAFf=+=G+>G-aSXpq({>_4xTK(Iu5QkE(BZ%{GkX)#Kl&Zb8KvE zL@E`(Y$f#S)r*{*oXbcg1SE7J$;ZsGoE&Nm0t&YvI(AINR&$yoCrTX+g4{cZ^rQr2 z`bx^G>u7GQr&e!99S}puq+sexN@!}Vr@Xr13Jr)1@1Q`WhDPjacjP8L616)L0Nq>QgtBFp%RMDR5*uKS|hgo%7|>=g$N;wB?V+=-0xp|YfyW^-%SsEO;` zkr0)Qg1p0&){BEW5`2R~kr=9|X}aQMN1If*dy|%)j+eQH+(XA{Xc_lW1t-uo&Y#+{ z5*lZ)pJwu5g}Dyb1Zl$}1o>9T4kAC(^+I;EmER+Dr11O~_8k%Zu+jwJYNDLH+V zGv!SPQaSC?I}zp3DT|^eXJYD*NIJwvVl6M=@Trov{Fchy9Yb*qmE{;(MDOb;e(e>w4)z zz=ePd0T%*J1g>G&>faH%Dn5MnX{c%WO8x~AP4)F;@7;^aYIRP$N@PeZwHR8yY=0rD z>y--u7XmH>TnMxv@L$q+n5iiI`Gjdiw~xS371t2|&x_)p-kVP9YBpt^Y8!6*^HOthb|K(Gz=eRgWasx>at(n&!FV`U z#z=7U5m)0lb_)C+E`J$qb8R`NN@3WH8|dOA?mYRwTuQo4oXMo_(f=1Fe@fi&{u8-n zbhqD`nSY8XE~YL7TnPM+An^MdkIu7bet8@7^wUSgtS zw<*Mj9Kd9iA(vVmySFk&-_EpAU9jl#`C!3oWR+i~GLvb^ykQ>G2gFiSkjIBh-y)~R zOi*+t_spG$zpsQnA1>m(EobOEV-8(H{O}J5B2cJc`QjJJDv~j1##~1AibGOUz^BXK zWAC|IB+6iJnteOHIz>{E_alp6|AaDe^^S*o%l?oH2*}k@+%SI*{bKznI`kE9E_b@n zxIl5?PV3v3M<1DqR^5zOPymI8oO>)fjhxNRqq-n%%IAYcud%-@kXiRkBLDN(*uj@^I$P9z&SQz?P4eux8g8B#JoZ-FFWuF*cetAqa=Ff3|tTnPNJ z2>iaDheAqCeh&L`O$->=9hJEeeWMBgq;brd6vt zVZBpPg!W=UuP97)txIz+WiRy#r$^6@P8S?fH(erL}^j+;==hRwT4nm(F1q?GK@65FXOl{p*Ply@5B8<{yTolqeEXL2b?>DHc8 zU%ktBS;c_(2g>M?gldXe^z9+?DdyOOPNW8fV%DEy$My}JDl4Qh_b@}#0}%}0vHJ57 zOql&J>1T3Ty=*ylylCGcl$~qeB=1BS)}47g9utp*g9s7{671NlEqf*;!K9=o5h@qB z^TD2k2B;}<^ZA*ijsQ&piP1K`e&;)iN?`NuQFM~I6BgHvh}bAb%)cKYAQFwG8aFI# z{B}QmM)zf`hac5Pw{fKE$}S%ftmt(*=T2#>iKa#aGNqow8@?p3*K{6uDv}dFtz+?a z3-Xw5BqoO9HSRV-<$idn%y@W)kklcVo!>7bFTa@PO?&CsPSn$Nxe#z6;6mW9LEv{b z9#YgEZqy$5jy;(ZdHbd?-u!eiRp-kH=#zvmKVXkZKxu1o`Y!sJ4pu6PtBLB-oq!Jy zP_6c(owttS>eHB%BT0#na;!0mP;Ujt^m=?`cC036=SVGnSxY2n+*KS~^8#B|Sh?@D z`! z;^AJ6EV}3Qt863$yUvcMZx9}0_e>E&RJcF68h7O8eBQeMPK5XotX}vaMc+;4o4PYp z6c@ASljW?h5J-*<=16TBf%R58C&j|%Vq%lxP@4-{R$9r3>(rAVp`5*k3)(j0U0Fd_ z=r1AQ<>keI0Ryf|l9iQ3Ny#toE4pfA*9#W{|KSMyzQ)6DrMcOPLT+ID=igIv%iYLS zR?hDHl&p-$cx}m2Z2np{EP8^1 zvr);*ShjqZvoh7^^U3yd?tS@fqSt-I!c|-OX8GsD-!+bh6Z&D+m$2^RQ&*H0dkLSe z_?9Q{Ucigvb;N`y$r6kd9r>D#Xa3Hu4?Ikbp_wy#zd&rN>egewi~YBZva>A`Iix}lZ1bNc(wIjR@18~5|!7a7c)a}O!C z2J|I+IlNEL=GCj{|Bv}BesePFcA*$H>025P6{GHWf?>9AnK<`NTD^Z=E`#g&*Aa+~ zjb+`sbyp>vF=Ga+SFgV6d)EsW0{_(rT;VJz;i`v0$<>07pO2uHiuIIC@D2<{6XGNM1!+rqYX5K{ zEj>+$2=EXjZ8A9O-%I0y;2j<(BqzoQ0p6a1N2|Va4f&v@!%FQXx1#Sx8Tg6FkM|Ho2riP;8QrmYg8?Xe4dn zYQJzHB{fk9_VW?Ew5pbHiQw+-C-`~0{i%JA24jnpNT0F|?1;KJ5XzJ9d zZF$ie$Mx&7pZ^&fxKI=>++DTtXsgUz2J$~+ApgU8-l0QBXQ9aYRuJyKQ4r=X7X*{N zt)RFX4_7_#zg!RezSUO$)qOCRaxMfeM?maY08t4L>gTOX3s@K-r+RFFJy7$H?hsqoKW+K?ow^LO*{ zd+Yi4a?bJ>_3BIi%)X>Y_&IS<`;d^< zg?^d+$>^GlTboo?ijL>w-FGaLS`H|3M$nMfy&oC9+vEKU&7aCAl;{Y5T1njfLWm3v zydw4@ZO3js$;iy0dy@08sw)!y-awg}@c8!hb>NUmug*z$whHtccyF4;YMgg7#@l?FfWPw>kl$ghfic|mq;ql9A-Nkhsna7?44Hn0S=frI*wvg0#30$Dvn2u^q@9kV(IO8T9Pdf#{H{ zEU&(l#UJ-%GCK$G{y2^g;#<}dGGmBQvrI+8gWcy}v*Ii=?ky$yp z{cD!3*-UlLCQe$1(>uPxd;D&xTx59Nr>)0m0L#lA=KNAyzf@?+P6FC zKj&Vej()|vJ5LcfXa={(HL&3AuW6QRQOKli7=Ro7Z;?m_vI$g)@*LB9;C?_%6kKLcY%93x6 z;vP7dXP%gaT&}}2(4Vu%ohLL&wd$V@_j`o*Vg5bSN$^#1YWr$lTfG&74Z2L2$1Nk$ zvDlQzYmTt&&DS{kvqSy_bQSr$^UMxvO)zc2XG|WH!cWKcIlKT2zy5mSOVc2a z!qFe!=cwomS<;SYq7um2vEMOU+lr{`*M)!!fxi}kYim4yi;N~Ss(=pM`_R1`9521lEM1(OCME)^ z&T`&ycwRL{O(y*0(G0q77IBiVxc~1P35<`yM+!~N=lN;>c{1Z-2rXvxBjV|&K~g=NKVHOJ=d?Wj%F|3cxsx^3 z-I&o|%jdyOt*w-^=8q2l?P^6B6Gv?tStR@*9nu zIk17xcbvf6Qo)CdpQg;(iAB%fM8CX3d?I3rDRX{(tAnCQjjg(*_j3UU1G_(e3wu-y z_h}FFw--L5rrCgJZz;j;2k_9nS{l7#NDET(mD!G`w}k`WE@$N_9d|zY3Ufwhv7$bi z;oSpxbn<~`v3mjcZ<6!a z;s?1tKaY2JmlG7%o;W`P_dW19#npNYS2;euuBsfr)WO^{E`!A20={@Z&!J*i-|=*p zy83H@>#^;oUT2sqP zm&;%itOA1MLWL%g$kA%6S-W}_sgF+O=|z1xzF{?Q?iC|iIk+dAQ4>cnGTM`x!=KTt zGhsJXaVoC@Y4SO$>*{bbSuvWFBoCX#n=$?HcC+!`TZ=FvqgLb3tZ_5&)R+m2Q&O$; zB`!6c@}pbXU0ey9H*qF57P)64@v))!%V+UeKMjGhW{^6&VSaiycSIUtK|w@C2XX3f1;~RL zIv}3xA68rf{%i!Uxdhm(7RSPq zO9T|`7rqh|O6-R7eD~Sc9Bw1>#?2khZQjBcU*%F8yo_7#ox>-H>>pP$*HV6ev|HlyW%=xdM$!LDAlCdHMCV)Hl^p-z=V) z9mBkNb7|iAH(uT<<&j0tp^=#=J9Cbp!5xW|eUCA^Q5Gv zP;#yj+_cC{pVR(X3}g4VbZPl;a2`8 z4=z5>EiW&iom`GtF2Rh{>0e8!#;#P++*C|ay_ybP68O5ZfyDOlSWBF>w7tO!9s#Ju zdFndAc%C!Gg`D}~L*CeXj^wly%1%4yz$`KaQtj1TW40QDnvjGPB9$mbMGP@F6$v$3w`wObe%SFam001BWNklVxy=Nytwpp$2@`Yhc!r^y`S$F$MNy|Z?Ltt z22X>M1fW7I$EQJ02-TGA-@v%ZlUVB8h(gvxRimEZW*r_n1K~iU)rfn2GhtM)Z|SFu zdEzNP8llHeYv4$ufdCPUlHF{}8pd<)EM?p3w|Vo+Lu^_49S`1qC#yyoXe!BOdHxYc zPsv}`fColrJg0SB;lDsTk0@??<|cf+J#p96^6`rs@UAQ4-6x#x<-NnZ5j=MU8(045 z;B{SQI=Zdj(bUMV@V-KFzcWbeV5wUdU-X*+;@@SLQrWgr?dMR%1 zo_Kn>AxDBZbW>4Piy&7cx0^9qM31wgqeC}DFSCM8z+yBxzM^Gv4O%UZN@BqD`Ai!c z%Eko?_$Ju ziOpg~rjTK`+L6kgzCdJx4Wp@bsHjC{sT{w+5Y&Q!+WIE!b{i&{hNyO7n5ru9>_3~Q zhQYmey-c|s)INa(x+|%#Dy7kA2XPUBN{&^W%)S_ExrX2%e=s&u-_(rVW=1?`O6eI$ zu&0dIYib!|vmrH$Js{`y0(n3eONg1QEMr0IAnCJqc$3`3n29g#4!R@TkoWG(1Tr~LK+$b`f8{*IP=Oo z5ImGnRR+cuFTzT3xXubKvbP|4<)461(8!>s6uaJb>1l{kIVj~|GCK8jcL#%xD=zuE zGWTl=6$?ZyFe@^WX)nI$T>5+kPKy>TV$YsES9s$Jav|{FkH9rG9{>HY{ECKJ9|ljn zg<56-Y?1gYeqFcjce|KYycgez@x;GY8Zm8=j~Le4WxbfTHB6+tnD<5E{_M6@uGVzK z-;1w{&iJ_adi*6*D8&8Onf1*>RK7N;$1TW=`D@NH8XHUbRqCRfI#bq=uoXr&?pDe|_RXA)#Bv@)5@@zpB|EAAPQkfi)R3geH3g~3eMk^QNv|J*sNaCbz3A}>7cE{?ld}qTU z>exyuxw^h$%D+`#QHG00)J1H5u5YW<|B1gUx=px^8AFoV^7PNtB609cUViOOo_p*T z;(z6n$+JZe`ERrZk^ExYztozI-?q@-Zu^pJv3;@pwpy-eo4?KW zFW0w~gR}fzp)30Zs^bPUD=MaBzjJ| zlgwBT(lf`CATQ>4aRUmUuH1RoFw~L=rd`*WLwj>DBVo|2`E(9Y({uDh0vb&)2Re(X7X z7Vu{3J#z?^s2M$d0=m2`Dh+lbdrswsVX*{8_hoR3f~@1>d`c)cJunL&n;R2njH2w| ze(EfcGUO)4bq^x4<1l&z={a0b1@d_AcyJo-Rv)I_IFOUO4k9ic=r-YY1|@isk};NK zRT;<5*CX@l#N7F#Q41klKczc|cOP|3%4bfWNB0md-9}6##E?&Zg&u8a1~<(e%ILiZ zX|%)pj?7UpYW7_uyQ|2YI2lb@4uy4B-UoAeUS9QCq98P>3mLt-ker-CLQD|N73XOb zy#xFumxjT&KguxgQ>@!j@TaF}*4I;1@4?uqeJK8BJ^A8%RLdpKGsQ;+p{uV$JaAHU zPIIeVf&GCSsI&wzea2AE?#-gf4jo6|#)$U5#Pt|ON3R-=o~s2-Ds%6hfW{uc_0#&0 zv+J;9m0X{xbLkW5PRGIHiL#yJL}?SMfS%lW=U_ClNT!bOz`?z_SdcOF=6Q7RRnceM zWV~yRbEd|KSM*@!%FHW|(xq@>YGaQpGxG(HvY z;BJiS=Ec6F;xMWoH{3g$VAPD8F`oLI{ZttRV)|Uq)B%wMC-f&XUf{rqGDNL!d1xly zR(B@P96`~({WRDhefTYm>g+7*UHuw3B9?VkGI!oL5jUG3Q?Jk9*sen@W&IBN$9j@B zU_5cs^W>E@qVVm;+&eFn_3XVlSdcP!)_gkotLZiNLRt4{H-I@e^+BUeV)D>f_8&Nj z9S!5|yvtG62ThrTwCE_s4USD-t=Z@L{r`kOYm@)ml9$TRX#Ge?i6z+AhxSRy*o<|k z)EfL^Qi%&t5RuTGc3Kk#wHl2kgrvj>g8YL?kB@fjO;D+|1jnZl?JFlHxhH{29Tv43 zttOh}_+Wy9BT0`A#UO4nRBH)OOeNA=PJC)lys1U1Qls^VBRR&8ps)ne!hO-11=JcX zk;y59dn-vw?TW@)jZ&pS>zhDQJ5NF)(?|-^qO-|SYut%VNg&iqOG-*7@}+&w*zw|2b5)7%voeO5~pDBE7jarf{<)w=0V8OZey z|C2k0bt5_^hUmyJ+{MZEmP;a2IOyHf7iL&A?jC3^Jc`{j#1%)P0}`eB_nx6HU@|nJ zGngFn7*drA#YHY)WNJ4&+{D4V%P;3b40o-nZO6O(O0*IM9-i)PJ;J7nLXKt~qNt() zTWjyLg|%PWARc?@PJ&w8YY8%?V`3%N%Sc#aPoll-=;dPm`jeO(O^}Zt?GqERHa9r( zEFdaAw4z7ryy`qP4gT0 zd&P3&{Q2B4v=jQ81l&A*@oFALb%=r~QzsJT)?xB(5(LhPS7wHW5#E zEw;)r*pl6ue&ZwpBvmAI4?%X`%J4DnBzGLdh>RHO+o$5Au~Ru}EPizX%((G7Jj`Vz zyMEIDg?V&RaGIV6%u(5QH z*HV`(!`D{Ekns~RXcCz*bqKclR1{vpoYxFvpxn%;@e@c77D!2T!^?1z;n$5r5zv_% zCiJDbHW96tAIHq2s0ffTY3f8`JoF^A_rbt5{`RFi=ZZObvNDHd1I_T%o{H)B~Pbe%0qv{ci(#~*`wmo z=cjXE$ElV!miKvj#cr&M6y8|( z3YG6Y#xtL1|AJu&H0v4(={}K1Zfws-i=JhFftk48)0uZ;e}~VqobQ+O`WO2hJ%aJ~ zFJy9OPpWltbjQEqlS2k3P9KZCOhXK1;1#?C*f&m&E<0f85N`RHb6c4;~#~69tc(lP?nL55F&0<;i^2Jj>it11WQ>RTL zQrk#;M?W-G`x!IdN@#orINqLR*|A{m-7k|CY^sZHvPzuL&)kr^CavElL@bUpun zK;U;Z9@54FKL6-zBHc>Zv%7-+={BBvehn6>JKj;@sLy5-(6JM_YhGvL$p!+_%>=6Q z*`H&gM|cHKzy2+P#D~zNFq#hTBcX36Hodig{Us)jS1HgMvN&3-B1LtKmse~iX)}eX<|^FT*rzZPNMW~Ph7N}tgWZW?BmZ1|5#3wREabwjFW~F5Rpd1wiSH5 zyA*AB1<^tE?A}#IW=9E6Kf4;U)D4fQa6F0*;hWxx6Kmh#hvW75B^wCRoMrD}1AU@v zcxvHS*d<;BC4^x*vY+T)o!P!@0ej9Hi71ufZa&PBb22)3oaBXNTaZcuh)fRT%z+vNBzm4SiEK{ zR*8bRgjfoHc#Nl(@5Cn93F~na*ALe6{JnS5H2Uv6J!cv_Uphvpmyu1M?`7b1UD*Bg z5xVvsh>v17Rkj*_`sz!XPG36Qd8vI1SWG4o#@@{{UF!Ja#jzJ3 z;IqbVytZI20}tl1;hcf+m;`LaU+|BoR?=h=@Xxr9%rrk2S0d?tpz%QJKFJ)=5gSJ zjc$QOJiGV@koXdw6im(jeWYY`V*Tq2I8T;$C0`strimvuLB)|R$H?d(!J>aIrP3~^*)xQa ztU`2N@d!sg;r-18sQk_n)6UGkZD$zJ)01bPT!BHVMj0ALZrw5DvF)kc@D876Rp1d_ zL%V=#_Ux%7GtJ7AEoI#|Ivi!eK>|B-qhnL^mj#LsvWRgFHI}gxpKpG#tu#l6DcFZhAV9#RIPBY;XCNZU71n1(DiH+4_&l^cVr7u$- zoPmFR5ovwH(bV}d>Y$pWSvNASgEs|{=_JHL&Hj-jN}`xPZ!)UNbM)|ThowNm@KZr_ znR_e4q9r7^>qcUvjxz&B(h!u+jN3+HEh$137(sPN6NOdDWZZizef^t>jm#iEq@0}o z=ODEYGp_GPV^JzT;i2S9N~y6mGUDOe=%}nEI^K^c&wNI2s=z&C7&ngTNO@s0q0xQ> zRi8%ilQ7}oTZy%n64ySIAjv^SZ)+xG+ytg%L{pTQOmv((^3$X6De+{=L$e5KEF!g6 zIPOi`7@egce)CN7kP@T3%~PHyK&y#e;`#@xFzL8?6TqAQfbda5hR zs5P0ehfdinE22wL^KzZ*d+{K^KM4%wi7vd3X^(< zayBlNxL6gYoRNez1TpRY>3G)_(m@k}qRO3-M?6Tqc?M%r-8kK@BZ)CKDl$h>rjFyr zyRJiCeh$H>9nB|goID#r_j$K6INVNRyIv$l)N?9xIEIMM%(!_Nrs5*B!Qqtp)=|<> z&Y%Zo)6=Von3zoB0*V>k_dN2>8O)f}i`v3e{3C-oZazr*8R#(Aq$o>@sZZD9!h|1KcjY-iMVbullz2oE+NHP){l=Qu-cEQ56!^8 z?i}g;+M%xTVbmclNi%0Kwu2`H(H%&Pkx{j;GfC1Irq7>+s^T;~ydx1x6ztfL!@ioU zI7|B#i*vpHV-fgWjYs~zeQeyZmlH)lVQHVimmj~(mpQd~Sv15di#b@>MEk=vyu9Rd z^vDS8+kvcO8*%I2pQB5kVavH@LOg;9*SnEjrzUB~F&3`ch)L#2WZxw8S(^y%-IJ{g z{>A<(fm0E&co*u(C6v7Hf8womd$GBP6W_HRCHuA!*DIaR{^|kGB`0EN&t>%)*hQ z1+-7l@WzYpQe^|x&Q27T?!cU$!8dCc@cH3tJd6qw+{-ywP*3~723}dbmL@@hf4@!~ z%G-##TYvK2`4<}s^aN`C2sh@ET_q)DPd=}#`~joXoru1vn6o$F->VlpUVWOq6?S5R zqwp;;v&$ODOb?yI3&=NLZy`RdBNh9%64kR4Up@aaIdyVE%g#_(d6Wf9zQQXZ1x<6g zqw$FDKAWNbdswtq%gp&Var~te}aD|!KN&aIT3%p;(G57Iq1(%7{pDq{(i7CRc18l_T!O09Odcu|TQ`WzcG z0vUhPSaez6vni+KDi$ln%|pqCHy-2*<6xeA;c@2N`7cTj-2-v@@b)&&K=@7 zUN26NN>C`(xVc?$dm@!dQ79D7)p`mQ8nqj8Qw8S>^C>vCljlCzOmK2Kl7=Fu47z3{ z%0R;6R7j3m+q@KOgk~x$YjCtl=9BDP>zu&m#q`daZ`_$UOZFgr13b$fy-=8nmyvSF% z^^US0qc~4?p`P}Ks(5+n7wC}_l+l3$xnfz*;K-6^*ivXD)H9gSCM}2S)gA~g~pXES}Kz>9VUWH8@CzRvgZDz@r`>}bHlhCy*=l5+Vu4fvb zKl=j5L^nCE>)!%_-!)-wx2dt!7m-`r4CN=;n_r2=W<`yig7XFFjRx`$9j4xD!D7{7 zu0F$w1}oO{x$HmJX11<+pJQGa%vW!sA9`L-g0(E}2&>2i7Jy`=7k}?Bir4 zdN{lQh>U8=i>Ye7aFU{>sfOZKZvs{WrNtFk6m@J~xtijrVZ5~PRc;yG4L66v;!s@< z%fHEE@IT+;v6-1|n=Rdf;~6rbHy#csME`7}qZ|n;jh%vn2dTD*wxGmTcaCFqW`xo_ z_7&7P^H;EvfBq~+qn;Coj?f_HuT6uo>NF=CY*@}6C9BBLVhcu2l$^)fTu;v7TnrBX zaB7;$PjW_QLwEWR2dka-tTH!pth7Sx7Lk4A1SZk;QBhNRg7bPiwRwj)-YD9$6?t(6r__l(2#WfBEt#V4q2wo;ax&ADcgR&-EMN=}syNmT*+@`^EAt*DSVY`?)| zrtnBMm1d{D_Byew8xh2^e!99vUuRi27{y-eg|cp{5^djtr6`wug*qp#-N=dJA}q}f zFMd>+Rc_fi6E6q1kuH-RCM#&5-yQQ{~vqj0UlMc z_VM4=Y|CzX?;(LCq!0*%-U)=>JBXqpR+`cjd%Iq*UOS44UToME6_6rGZwUz{lmH0{ z>Ai1u_j}H67B-jwv0c62p65w+&dfV+`JXvw`a33(2$S$@jRSELt=J?MS@R1Haa*HB zI1r>6tynB>QI?sXKzms)Os&xhdI@|5pRg9)u5UwIXn$$1fQ?m_1(TMsY297{$DLr> zEa+^-6`?6ZOf!3O`*}5990fBwm0X~6S44#GIbKl-(~sNFE>|c zTQB>9r=DNDCrxG4w%pu!c^1lk>+j^BTlSm3zrwrTqP=39a@~Y)YxY{-^(*h>FU!#t z-0f+9CKhcPwi2GR^*}${QDc*NnTk-;*~S{1Xid#xO;!fYVy(2s=CMt*wp;~S!W%8f zvW+*kLTjmit$BpIw%E`XTB{AsQMfiXE!$ucbhIdLp1`$)o70+;O?oQI%B+-T+Jf;r5#(G^!9;`2GR(%B zO3R^EHW_}Qmyo};bfe&q(rUa7k>F^us@&qO_;R$Z9ztXj;>~RMHD$r(ISP0;@oOGy zH2V|#_2n6if zCjK{^pAgw^JW~e80JA_$zx|bPzpgIAhs(MZ@Vdlyg5MQ^KlzNp-&J=zGdlu*76NS? zw)%b4@(N90aGwY+9pBE6`-)ohIFz*};Ol=Jp zd;A}UK!+yI_MXQd2C<#-{{RBNs`8Miobhy0QdwL`WxXDWOp4&nLaTE^Tw6j>MZMW| zg+tRh76xINrEs={z5&OuzC5;I9=WFv(Pi;UJYIQ-54PvE45d_otBVuH>QbtN!!E3s zM1`lPGot!R@{22)jeA>3EWct@POfOg^^}y=HYJIX%EgEzYTR5@)RY!bUSq?%IRo>Z zRO5oDPDb&ie9SJ9Byt>8QYtGg6`De$gW7WQaTYR-D;`=oWkrR*$(2GbkO+LxfI|6@C1lnAActnn5<;p2I*Oqf?|2F>p{(1sO-_NSa!JI$ah`Xio8eN#SVhN_t*Kj5#3H`bES@q8igiL*uhX)T~{r2}-9-?sx zW$JwknHnQz<&p(#J5h$z!H?N17t+N`PD6Pyo8Di;rqryK^W#9w@HwoQHGs7BPqX~3 z?H~!@_GecRPBliEGrsa7o_}f;dozX4#V;?9@FW)8ITm-Boa)>iJpIC2F3AJ9>!Eu& z_r@dqAQ{XPcLebIif1Sen8ZUXMx(4O=j5)9tp4OHikl8v{3YjW$IJ&7T${w6`UfLm zIaK!#7Gh^_N8oRYK-(%0kry-Xo=VN;XIb!03cg`M2!8fdE}?i;XK?rZ|3Eb95uTYd zj_ogIqIGdXVeb1&&^S3`)T(jxFj00%!^Cmp$X1twF2H;gs^I_j7gxbCUVdy9KF>dn ztE0t9p4_P$NqyR};jugU{Dd5Dnc$DNwX2rB>z?I#tsCQD{E~^tof-GcL3#KEmV8>wqSeoF%YeN+{`E=TeSHgym%PJdWd$F+ zeh+Eoemt~bJh|&v^4O=R32Gl?KFsfzOm8fv`MRhZ%VVdqBVb3sj=-OVK-(tFRRMUZ z%h~c}ig_b(*6H&USBX(MlyhKD3b_UoIcX_0DqL}vNzm)-EK5aAb=20?W7Hcl*2_Rz z#LhjtDG;`?Hq>&>2}+R&gRr@%(K2UIlm9i3KD~*UX)AdBA9oPuZn8OZycO8Yj_;bL zpT%No%1^U@TP9FXR$&efvX;EJ3P<*N=hSD+72UTbS-QvTM>5Dmg^emwXeNogI zNa)s)!pwcNHasAa%2DfdXdNBVYIP_bWT?C&aLwJqL-QAtQWnIlp4~3H-TnpMA_)qW z8lBb=M@KDcwE~IYMqJ^5Tw>W-Ex2-*+qeR6#-kyN)2B{zYU5`-ymC43to@3;7m7iw zV8Gmm@y&RS)koAUy=yem$~4ZEc`)g=Ubwru(4|`pK24n+Seq%?# zj({D3zbgW5JPfLi6X|($95J0~!v~?MD&Xgo(|E=v5+Ck~U&jIT^{?dp7gm#zpTh-d zDAVRlA~wjA#56$Dys<$-iFxhRQ1*Cz|0HlrV-x3vVVst01IP zXM!B6IFxdhsL3}mZ}ueIa`*7Y`(Kh(+45#Esbd(oEM3mfC{HvVA#{s%Cv*R46oKv( zAKuTY@_Jl@+T&P!irpuLDe9}QI!+xcA#UOfrjHqlpF=4J_NGze+JU*lf#(=gvxP;k{y>AF zvH9vJkp!v8K;u;#j>S?5M#0(6H7=1@Y(9UXvC)9}7*>%9gTcZ`DwENuzury=;Rstn zj-ZnWsZ@-?>@(*YLR(3?Vy`f7A~;KE4x4bIX46Jr8*Ex(W{Kw)S3KaR@xE6^9URM*C|8+Vj~Fup?kc;4h58udY0<*koY;+JCbD zN`yURN5GDN9RWK6|KkX>ZNmJ&0fxejiL-8@OR%=h(!F|4V(I*GxZFU_*irL&(|ja+M0TvkU&A z?FshMS?m`(pw(%Sn|JVuQE7Fk+Zt#LP_zJ~HT@bGU(M3_IS%fu3#y#k1gY>%r(Zq}ipwu+L%BFZakugtB8 z9qW%~UqSu$+|k>SDUtV|?of;&VJ>}y?*E3lE^?%$5EcEQN&tEkgowMyXH*4k6; z2-p#@Bk;FD;PU76Ml}vdn94) zXvag34d?T_m$6&#!nBpEP=EIVFK$1}PaEDv)43CgHWfmP@^$_Un{_X96169ur|r*66l|<9;v6@C8MEDS4~wDp*n2E`_EX&AlbAiO zA8rmBTn!bx`s&jh$SMPg#JrH|vMv%=dW;xHcVB0m6Ox#xa_9YbR&%&e!HnCM(8EiL zSSM%Kd(ZLi&U3`{yN^e2jptZN9WfnT+4%MKR)bxZWDnR8up?kc;BSRM+j<^iU#8tQ zii@8-!Y%U`@WwYg%&Ux)S}$Z55Ao!(`&hW{6ho(v!QDZMOzF_nGY}zHDshlnhl4bz z9i*)uMsyj$!V|pl*h6eQU58d>+0-X)4L9H>T_#6tYDC{)X~owRe8q}Yj?A7opI2wg`SRaSbM9ix&qC(V zKz8~uvIQ~XVoIv3P#F|xI}Tv(@NU%C72^@Apy+T@eqmpU$cVnqc1f=ql|qh0as?_U zcTZ$mA4cE17-SN5?M$Un<&REQ&en`7v-jY$nU@HX*ej2gpNu`$j({D3zdHhL>v>e4 zHSC*s8urb4Q`A`PNpjBZ61AoEyt_mXcU%t4~ojEmHQLhF9=tyvgz42 zP*vQ3TgP?;c)FpKi^)B`k8>w7`R?UscxCl_>^_=HNyRZP6zCW;z9+shgBjE-8jZ?+4Z+0U`OEp4FYX+Ptw4#lye019>atoy%7~;@$=D4eB!$i z>FbDVSPweua(Mg2cQ{vaiBt9NjG8=_j$RsyvQCn=dl#oFotZp;KD~TZICzKPEi2+y+*!B1Af!9ynq95I<&XG}noxs{jS`^?qJzLmX zNYSM{It-e`sDu!*&!lqVSQ`2A_RP3t28r#x$T{&d899ZVIF?VBiF4>3>r3_7bPny^ z$EkuUka>_iaR~a8dpUTn$i_l@(2jr|0XqVJPXvCody*^WN*J{CUyQ5%f%z|ecO}{$ zvLj$ez>a_&f&Wa_&fxk2YzeD9= zBxU{Ur2M7L{5vQo9MvnVPHUvL{+GjWVyO(N$V7wwmuY_o>;7~dMPlSKDUJGuW`4(h zs~#e;6uDGHLxaB6Rerx!hCRO>fxiO+ZJRJ}#iGtL7qWCp?`v+@YbER7Fj_?XwEI{- ztsj=f!@to42VZ6_UC!7p;S8F&j5QyB!b=ZK#&+wWAi=NmP-cwi@f(F*C%Za=d!AUy zV9zV-;;xh9ubb=~%+%>q33hE-4DmZ@stk;0_LNcRS~)-LcM@Y~V@KdGk3gGx9=f17 zCXXM3n^f36ZNfpRBtLB@1^zzxmuvXjw~3uX88x6C`#;}E-ZdVbqgMby#>49edp|NL8ryMHRtxT`rLod4XD;Vh8eR* z;;7GH-MY`XSaj{3w$Z(laV|??M_Nng)wF1$J<^WA4I$8`)mFlp8WNKpsc#&U`h~LT zo9{Vu{sPi~j`)kKxKyts$U{MCQ7L+JnHJ&QA&%HEZ|X|&sk!DiNrGR8PDHo!MPF7* zRf7SYrxzOZ)anh$w61tM%BiZUN21W+;pUD{KnNY$1tF;~qO8V%*3}aa4^P4(I^v@h zncbimP}9Ck7eYN0l;oArhzuuBS2Rw(M0E^DE2^QWq87QcKb^+T;j#NBAU>N(y@QE@ z;))iACPesm?n$V$hTK{OL7qxVi%T$jB9W>Ijff_)oey=TMbzkxXk1;;Xx$0v(1Ab~ z8O6nA7|hsc2#<>+Fu;$f=upaz?Brl}8A8jpPoR;loAy&>euN^N0wU-X<_itgRMZFu zUrEuqyP(l|6A{%OH-(;}(rSyYQY}$k;_-G=AQMAleLZ?xfALMl!ok^}xY4tCY|#{C zndhjJ8@N=dpvS;y%1>QF6%>HVP(?{)y(Nc(E3paj_&AyAbLYA~X555QMvpscC^iPnesPBFNv#1t2oV{zyrCpe}vkpWIr6ckc# z6r*!@#mUW!_8r1;G*(bt)qq&zMeN`SJh<|9JoB=tltN))DMpP4anVt@sf?6XR9zXi zk~k9Gxif(-Qi==8Fd)a-(*;Lof1*3KLv5_4xV4kX1UEcxfpm@vLnW@Kw4(O1!5)Fp z#72kWXsV;IqULgZO96?aH=W{R@lZ+3Wx*&{w$FYDr0ZoE?E1 zK%h;PM`LXz+2_xY)96gBdo3@&`ab6iO7V(KX7q>zoN-~ugj?vS&1ULAvEyJ?zrC6s?OpNq_NPAg5T`EHansWu^3cuwP&@hIrz$7)cmadwE@M`&aM~v( z(Z#Kh9q9({e(5!4^$y3wzZ26Yj-dF&F7j0!nKE%GG5&5y#11GWWYiVi9zFTAWQLVCwfOXap?OE9L=jj7oJG}5Ns+BF#+9@S+aNugM(`Me4B7E zmn%0t{W5orj>pw4oJo@=BhK4JdX}DP_dUtH0B&)`@Np7)48<@bv z2}6kua7QAMqY@Xh`$QG}#!nzF+#BzZ?o1y)n2RY}$gX$g_JzwC78yXN0m%d#&$GXk z6A_gj;oP-gG5tdQ>6SDUkFw*WWR(#!>Nf663McifiMyV-AJ_ByIML|OgU>w4@J`9X4ZTVzNwNDJoo_U;+@q)b_XuPnS3r-p)xMaDk#1bypH zv+GT+eq**(8{vVGp=f!Ub z>oyP{FC$XoAzOnqc$2DcADWK?20{R59a^ALBf-9@MFy>L@SGkmlws~6wO z<4d05Kw%?FX={(d$f-?hdFZY0s4-bLE{bq)P*b+|T^?Swh^Kbu)33$#&hd-m@#yei8=lCGd#HTHa^KwGN5A^ zzER^DohaqAciv>}{&L3LJcGbiHqS@)pG{JSD*m%(HS14Gm@;t13@T@T*> z@C~H9R`brTYfLcP z1LA5~b=SSz@yMry4I6LvdMp=-$^7;?9$Y$)53?K?)-|HVGAcxtr~bh5f2`(QrSvkc zZay&tsq5JG?c1#V;s}Ax{$xtZWP&!CZ#*SiUgqTaae&E0b%MgZ5W^+*D z?1#KIm-LgC7F5xtGIQ%%CIv&irK{4=(1@{V_(eFLwj$>o`K7jAYeg7q%D8y$!e#bq zohuTlg1B)r371Ov`TMPu)QU0GW^w$8Wk#X0x)_nE>BFsaL?M$|JOQ^l6d*z>tKe)( zX49}zIW_gJ$c!$u8$OF!AxbV))#Kr00)rHpq?nV3&Y6dl8XHTgtrwxx`XX;E;hcG5 zrI6gbG9*o|Ohgh1VpBa=w|x~dDTYSthefEi*GUwZ#~uBGhg^=*ur!<}XTe zDJZH$B5AEs0(4r7y+SDvpcjj&tGvL;qk{W;2^G~Ph(ro>PEO$9LcbYvFiPwA;rsnm zwYVl*gx1*+vC@%YbLJqH=Cfhb0gElh8cr4G;NliXe)?%lNOAMhkezl6^8ip?1$lL# z2=PKLmlD!<64S&|(tg}TcA0@-Q8_10S?s-(a|u}oon>jbPK#15N9G`fDw`I#gB%f! z)YVy#)OdJPTXexPmsOBWRbw2^4i3~*WO6#S++1cVs!EWw>aW03tQ2w?81*!`E&MyI)qZB?o!c|y6jm(wK13MDp>)NW@ z6sbaGmLq^Ck_)y=5#z(Kfl;LHeT^5_@1$6&MJ1Oa&}x(lGkd9n8m(4KZQfqamU=N` z)&L?0k7r2taD-!ag{vmB1aWW-{kn$Xp%o02;T719h<1VIIiB#aKpf?A9F%I*O>R}> zN=F>katcoFq(ak$nS;8}dDsY|19j9kwD^@b%c7`|YKaT+17isBbpeqCrACcXD&QeT zsnO!-U?Atz&zw1Vk-ZxCNk50Ci7Gl+uwbQkH6f+iF5hp zk7b9R_i=Z>1|EFiA>wX(j(#2F?Ax}V4ij!=eBTJV4;)I*C?)#r-K3^oAoHisdF##h zIFNFN?D{&45)Vd99zmzrUQ8SmLuSS?%YudSQYso$L=Q|LEWp!TCe<$9ghfT*=i^62 zbTqzhj^w2Ngx;+O)BD8JZ}NB?%QHDsQD=T0N^@Bdqf|ShkhjvMLX5LlARQyZ@b(Fy zV@x|dG-^USCE%L1g*E^B1hf%!b#LvAntG1zK1|rSxlHUALE?a+^o)>GTh)M1`>sqF z-IY$`rxT&7ps2bArOBIweY|oeY??X#1OPKM>%@w+H)+y z?ZWYNzIN~A^5e4y>>Xq@-m~Zxo?$bfPi;45?@Hz(I|(v4WJ8 zqZ~MzOXTQDj2qY;V?jCxk7iQW*g})uRLzki7YXk_nn7JUkeiZ1YStyrUdX{Eeh|as z0x8Zs#>pdxIFxY_iGvEYsgl&xM%0ewfrlspRX$G+a7OdR7r)r3P(7F$a&Pb2vSp z__33T^^=ixa1Z+rrI1}#M{VI5E~+D#l-z^*i$^$_>%fScZ>M*V1Lb-Zonk!6K75=q zv5BHn$2e15ja;KcR+h#76KSMp*3*09D7>X6JhgCS%T_WgTduUJ%%<3+qhIn!LKJ2E zbo2rmjhOSPN6D!(pwv21pL>!+>8WJadoyA7R5}Mcb0&2=nRzXLw92zjkt+{n@~nw; z^m5?j;h(rrR8RMTy~y77F`sSPPrf*mNUwahez%z%!Wlhk7~ax4_G~>saa}oSrz+_& zbvnsCVyQT{hr=0V#0>0;rcp#dY!~Di-}3s~Tc{F>Qhfmh)glsyjwRZyk)8XF6PP%L zo5%K~zPud&s3;sObJ%zI04Fbq7&2u79d!k)`}b>Piv-d%SvrgJzQ5|g-f z-Zbj#CFB?+bav0<)tA?hS!C1OveDKW436%KWA$0m&b4HdmCF8WN8nc=U~1tiFE2M$ znoQ=uz_>W!Rj~j49WaooO)wCD6mC<#($bGx-pYyslPTw-$y8c<`7QnUqYwV)FtC4LnwN>c3m#45 zHNUKN#2YpsuB>ESNeNlMOm1ea(9su4v~?uo>aaDtHQjoD^{= ztm#&sB5LWqe=o}N2CQx+t$D39SM#vmThp!d)_B`{YuGB+_THM``fJT^y%%V0<81Q^ z0=J6&0p>4-b)Em6W+5TOqC(Qf>EjEBO3f*#YJm%GH zf(?S36ainM)ho1gt)t)q&nwFZTIStStlT+*+ZI1aqGvXry!tXU@N>R0*$pi3$%i6LV9c0Vqj)#iLJ$pM4&f-Q4Z=R?p>0h-47N}uC;ou zHJ$^mow=Y?(($|XUi|&VmY%6_lee*X+Y@Su*9A%yW_0{C@@%!&` z{G{;NZ~1bHAI9zD2ca>RvH7F-*>&u^`IFXf;>`@|?nUa(k6Hi4QBVdl;m(_ha*-pF z*RbpT_t>0zW$ALu+288Fs8DDtX};wdBSRKu@_@+nM0TMQnr5k9$U6s z@CxiahTA6hq&jyeufO>vvJ+K>^_lyO*Dk^+1lEzRx=tKz%ve3 zOa{47MFEF*Lv?%b1&&yo2CZ_iC)g4AQxIr&?p1Zks_Dqudcf(C1yh$6T^~|=@JoWR>DDFhe<3ap<7>u^iROe#zCD|NG!vWhY}a;a#>*qts5cj+LO?; zKf?z1BhXVvNNgYG-*q>O=ibDqA$|FZheYmO8kPth>7n?(y$S9Y42`H6RQb}jv>I+D#wX?mn|o%IGtUYD(=7k zEDMjV z+(H*{vf3NnDS@P6BT4AsX|Y$NGTR&IZtd4;xohciV#<%R^OTfD_uox>9f%ygiH;1t zTwWqOhU2VsXW_CX_@CR){sK={-hT_OA~6xkw{y>cAb#Gki_Vi4FuS)i$bwk0{65r& zcaYW?$s>!Vp+G|SY4>q+oFm&d9%jhRiy0H61gBV5-G3YPJAdSYwil1xGs@hb7<$_h zCi?5yvi&TR?p#9uKsge>KCHTXGWkDlq$+qMkIwA@3SSbUwVc@T89%0rSh!*tiGJ6v z8ibaa(6ed#B?qk*6cQ-Uh4f;$?OsdQsHN44Z5LqAVMpLMBhY%~(F*H?;R|@~?rFsL zPo{sDP-?5IP&)cDX7VH=!onFfc{xib^fEiy3l49Gv&e+fuN|Et+u`US#>FR!@e{|< zF04J%<~+}v+E&Ldg<@yE=aG?-2?k+?gl@CXdUPbC2-Uphrc;Gt`6 z&`6A{UpvAA-EndYBDPZ$URnoyBF3}wnK{Hpgwt#INV<7j*7l2?0$92FQyyPDgV;{- zgnDZ&wmEd*@ps>2{@@Pgd$Dg1I`|aw;d>vl=|AhqZVabOunv*RnHl#jV_e6M47l}S z?iwG4%2b7^wu+1+`#6|#g3|hG3=$pjJt8=`aSa=P{FX0w6qDGw2eR67$_*;I4;e>t z{|*>L*1;}|8rT0X*c(b%kUP$|cp=MShM<15G z{wYsAFxzZzJ71lp@{on`$lGhVXJ|(YomV1}ekFXg_5(Km=Myf}w<96M+3Yf8>OISt z5F1V3xvRKqLKuz#i3DmhdH;jY`To7nDV0SM=^H?7*Kkrcui=L+8~A)%K3(Fw@qYDtPLl;IP? z`0}5(vpQA8Ew8R7K&7OvI*S9_HX?7R#(fWvxfKL?F|QLX%M40FN0lMOc-iwsG1r>Qc`EWTQ8&b(rMm#{3#Bo z6M6B~o9OKJGalnckh}9$mVJ;)_xoSr=H%{dIQ}gniIl>ln|XN2axPgnXlJZJ8lS+N z?2mY4&GwcoZHm)#WYY(fH2AP+z*$y4^MyG+yiYqk9i;r2{v$`TYALL+e56GZIi{jh zy!rG4d~;M7YH7OakF$941oVYw-?d0x73j+<2hZc*&g8?b9nIS_2!nd*g?U;pEjY;*Wgs=#nR-y z`26Pwa>X(zKEs;lmh#0BiyKF?7<~p0OqobyvBjT~#8pXSc?F?eCgbC0pjd1o%+(vy zk>fn`*+OYI^{Ye#bP<_++7fhDv_yrFy|%_1@byvbRKxQLUjQojh;cFN=%tVNjobyEw5{hM)1j0$kY6acO{k@$ zs1!rJ5m)~K+;qo0#tluTQ%6r4_4Ssa2#FJpDg{#cm9Zt?m@&+qHN*1|r5cS&L_xk~BUEW|DROz! zw6X{)^K)pvxm|`%qe5mKQ@#$cT1O>vVe?}X-Kia~u=44Rcz2u0KOSE|7f*{U!Rv5C zc@f1WHWi1E$5>1DnKR^-TjGsHwaA>boZkO2pMHKAHxrz#6kM`EMg1k}qvPa)6urD$sI8D;GN$s*+K;KJQBYM?LM07c%s9%fo!fZ)=?~BZ z^u@!e?M>Co_BLg82^z@kJLWS!DVeS@K4v#5=Ce!$dn*KcZ7L4I2vZ%|XU}k{%(9VC zuveMl_))6-a1KwS-(itCZPX-M7nAzyxX0ymS9Gew2e zH>eSd(s*a>M^slUsIDj?r?3&Vy92wvU&n?W7jZK-aJsMrqsb9{&2HX#_Y-JPQc_+( zUNNXWVB=T+Ve{bf}^9Rm3a>d;Sq5tWe51;t8dAumf@&Y(5ROZ z*?j=h$M$3JZFBK3iFzY5l`FdQ|W}3o^L^olb|W*$6`;#hC@T zcI&~QggCsNue~NoD!3p~J2cI0NC@iEmuT4qHhr{-8lwjhI?M2sNh~qDW>G4xf>jyG zvmbrJeM6(nIyL6*;bg7{Q)f+O$c%~jOHZ-?Y!OQ5PON%l3F$9QXI)-Ak1raBy0#XB z+K1R~iFEDS86Q_i9O^G}WKRa2hs-5u&dKt#i7F{4o{n(PHv-xxvyF7f5JpRhZ-9<@$udA?$Clf74U zVCC(3`h$;IG$O_<#F)RA;}>0+I(s^UXHF#0;SBpu=c90n;i1QulJVM1-pTIB6HBL} zy!az$N`sj>Z9Kzfj>B1hoZ~s!r0zdO+~Bzk9XOnE{XIE&WDg~0cT;HW#H_I+7(II= z;?fjO7hfRdU=F=U-O8XLV@c|wVBe90T*}x*t)?Hdh9@y)Rua`0_jA7d3@IrU44rg4 z14c}vPq?0aM~`tXeGf9f;mjN|h*{J6kayxoa*U45dg4PC4Gdw!)(iqVhNDxoy<%=1 z^`;cTiQ%OTShpUYTncmN!u)&T+aus4wJgHEE)zR}9f3a{ftKBqG&CT8;RTE_F{~~q zpy0f)x<|MSoIG?KP5eN*gs3^SV;hH34|DMNLF%2N8POw-#*4=}vTq-$CofP(JvkT7 z;}P4Rt^pd3ryV9WBOQrX7m^bqs62a=BM0_#C4zXLTHby2HBJ^)k$3VaRoV^==o?Gkj&;2K*+KKNPO;EBF3aUu z#<`|5Ml9?L&mBh=*p=QL{V2F_f(tEsvojM5Ltk|z=Qy5`i*Wd8RecR%gU2wkS2%}1 zd6jo|oiQ(u6^X=13^klQevDGv&WBh@V2CG|(hqVnS8&2t$I$~P3F_6KSdUWPe*I03 z<<#R65{|#&9IHS0i6d#b_(pngasM}LJ|?FBkO6cFSF+>N)qIh5iGtHDxj+1{k;s_n<|M*vYBaFn+YQ`t#~sbn?00qq{tF0PHQw-F z&;STeNMP)M0hnrP%oDUSnUvhqJNVb?Z~r?A{m)4?k@D?7Ib>hv`L}qoqehKHBrKJ0 z;WGYW>3j=B_9#07e*yxnR~|x3N1>oxW}X_owkpo0v#Hkf3HJ)AI>7Se3|?zhTUI3m|M&`?nHYd1Cg zRt?&g-`N9+sT#wtEURr1CX8HOHT!i#*&7<#u!>9SfTy<~8c8jMc|}yTdKlI9MGMC` z%Nr{wYFgNF{Tw$)A<^I;-~}~ByEF7mio#P3JXeG^;Ud?TKqX=A_*>T z?igx{DX(tDoAsZg$saDI)yl&p79&1%h#7f#Tx$B5bK8G71UD)`N?c-J{B!p5&5;&dMQZ$*I5?WrkH6qleOm@8ZdCqnqZ8@; zn4Z*)pErEU`I0MzT3ECu;N5aN_xdu`-W{0K&5KVz`-av$zh8@sFlH(|_f`wywK88L ztu?+e@qGz59Ou*R$F7n4_en~$acA=TaBP8#%ALUzZ)5bZSPH&+nME&u+sw&g3prYi z>dcY1*71bs+h+r2=p@XCif%yW@9!pAM57jvhMr*pK4*Js_y z7db60=)Vz8e@fi8WAP<#A)b{;SM69xYlMA`U5yc`r9Bi6;nnoKg8(Es@5pG;vg zIjOJ2i^S$|EtsmWqOSu}C72poh!<97TIuVBbg4yN)m5}D=^)4w_%_YL((G;1C+ z-==$89jy6nx5R)7NvzbkqD{@y+5|lz#(w{JMM+ zQ=hr>O=ClK|3w{sEvCOuzLpz&CKHWce~rOtBsn>m6DI^uQkKgkQZV|?$5=Qcj5lt- zg%1uD)AQ#08R=fgj+0f$D>B%!HO1`Mt`QYI2M#98-NfPTn@P>9H9Mno4~!tl%NbAq z5R}#D*m>kEVLirj^DV=v-Tpm0PNcDE+b&9~t$h)zbjxp})Qx^g{Rvbxuy5;jP8XMB zlxpbMIg!p`9$ZM<&-T<_ZaSp51xmq2ZkV z>Sy#W4jkLDiNm=y_y%?+K%2wiv^kW*;Kaf zO>eO$r*w8F%umDVW9O(AIyn+0QIX-4oIgsj$djmc0l0bj;OQtKZReMy)de!5e^(Q;zww*!Wz(dN71Ku9Gdz|?A*G8>`DUx zF})cvXAUDgYuWJ4Hd52}uq*u{GDkPshX&*3;en5fn&StzQ!I5uR&asLl4>;m;e;xx zNI9L0LGH=Gq5bfc*RW^v7Bb5liRw9!@weSV=ju~@xqTmp_HH9BtA?;1LrCxuk+Od` z$FnT^OzM%)IdLFyp*k}5{>ZMgrMUYAYdnG?3G#HpGawX2^?9~!-AR!mh{3%R@KDyVYvX3lm)GOlp*@Zcu7rjA zBQDHf%g;y5r|f#R>qf7{Feo^~w(a{UX*zjIAroUTH1F}M{h}C@7=uGY0b4h0p~#>j zu3r*2-EkWUSsgI={>0v&w~}$mKvbV3V%+LExOWeybFD3WIh}eBCd$u&^j(`t$*RO9 zC=?H!3qAqCxSR6XzWpciuiEBgMM>uq#em_{2oLZhdHN(A_oeXT{!^Ho0~ypa0Z(-U zdp2z*v$PifsAv=g=Q&+iiOM&OFm)~Ir!Hb}a6oJ_VrV*oT5uuSKCute=HJF};|UtH z8##DjCn=d$XZ=>`*ZLI^9NUj>u|8CvOJnoTN2wF40A#f9HHfZ38q$B>%#rh!m(;<% zJwpa0AS=&i`=*~L5xdbdX*Bb0zZG4$4%O}hY}>k(+!`I-2Mr`ZTFA~_`^YV|9wx1& z*U-TPI@Yp(%O*~j81N1cN2hclG%OHV=^3`}JV-?wMk}vn-Jg}#>X59-%L|jAA9*qv z1#tPV&?OrGFez_uIf;AUz6c$&^KxH0jvk1spD%&8J;>O}UCi{+v+rlp$j%tzM>2KQ zVw~M2=6Jsu%UJr-!#IWdQ01gC%P4blrNP^adN((!b&lkUMVDpT$}f;OGH}_`jGr7$ zV_chIwu3tAw9V|99(@DU` zBtsh2i};~2G{hw{Wz`a#ogvr1H`ABgYWBuj*l`56KXezuDX+iCFL=WZ>qO*$Zd{Tn ziJr8K(Zf5pNLS<^$K*wKB5{Ty#1uINGIG%pbk0!PVIYg%d7Cc%I#T1}LXliVfz*M@ z@E*)uwh)zv+{`mauAdI;s%Xw)rQ|W762JlsW`5WXb)6hH6^WLC`

lUT%0sWWpa8C89_U5M>Jmjcx1_acsV;W;P$6@@!@F%xcD&ow#T?7 zxjiCP7an-}E;@QCa1KkLPh6PU<8VtK3%S~rq~v5gG&1}>MDRYu6E@cFsJtr(+#pK@jbR5WnhnErQ=|FJOLSBDqF|jT# zB#c_Z^4mwYTB%CpN_0+Y9OMq@T-?xU6o|w!`V1LPxUUwqM{iawUWlKo8~ty+kD1*< z&8Bz{n#t0ehqYpxa9pqsm8g+=lN1*hXH?c>q+0@_g*eal6IlMl41Cmbd^`1`d#I;* z;5K3Ooh%sH8I2-@+wWgYS053$MDWl*9%pPfcY>o68PL@Okw|Jj%39J;k3pfq)mdxV zM<$Y>aq(yF!sU$U;?pEq&iMH&xoc1~{@o|BY{eaTs2%7v=W$+o{3e2(JxQMPFn3Sv z(t@Uc?WmS}9)ixoq@75FTo?$jxk7sM#-sQ!|9bcYtKOVQ2lbbTMItV2`<8#b`~jwv zYSvBfhwp|)h7a-M(?xUnD$j-cR=>cw=s=#^nu$tZ&7qH9;`x7mbD8s&x7W~ha3oc0 z{>7S8)|SuZ)V;<0PETg+S@&02c$TxLh*~p=+dnc3O!vpyC zU-Ni7O;5G^TSQ4(nURr55S3iy>*t^0lZ#sJeC=f>#QE`$Z6A|4=P8B;J8`LRHw?$N zaHy3=QpKf{r0rFsku-8Xq923$#j|$9A#=rZ834hB__=J(<~7hcHkmm?d$4zBDh;`* zT)1dL7c8e}|JOXb{BiOxJ77J*`d8necfcKJnp}D}oZrWXZ)!pug zpEew)jJ2H3C?{_G5~g&IWdGUyw&E{`8&3YrE32L8bVmXjDb(l%_vuDTe*T=-*M5dL zQ^bEJ#p6sK4k8^YLlv3FPLg~6G)7EZ+_!-@KaZwsVkQ56<&Dc@^-771n)I!_@X#tw zm|Z8kk0-n9;QPLVf<){EdJ;yeF#K-Zy@TmNjmtOnf zvc9J`eaO0?7>3K6+Dy_Q#*XX8-nZ`N<$Yz0eez8vbnVE;bq!P<-pJeUyg~KuGTvX> znf9^|$!KHCP;N9JF&NDsL2DaSqOV}*hiiHI#f_KsGN%5F%*&boWA8lRo2uGB{>^UM zqs((lF`9N-RPtJLs@43C_p7nclDk=R3L=x)ch`y$Z#GRk<{>SI>t+r=rXei44 z*N}>=G1TXC`FuJVshOsIIHrt@-J)CmRJAq5Ts(aoKU+Bxy$}8G??T{5>p8jO3lyEY z@j(1HtoZU~sD<-8zu?P&c62aCA2GhKVdT6e}xa+J5$Y-_N$3IB^E zR#>2-t|pyx=W|KPEdh}qBgPFx8vO||@zsQmna{wm5Gr(o@F>~CV+%hv-6vGma)f#< zdp3TAXPCPAZp+!b?idFo;IwT`V@yWK0NoyG<{=~AWhTk zj&^L@wryj_wrzWMY}>YN+qP}nclP<-d-8YJsngw+l^GQkA@Ba;mS0^-V04|_@jPp{ zF=nZ@)rFmu!5Ro<>PPuqEncld-n|u+69c#Aj6Il#S~OelWZ~&`F>7W~T2WzMa)GfQ zMoBMUicp(VI9DK>TUaC=Jn=GO<%xbao3KT1onO~0Q7T08eYmKF04WJMb z18L6zl|K0Z3OY~Gg8bynaCZJECM+LePeOwDfR{ujTPC^sv;|qQne}JjM%2yf3y5SD zK2}r8DiUBA#n%-w)bs1~87TybtPoJCNC^>eQK|XrquoE19?HKd?RP3Ab)(ZGS;CMQ zT z@x5rBn%4_06wr;hT15)snPoXM0Ybba#hBEE8IG|+^#*r%dpkf%6yE7xLr9V-k1*1! z^9?qBYl}(|nq+2*M~r$F8imSos=}sOFL3!#q}X0Gqkc54(p-RKbyfTYWm)gfB5f_T z@F^yH!aflrr)3Lq3S>E(1%CQ2AqYbR?!>ep&vJ{i7;)s00*tD{1J;d{L=N*tCovm3 z^Or-L?;qFtLF(nMfjs2>BN}~EA+X91?wByA5U8QmSOSJP44k}y1w6d`t|KB^p4NzR zr7W(l2lk>TFw2gl0ey6NxlVGH&{?)d4VxbgGr{SYBw!|ozMN$Oln80D+S)cy%+Qdw zv~x=$6ft2Ait-572lx5OjS&%wQasAmo`+_dB#Y8{^FM;K&wvEYjUxET`PMTq!UbUZ z8ykU8=L>1dUs)tRk%;OHrBJbQQCq6r1f$fFiNYg=@(*k4D)wt-ibdx~+J|3r&#!jd zH7~193F?9O8{?8_D2|(K=JaCR;9&NoPr}3V7Rf z#ACxi%*(5z56P+Ee==iA7LIx8B8IG3q&f1SArZ?45OE$x!{eLB(~kFO^7pjE9}BJu zfe@(1-C^c$y?2@ORa>?3n31RzaE7+Xj_6STV0xD|y19Ltcm-!)N&4R;+$@3c(KLDW zS|Gy+nASolN#+Y>oJ9O(lC4P!lJCJo3^^Jp;$sKax?_mXhzjUE^)^z5D~E71V^xCL4cnC3)R4_DjJ!FxzmB1U;}ss>1? zqoM1fjson==qe$9CJLk}Wz`U;M;V19vN}Tm3`}nMzF{_8O+Qnu-05j1*KbEMg3-7h z!8tgT9GJR#x9ih=`t(MK+{+o*;5dLlE5=~U7|Go5iA-Hxs%+LV^Y+m z`A~7YK3~ALs6R``y3NyYV@IiKn&b>HB3rVW!*wvPrh9Qx z6+;`#_zP9@YJ{xtg{_yv;5+?if8^|w)P3vw+G=l0q@;kmo4A-NXmh=%iY^A_*_W1< zMljz84~dA+P8bX*K0#qjK1Q_J)W%08S7h>NB8X|Z2WI4+8NE%>%oV_(eEVLQEIA){ zeZ9GFoSFbju`k^p3QgX11vo_J$~`o&97nNu(?(~+>(SZ2=tV#@>@Os^{35xV%*TUT zaZ+n>BHGlUvw~r~(l&W3b0?in8`8PFy@{CLe8MNf=>z-ZBOiYjm+Bdx?B9%l2F8q$ z626KiethKo8u@%>mVx^iwUU|y$r@*~=^JSrLs1=~=QI>n$nzmgY3~PSB>2x%rV>t` zCwr=dDp%I>Bl!z-8kD7cCW(iXjG1`U>_CkJK9T3kpyEytvJ9~33(@5!{s5=bKZeP& zmgf3wc0~#ACKGxC1*GURQah@i2>Kcx7Yh;!t@^FR=8K(Gv*%m`42tGT`CKtS66Ab; zLBvms*|W5xR+a$L-x%Z#EWoolLIHq+>AW3vu$1P4g5)%W1ft@y>TwH9-ciV^Tt340 z737>wMqj>S8*XaM0(f6;n_a(GL!Z&^%*BqDico?45{RX* zR>o1uY07h(v;{9lxkJ{tM#3F_)8F|9qt7mO`nGn(S(p(wU~#AMbNAQQ!x1(=vP=dx zz=9LyJ>#`CS@<#?v!TXOyFJ_nqqDmJR2sErj85?DSwuG)`5$H1dM`%aiAMh1yMeu; zk&#z1F@KGe`J3%|2Mz)bV14l@H7ec78Tt4) z5kB+zn==f&HojIUloKI44SZoerGOsFt(q{H(z4iibzid+=mpfEX2>5xc8Va5ZI%ZJ zn?J%s!c)Sea_ej#PURr>>dse!9xmXu;;U>P?DBCbQWDBEt*PV%hl##bS!EwoRRcnD zrx%jfTikf3c-P)vK!M91$jqy?NMKO`K`%cRwj!R!^nThhMz_oeadRc~iIs%J^f;AX zzpOTqG}+s-9Z>VcCq@r0R)Mkn3BYV)?5<|e=L6bi$MP0T%ND-^UOD5lQACvk!$$Cd zYA9rgD-{FUJAZUNRa#tc0T-Y68(?epCyroWcQsK69FdHO;uEw2dUNud$kGD_93vp8 zhU`4e?^+%4lg8Ssk4*y#md(h=#0lxSn`>dt8ygLaNn)~=XUgeJ8O28y5m1)EK`)u5 zvAM(?H6a3x3Jr^iVwIF5`HKswCLQ%RQZqpbEmD@mnT&>^X&Ly0$cq>q)W zG$p&FHT*P>ZKtc^w zM(t`@Vt%G}Z$hho14Ues>PM(kZM2=pHP6xHw@?t2i{r)345BtbYQhY|&cfld&o`r> zpvI@~$zU{eXz{202PE{6>5nqptj~VHEf(iK6;?3Nlv}y+}A5RHVcGG zR?4WIpk5b;SaV}7T2r5}LP@_+`gzKm!-#A~uPA0&3$KKLia1@$NWT&&1ZSu*)fCNp zps$=-+MJb{z-KI;Xogln#hLixxSyBSJzH+)bwv$&cz7saWK@_lYZ|arsqt-*ocGy8 z>{*24MabB?CKrNsQ*blLS{_){H8*ta6WuZCwlTFfv9B{FxTx;xc}tM%A8v>8pfj~6 zbJK07yJNGk^;s#ExZW~X>(9N;`}!Br%*89Rx;-d;<{rir|2`e@fO!` zWit?-k^(M#uqd~DDwEUUaE!NEAfX9H6}^nS>?LsYX1ldd*q##03P}+u>Emp(ski8HEQ2*4Xbp291pA1X|Px*`JZPz>4qaQUY!#KeW}(Cu_~;qWuWrhVZqC zHAeLAi|uMI$~dtY@qq<&QRDC60~pW_xWS9g*~%TTI`Xq5J37`!_SGp#e}~hB!eR z%FPzbi}OW3HC4#&k6?d(&7;9iOcmH`Y6270d@CqCr#lpmZUd|%AuA7jWN(mlKPlaPZRx{}UGLad&|QaP7&8agx)6i&fUf%cN<4D*U45iy zBuF^*&G}4vE#Yst9dluIeGYX@-nVCPfwE@e4pFkV55>ExatIdK%fU~BpdAY>QFZmM zQJug{P;5d1)9oMRzb%k(=^zj0Y_#Il0e!WJ{YPe1p(ekg&*Mah3B!Pg4)I^Sc!4q5 ztw=~61iVUx+ZN%;O!?nu7X){Y5osK6J5ebNLz#>;3`(6`he^{K&t#yw?fE8=OlGpc z>u+(Gc`$eL^}4HQ@4u7Y_&IC$qsJ zpqQ#dkgKeuT2COmsf}y~-^}HWmJkCvF)Jx5E6SG6=9HG@ZsF-(UI-c+)fL$3e0iea&`Y|;a_Am_JfTkTeS+)DhGKj6ya ztpE?Vnm~|0Eg@Bc>A6HJ60)F$3i6;kbeC5DO|0iotJn4py&+y~a8un^@Hq79m_uk- z)bMt%A7E~fZ>IYG(-sNCHN%~_b z^6ADzbl#TN2jqz)W;$)fI{eO zwW7cteq#jEU+;}B0=<)&ql|8VAd+!*W){TRBiVzydkKacMC2Gx$Wg(Ul+MWpV~JZK zWOu*go7`h6OMv@jxmTj}W4miMBap8`qjTV$xu7>dmRd zi653!E=D52vWAhhc!Gq(e5OA4koBc;ZoRC1Sd-}f#7!`w>0Ur9-`e4L!Wt{##CH5d z3ZiDnB){ycfm&)$(k1Gsm^7Y_Nlq1BtU~Zq9IaFT@@yC-sf@#+I~0h4Yu4Nc7DD_S zS$S9Pt!~a%7l_`N<(7JLI>ti7>9TKI0B~5$&;2wY%;%xJ!l-am#2Ra45eHEAWEot% zSM`3OTHTW3JhE`gWCQZIK=6AD71}sr``pydsCiz`=~2mAqM~flMp}>V8dw->o|Tij)vwFnaT1zn z+;&jDRr=E3FF$P*hM$C66YfBYx88#BP_5NH%w5E+Rsv5%8eJG(x;l)_=1A#+J&`%= z?a;MWC-5Y$Zk+GXa5WAez+@b+c>CD6 zsMyb2hsL4BeDpz;rrX0R%9dA`<1e{Q_^_%Pqkb6sh**t5=?82VT{;V%gZm*bB#a)y7F0pdp!}*)z2~LNfdeIiTF1ic5xIa@GI7qv=*r+~ zrjhB7%$GDPX2h3d1XJ~C!PD^w6Yc%kCy6-;YV`X7{olaMV!ptS*wYTvQ+!3E1o-Un zW9sMzs8q%c)maM|DkR+ZOqbY&E5Oi4i-plSRV@;&6TUUN$OIKBb*Au{0gg1pezJ#dYbi+1t61=BDF${%Q*Xs6h zW;6EkL~#jdt8e<)T!4$v?qBNAq^zCOY12(i2~}qz(YBCF)9T}2_Q=lHReA9~zsh2? z6L8-`RCw5QB}fs%;n*LGZLXCMth)ck^9Oo}fpWB!w`9acCM5v}8pC-VF^Mz(CW@1v zn-_iwY}#8ZrNok%{*_9L;+GT;8bxruk-ep)e+CJ12EC{$E|u@13keKr3-#2$E+OtD zj=*cp!6zA;@X`N6hg`+}uHkota5(5Oa!H_I#)sE3EqVz$N$b|V&TsomjoUE+6FRbh z*xzEHRb5#0WQ|OVm#iwMqA3-b%-V}%A9ZM2TFx?4@hy8a;gIWgTs4669S31xs+#C` zHX-Tx)Qfo$QpRGmV!h#bAPnkuA0CNDbNZ^UtRM^_tA?!nK7oT)@N`t*%9>-gry$HleonHIPC9 zjgtP&`mdI*1WsFW1q0L%#gc^FCu{|4l?t1(^@`8N%bDLqAeWiR6Aha~+SdxwB;hY# zmeZ*g)H7N%t)A;6`=c$XBn%#y8hDU!T<1N=K9yijHu9EH=#~ZSggr5b>V7}>STy_OctY(m6wP1C14wZ_4 zoHotlJ8MlIQ6z*Kz&4deUn(E%kW_ZRtq=3O_Nvs}=p)sneX+2RPnMS+c-(FMs)lVb zP&Xr|gR?Q9F<>{OZxJ(&NGB;JsmP=kf?5~lCRVtb2T!kIh*a)CS#F^zUBwyJJ51D0 zY;p3Q%B2XW9mzOC{0P}cD7X#p6eq1)jAj|$;Z5;H*pF_Z7f=Y4X^?{iyYoa1n4xNkrCoxGt@XEFg?4&GygxD; zQ^-Q&NT!n5MP^MM)0t>!ZH;1@GP)XB;)oH1Wd*Wf_V#2ciZAd>i*8AykXC-~RW(LM zX;I3iPWLcn)gf|9&tM)1q3WI*5=j0`8b#ZpDVvkUIs!~vpZZNOXsqv!3V zOY^q?k%(ET08J;mak8sDr7$<@%^TvfNPs z9;^*1jUgAnRTUD2;=&>kVTl*|JD(1e(clQ>82Kc59t?eNtpCX|v8-W?tXakOIfrpG zrs0?2zuHTMXr{pn$9cD-=?uQgt2>&(f>?a`*_Neo;UKx*2F$uno`&>jW3M>v%K!IV zpZLy4@1~Fm>xjw9i?gn5G|R#IaDKSCH?w^$ zTR>2v^~*`zu0Ux)f3<@f{z+*dIrJuO$@bR#?J|CWK~g}#kNi)&ko4+gRzal&9nhO7 z9@1c~%d**+RK8nMz#}@J2Q4x^X|yd#EkBXM<$O|a=Ndjzk?r1!o;^hmIg=j`w!loW zXzlY1$QTHm8s|*o_AkH$b(+iXSV=b*Y?t?UdR7ffk{epQnTDbMTFUF{^gbEH;<|b{ zj1L{Y(TlwQl~X-dz-cU&N~t}?l)OYbHkwHef-^Tw9~1xU9)6G*kblW$0oiWXb+-Fg z_^R-K-PBL9r$b=tp!|?5{|P-cij<_PQ7%jNbM(<9q8EltAYiQ*SeZ$E=Mz!fUCBVD z)U>j?p?UbUZcqO`_Fu`CZi~`8I+z7+ryT8cPmV~n|mJdABTnH!{J?{gSFZ<+qDq}560oB!=V#g$6;PJVSyaX3;a;6CjhrkCqXa{bXB zW%%?EdoYY^@;&Q-q^M4Jduno0C3QTbL``_iD~^f^@|2tJs<#U#k@sxdC?>-fLrf40 z&6u4bdY_SR$*DS!GK@kM< za2;{ZZWJ6&Xl+K1svT6d zdR(r#r=N?^&Y_LbT>_WQuC4M$mNJRQvvRIZR4zI!w+6jzpQXRg;dKE78Y4I+AvuRw(E%7yE5EkiD8=l4k0uaW{kCAlrcH2{BBDtpm7wdZS);` zlOL0W5M%cUMI3Z07$9p^l$R9VdhV#vrPYS-cQd$kSkO-C`%1%N>G*=8P$4zu{U(q+ zY@GPe%{JS$b#p`J$V>{m`@KAf0RPrT0Rdp~oz#NHRG_%+g!xph_qZ%>aN#zgDK>p1 zQTFGKh+=Hd<^C%;eY8`uJ*Vc$aEOs{_obNYd-1kA3fEZjKd83pUxGMs0)w#lJ*^f| zwh<{iE~T7l9YY#B67i-al9_*AohJFwLKvzhLrbW79cFW>q%AImPwInd(*rsUaTLayMvJd<|9|tinVhlg&0*A%4?j9HwT}5FV$5 zguNg;WXNPbcM;%xN~!&YQc0!*U18JdE2d@?c%M^Xm3qpaxgh7wwtd3Nqq|$d0%az$ z4URxZJc6F^v4MN6=uw78j*QQ>xvE6U#x#x!ssYVT+k^&pm9{46zNt08ix);siIHy$ z*>8nP*}Y{BU|bVSs)VEwr^FvE=D3GEA3oR%nL|^WiGOKP`5*p+)pmE4CVr8{k(rs; zY;3^8@*gPsQ%bVJo37O;2~**Ae8CVq8N0>#%nR#3E&i9JcclM=j>cOsl$=d)j;8

w0r2~;Q~7rt#(U(|ScT>7o&6xv@VUw%K7VDCfN`7~{TE+Yc`<3!nFfmRuOw$_ z*H+FA1dcH@d0F4~WKw74W*u#FQ57yN%qI}$G`z-v{&k>p&Zm+Uj`sas%gvMtS3KpC z+XwsMGiO9=$@_P&n7zHz(D=t{%89K_Ojc4%Yc-pYv0f0`X3kHgz1_>uN$jsRw)W2n zomhdu;$%>Y*GuiycK4kt*Y<^og}L89GBOE6{JulUV4^NEnwJy1UYM~du->eIf6m=L ztOwH=-x$GHJf3%6U*~J=N=Rvs@vb|*nBBTd<_Jg+a*tnMc9lEc2H3o%mp+T0Q@gEQSR-H{YA~?oV3;omFk6cX^WM03k0Sij3C&ghiFN06%3( zEG7|=uP!4n|2FY_I7NSOo^;dSs&BZ1m(#`__n_?%^vueV20Ff9NpW6KSF+!Ghkemk zpt3)fO`=i_DK3wi3%jpyHKR@?_JI~*XKVbf&a;jdIY6E=c%Pk<+Mb0lNvzy?!*fck?;h=*b}Hy!(nNLK z6SQc#5gW0Vk0^;cF*IA7)%Rgg;qJt}T!s{Z_Kmeqz+I}GbkpC~ylPjVXSA0|lfs)0 z{(%D6%!~2Wj78Of&TN3;fWkG3S)Rn`Ws1g{HJ;{zGv!B`t#@ic>3ZMF9>C_i!Vof? z?H1{>{>(1SfEUZxS%F1F2RW9kI*`=g)-F{{3um$v&im=2oA%=EIn zxnjtw+CrB~XGnZZ#!h+FwSi+b*o*kWQsqf6jrNgV|B8mQEY4f}D-NuYakxvau$s6Y zhyEPsPY@6q-}h>K%T&bE9lk|KvRm0epg&=#Io@H;`F z9M!YFI;*(dov>BD`3ZGZav1tEu}@O!c^n*rvhf^mSOx<{(s>y{QE3Cu>ZF%o-hqZK zX-iilaGQ>A>``R(n77-Ji(V`Z?qqTYUV@fsApz_~VDxPzR5!yhrX~|+lcg1DJe$#h zQmxgyk9;Yuj?Alml6{Lp0?!3Qu5xEayE~?-r2s}NF}e~?hTUGgrOEVxh~{ZJ&kLap zBXf6|j0mH#WT`Bscqu0xoQqxmiAq?5V76MzH$xQ9xUm3mM7xgs=6gw~iQ}JI7xQ1I z2f->5mCY|B44CfSA(S4BO4rtzUka5C^XaN91S|*2db@bEX_!=+()0ojI4*Pd*u_ME ztHmedLOgXjd^gbmmgnL%l-u&drKE-n#ZG-+pt7X(9$u^7M`QD#$)!Nn65$@&sR88C zXpdUqkn}{-M}h%L?Y6}uf9Kh&?*wOSX<;6V-#D#MEbW_K>REccuH6-buFp;h4POa- zH=f8(JS1PL_>3YbBou*N;P+4Y)^)jqu|5nTiD8E%(WeCQVHIVV`W_i`=_)?lLEqS( zg)WrA&C;L?$RNzFzjs8anv4_#qafj?&(7)S>}Y<1!^ZK>$i-)INqczrROVnfhz;zx z*{J9Ge3++Fdqar+bK>%x?!N%SI;@VMU~c+j$&}K-1^BU!56@I^IF9yuB9B7jmgPJJ zQh;RE+s3{x(q#M&dTsZS_M6`_RI=RoV0dT;9wDfTE>&I00dVu97NKsGtTzA8U*hCy zGqX*CU)@K}hMKJseCaF+#>9knV13J!VB$^;AdlJsu3!TwlBSq58ODKAF%QPtk2aa5xYr3nzX{)uPitWz2 zTl3+mywCV=j#lC6ilZY6TKxAL ze+v!NT-%~+;id#AI3j6uvCopp*prUGVL+!cGhE>^hPq?2T6O|=9AZRWaSOf>_Pe^i zDM?>%1lT3$UI(;y?w8;t03I3eyHn1rTBQd0jEdv0%- zTbu6SbYF}xUoQB025=HeDk2{0yGLgc)&7XK(YsNckyc~JX98V1?-ZOwtTx^vdIM|i z)|+%ivxJGOdl#00s(}B9kvWGKOV6h4Cq&iF5ydLm)JO~L49;8oY{%9|@h$G|DF_XtCNGVAhwX5wXYK3aTUs&llbiI%|{JFaCFyxbZQ zAOhj19qgS2&n!gpSJh85DV6H%;aqQbI7uJ$|lQO zmi}pawM}{i4g>P{r$3$S?DK?Z1Pu4c`f?C!%pX(&W_A2m{)!nss7NFt4Iq%)m;U7k zU2>K_u}nM>9%>l!t_P?cz%Vg^bVTSK5V77P8(QiG?^O5Irus4wyWc1wx_|%X^euYi z0tP}!l74Z+$Zl9Fy|QPyVzBXCJWvQ{=BXO8xv*b~PVx4#7-r#M+0j;ms1}pp+c6aV7@`62Eq!Lfqnv(STLL_NIt1p(w0)@Bs?-8F; zClV|ztkisZ)Rk%o6Vjp^oyD#`*O^THX>q@1Im4OZqJo@iM5YbohSb!Uot>P37dSDo z8xao2Sdk5{$z*!@3d%F6l|+N%Q5QRH&0Zy|>t*Az>pgF|Dwn}O2FoLHg39_%$&~)` zResAlXKYrcZkR@u^%kVhE&0=+8QM%GG2ZZ`R-ns^SI6B`_`?OFbNq$CDN7dZwLTq3H^D6k%^_ft-ds`_h$uiXJO4$X?bN5`F3N| zdRT`ST@rvL{XB)akx9heD@wiTEuau3oCPG(*reFVxyk6faZq;es)!>AYPnQ&q$D!i z=b0LhXM9V`P4cnG->3;7pPKumE@NM|t*694)^|B3REr zwk?iSQ;OLYS0*q-ZPpx`AnI+A+MQ7sQ$oAGsuw05(t>y&D@OFsY=h0UUvu^r?5(fZ z&cj&-^Gm8j(HQ<`>cn$tL^MLgdpKL+pd4;~3$Yc5!D5w5_)Sl`3kiCvl2ERS1@>3+ zW#U-}*4E3)MKMY$lF9J>Vk*D{%!+av)p#x2vhK{y{c}S}DgB`IG(1gJ<$V-*86c86 z0|X7s;2PU_T4aRPWRW{JU~lAwZ0h2r3Fl(mU4i${or7gEI)wBZ!-ts`s~Nb{%{tk- z%HQx27D^EU*)q->kJ_V~5$`%(VJ5Ff#=}6syT|qyLkt1>-fwrH+Nob$lpa5( zMIyIbv1|iNSzNWIEP=dSW9!L)uE&*y540I$XC_4{1H^;MQymZ4$OBeyew!+lX6sMT zJlb6u9JC2$;YbA9msygDSvEm`Kqan z)|Z5gyPxno4*&;Me0C(X!5`nd^37)fw{*6!Lp_)=wYfsO>XL9>A`QPdac#RB69(#a z;??COzF;-b=zU777X6}n8}ajC8&RywnwtFZ)ilqR3Bms9HX zp$U}`=B9ll?bX25I9V9Yzo53Xc(76>ad4^GqpQS*t_TIy?ylOARw!FsPYmqM!`L4# zS>C3-gA(Bb$re=Hu3wbQ!>a8L>~*#@8^h#Ph(VjHh?>uWf`3lNeYbu8+9s>GxwXow zsgav9VdOfUFNyq#3G#8q4rJxgq2}6X&7bM?AnjdOUUHQ_+#zYG?63`WL$yHf~@k<|c z!sM&Dg+^$5z9MdTbTXf)pB)?=%47sTiIIcPJ8+`N}FbB>3Q=BD`{8R}-E5q75c+_SkVUp{$tSyl2 z-0Mf2ckUblGQDG)t1^A%*PX5ox2ZSYY5Bp}L0u&kgLZ#%s6E zk8keYIdrY(;iqbGbp>xqf<7%wk`^e&;SQ|%HLQ^m9$?&i88}j91)Q#NHrzL)b%L=f z2=>(2Nn9xe1{MzI?r2V|Dq*u!I5sPKg0rdxcGJ*CTq$6>m>WJ*DG13=)0VolR2ewK zSXaJtp4UQrIeFhrDjGT`7jiPIV2XLNp_x%bWP<53k!#|TrHYU%ThJ@=j*MN zC1G_ZyATdz_Rq=Ol1j{my%)PX2zYF4CWs8^>7*y|l0bVEcR*Anw~e>UxQ(}r_ECrR z(rtIppw=49ZdPQlpo!jL5ObgIxerbWOS}#WkJej^F4orfvSQb&ii1{qHNZXd4Q91( zk(q|L(hHMA9s!~M+?&r|j!SB8R!LGBP2@&HL)6p&6dQIU9;W{RJ1zcv^CS~a7z}aq zU%^3wel{)inw8VE6$!2VeY~dzPI@e*M?w2Cd7s&-nUurAZzaH?M>R2Kga8DRQu&i?P+#|Dn{u;o6t-((Vo7j{)arUuvwCI zT(OC5MfH>A{aQKXmGd9WyDhcD%7lXg5Kxqkaz^&_}zc z`ei82*-P|(uZ(u}Wz~KN_A=vM&`P&0V{~6;pL5Pvqqq?DT7F0T0 zs5U;1V)0uJtE2I51pW%<&kY>YnrCG@!%Yp#@Os^WhE^!3N4)Pd?X7QJ$XDL& z??>Lfx9|^5g5lLkAWX()9Z{dgm!xGIn%pt)sge|D!)MPttyn2 zcNn8JRgEt9XG(i>OEexYh)2>Tc&pjuQ^fZjGE=tK{$)!ZtYCu|FDlnF_&z`@)jD@( z)G6!3%W4?HW}E)}dlH1RJUsVllaB67Kz_lZTia_CSviSL)hPA2$zdCxF&SK1LBbZs z#zFCHlB9CvU5fk`4i~d z(Xw(HODoO#%SkdXSE_e91p*VsKiuATFs91mTx#9xq3KohOsNSOOx33?RLxH1$ihnM zusGGE&W41_+ocH|Iv8T=RIXS0geYE~P$@8tzdU0~e{$3|4DQIGOChxBYFpF07B> zg5bl_L-4H+&^)SK!T7z>hJ`x$6!yN=f-jRG3M zTeS(Dgs!(ojzMYSymx<5CUp;gNvioIuQ9Bfk=#W89K>b?=M)n0rstKJQ{2~$j+m`< zQkGTmA7BkJ$~+Y=4T5UO(VNe$zD&9qLwRJF_{FchE|M+~2+T;FupRJ!&|c}@&Fw2L z`unv_rF>dGKPEq#1)^q6Aa zQkL+rL113CIWjh3{vwUef4($X+l(`Hp-Y_QEb(Iu!i1BlE`4jDHPYv zogYGfV$arU#9GUKdZ5WOU1R-3a_D<^M0T;uoIglY>IPm-9$*jMs|IDOeJB5tJDqSl~d-F;H9_VHs4>J z9agA6@p#1F#j2|1#9*EahbfW>k|g5g=}}dRln>{WxASZhi%`wxS6Z!**x)A>Zw<&_Y;0T z-AF4jJ3S6%QWRo+eSu9sorZuxmzEZn;9&G_luGXu6>xO__UGsK>V)yc~^@5@j2%>3s9@nbn}@^fmFhmxn8BsV zkRItwF)m5zksE;$Jyr+>a4aJ}km$_jHZo^o7~y(%?uk2kTgs;<)#c!vjIy2MHj1*B zLqs(%ch5&KNnMQvdRravR%B?Qba}pZv1oNUYbcO;?{=>-Q?TSJ{Iy#io(vVbZ z{T*A0=-Z_YM!ZU7h@`tP(AZ$tBd;hdrv}YH35u1_c%bALuP&`7NB*d~v!@qM!W&J| z35L3z)S`j@72SFNH!AN8@TS>|HGK=Sl*l(=1~B(|D;x;`ppeWj=Pw=wV4ffLsc;V< zfinm{zxy??K=3d8n5}o?@edOgU@&0jFF&iJj2cE8?bhe?;SIM-9)x&#a&j7?W+7jH zZE614zuJ(4Bp~X6u@e~r3sYT+&n|?#j~FU8hGIG;M$?j2q;w?|QOBeg3Avf4?McwUAFF;AN@c=g-3y3v$-QPa72)E>AIby-YfN{Wl zd5yVnLdfKcVB`O8EJgatOci-_Y8p#tjg+3VYW#v#04t>m{VTMCE4c&fsPSpwlnC7I z|5tb9_~yyzLdPSiMQGG^!&ihO@nIm<^HgFxVxw;uB#PG{o8<9#;l+NnGeMV&0=sgc| z4iPl~3ybWP(d4SmQ~G`Gyyoe{)W&xT@zWv?g#6yN_|3}! z4uSkMh87*4vNMF&r+MUzwlu--WfVF^uh_}uT$yU)3QrdRlesHx0WVI}(+YjSDEvrt zUOT$9it~da*Zh|~NoitnEXpF{KnY+X!0uqa!-(J_2>&ef@f{KPm3Qf#{t^_=7E_+# zc%=q(wy-Iu&sikndgoaW%kDTq|E>Ph?b_dIepF3WTD`EK)#}H$sKX5S(g9hf(+rtLUZ8 zB$?PYC$??dwrzJbv2EM7lZkEHww;{J^Pcy^`2(lF_0_w(YuCQ3Zmn9YiwAJdXgTL& zCJ3}ZOr^mV{-HXmV)vej9B=f`f({CG@>+!o|4~n<{lk}%{7O;5Mg6na_^w@tx_a5 zbJUF-LNWs@=Q`bKdlu>^T?Y*8sDijFt~8@91ByWcWO`q!cW$Oz%x#@@89mx(bv~bm zn)C%o-}cN$D5nnOqt}%9Lj*;mcnynT-hw{L*IMt|M>pe|8I@-|G zk2D_iNig(RU}g}GWYP7h?8~^DBLk1C6}*1ka0~>i_6{UN0tNA*fjvtMBRA&K_G_Tp zNOA0Qfb--xd?f5>h<9wc*6`Z|8NMI<-$KHnkVB`c!QwxYBO0vt6euKf++LcAm8=S$ z{}vjrOpXIJ9AyO%Y~@!LO+IN2VFNi7+W66EDNF_@d=7lB6)oV1>XOR=iz0Z3pKR<;ob;_h_H@S8-{m1PZBXRdu0`Z5ET(_nPaqa|Q zx>9^$>jsZsu(GN1L~ZKn8!P`M)M0PIs%zCPU{tQ6v_Sr;rvk|(*n90-Vy0TOHL4&T z$ndgY)|g?%Rf?vJ#M-Was_{nAa4{Q5(&#l>=n!5a zn{1N_{#4r>W&VrRT69h0^Pos+Ok3b&y%I(z@wyuweIu?aQ*-A^X;2|ZSBR+1_-fBLr>LSm6ej|2#B;F(wFkRVGE^oHE6m@(-kw|ZT*#Qt_5_q zOwpC2AwtBHW0nBnnGr&1)@@kclH1Mbb**E)lK_B)BjLVc+J=qQiTj{^*F3Mm4bWbJ zIxF&s0|MT?g-w+RRFF^lv}pthgSs82rE)eSMskJi5Y%WD366ZM>a9>8o?bbgF;{Me zPG||a%xYmEW&vze((Y&Uvqj;s4K_AtjXxokW`t0bccn4B7&|aEeL`nF;7&DHMsA9X zU2LeLEVh)jTgM3)8mnn!{K>tB^%7=rJ=Ux`me5hMW=dhr#*)l0!byEUyqmvAWsJ$~ zpvE6ga7{RpTC%UMcj@8M02%4o%tq4%#PdXA&3zTBqR*DzAKpf7J(Gqahst6dZ%Q!VNq-Wo;{Ep0G+?Gm6Aouim; z*Y9d;R~|bKu!e@QoHrgHt4Cj@s-SwgdQ~p5Sqk2g$Z>$s8y&Nq=@vJ9l};V4u_>(7 zwFevHge$y#1b(ny4kpI)o*etY)X4vKXo;o3c)9Y`xgA^&@>;^Em$6c5Jdu-;K&5jH z?2!UW=mXpq4tEGj8dglrXZ2d8gA+tRqzldlu!DBY>~Bf@DrQ!r3#Q4}i&E(!KA6f26U5);= zjyQcCm@w*Xb~L04PEG(%XltU5nRIB+`h96{u6XgW9>e1~4s>B1n)WV@9@TbQLK`NH zglvCJBT*f<2c&-JeH^(BS~YW&+{jJ385P`v^4wIugX+wcHr^qIdrsWQ^!0V zbaZ}Ghm*U*iI6JtW%o+u>S(%P#3bQ=v~qi6+!Irl!;#muNE{`-Q?YRHF8-!E)84%f zy5ah~83LF}2S;pY(Rn_8g>`vEGpqWg^5k=C9!;7Ip#U>;K<9M6L9pO3Dk|mml-uC> zS;O5fGv3u$KVgrxyO>-gO+cfsr|g_iBMuWbwr9%B=nzmWMK z-ry~K0($a~a?F{NqF?V1>mRNVW{uhW{TWg@OmT2XIwjoRk2>Crp&622xi<45O<}8s zl<7RqyXvmTBsuNTEs8m<8~sIu4Ne@K=oBhSBXfs?G-B!Yhu zmBe)>zNEv&C&x>AQY?dt&XJXbK=hf~^>pK5@tQ^DzargImdHGj5^ThRuV?=;7>vMR zyzH{3Lys9TTI@!lREbGT)4&|a7&;LgidiU&w%XttoYWk97&l;QdR$JMReL)r)>>rJ zv(oipu^HDN$C8cjum@#Kx*E!hi%(4xObog(-^$~8=mTD^wL{RHEZls}qo55Ax<<=fRS={N7aPQ z6vbT)9{G4zV|E9kG;H9yanqEkSd*sWQOrTu0z}m&2Q7JvLS( zjx%O+u1yKtH#xK0%j-_g@WJjt`O|BY!s~RKD9){{$u$<>x8EFod!*4h;m6{v%}^cJ?^Fhz9M?vQ)N4_g$4kxZq^Pp`i*3jNE@tpM zU+t3gC?h2&SXx;(|NG&e(2)#v4{6lVE|xz^;a3a5a0E8kog8>otBd8!#dTMi%>*te zM7*EfV9@5SjuzB|v~qkKhPxYsi0+GUV7OBr_iB19n6@T5~`i#*;}#?aJI6;*7^Da>cL_FVKwAm#;^6b8jwwSFEr_M!-o zN86Wyw#w3!PyyxsKwuB{SOu}9cWm(&eKt^m z(Yy1Iuc=Fgk@JOpgtsHjK=RYgVtQ@f9*UF*k;zT-F$wN!!XY7lvPR@^SB$j?+Q z-%|Yi-D(N`d13KTf>P~!dk7Ku^sqm$f!txCiXo?&Rv;b6ladi5!%-T8$|x>HY0jhQNaC2 z2Z-HYKf?HVS}g9wBBG7YHhm@s|PZ08;8L#Wnr+h2ijin2SnhJ#XX zxCB8pM5KRfj!Dj#nw#R4tzK1T`?xd3mhF5}*OV|CK8MljbckL5L5gfb6zEX1UwFN6 z86WZCz>y8-mexWA#mp(CCq#sEbp@BFV}!1J4t4E9sU4pXk1ML>3%o!bqiY~U!s-Zk zLmU4zL%ZD2HSn%Jw9-oDe=poS4-qFy=GGcN<%_8Y?mYm41|>47Pet@cm?8gDsS4B4 zv0?tYFDYbhMQ=2i&*v{NY#4p)Z8F827L`4uvH8HqGke%&%m8Yf|?2@bRwt9J} zk+rYAz4=NQ_>KT%+&P;lW;v)-@ON?Ua?y?7Xs-Bp1wXiyR%Un3YbmCj$;^t|UTk%Q zQZ~Y*j~qw#>BQVwHV<(lp2{n>bn7?cLuIPc!qz1#4Q&9nCg-oSP292exB2ljW(2rj z2?ZI1pSQ{`R6gm+y6%C-cpu-2duILnWXv4*O{_SSVFZxu5`lG2=Yk31mi~EUftEM+ zTF=JZjJkkOcSl~MzR@g6$K&zXh$>$a-{SA zj%bDzZzI8t-a)TPSL$ut{>38BqUB_Sm+w3Z53x=c3!&3|KBx1Lx%ih9RSWrKVbOi; zH5{YoQ2oTZ+ZGBCS<0UB!yPyCWh2bU`n`!o)Teu;i}1K8ficNaCJ@hHOGU!mrb;}{ z;1Bb$32D8N{o%i{*@yFzb@w})dAHBB(MBYACL*tl2(NIUEq&u=Gd zE|Md$Cl=>g#I4WNhBwS4su|UrpPdJJIDHd&vztJFv0@CCS9eUtWG%dykHA|vVT~`L zU0&`{N@u#A5?&%a(CdWv5#(^BRm^2D{uv}sBYgwAd0A(@IlIM1P(B|X2|uvYB9P{A z$rrzn6CgT+FPQu-eVtzx>^t_$MW`(`wAC(IwtEtX@O}zt?xiF|J4^n}ipInLXS`&m~$=Y~AS_{V}Z{hC_*DPH? zK)q;dOiGZ?9qPT+B0Mdc2i1t_v-^?xH+k(*=}xr#7)kt>~ zu9p%op|k3;4^1Hu`vQnC^IrmcPD<6U2-$G{=fsTN>(n_d+UugNVc!PJRd}#IW7v$2 zu$gbH+Xg7I_NMIk0=A`hQ`bU>9fi@|PWOD1D6(iMWZoqRkZq1eIC zn{Se>8pmQv`Fb7YB6In+n!8P2qiAb};u2ziTV+gx?$2bDm|YcUaQD|2C<_h%jOQz{ zPFK@0W9ePH;UA(QvUCc?PkYd(i-Ct-A}T%|De>Y@c$AFk5eW$idJM@;RP!2)s*lyC z7i|;$#QS>IG0Jjh{W%>C;lmf0jDU5$Qx$R3k@o{FN!Hod8G50FbJNweY`yC<;ph^s zMXwj4wI*xRrK(IVnuY;SbEs_VWpRbPv@W8d>2^(YFcvD)yIi-~DqYeV9oj6+&Ft4n z5+03b0#oTIAy)7~&IWpJ57vYJSGX6z6R~Bumi3irrA1T!`KF`>eafwEjL~)e*6_~; zYwSpEdu%WRT89@c%t#Md{bR$<8_JH+S=p{#2~V!1KQ0lT9i(2I^F%ghkUU$iv2h+) z8c(_Sza&At{r|}I#Ky-H?H?RKyu7>!7#S5T*E&sQYh2;CaBzZS7LEgCtC~=>v@$?4 zB?yL%3-!qs{PM%g^{N#&BxqI1KnexC?=%R^8k?^+w4=~f0+TwPGD7F_LXYLT?Gut8obP4SWB zNG>CFmou`Fiz`k17<`dk(aP!i}0hN~ST$SLfU}xumkb(1XVBA8qkv$+W zdek%D)6KX9xe*_-bz$I>#D)m3Qw$41Pv5QYSFrY9`H+wBT9;6+%TYHYsm=!Hbl+$n z6>8XsD=TYq0>SqSG5IT?YInNyIk)EW@MywEz+7DXU(HdLK(6aRpTRdB%gFSLJoQVP z0pa5%EVzZ_b5WxqT_5EmL~&=pD{*vjIy_x1bZOV1vCdh=V5yc(QNk)WaRBKKku*B& zWI+FoVN5GYr=yEIBidP1$bMKwN|(i&k4iLxR%a`@o zcdYXM`9@P{y|@858z5+|%Ub((7p}(siMYIr#L8^3ikpB&*lMdTu>8aX8Itp~*-Ex0 zJLs9H{h9c&jk)s|n1-{tEQ&TqI;%A)yX-y%X@w3JrtotNUnfugKCtGT>U3?D+Bl0_4B#Al$*_Ozl-cX)eLxm?XQ?m%m1pz zzFQ=Awqt@Mz;_cY0X=^-u))YV?{}m!8MC(ItZvV}5GHN6BVBojQAA&((q*~;j;n|mxKBf zZt(fb0l9KuMF7~{AZ2*z<2QxnE~$=YjlV!UxCjqo&q8PU2n)J=iRbZVC8*{W-r(q* z2np45N)t2Cip3gAb=(Bk=OU!l8qe5m)y1>H9B!M_^+7s>;4{xkY%1Plq2fMA7xxR2 zrjR$-LB57{OHC8vHm|c86HQ5*)hUnSqBP(G~4`M$(jup_sML z^Cw-27CKuFRGDLTt?pIeMfUw58r~<4Y%>?vi3A}&LJasjq_0QhP_>YVzJIqZJ~>pj z-lz-;?RfeKk#qB{|8yXab9l3!+CC~TlccxERNW-3BBz92z;PUnGd zwI?CgH%0m0oY`s-+6gSC%`i@g!_4hNkMlb=Pkb})C!+AHjmh{r|Ifz;j|Qldbe3raJn(|Xk zN*uncvrCi{!S|Ej{x(%UznD+}hs1(9lEEb$;EdxjK}uZ|HY8!WSn0cC6hU|z4cC$g zrg#Wuto4xQX~z|B*MRwsA;mVz#K}O|*)d4j-PA?GIW~r=DRRVeg?8emV)KK^N;hE( zNBB&9Aqq95O?LGS5V4PE1VmKCPc(IoloM5Tu?8Zm(e50rc*5|1K~{zpPzJZeobwxj zF|tA~1PC_^h^-FARThI+&qZR&BUs7E-QEu4_E)va)Hg9hKvYR|zACr2-OXkP-m~7_ z+}#z=+USIu|YlVf6$KXt+<8Te>uafXO4Q{cgK0!>L%;+l? zrdoDVxN*zb4A`beTz@`3b<;<>8k`#6AFG@-$Lbuv1Ff>0#27; z2*-9MoRq&?m)QrsD`Rd;R#9I1Jo?U-`V!&9JO@lC13dHPJK|Z3!5o{!=e#)4kv<-q zsb8SN>8ka1AM)i`PGgPeb^8SKuuTKo$Wj4@ByW55H&JGPf@y+Nh=N-cO7cxMz|Y0E zhosZVZ(xdbjFh>!J4<%YS~9xV`65oBP;WW6kvD``654K9Gl@710E~{m{mn5m(F`VU;qxsZ-Jg22ZWManiKoQ#kX17pl7PIyAComp?I|U zr~RaAZ52o?#I2rnw@`5ovoD@E(o1`n%;e%WgQmLYAKI^9=CMvLH9o{vEPBqQT24QC z+z64n)BhI>fMe1LrehqR{M9g95b@6y`2hJkY>G#S@Ygh>IgrR8--7JuJpHDL3}DZu zMQv+cgZ$=frXk#yh|HmIBz5o*sb(X2Oa2^5D7&?h+IJlxYMXji#xO=XEtf05vQxEZ zlugx=+j3eVJf&_wffX)Qfx?V@gc!V!CaNqHw) zx~D+4Ao%#N$015Y7?*R{q>F`*{N0+lO4DOV(gY!;$)a@y-$hmKb^%8@wX7;>7pakR z81nS3vp0@EF1WfRq#`-n?Yr#(+V!UJDbFWE%LC<4`0=7{_nk>D2FL|>C#J;F{cCvk z5y`Rd#X82h7H4?6&59F$On?t>i(pr*fPG|vws(&yOm}0Dh+~KT_4&hh06K2n=LR@c z;t1M2F%smT^Nm;QvS7Y5fiAW(4gdPleoN7|sDB=wUs_p?J$sw_E?qsECY$G$`>-AO zv*rwoE%uWYMGaB%+aI`1f2W$aa_oxj{J;Uamr^E&!)n02(MU|#D*a(H#6;asJ7IfhMRKTle6YwV`@K&uR=Suen4_!x}J+G zm2is>x!z1fsewdNGUpSrdrgTTFqAQ0$fUP*8D(xvrRheg7d}9VJ-l;)AEl1PAY% z(D<+KpT&2;6aR}*SXlU5XvS9|I5--Lf*twDG(I6gLWbYIl^!ltAT)9l70uOFK%np1 zzH@Cs*IobfoU&CLg`|Tk{uMwhLk)T}+u~yOqp=fe(q%XGxN{nm6>Uh33ZHC*l(ieaGMQJ| z|D&e!gpIOhM2>`aB{r{us+WUjRng8jE^z}%2UOKT$|ECWQEp0?ig@zl;O$8Cd6ZuM5xE3uF8^zzA6d7o?g zi!)W@ohIpVc9lQkf9~qQ2N$bAIpb$qgRYkg>HgUG9~=GXc_e7 z$kbUK*c%U^cvfqo{eoK?@|J-fH2LK*&)0xL)!~ugO!hYj1QT3Thb(;H_`y#HqIUQ}{QRqN6xMEBnfUrzXmV zsjYNoHT5qD_J-5xXlM`O5lGEbHuIO;Y1ayfijlQ!uke#zRw;lpnlOWE+oSE!fh}si z^jhZ0g;B}^2Qo3n@p?N$PE??iB7yWq2R*88&8XF$ZtxH$$K6D*#~-nK2MjP(8AF>2 zR>fqQeA8zZSiDw0%l0IYs}_E-PH?UchZ<(I?~Z*%k>2q&kJegy)*XhN0mWeV%8xc~-%=$qXfThd-}jl~flVH+ZFZ*<7~LZ)`1-=wcS19)vBf&-R}cuh_U z?*H~5UA~;S4HY1bK+s5$z|LscbWR;yhCpogLkC6K0h@9^tYkLVohf>3LcH+SfZkpK zNT_f!M4#|5GJ4hb6U#{yxfLkvwf0ot;@O$>h~KFa#prl!?jT1Ya*&3u@hM=+n6P`T zxX$*F)}q~2)DYF$(IwaT5q@Fk37zlnbKXiKzc7Rg+x?HZfKqrIk(XF$j5cPprp-qt zT6$~ee(AOJCMEy@aa*y!?Ll^NT=mxPW#yFyr>z&vr-Q1>WREDCnfs)@+%3j>IO5vA z&q$B^d;xoRZ1W{2$scP0$C_puUXj2`l4XCQOgf)VmW$^%x(As{3gm5hJbOGQRU=dor_uRu28% zD5=<3oF4Za_7bK8w9lgy)lH5B_;k;(Lm?)RRX7!N=?!yWwOlt;5AQ5?Rr-SGP%`!m z^&pXoL^`-zfzI_od#X_xLAq|Xw~KBn|TOtE=RL; zYLlS0GJG}SXJkmy;xgm zZdRw7{R5XoqL+hzRZZ^H#2~9X?g@k+o5*enI&>Vh>J8YE(xL>eL_)IRlBS+wZ06GS z{Vi%eZ4q*n6R>$5f~@S9N`sv;*d3D)h(y+#8w`geNPn)g`h7=*_z2HS2qhUebS4hB zYEyF68SEiqSWfAU=#2P7+H$CsN!}J1`ppA4xHin;JFd$6#hH7VG-m9O?mb?^R z5F86q_?1Z!8$(g~opm8)d)fPqXj12|0Nn13siAgZWi2BT1>kgsi^|80&6+>LoJh+} z52jp%xCe<*S=ev-7+aa6pp|LURYVwD!_jA?J|>H#!988DJD)U0C@A!Lvr=NqL+y8q zF)?YPOR=2kzVv9RJeOb@A!JqK0_!YSOdn z6wKGD=8-ROn9)bQFHvwx2=agVStar1l>U`c3v3-K} zZJ~z9{$us9h}Nb(t%u-Us&V9R>rn8Uy628V4QF=8Hg8DK={woRbAU&a20|U1 z`rTCte_3`>XmW9140p#$bsexMSfVnpU+Q$BJ0gxyv93poxlwu7^2rCPfcRguESa;OGBgpM@$N}bT_ZP4OM%#H zxrn@_Ug#4A6Tq(PMa-qM_35Iv(%F4d-KmPBKYvFHF%@-6$hPv8)g_lGSH4E4FIKF< z>grYDw6~=g0Of5!n=MMYX8Dx5PLEr4#S;{&mXlBRf);9yX_sA=u-Td#L(4^)-2!q z(7fMU7(v2VmN}n~odfhE10XaxU#p1FkU2vwiKN22?@|IST6gI2aEt! z=_9CkW%iqdEe9H3i5tzifViz9AR`E?#h9MJ?7Ial5SH1nxh(SVVerQ~mma1~)}}}b z!DWtbt5oHb^z5g`gVS^k4@kl304{|6v?x!}+fys=iT*PqTp-`DEdgUJonfQJo5(c> zaPS~ckamjuOs>Qr^(}_GS?7iY!0m2?401oQyh6-moA4MrP5DrJc2~&8Kz#oi=uSdQ zWU4LAfrvWZ?1dDi^C9YtpXjPkZcoTB42jgh6zcM2Z;qoZ&yMouK3R_palA^x1>V4D zoeL@DwFjeT(VNq25zp&WghT1^6Nelebem!!Bb_(xz*w0`jN{rOO= zt5vUu`&|%II3T9nLK0?8%bVeCr&!i>EJ>?|S^o-mG^ZHMQ5`Kraun8NTt}+b1008g znP|8VOgUJGY@XNgz=46;Bf?Nf@|!2IiHz~_dT@QJ1+_jLE;_-*@}=oSIwTs2OsT~( z^1Z{Gdh4J$S2oytSrS<0iOZ6l?_Uhv0z$!p`xM_}RUmXRvJ9tU=d>U|GQRew<#J`J zn}#4tWb@4%1Feo39h$^$THlaHf6TA6qD3w+nFrvn)5uz*_w?{~@Y&uQ&R_$NMI;)! zvI_P)8A5BS#BIlaP*POifWW#P`gfmb=h8p#<-fDcAj)u^?K?{Tj#@k9 z4OUx|gBd124Oso&y-d4lt^G_K)tvtEv?19$H4zSG)HIhnZ+_b_|G&a8~~q z0R-zDr>*1)R`=s}=szO@bWL}2h(dsp=QdH574kLt?Uc)f6 z-5a&C87k18bcErLZGLXV$>yIL)aaY}KT-2G%MnG+#bFn@VR zzFt571=ZSU44oS(?AoQh`iv{3mD&lPlexc|2hn^gakB&uTPaS)ztW`zvvpBR`iYe+EC*_FzOc+_r3 zQm7`5EQ7@6bo_2ZM-x1mOAk%Mb1<7l#3V^b)TUAp%s``0Cs^@;B17GHqX*jnA_wA_y4Il`7~I8(r!y$rn9L%WRr0C0>{6F#H2z zv8t$jtbE+rUWL%qKo%a$BTTWjHY0*t*g$1qL*>x#H%))y^v<_@aPzmu%X@TdtZ|V> zA8Ly+uKtYa8e6)Npnn@j)K^{dvZE=x^C@z1m9YZ6j~@&toIUv=p?4(bTwx%s<`T{B zQ9gM>!BDL6P41FmCxjAdz0;+_?w#@SG6s2VxyV^jF7~qp#MXJMg|als((e8bG+AsS zVmy%CKg*1%LJxR+(MdDtiZTvNj|?wmgS_fH8Tzj>TnV9M)1+*yB+fY) z#~xRHIf@^@`#&b@1L+I4bo*QkAG80zaBK;rmVZkLjF;$PnAzjzF| z98&-(Piy))(#Qh+=?U(!FZZ^uRzwdLgV%ONb2G&z^C6rSN~H!2p7bXZ>4RFCUDUR3 zX!E}t`&37#+(4B`i#om<9%DR#Dm{VmG9%sCF2;W8^E)_8ML+Dv5-BQQ4FD3 z?~jOfC7c6cI8BY62XD9@d!l^SA456I`fVd`jn3Xe`iN1i)_yE#Fb;Ws{s10$=#dKU z-C&zzI?}&$j@X>rIhE^jUwD)=WUjIi7*4-cd!Mh3PBDDRGg7GcZ@vkyr@@u#4sr`D zlqhjerqQc&R-rF8V#_Y0mOY*kag~D?wE=Uj?l4xkY0up{F{_oRNF*?OgVDM*#Kjb} z5qKfEcGuB4IxX4EwWCA{ppE4Ut1l$^GE=@0Cv#~WI|##aa~|uz^HA(P@2#OTv(v=x zC@hq^E>d6K@vEw{heUaC`+BB8jYPu6;n&-6I`K{foZ%{&eL6+Sv~jV-N~%e%U+;^g zoyZDN*OEA_+vdJvVL{kSE9^h~fDmlndwU1U?X7N*r<~v@l;tkPoZhnTuNDIJ(1K^_ zPIUk0{?HIhjK&0mHfMgJiQ=#TOglQbYZl1tFW5riL;-a!5BgeZ(0NTmR3=`|_r4_u z+SOP@0A^8A${xaDxzX|S4;R?8D5FiqEKwmSE2yWNjYqHbmZJQp`Aa3o=ZJC^+z8J{ za;qaBkq3mSZG=0TA;Z798m0hIOtpuXA*Ne;qUM`o6J}!G&ekMDd!V1S?1J_K|MfI`PjL6z1aNn?%`!bq)KpkF`SKzYHV)a zUdV{k-N=q-6;ymtz|G?Mixx*yy5tbD8P591D0z9s|CZNwE<#Dc4V{C*+0y=qU#&SHi50D)9&%NydiTBQp@ZF)`EXCR-o#GS zvzucyyVme!X%L{MgiRbdi5CyeNn zjp1YQf?Ase^@*;G-tZ8q+-d-0jw-dcI!ic`x1ianeh*c$KRq64b`-RQS+1IX|6I>6 z(L~hFp8im3EPL}e-?8;;A8mPUy^Xe@beb%NI@>WGG3vsaKCe|Z3Kr_Nj7~> zi68g>M0Ua&4zypY4D&($&-Mf7$449~S_=Ny#4(S_{m4hdV1zz0IXbY)ts4{mD>{9H z&!=lxhTr*kA(vp4Qv+AjTW9hRY2^u7CC-X(sVA!vYcXbbE9(;nl3i8l^^jV{MBZwA zFh*4`agDT%6qu9Aq}h{#TOiLIS&pw*Z~$4|YPhpDYRXm3?KG3-cR_L7S6)1Ez#&AtZVj^8DFKB0oLJdAlpo$2bKdZVbiCNb*YeklsZVA_#^1KPJPImVkv<>4Mjx0fz=}Z`cbVkU;N=!?__b18`oQ7+18vZc%I3Eg5dlHZt1I;m zhx#uRG!yd4--rFmy&6ot1ctnKN#3?NlqHC$VxK3Op4}hN#WY6Sm&QB0JB(VgGP?i) zAXUV;7H^&)|5~&b&vQ0ETQ+BZ6whV{h&S2;!^y6}17yaBRTln4_lUsor5JO%*hJ?* z5PvLY;0CLACkRfNa4)4@{oDe&Oej;@7-MTT^bmH`V2?c&rby`R*Ho|mtZosLEZ=Ps z>QKlhqL1k%suv@yU+8QO*Hp0jFeN*NL!sJWY}r=Uo9pA6um4WneV-G|{v!nsvU6$h z?fPTK4pjDLO5}+Q3=OZM9EKYG9%-kFZ7(@QCcj>y>`s*a^X=c>s}kf>u36a~9mu|& zwXO#{dYO`lT9Qmwv@Pzx-~18*^6|T=fp0z&-TjPo`lQHovIz)&mW#8GY{5!pJxcsg z?iD-upQqvh@eVP#w<%Q^^X30%G4$tDr*v|e`uV3mjH->1L}lw2aB;%F|8=ALcRp~P z(A|3$z1KPtc?7!O<~1tu>`{S`%zWX&9QQ)Se|(>N+{Xtc^l37~iw^T$q-x>p;pl{P z6`zv5?>119&AxOuRlT`RzGd2H){<%XB?}^)HNOtZ^xaVw@zmC2Cj4=HMC&}V!s|<#C36D5VUJIQYZkHUn|nJhIz*gt z=XA^O#_)B|B72avJgLUm77TyDI#u*%zUmmGH&)a^ zpLwjFKFDHd%$nhPTPMO+=SfyR%1C9i0e4}rgDe$216`=NasG5RUt;o8FeQ}0e8B48 zUR=1jgAxf!^4=qbPiRe7hw?5O`FmuBls7aufTjN3*_KHcsc8B|%d>*2KH}V^%O1T_ zzh%(V3}%0OpG!uGRlF+beh@lnmHLGU)y*9;D(x?IIaxwJC0F;xxcNns)ssJjXhGZ8 z!y87Lg)5<^2OcepE;4kiHy`#xMAq96Ym3HkCW-opZK1lCTpd-%BOcyfOzL3x(>-ti zKOrVH%_=chzPPOb`!nrh#3b#ZGFm${^i`X5Hg6x45-mgI+9I_260+O{=ctXr|E@Dl zfp<6)kAW&BB5w`lr#(l*iUGfFBZ5qk8V@fZi%s;`5+{$aHlD}s)R%Oc%adF((7#Cc z3&?jA11=sRkmt|lR43orHeH>MTlR+Pt@);E5c!sG6i$0wj;i7O@l726EO-2$FP{Q( z(x&U41FsMp@qR(A615c7n{cHa{NmrDIo{gDnnc1#RSsh4;<$fqLQ68`)E z*0pMJYR3}C;;$~^IoEAKAaZDkVku$Vdp4iY5CBN)p9YAc-%0ZXy&C`#a%wK6?2{Wk zbFRi?Ic6wRo|oV(hE64WkDdtFS!^OoR>fW)(oY6Sw}MZ%V-9erijB>4ZAIXqhf zB{JetFc+=YkK=JheJs4y8Hm`PdVWHk+<=~2pg$YTXjp0T`d8535locsmjB^D*%?;Z2Jj9+*;qWB% zeHmVH<>Z$&@xDt>8Ii<~6g8iZk~GWO^XVIS0Ie zRajC&Qryk5JGp}e(`s*D_xM9&9tM)%;X9b3AwE@`*ed_1emd^!T3_WP&CJJbl!)|K z=4wVRQ-GXt6GH5^rYU}iJYFde;|?SgzyA6%3&-{QgKx(Pv5d-vyhzLZ&1Q*$oc$cd zoE&uX-k%lmcI`pI!96q|?6mA`(cj~ISE^ZdUELm+?3Tj3^*i@ldpYr&t6iMB%5gg) zAX}WuE%RIdZQH>Om|@a$>V=C@r#9c+*okq|+Y^7rf9v3Yl+w-l1yLkQJq$E zU#uT*St6^HCpy~Wm$Sl880~nsvuSlL!dJ$QSl@y;hErzHU z-_;CH#vvE0!lx;My}tj&0t_Q?@$`co6=jO^ywaDtzp**J^AGZ}29mWh2F(KZYnQ-y zGqhrM`ok_P7{inojLt}Yq`r^u^|yl?6b{$l+_{qgCTJ4lC5fbJ9+wOHN$SUfwvLqZ3aPrfI*U(Z6JvQT z9aoDyCHcR(f)FhW(R?oUSdu)eLgFYbZ)q(KdQh6MI*0osVgwP6 zO}&BfqUalFGW9QFVK6?E{s+oonyniK-3%}uccG$}YZP!nRyuiM{EGUTsNK>tn2 zdovQe2hZ19bxw^gJUj@9Z#y3!NOb!TZ7K5a%l-cPaQgD1aqZt?BJ^8Mj#((VRd;@+ zocjS2C#$ogJ!Rgr&vRvAR}Ss;OtjtB2c!CV$U2IFJt#)Qc&jz<^<|iJ!YQ!Zajfa_jM`L^@tu0z4X=317XOg(bjt=h3HLN=_yIOv zXMKp*Q26JaLDyjCXqSHLl`Mtbe4je%SC`#6>Fjv86#b2&ehqOo zkRS?bNN04nmwa{mQ6wpbsVWlb9walN-QuZ_WZU%#(`pRAYDOj-dFCq--#dC>Tkq~F zQkgJVf*#4JQH8TN4&-T1rj~^=~t4whcVp`0~z;xTZ!T6 z)fRXB2_dF zj!1Nw>{k&d8J*!8)8l0^K*N!g*;zOhdaAe5{^Odo+!YK zIlvW9@M+t#NIHu@PEr;Z3mtY;k3<@`KljOm(Q&{S7n{`=0J=uArrrL-z<{3*{&@(o z=3=r>OWeH>dg-s;Y3cu==^Df1?7HsLv}xF+vDL7#ZQHhOn~j}`+1R#iCymXCZGO}A z{eI@U?m^D%v)5j0OLLghDY0%8y~tl!hJ>Ghb*4)esuKbgwMj95 zeUZoAlJ0r4F{fX;KjG;G_(@$BsRR`~pa;{S$;-P&NGOe)?Vb(=_Ow|v8jOGzU)rX%!xCG;(UnF53Z` z5c`N2(^AXZX0i$;vfE~r`wMvjW7ov38Pg|-Z$p9LU?dPMJ&>9SckGY$%b78T~v3Z)=6R`7`I9tCZS_MO2)*#QV zI;o;mxA8j}YKHV$o`>SvMp*N$6hvaYt%B`y+R>Ds9S#=F%jq)9X12#BP%P|N7n0JQ z(ia~hlK5b3yj7(F%*Y-0QqrYI`He2{-+S2SJzJ6R>Qez2%GrY7tb!u<*Q=llxHys` z=wpoba~&`7AE)479@gx@811FCoB6FfzKQ@DmCIfdbHoWz=G6~XuBJU&9rS^i%+@Wx zI@|nnAHkiTC@{f4fqv&Eg)f$^*D(~+Z0NRj%JN=zgr(9^+p%`9i!WF1nDyuVA=2Za zKV|7@OH;GFLkmxsU1Oc}IV2R|2s_DTegMRff%C6Msc!C{Nfm$$$B!mrP|zfoLn=i3 z8W%R~ei-+liL|lZf*bb)wOKS<`9k3s>@N(C&gMVdCHw00`vx+wiVC5&ibG*+Cn$+} zY!d?qk(x~#{d%}*XkBWMu8ieQ)Ne8KjnEcbhyikw6NFWYJ?&5b;q@0H{;{AwpTz3g zZ`_}K>)0Z~TN{Z&@>uL}p+z$3kYvdJ9JacKEh8OZm4Zo{Vn5eUFrkHxh z#~l)k<{KI4XlzFGObLgi)*2U8x8kPQUOAase<_1LN zSmdEA-VxiS`cZdhe1c6q*+}!-Etsh;XJTGFY#csnlPSB)`tl^_s_xD<{L}qwFIBfU zO0_q2$4lX|3-aENW}lPj$6bXQa-6($;-Q(;6Cz+BSgLmf*@w~(mODv1mMNJn7X_b` zVl_dFu^p{(1odA?8t^2`F;ptB9iNe|Z!8VySWcKK|^o1wwD)+9p%U8@p$XjHqV=2rb3t>Ti@g;w{Z z=p0R-l)@-H+jpfJ&L$rxXK?R6NoF=ClN@Hz>Q9(sdo5pXE5L7UYj;m;=~P=T!HFZY zpSAmtzb-$^%6iA$YkQ;_B#~c0pO4pxob`7r_GM=AY}eAj$ti0T>{RG~2Ykc}wxv)n zqZ{MzlNWFkuC4J`!-Rn3i$D6F?wq_?!nmd`FrHS@AXC`_-M-^QUzSSrz6V&PEJe_wx)jPeZMy=iwIk@)wI~xRE4yO z!or0B0kcyr;ram#Hn`RMK2`Gjj?rWhwCxpZ#tZ>$y9kV)%{xr(bXvbj>E`QQfwgjQ zdpFxF(F#wVv}y(JLb=MzI;d*nn2>*=$U7%k!PNz#3-twc2+!REg;z2O8+X}YBg=@`;8Du06GcEz}6b0^2*A!SWg z<#$wNEoSGDk2)3E-x9L#5i@)xEC!|o%cYD}^wE1Vf@6yTW{IYv$4#VPueq6e{$k8S z7AeRStCC}jGeS=nBYleos+=(FLhIe&mE*KXI3;xMi3%u}TvoaY241@)M40gfO5_IX zOUhMLv}?DXLXDj1DfjG;0tYrXi}K~OyOyMdh7$l|ZZ+8wyr*VsER0u;PvHizN(*&h6(gP^Pg5oZ{jNJ9S69k?SdNGhy zM`{5Z+06B)cd}RJGf5)B^XqOe)DaK2n#$*`YUtGu^2|@&2q!BYAveFhB{5@UJY$)r zibBngCiVn)4D3StgzE8}Y`?_nAsl4+eD>n?N_9`7wYQ<(Hz!240zR)LNFFl#I}D?V z&9n5@7bez+^Yl)g{=6|VBg!ktw!J7g8JT=>?Fwak4R+w%agJ-^^6W4AcZCta8o=RG zz&Jd-A~~TBSJd1t^n|0ahXScG+n8K_1ao@^dn1v?V!tEtoV7lP>^C;cEN^{lORdV^ zpV(;xP>hCobF^)l%rAZG%Q)>@RWSyf0lTZ$Mw>Nt35ssNWS${(m5Br+Fl;jzOO2W= zmxg1|?|!bsWRh#g6Ij5Ux73#43dfrzX$x?XBft$KEMv1vAsSboai7>dP2#K)bi2GJ zbtozl)!%6mB$3jRR8(Sm%E5VYr{DSN(TDXBj({d=S&q^+x{#3f1(Yd387iwyv4JC@ z<`Gee2)kCnt8-AP*ZcqZ<#oc9aM!4tH`O#-tzp5~Z?ahTN~DD73bGQ-jN!{ZSme7; zj1lq`0S3Rykhd$E8E^k zS_@NERuKM@doQ4A1{h8f)~{4ekc9udCBtN36BAP@=iwbF2Ur?Z9;`FH|k zI?$gGINzYT{`bgx?%$WtvpKVWw$@&EZB1+PuGh+D+CJThoL+ArIRD~8>LRlm!7>`Y z%GrpG1}~$D{TB6uf<=Qu{o@UrG`>{4zrDX(U6>7H*|dkqOt{T3VTQ?^Zq^Iw$eQB~ zy#j=%rzUZlf22g~=nTCvG&bgJzS~g#mYw$6ypA}+;7`#)-RSJ}#cRx;r;^E;rZenw z{91pTCzvs?0HXs;3TUKRx`bb%VTbxlrY=~BbyuwX+X$f3 zH1!Cq=Z+;YS)vkvugQ!rcf$ZspLe?C1Z$dPvLs1*hSULL82csWODnyn?SD4X=)*hb zSq2ZUxwJpKa_!(r);HP<;96W-pIw`L9Kd>8rWZ;EWaUA_s9hs^OuctC zmB>^E+}M!miiksbtXv@zR6QiUlux*c6e;nDB9HRTbhpeH*w4TU?-f-z(7!qRBO*g0 zQvhi`rHA42fIp{rOe&9eA3nsTUout(P{O1nLdfX9}MDSB!53S z0a`-rM^@+4*Of>P*LOhS0a9&b3=&bw;3$`Gxg- z(qOQYkOVlYAz67(h)#RY2p7vJ09jj9fTs?M^sYn7zVCZxqCKmo={H7pbtkC()u@D_ zSB;(0NYZ0R_5x?^6Sq@=5%uW7`X7-7d-YI$KEt|pH6Ql=&inT}8Ir|gN|F%o;_B{I zAd*C!3|>Y9&>8ixp*@Ik5xQSmj;!phk;*8Z=V@=d?pY$J)sDRD;vKv{ufW$Eob?3m zHm%e?7rHdd6Cupoaqehfy1iA?^})V}6i?pn9IB|)-uHN}tI=lZ<8fhidIqd6rN_=?Fr}>lvuj`+pc^8NWjjn7g7?Bqq!M zb^j8OAjRoTA|25f6e)hFF4|xXR&(v`4I$J2A4^FW#T@|~mrt+?@6PGOu%4l1bNfLgkN2%9)~CD>abuI#zb(?o6+Iz< z!CJarX}p{iW7RVh@>aw{fI0_z@;4;^%bHD$S#gS>UUX|3lKGwzuRRJkLF|{urazW? z9o^p(D7*$Day3E}q-ryAN%dl5T{$>3k4a`Xk&vZTtMHC2%C|*7thiOUt6@#KqukYC zSW+@HSZs#1tT5t{eCIR)YdS{@L1d(yh0m7 z6X;om#rC7m-Vu|fY7r2hwMaVqU!urKq_BrGB~^krxl^RG)vpw2YHyF>7t>|0T0`R# zWEE9K#pKw8I~&?AMhIE=fWN26)mmMdH*l!(HsVuY!)aqQDzbOSNcJh8{aUJZjf9VDl81h$!DE!;)E|T0q4}a3IDnehn$CFRB1--G zui#ojd&p1WhPxaS+lo?dlBeUzs?cuF{UZvWrA;vz4WlWRj<*rH@tiO46CCb zTn;`s?iuS}Ca(k@mq8;i5J|*)%D3gGv*_$&_+bK>mKcynddh%SB~Qc?^)N40$$XeqY5et=`;x!%nY;PNq=!Raxs`OKe?QHtAb01crq-lV;_%>*CJVTPb z;AWE$9w}V}$XmUL{qovK@%!qFfw?@2B3KGs}(>fJwZZ#s%VJ)2x?VP-d=eZ+UHsg*Q(U&86^lc(mCJ8 zhB`S~K#$D$%{(N4K+JD`6yFxyoSFU*<*D4qQZ-v`S&r8L+l6G5cb#$R$xaeOB)@x8jT zC%PFrJ*}Qq+*-KvE^wlqCTif`$JKfur;4R$S?&-**&9+cHw+wBELnxT4Kirfet2fJ zE7Ft!cm!{!*2c4)pLG|mgi~TJ29^Us9noumpIj!flKA1u6NS$WS*nTG_eBUkqcm0M zvVZ+J#a};8#4u-UTNF#mHc+Bt@Aj1asmx0s3f`*nwsGkK4gJjFtlZ(MP{GYQC-Qh6_5K@}=#FN?w8}r-i$3ik5AX^Ac9BH}UEZ!>gP1vPlHqtJ-)| zHWvw9bA3cTmQNqcLTnPA`cP}GIN9(+N_pYT&{P>|^`T;78!q@)8)vV3=0l-E*XyOr zdS{H!Dfc4|FLm1raLC{@Z?Ptio43qGu(&TTx21*&8M`YsGS?4ndxHDqp-%C3Q|Y5` z3CCuaJw*HM+~4t3WSlG9QYeOr%Oa159nPtL=gfRAl;Bvj-`W>(^nnaHAo?KUR6lez zf|^HgRZO_@)zspXi51O}&Tz%);~0utS{_AmU3&P`gq+_x-Qpd?Vc&Op7ZKEXz?{sW zNheI^(~TYP1+_9|jQKEzzCF0E#5xfJ!b-V|PQIa^8X5voH4_-1x;NCiQviiOTb_ud z^?-tcinNLTiqaV}&C}S;h$a9eqd+w#nWR7NDnEKYlTAu*kL5>{dL=vv3me3T4Nr_^ zH?d~rKtlz1kY#s#6~C^Cu_b7ChDhoOy(q%Rj?X8`WRsE}KAocIm*bv- zzmn3>;SSWUva0M7#zh61Z!2GL1ZX4)hmbI67U9gsCUGrki5+Ze91$GpOEr!-`~82M z@sFCK!*D@iI9yu|3Uh;BIH>I z8Xw^>U0FTzRHwThcMru;8&aXbO;pq$(8k#U(|m<`vpO93V7)CLU=otKmIqqwO_H7qo=`i!sS6>VPN z$#tB*SZ&+`{&4NwJLb&hfQ*gFLw>no&!Jc#zA{fm=k$4nt?{97ewRvUkU3u8;8^0; zz##u?^)0at;3+k7VcaCFP31|y|Hsd%WmE>qr+t75kqk8#1iZA>lt*)aid!KKSw*_GEL3mcq!T+wtzDs1DSCqt)%&t>t5*90~sUuI+8w75@Gp?9^X0}mAtm*z3c7}d>WM-l*G!1_uEbI-IH>MTy_j&@@h zr-~z87-dUc>pSH8o%-k|FGD&{D-F&tmaljsn%2h0FhA+%0#l)v2UFp7iP`pXFT6<9 z{PNzWL|JQJ)GaWZ63};DKTeg#g8w?kM-2>UZ^cOwnZI5gG&y9m2IWmpyOC^g_d`uY zWFK}YQBSA|$8-Xv$IqiDt?ktrKklb3#9t?ENKYg|?54J4n#MdxasR`uAJM4a!_DAm z9n)bY!Xr|w_iHuVn}D?lGrw~WHMe-Ai1M|_e@yhm#NgmgIdPQu00A>G1Y&iO-8jK| z&8TM1B>2vyp$4rDTWfO(=XB~phAV>1Bc!py>-nuYGDww1dr!^u7&W4jQVBA0FnFjE zD&sL!4EpAj?d>1r5vYc7f#$WpBuNTeYLd5qP}y7Plzy5|Y7hNc+3q_V%GB1t_UNL4 zb&EFv@X~U182Le8%112r$AaD0`&E(bb#*F3R`15luX>j@ypuc1sh@=E@P4-6@54d4 zME(^=9cty7)-IRk-3vjD5#^WR)-e z`GaYLANV|Y$(uDV$Ydr}i2oU!So)y_`MV2kf+?Pev=(b`Ak31hNU+`65P@NVdl3wc zE%P2H3c1hfX&jqlj;|>TxE&B6ho0+deg~T_^U}p2v7oJGGd*3kp^AHs)!$>1W#SX0 zl%plq*gZK-cL7$r-`2f<4Nk`79B-77zx>m`;kKU13oL-k{EYK#nN(QvLm%cHZ;Yiv zA4@<+NzAd6=U-P-u59hgZEvkUzJ?9rqD5`zi_R@ezTePv&^Ti+D=0X5&pdqYd>2qg z(|k#pJ5Hr@dK5uE4tuzp1viZ6m%K-CwEMYPT)2*JKLj?wJ(Fgp(7Br;qB0k8ykN&D zQx|u=v>)kOV3xvlh?2-7D?GAfvlJI2Rbh^@A~UH!e6<%3nhx82j1`l|-{Ee<1(L2L z477d%;XMZ?W*-GtpMT`KJLzt~=Tjzc_yt&OY?TV&N_w7%fx+BQ1B(|90S#G=8?QmR zBFr=OUJwO5r&7&@aW4!;$ccT|TMMMF&ijbV`KTvk*YE#d3t;<_l;9Z`{}%j$mhq3h zX#EwuREnlnEQ%<9X3zW}NV1?qPe9&J*xWn|EDcEYuOq5CDk`^Y#eR4nOxW2vk1pX1 z-;GcoM$X7ZP;*1*N16YjjG3O!gbYM|qpr@8UCCDB7b{k}`R+&p&xyT9q$8d`v#jei zd~#6^6jC}vnWP97xHUaFscxLb zS3-`9i&JB0=pKh>!7(&3QBYHoGIKjcrOXZHnNSa{+eH>H2Q%0v{)jlVh(OG@DLg2w z`2T4#_eaX%d6A0pe<_Eia8SyjDg2`U&p*Ag5wXguv|`yW=0fzPU8;!un$3BW_NP!i zQ}ZikQ8XZg2PBYOILB&rn_0WHtWjAxqFhQOEBlY(UJkKlkq926XE z&HAg^O!n1y;S^$XHrd#!?6b%XOq@ko$;Y_b7T=%M2UOj-*7#tBt|qtim=EYbX<-Xpno^8xEH~}N zP?m<>8mVj#xcrOow!`I(h2so|j8Nq#aJN05l=^#)ADVyNhv2}|A{7TZN3~C#ruA>sra<~I&xyvYR0QRBJ=cwxN=In;M`v20@0%g>JNQ6BexIYE3HmMn$gt;Y7&r*lJUApQ$+xc5vW1@Rm2+pdSQ2LubmaP)@` zGn&qR#>-8out$oXXs!w zc^y7`Hhu@C=!eLmpspfvaqB|OV}z3SE8`MVrWu*jx9!UE zDplw9Y_@T!H{8vM;*+AdSnROj{6T4Hzm!kKO!H_iH>kD+OX|<*%J@m_1L53w2{YSW z$WX+;Nt0lFRkLD#r}{+x^}|xntLM4wu2X43U(KK^_Y{ld5cONe zg6~=x#&A$#mMp9;9>H z+ejH!g}feZHNKIQT34oXaR!+xhR5$X1rR;1_A`(ZHXaFP=VjaW`CRO32x2BQNPjMI ze@OmzxhJI`f{T}ObC<`vtH>OVFv1#&zcHm+(qvEKlZ-xlIP4xK4Uy#`79XVMWGi4g zPLwg20CJGUtmM|6mdp(cGk%DV7b=is#uMpm*E$eIMMbn(ma+{ZB0uTE37SK;T=U!8%|bOMLS#@nrX=SWHJwIipU6W1o|XoVR&3sxG7 z4OSd0jaCN74LIpit#0kT?9N8h#9^hq81K8ij@D(nY0-)HyZm(3_nd;~zSzc+I%7ss z8bS9nwQhUxdBR&Ht0?4G?2*N*irnD)RR~ zSk9-=8#eygMUdqk+*TpGq2L z2ms8;2-sDag$u7)owMr5Xyr)k(A2U;5gAqG(m<(;eSZ|R{S~y&!l{$3Js)8LKu7V} zwXDT>FdjBw7$u=OKHXn^35nvf2!KJ{0Sa8mNR*y-;YLZ<(OFnoiC=qbPQ;QPMVf@v zFrgp$&&B83{uY3EARrt`-VNcgUnL+%Gho=TOI}-0&Wt#YNH4bHwC_phc?#MGgq)ja zNL5s>t6m;~;2$6fDnk1Vwte`xvH1h?f2`4l@Gs3>K|#9vXC*B7x+}_B97x~N7>WBT zl|da=gVGbm37d$k5mDp*u_`JC71X2@kFd`>6S`VZ%_}qs^Wha-E7?EU$AfgDWC;-K z&hLm3KICg2-@nX+TPlV9p18$>V@I>|Gfn#&SmbLRDB&YHF_D~}ZpySvSHSHE-|)@T zLv-Y1&GqK78MXvZdS@&8V(gc4Q8`K#L%IK3M--TkI6Vt9Zf)x?ffVNr`qPRHK5 zT~ymzp%v9VjDe=GrV&?pOa}K6V>A(dv3}uxc`t|`C7WO!@vx!X|L=_Q$@u5Dmv7il zPFSPT)}=qo80R~GinX%nN@ca;(1^UFs}Fw7?a{2o5~l`;a@HgmB-uzKJAOMB+v%d< zeC?8?2YbHQ3;%raWD1{9z2;`k%e6nIDh_ICyoq6^-)VoX!+HhV@o(G~t_B}u+k-MJ-*fd-6| zZFIrcaMp?^YW+b17@acu=B_*$uk^{>_b=yGjZeJ!PF-_rpT8-o#$E=Ahla#aH5e~{pgssMskWiK0SMDSwC#BqPv5>*sU0z9W&0YTuDLo*bsIRDGIwV#mSrh-9Omhn_ zoVK`kcg6^wB4q?5;butHkpIWi?i61Bi};ikuj7_0B~f+V&4LrB(RyEe7Q)O%TzBM` z5Hd!9Z7m=`QR*>2fb#9uAqV&kOI^dE#c|Gh{%{)5ss}Jr{v{Ez1Vg(Y&Ks?2KPmI3Shh;k`lqw$)x;)UK z5Du_~(XU&Z!a3Y>AUFJU%8~rC?MmH78|l#eeT_KPe`jUUeL5nAF$zUBc*fVq3-@dt zH9zOeq`SC1?Is>3|H!)3No6dp*uHC2eI?h(W&!8CH#REy#dSO@rAvW!5f5m)%%-AL zmPC4;a{|ZjNXt>cIBpIY6bk?&VI;Ck*ConIwcCiIGY3X>mU54rQ2HCkb>C1d^5`7; zH`HTEmWQ9~|A=%U)M5jpUIJE9lD+dew{kmkG!pJ<$|6h4fN`LV$X6Bz-NE_S#(LwR z02kJb7H43l_1eLFJ=VSBG5@doTMMX#@5ZFqd|RNpCN;X{E>lg4NrWs7zg6zk;pp{V zn()luWtU&v`y?M2-4)-A=g^`W5YXbEheUc| zIU77d;GFC!V1{U=)d*?abHI(g!WeF{p)Mq!fE$n#(}x6v>?q_Je_?C_7oMS&gc%8v z#GLahr_k0t^1vF3!3Z76FG_--XA%J(6v^Yq9mjhCv>Yw zu`$n61;o;0hN@P-(~Vc&9Af`zB)s1O0c0~#eRd>V0sI~~r>*z7QiiNyC7RTO=la0x z&$}FqMq`UxbrF!eGk)zv`-Zamjs+HzZ;Vjo!EK!3*LEC_w-gSGLO3sIF8oV4gmi`Szjl!euVVfE%XEhNg9wmPB zISRZJtki4ONWXi1(s;tI$tkr(*qx?@5)mo_W_j<~%1h-cdSE#bZ%o_*$<0-7!8$|F zX%Cf7um$hGCrrbntK3hm-;B*KeUQX^U_XL!OG4e1j9?eS%;Y6}B%6xIqhDFG}p?X+q0(sxZR7{h-C*)_v+;bt!u&?uIXZn`T7)o!YyK>BSAy@64=0 zCkL(P`v2VyX(Uj+vjB-)jB{Ki&x1dg>+HiQOR>oez!0`q(Jro$`w?BCfyL(TrhMAD zr6KEZzS#)cTD%cej)^0OG7dIyjK62S9-Gz2!8pgm6~1R};^I#&%<$FuFtFBryL3%l z%n-sDHhjDOP$DGx;RjB5=UyQE_Tl9arEvXRtaELRUXb>Sr!3cT>mw~RiTT0U?mSPNIH;H3mrl4bqGg`+uap@Tu-o+9wOX$ zbMR(+1d~`-^Y1A#x(=?j(a8DTuPLOK;*_M|RL&VX#;+t*-;vfn_rxxn9xpQJaYj7& zn@CFUckFOf0z`+2lI-Vwuja23+whVpmlP9pgw36i5#Ruls>ZI^@14sU!6S75&wD%U z;S}~v4c6dKQvMI*om5^w>|O0%!qZFaNfvXNfjN|iv^t&dFlIvQZC7{KH;~VXYt;AC z>yL~w(Q3RU%NhUWI%!l2ZasQ=+V67Mhv;pk?HpXpvde35@|GE)A&Jlw{y7K?7XB(v zyhQ3!V`+kzALLA#$?>a!!+X1s-G6WVi(vSNI@uTu3L1LV{TnC)zu{36R`-972!|^l zcD}QihQSj8t88yaD4gnmwOWCijS{r4JmqdTnopw;AD*1-B#8(SJnWoSYeW_+!X}D3 zS>sQ&G5C5@M$}F+C3+IZ(*@%|Vtd&-oR`R}C`t?*QAxd_2)a;uo)&uybs_MH}_-pR|n3hDn>zmCMePbF?+fK8diAk@ZFjOpy z_#O4vGahqyLzJ_y3x7`!6buY8BW1+Jh3smi$^y-sQPCIxB4$+s;dsl}2e6MWA!A2b z2v%Q>K_htv>ir&+Up$aIvpSsId+p4LJRJ{V&UA%XDAZyog`i$#DMAwq-Y^{Ksce?b z?wzji?;{Mhwc!ZylhV8hHx*0^n!kne!9}0(dl+{}?r@|kjw2K{A~1=@CT#-Jwg__| zq0h#n%H91A(cg_Bu~g#E9 z7)AK~`l~MtMuMQrfdn#CTZ7>@VED_yy!PbT?J=9&W`B%auPKgNbl>Z9b4&tX0a310 zBVQd1d>$ofD2&Km?fC(pe4Z>w9gZLH!zDUdmXP;mUlR9VzeN|U#itRcr?DsT#(R#& zCeqnRMj-r(u(vlfjpHFoAxW$Q3T`+h z%%u&LSNQMM{hqW>OJply7JD5@#6C8Lw7EWuk}ef=Ef)DVD@Or~^l1lw&*v|WMT5we zL8;HL(H^J|Soq@CDGq8m>J*nv|5thqO2LDw03m2vY}Gy-OeaX2EN_8Zzd2b;Bh&d@ zQ{s8|TIZKhs9?U^N5~GF<1&gbK7q5jGq++bU+`KQ^tN=3vv%aLadBoE7JbMi2J#*Lv1Dypi}|4nS&*uhz+TT#V^m z8#ywiE!Aj~0vXaOqVSTUj_hmmMZyr@7^_dVOSEa?`ld- z4b9t*gr=J8yfkkXte})JAtTKsB~9BghXJYG$m%ctxu&bM(1pjhVkeSqdhdgWSh|kxW>(Ngtg{=ew z#<)XdH}8;f@*(07PucFg)}fiDAyq;wAN%Rj3$$v>ugm!}`h5N;_k08w31*u%t~3Sk zC`nf{T&-8==48#DvpJjVwQks))^7%~$M|*REa?)6DX({$ary3?uUDgt48{(J;-54+ zJpqx0VW!J2$nBW!Idkp?L!4s~{pYepm6LUBlSlKT=Y>g~+Brg<&koNzM!~QOLWpUP3NG{(YF__UC=FH|miIvA*-V;bKbSb? zR8cmuVdXtOF7MN?^x4Hc&BTviTt|i&SGM*~rHy;I zsptF3^y4a2xo8oVPq~GI*kZNRqY8)ph3va}XHzId8Ua?3G<)Dgh3ZTqtD$F3JOOP= zhDt-Uhov!wQB5A`q7fYYQsdp*n(|?MdO(R;zudzkRk6f8fy!cjGlZY}4W7n=Iv{`2 zbo=G#ZT{8enrv=yg@SBYl<@4>WvL=$?~;IO3Z3YRreZH6A5URdm*{fLyXJij-KScs zLN3TWWvOgjAWO?6uJ0T6v9AJ)yi`V#d z(5=VJjI6r;^MZY#yh**|J)s@>MkU|;r-pe*r zW=$TK-pLo)4UkQ4KKLR1={(nSXDk;1IA@rm7Vul6Nn}l&m1$jm4WGx!=C=?e)F0G& zK@Oe$tAkY{{-tyIy|ef`j;jRn)Za+5wk2nH(IN8!#ifInIJ4$BDEJ z8t!_+B#kXY@3)hK2b|^lShgY#R}fsb*>5aTmouQe_E#105wm$ad@F&rAxX~uC4*o# z&nsFW%-W&LIlew8PRK?>QhW}hJh@@rF?&dXx3pn84`0u8Zyz3qXc%#_U%)exz9M3y z6JAQcifGb}<1u%PDLjY#B<{{`Y%eyqdos3`R}kz$WMe^CyTltKmee{2Wp*Zi7p;dh#KA;<8|z<``UfIdC(h!06+bw zHNCu4x$06>{u^O_11{kpEa_st@41Tigx~Uvhf91`tB-{+*WzcTVL9$MLzJIvE{^VW zDIf9UyXfBrl_n8-LsgX#pS8XLB=A+9S8(?}bc-vrsPi@H4jq`Ub+GNwBT*0ql7$H* z;aW+5Bt6f>ax31`^G2o^F+rg5TE{k|>|38{35%%F#m=?Q4J$mdlg z!K^zHZQcK7tEgG8R7}WPfRVvb-#@umk{5a_S|EfqW9q0m2P=maV!9YNfupfy zR0W;=rvv#bo_gK6WccC*rdxcfG6(4qi6u`?ZQ}E;r8ORr8e;;2+c5t+>>#P)GaS*9~;1{#J>dJbcJF z;hYKPOW0qI#ZH^SuZye1^U9)ntY9>~`%2Z@&K9fWp>icsP+A)8VW|@2ViT271|3c$ zK)~Q|QMhNxp6a6Daz8}fggEH0v;n|X;RhzUBb`(Q!QR^zNS^e0RC5NYq zR^q(zImv)2$uRQA9*q3>H_3Q&yR!C}Sid@Q|rFa7yMJ?I%ZCfTe{N2zx}M*;Gb zB?`*R9{~#|na-ZmrsI;aa5O{hZ5y*?**GTNpie=)ClLwU5t}&_0cQCg65w>nnFwN748p`S03IVr!s4_2qHkF}7!xbT6gqQ-( zw0NWgD7gxs zKO!(^^=sORMe^|4-U0Lx2E8$RJ|<>EsFgt_5y=zU`XXlca%F>DJy6Kl3o%sW931v` zcr)}li*SjoXIyJ8M#p;w>MnjzL95jG%z*-ZnK{IMO_u$qbgkjM1@e#H@$%}VI2@Pc zH8%T_+cVC#r%zwMfa~rsgm#Urjp@8WG3gUqw^45*|9>sO#C%dm;GbHEsZ5A+%3mhR z(uGNdEd8HJw_;vUYE`^~#R>+L48X!;uSxG^e=z-SJRdnC9hh=h0luheIYqYd`||SQ z<9~msh19%j=#2VdWFIj%?0M5?uirAZoBuNaa=9%aS-kZ88=-qH6kyB0TU!kWF%n0u zdZX$*1S0wlSIYRdegdX4_YXzRBJ1-^wS&hlI@XKz^QJa$`!q%5 z=sCw6uAm&4E0Ui;W5TTwC5j@(7xW93B4>$E>;ni zbnk@#a>AN+L@sdMcxpvl@-{B2VGr}Z#~7$a2;v%Zbl^Ge&L1NpMP}(%*mGhaM|MgIP^rPe!2Ebpct=+OAx1?)>WC8q zvcD?}$rd77gZ*|ciEnT?BG2I5M~LBEm;WH5WDFfD0HID?u)KN%Js-DPv1M8wGm?)e z!bQcziGKbp-U52c(+eexw;s`2goj8_7M`ExUN-h!?60JemDEg?IH({m4L;mF@AR3Z zhK9sA+)deFOE6D4^qDTVl(N1ai`kb#i_!e;`=oQcuO*~m%;}o<>pl9wPT; zC7iYToG5VFb7u7DVA+N8bS;l4i;YjylF|;!M6|?Ke<)hzx3T1BzkEEi zcwQ$94uSmU{$6-+?f%SNO=F2A0p7mjv{H^zK!dv{Fm>&4J+PTy(u2=kVMN4o;TgVynUul`eQ_w zZ@ob3!Zc@^QWjjWW*!IBu^g@6DO^0BJ$E`-F2*j0j4^61GF=sviIp2GU2L_;5F#9= z)_Y0)NeJzy54Qc5aJxF>her%4?Pxm%>k^&w6GT~$QSdxG{@PXGZI}RCD$tjI0f($B z11;<9xj@JmdU#UcUQZZWG@?LX7=|*Jc(8h2AR^;$DtFivsaI^Ha&AOpM`Y~Z?wG3`%ah=n09?9 zkwoW9PRk+isn>ucERZJd8_f8$GssY60U7Cqgo5)m(s=uq-WOKJBir{)Wzlf>tF6I} zO?E>9_=wgnc|(~b0)rG*?=ODR&W-7SnCuT{Yx>hK@s^WPxP&5XNK%SGESrd@@GG4$ zttn`Er-Y+Dv!B$NnD0@Jr2a%-98ce;QK}i7Of6xD_lFL$YRvi2m@rA~XKyZ^4C@-l z&R<>aFlvu!a7IT~`tbFo_qz_Z4K$lh{fg4nhagPr zc#6l(6z(JUS#C`HKc3z(y0R|V8t$ZHJ007$ZQHhOcWm1o+qQjT+qRv2dG5XM_j8}I z_m8v2s;XIQ&6=~$Xi`*`Sj(Kr7$TdfpFH8QS4uHb>I7t13DANk7BCkSXofW$MMpS? z4Y+J^*&Q-lme)6mjjiFr#M0va47eEwh(smzG2!h#^>Qj&W&PP8ifXdjCL}pyQ_LS6 zwb3Cjqt~ZuD8~RrPVE`p%(h}j)d~)+PoeW=7cO#%blLrH?}7k-%YkSXb5~wTFy{eu z?>SrE!Q}4-JY93jTIF3R94(mkKcP7Gvx4<@D)F_Tmiy%Hkw&rEM6bP5+z zGyc%O*-Ekyju%M^vPkCdJ=MD!{kgV%3rVPowZA4ai(3g|dW?y=_`D&RdYk(9Y|lhm z_a{CNjO;poV}2q^HlGa8hXJ0B=^^esty9)#fEhSI_GcF2v#cpy|U#B-nlUIVu1ez^WA6z~;Z3FX3D8c)AU zxB$kVzlkjFCuwDqHIEUaP9DHu9@Tu1&d=yEVNV)cO#276dTU8CR?+7R z2Wk7}(U*+&s|~iNGsz$DhIIy-vTCfHa}|XkAB!!|#;NK&iEqz*$=u+t#{_VVoW

    Z=Jw`@J`#aqXViW9vkhziOcc@Fjn=y*jyAk)EP;Rs4IQp9J zsPE9LR*k}(1omG?VtCZxzWUU|LAO_mLZZBcTaV;cERS5o8ivAk830#1wDny4Z0;$p zfN39jE*S%w)Nl&6I5ab-CXo?SQ=T}%pkfxkXNI96DQjo6PT>VL>)2cxqiR5BjAa#R z)(nORM^d6%Wu~MFdd&#ztUe}Dohul%qU3gR7Bi~|^rQZn_%HzObw3v_59Ggk;s)6W z;DJN~unY~3kSbc!%O@#B3l0e*o#P=! z(C)G|UquqIwjtT!vHKB*RDNjxC_af#(&F=RWE7YoOGHPABCX_H88~)t-_VLBR4^o) zB`5&%h`|gN-%;CjeS#J}nwD2Ij52x7P^eE%(QTRdMJ+<-Ki2Bcr6!`}ilP)XP zS-3yq4gZy`8kOT7Zwrzhw}c6L#*=)86Hv}t8}7h*Qk20dAxyNlSPzBsjmhG24jBB% zbfaHYr`v7$pB>Z6036_zfVEFri1fe7!}7n<_g*7P0zvmbwGaeY1_b1AR#@i?dX zWqxYza^xd^g3OdsvDEd5&d0MQn(q?4`$al zF6CGgseoQId+WvYFC9V5dbKxKefjAn_t#+g)Mw;xjjj}?dS31(XKKOj)F}l8c?iXtQ+sV*<|?mUi+s z4UV9P|Ajm?qW?^I;1hvtWN02qnL;#aK+9ei&d&M@OB(UBqc#lJ*xJa-!j4B|Zei~v zC8reR(IXDfPT;Pukkj}a@L36YOr;9E5`?y^_d61cmTO(?=D|H)5#a_4c8;g<_?vSN-HB{r)IlFbEGI_rGZLG%S(5z3)Gw{KllI$(h74++WG1(8l z^{01a#;=1lzAKof=dML9+V1J=ULjq^S1g<~2M-SfpXT=A8{_L98r#UkYov@?9eD%n zhnd%_xBRPWUuxf2qelW~c!PrG35_aICMuRJ$DdK{3qKg>yis7!^?Tv~#X6$*aoQMi zeK_R_DH_mr_j;sLFGLKB*2L}tbMkUy@+?DCizafV{QYLhB^sT>Uo0unr5&8wh18`Q zX;v{CbG#no;6T!*wF!!l@zb@gcv=AsKqId-hoQbrwxxSJgcytl&H_N zg6x0FBd~uD&3}mL2O(TsI?RZdMr@5YS5j~@yHSfRUl4XW@rgd4iI*_a1Wu(ovabye z*x8xZOHo(&Ez*1Ivk}VuXf#N)Y#=m7M431HrN)9F%fui?Hdtj$R?r);VX#OWp=bvC`gt!=!5#ZH##f7Z}?zpP@8w{!tjdCo7h#ta-!-LKnu z{1|;9DR`1(^FX;%v8F2@`cm)X?ag8+8Vj{M*u_zZVw%^ zYS9tM|1{h`z<2Y%>>gg1GyWmHm!L?&mO(B~%P+=pdwLk;b{Z^YLU~I9W(_kmSd?6# zdNK;26x=@wj?B+FD7;r@>sdK%=fHGXL_tN9S65%TQIb~|cX7g^*T@c7P(wgX4pS>> z7H@#Rn;PLNn+*)@p#m*=u6q~ebhzapzko?fPR*mD!mn8iD5+uFJHs}dhZ5&PmT2mN z&%1i`exD5$HaV?TKD2-GCLqx1C+Dq8e(vE7#9+E5BVzCXMK;&!N5`|q=dGEA+;@Q{ z6Gr);jpm2^Ut;c&5Q1F%zaL2cYouSO7PU(w|0i|-{O2CTpSFfZjBbeJ-|x?NR~vPI zmx%^+#{c^O=;s6aZ)oM08ePzmB_j8`-E{RkxLX<7GntNm-xU+@Zl!uPx?LyRJ$?-; zRW&uopU>N3B~~}d+t%3sv#PBr{E^9_3sadE@N{`CvA2u~K=NTIJzLsydkWOh}@#@dr2(D4;akC$9ApwBTw-9H*Hcs&zSt&GaF*&fEH z*udV=*sG6_xppyvbn#4v{Ya#-P$l^v#OKRC!kT$5Y$7+7o3Ik&o@g~3GxjtI>y9G_ zCQ&#CVgg%sopo1EmFo`f!7=);{oyO?$v6AOZZ8&kXpB9y)S9h-bAVi|y-!8DBd3I@ z6=p3ijIVIlz>~RCX|T4AmiI-NQ(T)s`dyqreiWYvkma~%H+nGpS?#u{$z!*Rh(3hy zXSn^*;IvkqjuT2wi};4dM{p142hvBevu>`j{n?+;bA0zOT$h4xP680am~k|^?HSFs zv?c=KX^z*^7&o$f%okar#(i?{N9#+%79I}Df{8L~R%sxbZqEk#L0jsqHYJzvP#es5 zeawY-Hrm;Yz+A1#1(26gXFu2Xj@ZJ;(B%ks=gmBh7U?LGH6P1ylu~JjIWEC*bskA@ z$hdp|>9aIfUF#pc{Mzz)qi|JeG#R>B|HYvrwmJFP@=V$}LafToo(*B<1?(kbyY<`NXe&Yk<>Q5P+8cXva5d8Wn6`kIE#!Hr`p~?I=&}x?XgYezn} zcS4T#=r9`<;Gs|Ob*A;}ST8A9)$8@m{swA@#%T3*NH<+;|Mw6eP&KCii5v#M$MidIWonJ-#ButnTN zK*c3$7MFTTS5ht|G(RREDrKU7sD9mGxqw5X%M8ucj1)Sjbr+Wjdhm!dL!TDZu?0!T z^Vj8!!R84pVoXM+@Z=0>A#Ic)2W5C4D`#^&6Gx%k#(fE&Tu4Gy&{mDEZVuS!By1FA zAjlpVWA92uYVh9|o7&ym29?X5VvkVbK+BG%XqZ8cpYCecAR z{sn2vp4c{75gJc->Dy(R_kFJlT<#18c=?gv&Ht8J?1;&i!swU6%(sp3w_F(;6)CnT zIm8$VH6C@Xnr(e@FCG)qZly2{+_>`RQtHkd9v7a|29RSXiA)!5VIDOvHrkn512GB~ zf(pjrlA{p|RE4&Ee~&e*=*yQnpksw|cZcHq>?fP1SebQSP?W}&-%i2Mf#5L2BeDS^ zv?D{R0ePyib|=5EdGb^V`&A6)$>Y@n)SV^TL-@V$M5S|tdT_4>Kkpb+`qLJNmh5K3 zi-2Ry_|G9)YjeFL=b+>NJ4%cE57(7a7L1>S*;SB+;xZmUfufz`ZjvH%R;B3FboI8& zj0ji;5**S`^E}Wu98;4n_D~UVHVI0Sfb;223_u^%H8B3gNNm@u1UzQBJ9kEh;`ybJ z<+^8$;Q0lV9^dmy~5VHAVjr-~^x|<_hR3H!-;{ z&m!+7qS*%le`2&%1*##1PhV^JCvw)X}EiotGMzot}5vg~DWC)`Uaw0p*RoO$_fphfq!UH> zJl-Q4LV;A1%+%+EesQli;~1UJ9mipZ4-1eQjyz?DSsxx`uZ$h%UUw-6*xJQX>v|0lBJPSLup1es^#%HP+XXu-hhq131cO$sF3cQ+^H?PyRGR2p ziX<2qW^7k8yI6cisQFG2@{rx&YNvAp6)~1xr z6EJs*z55EWD`V6cjfo^4$?wsJpmgD$&j4c3IfW0B*7_Udh0u=P;p@BE-3L^=AU0~H4GY;kUhA(O8?dGoh`V4 z>{2!ikNar0R!7B8zhjEQAK0=E32`Oyb?MgI!~aE=Dr@pMv-%IgzZ7Qc3q~_G^j%Ep z&_t}(?-$8X0QiAlUlo3sJ2YgY^~xC<8nrRWk3=FwX`sQw4)l=4?g_;oX1D;Iym}<+ z7X6yPd@_IX@cn!B0(<$4chvmdDiAs^FiXnpK&r-R{w`H@#&3)7@zF;wOl8lg`f963 zy6lsbWt}dx5yh1I?K2iYkLOiG$zFs85wkbrK~d%PwBFoRoLD(S?;-@pqcAr%7lK^R z0*O7qEf!e|&60Mmt|R6;uz0ZRIZ)LkJtS~hki@jLFD;hKpxaw{jF%-xN6W3#qmimcudBBpVR`K^eVYT#;qd0_{DBiXVKpHf4EzM4L`JpQrF zXnAhMJwrgrpmJWueC?dFd~&aHpy&F#T!8!{BsQyVdnLaY|cvfBTVJeYsVvKpv? zh~L{g_uu##CH{QK;>wiOFku*SvFzNifjDDF$b86^sIDjA>4IS6b3@6&IX%>rR+a`b zF#%OJh|R1B36tfaC%Gc-5|tG-<-i4^U3q!R|6$51g{vf?9x0aC_l+%v$KVi_Mse_0 zqcJ*J-afeX(whIW;gB(I_rD9M+}>|>cnR^??!%-iBFdf4%MI| zn@Z=U62gA#fWKO*A-XWSfyt%;R{VDtaN_S@zxIudPj8@bMqfI}W>@XuVmHNJ-cq^G zSh`_y*@I_!I?3-F6zS1rihU@!fLwTGXgGs9^cHPNh2xGX3K);#09t@*YuIHP6_`wExyMTTp=u7g*q zE;wL`uG(@r5{GwIS7B9_#hZQKS&kX0ZY|eifwBV}T%U)w(nj1ec}W#EQp%8Ri57JF z#&Uc1kLSZ-tI%hRu$9D|1yZwnm*`sJs+a;e!#b`qg|)d|rdIGrlm3S>XJnGSu6MTXucBWKE*5tmJNAj9FvE7{rHeDe%Vf5b2 zNOSXdzi?jDS=`@VXITgFYy?P?Ie)Ju07tPS%#y;m1;;l62x}MQ~6mg!+<-senh~#l6rR_xM3{@m%*97XGLBlih|&Ka>2p899~L3TVZpC0P6wq zquv@%E5F^3hU2PE2LofL$N;inEF!{Y%Z%3j!~r^(6AqScWED9X{x+s4$1XM+^~P{9 zhD4wi!7H4ebJZ?X2Tel<$(D8Ik!7Wd2y>i4`fObFN>vllk0_=oy9Y-y9XI;ahaMn=6ZZypcrLKTQM;K084IfZwquxejf!^RL$S*_1xqpAHfxIhbr^*&Ry`?zlNnFh>+Vy-6k0(=QetMi1r3RU_r^-W`0sA9#OHltm zF2FhIOn*)&a4rIdm+zYB&@Q23h0U#tN@D)Kpq^*g^LCj)jw8f%t?J-$_6XNZZ>&~x zT$MQK>Rv=gU;<$}nTdv%$8$Dz6eI&kD0rL)JGfjfRQKuwP52S{oiZ$H^%-ITczhD;yr;dN56D=0sYsBcT1p-%`sP;d4#-+O}E!VfV#n*Hpi-jdK?Q(AIFXakvTnHBzvE7sSlyKgF4A@i{ zauM2rKkWZl4j&nU$~JCcY=p?*(PfX1^Z*s7!nQ;O__xHle(l-95`@{j+M-@`d>3yp zgCk_o|KJSRTfJt>b=a>oV%!~LN_e+KyN%F<2(LtnlLRDa#h$MSZ1sCZT4)U&aLT~_ zcGr1&6cOnRZlH-ERVgXp8+LoAY!*aS6I4k@wuOYe+n|ri3%qY)5MADUH-v-`O-A-` zK)AZs1>mmGPb{<2oCs+ap?wSYB6N;y=OGM?I*2)?-h;__B4*+$RcCx*8JCVeM|fc z9v718j}Igk7EL^&CM4_m5Zt6w zKpSN`pGg?}*MLs;c$hoEi#>hcg zha0Xa(|23*O0O^uFgrqSdEjxxLOWg2FOVmQ*K5j}H|#U)=BADU$Mr#yIVic1RGVEi z2TJt!wBb49ANk?YkqVnLBUwf_EhwiXAg2mSOJIYhhjJvYbr$e8Xaq$|239r2k}KsU zgwJA0FPu-1OHUnoTf=CyX(Sa7{X>5iE0>?A@2_bTDT_0(&jOEcOYz z3M3}`!Gt!C#O0kQsjU=E#=bJ|)D&FI8#M7I~c z;`zJq#mz9M=m=UgJ1Y4?gYXiGXr6c1D(~e3%CYQAtdwGhQ{8?xlM?6DCUyb+O*=K& zO-Yzm0oCd%xhySUd&T1Lc-W>6-bst=$nyI-eI!AZQ`2qs=CNGd*?I8a%q}L{->F&f zWXYJhgs~i(P!Hc#N!=6okh^k9-v*=KN*d)Ap|<=Mr%g!U za2qT$+9Swsp8A*X&*Q0rt6=o+~h7+_7Fs zkzzT}F7)fc_EJRlf+A+H_}>!@$wFDqNvm|>RMp7|9U&zphE4>*-|K6J(y=^OShS-6$n>9w%MmnIa8l4J*v$Jdl$EW)BXxK=M!k zE^Jo_Ea8HH;NIzP;gV#wC*bOK0%O;!Mkv>Tsabfx4$i0R&*c6L(H`9`#I8Rx1b^=y zoU+()mT!{jW?vW{nsMdn_L~K&R^IwK88^7*8midZ%P|*XC>`@<m4ha2^_l6)2PRn{4RW zh8vDdW#*N0ShkBD>Gdd)ca5qt89!qO7#jPTSZ423Trfk zwFD4B?f))F+aW)KlS5&8ni0t(=OrkuH`e#si`o%phk1frd6D*}h!x+tV%)Scj-v;+ ze_OY4=gDEcJzoZN@`mzw#mMUrwW{}E%MG**rvC*JGCx=Bi^1v1uc~_@(sXqO(`=z0 zL#-2es`|rQh<k}$`5#(g8)LavY+0q}hi<3V&eT}n zA}si0)nb{N9Y=Ni=#9c_z5Xi^pbIjUQcd!GyJm1{6K*rhJlt3k3p63}iffR)tG?are%jOMbO&Z+AD~ZrnQjj|<=Q77vJC zGSV_M7gYo*<_7nM!bDAkcUcnERHcvy8*dp8k&E!$fLi@N7wUwCeR&YTyNw_AvGjO9nUYjbaZen<9xF6H4hwib4!AY6 z>1A$hRiMl9FvGLCA!}H0c{pvhpy;X7c-dH6g(cN?k1VS#JlDCrKcI9UuAKH z0^#^55D~qFK6Z9|!r*3)FxgEZXcu8pzaG1PPPT|sTV5D|gn}hD+o4|D+G;x;qVR^H zP8{zT%o$Wt?ar%x59|W?94R+)!uTP#dzuq+6*EhmD+IY}pWV=ljd|C<=^9-Bh7C>N z9ym`ua=TATl7oD~LTGQ3X(!@4(p{x}!@$R2^_K?A-HtOwo}$dWEMlzqpukgmgpH_G z?H7%p&kUm;0P$$tj7sWiJR>E(yLQG!1~m^{8%lh zjJVp_)ZLbsu^=&dlF3xRLr0FHhpKifB!kRS6}aynpewz0H9|t(^+weOdOK2Y&aCJf zjNd@8iS=tUG}U!t!iZsVTcXBSj+C!H*I9O?a4?lPICv-rIP6c&xvBHeCzgczCeU_PkhfrG|%Fme(~B zwnW>XaYZunO4nd;BCWwoXt>#``-|nq=Z-$6$1??ZJ%_yV!|VFExVdy;3lxOXpm!q8 zoc5|Sf1{5hALH!`KDR3Lve*Q zn+}wiyB|zuhFDr#wB6bUV$tHb-Kl{+^Ty=kSfe!$GkK8jdOiA^N>5+>m=)mdNke4{ zCuFogP@2w^)^TE>>uv(e6e7$FAY)0yu2c3Oo&o~5T3=b;-`V-Ax%%Ojp}gszeh+?s ze-E90zabm4#Suy`CJ*9j_I1%wYg=0hgEbuRF1EXLlTA=Gt@BI|s0lJG0E<_cihDoW zOM9nzo>CXin;tKQYHT3OLJnkW>JyIq^0V=z)*AKr>o(GMqk-r&Q=bD-rcyB7fw z_#|_(lVcLm1Z`gGQVQC~lliA{NMLyetw+;d7f|}!i#$cWoCI6faCbkV1Js>72`6g(-%=888_b6?YH3Znay7*n$mfN z$tPz$A*0p0cfyPLeuX4qLVs=PFPt+_Xtx=iLV>MGh)2-1Y34^RUm+4Ck>!YDpa2a~ zD3=LY7&$q01z>r2b4F(k>$Hg28$Ppr)c)9rUXBe(vSycVq|rY^>S}gHnC1GU9P6o1 zIG#@&-jS%uIFMYqcbrOyQ>FQAWdW5RtRZ{`r`b_f=_+ zhVh2V34;V%NRW4S>?&oBjS+>P!0r?)D5d2}*<=S-I>i$g{}C_@jBX1Vw62&fODX-$ z#g3RObJpf#{eFr-GR(Ob^DP)(N24^dA(3W7F(Nm}BH=#qy`*MR_dSwLYEt)kS5c*W`2nIN4arP&!wwSg8xS?)M{! zX|ym};a!|eF16r#osYP6Dvx1y-kr4?#ezF}v40!O&(_AwyL4k0kxxa=4~jiAn~aG? zuHYh2F54kna{QI;K_XSn*7 zK*9N7uQ2%pJ)8Dsyed}OzZ3e>#s1=6PZ_Cik%W$n!0t;kh1kg?BaHPK#_jDMMy}|_ zC{PPLdP$-{T(iYX7(+gj1)< zsPUQ#2)M}95b`e!uc&FnG^b%^E_MUEe~OWu`+TfmO)B&!TR!cqm&J*6VF9XBzAE=n=I~qS$o||OtEp0 z#g(RYy*Q6n_S47Wi9N!y8Xh*P#%Fmm!NWp%LquoUyvXf zD!5CTI#sHA72KG_DFtyW_$t~gITT0)XnI>LcGLAExB@NvCcab7B*y$+gGZd@l$H)Q zcz**579vqv*)u3==<@Ol{|*L%uj(kvJxIWoI8y#8a_*fjsnfbR*$Ys}4AABY8^P;H z9aYOEQr*nO)tc8>pD3s9wRH6HC38_kxzx0d`~d~Of=N94>aMObSM-;pAu-;;#Ae& z`BG9d;v%f$scO7?D=&r;zU$~!4u=O{C;lK53Y*chwGx+!Zw#&DSrdGZU-T-=CQsp_ zt5BZ%N$!6MJjbVJEtoUyEoc66AO=qyggIM^xbHcIfN>;SabUFK96z1wBHC?oyIH;E zyjWjtxPP3k!|I0VXy@L$cjP~eF5ScLkmb6aOTx$kh!crf^cRG}a`AnH^p^R=C6UF4 zKs>|!b~pYK@Ah)w;2UI}QW;gglGbF7tlbObemQFnDVm5TCLupiG`=gYPWnxBl^gRg zn#kQk5ns!-bkomMu;Ow?laZCrT-*`dGbDMSNC6exL<6HvHibe-=DkrQpWi>G8{Axt zu?+cF$6POEgAc>42sdynK)M?Ltz`MdUTls9N;o$?a?pr;Xtshq|D>Pi`Q){7bX-g_ zvoE`pvjeoDo+Ud=S$N%RcmFbYJ&Wwm5w36xgcvDocyXnmK#&h>jStrJ0`L5ooD^w` zys)Z&&;}<_Q834XB&PutB9RLFj#)On+``_TxtNb{B8<$PX8N*!Sw{J|;8|?$(ea7( zk2Ib1TAQGD`&LYe9{asocYv6>+FJQ<3>1?7$;}-3ZI4Q7$|J!;J1qAq(pe8pGi5=BRu39WA5hBVz5!Vps?AqYTz#f})H%(=O)L?#^jo zMl>W^Mq>J%dJyd%1HT1FQq|i#cD;3wx`J%|N|4hb8Y7yb6|9&$KD+O5B4fH1l|H2; zYjkUOJYIb4SFm&wv-M-JJtm2hvcN z@p;`9vT#g=tIZrAy5uWl!z8Qel;47s+!gXjS5q*&9J8rcz2DQOLOCgWAnsZ)@kq)_ z>cde-2FIea=XzV&mdN;oCvGw%G<~l=8f(4sKqR7xAXO;-y)4OUL$KZXilQ}?`p69+ z&3NRrrPxiC;k*B+RH?+$j#}f5X@MUmY`#C56~oKFJAS2(fZA_jsSu~h9jcfpAxasK zUu(bJXjl80IE~layEvJ972$oG_A7<2Jsg486Sf=O9kH9f8NG`&H!Bm<>`XPH08L7= zDXP6r>}+U;&HwTA{5U3)K69<~z9jNoz#%j{&`xoQG#E(jL2z8Yuk`%~zrOt*B!=q| z*6`kKXr^4SjYSnIMb%}=-uVe~U(DCf)aTI%^>DoMMEAW@R7gmyNP*t+MvuWjVU2OS z)6k0XVQwN}EMqL`1S_@pDpculr#>J_Zgsu+#+@D=VucdQQrCR|!S~6SF;vqv1fs>! zHmemrwX{2HiWIxOnYxVI4d321I8cFpvl5|}#&Y-$W^yol>8hKxnw{&r5yCq=cmpa| zUu{OvJXO}&z?*V5=be9_V{&<4QQ8b!^f9A0n5xVqQI@|A2(62%9ht65bKBx@69}m| zlrdUA+E!<`q&MQZuSHyzPjXI4!?8+xi3Dkr7VLS?F{)qoc)I?G;NkOIJ*gk5prPYy zNy20Gp(2kly^isd{a0FCd=!z>^C-G}>P(&-t>@F_`AA4gdIS|-CH1i8d@1y|JZ4^@ zWQ?w6WNH#!Oae9?J)0z;e=)WCavi^n7Qdtw#l`{=RON9r>-Xtq5zEn>G@;yxj=g&+ zai6Gwgm6xNx+F}iGvJ)dQSBYAacVJCj>9VgS1 zugxj$u9Sx;VF~hlJm*iDpeE&EK@aSY4%63CM4Fq?Be*4*Eo8O*DJFr3KxF0W&&nG@?VksYJayS$o&Qr%*Z z>ttdk2Y+sqMdA{35=V$AI^<1~6ZyK@LltsxMHXI>;&NmJ1<55q9UejgT|)*|~$^4HmFnCEuhE zo;$9+$2}r%o8J_-a5wqg#MwyaM0<0YO*PU4PX#p;@{$tKoT6)f@9i&}-kI;A2{Bz> zyOb11H+3r^IhEO=d|RxZNOM({I1pCnk_L)*A|(Y#$-jN8n-5Hn|FH#%$%Au-a5{bg z6y~6@M(Bp1%sd}1BP8|u!-Y!91Y*Sgfm=2~`|H9P4`vaQ^o*^h0oVM(dnh_h(!R)! zytUX4bk)UlL@EfICU2{BgRnHS(>~y2yr=UhX{L?2xqmF=rt8}EwUyN*xWE(q*WJD4 z_!_HQ(~^{&tWhaB^fq6u!*yPv`qBmjR?Q6Kp>@^e-w1r4*>k)UNOG)N=XP%AabEFE z-BM=Ttt+?=1@jI0{P!V4;?^%r5#@*Tu%QTiINSN9&1(X74m@;pJZWp;A!zzT#bx(5 zO+EW!Ijh7k^s?i8W2S}gjOQ%#Sz|KhC%gDERI~)ne$Z--_1O*1nF zv_BO$^i1eAzbP(1ZLl~YKFgd04$DhO3No66^wjOean7~*;RRgMvVHah>Fv#>gg^6) z0=V90KL`(`9DaHl3Bk6wQXLR;zNy}5UVEYgvGNGMR&-m;9ka4= z6vk;c2n|VqsswLbZ8d>F3Da@D`V4|zI`kOv8>*4(T?mM&QSgqbHf_jtIw2q-`*jU$ z5J)~v0VbN$s>?LF(Sc?{-L|f3?d)w=Fq$X|Q-d5*7$}ql`I^t6&n((LzagKj{0UXo zcFzjCPr!r?jwQv#e`QoW1Qf_25cqFJPq7tsOKUX#1;SNTOH{*Cw9WlQ5YnP5E1lD2 zXmN0nM%YLEBl$0O0`+nWLC!F+qJc-IWwOa4IL;5se`0w_w?vvzl=mHq2d?tCE;mEf zQrm0}O?2MMs;s*0HryyuSIhBi;N1&(?g~`pVF`k!FTAg#@*6Xi2th9-e$nx zwG9y84_4$<-Q5*E?I|Z{#;TVrc9*`Y?5Wahep`$?n1fBoKE{A%+Pmf z$^{K(Zu_(eMMPa7AcBJ8*IhDe4}O!sQhy-^MfRXy12h|stV+6$xf-Td&92=B z`b3~toR$|4f)78;MJG9BOa*J`B@axrH+vGAG6~7Qe;2?RX_kQ-b?Z)N9+91JI>KSb z9szvam{prmQP6aEGUZg`6^V;|x8plESwK`|NfA3z>s|%Z<1>U69Je9z9Az#bZjc;| zSC>DO$9yX8kcW++wK!oj`CGuIl8lL+tk0pI^m^>*Z6>V}(eFim_+i6c149R??#WN; z12X8iB0H-=p>1TJVlk%X@5L)iwT2dn6O~#W5mdJ#3+9WV-8MqCaqC1>(I%fQkzp-X z6QjO0yT`_3i$3e>&*vD8o=zDL7=4+$0w{xGcc0@b!l>o(Ud$#3Y27axWv@2tE!I4V zGQo;cle&TFo2y_3M;xluZ#gJUe=TV|nM#e6vI;q4Y;*_Y5NGin|DE5=I>R{;5bVKN zv3}?`3eHkUmC`59d0n6s#%ry3-@u1Oj61Ei8H2G&nK2DXe5G>y<2m_-Rj4wP$b80{ z1^2iSwItIYwXNRf2pt~#H49C$!o@+vhMdoo7627&P8BgWMswg$6#=^`3X^{^M>uTT z-QTfoqt8E40N|4!@4XcoTWyHaQ{w(}t7}H+r`?xMOp^2HbtlWj;-&~aVx0=h3P~i7`xW#Wsu-^YHG3j#p8VrV*gZvN6Jn5p*H<2lC0_aqYkMgQXBiq^fJ4kr zd*tfA#bWl+M%!^|{(DpJN8C_m zfxC@6x_4o7t49ZdoB8jGCvDbYBacS&_+Zp2IM=Y?b}!ig!STq3Q5w%I9u4cwzigok zX7_1qt5&lq(Ry%)7u^-YtIP)0Eg9CDttoe$JQ!IzaVr0h3$Um?GK}gqI;TE!^~h#U z9!bcm2gB*q4-V_EMdjhONFhqIHF#bH->~CNpSWc?mFF?fp7w7@Q#(S}JW$nK;JglR zrgu1f1DZ>{{*|3Qn8EOaUAIavvX}`S+53rID)mb^z7i~O1imP*goG{D)^t@a_12Ox z$-o9jo$*tNP>Lqr@)|reWJgV}#7!P;cGXp!B(~!hcSPdp$D!!X>VoPScFgtKaQvuy ze(aU;?V8P?@kTa>XK+)o(|X27vlq*D)wYB;0Z5x9$MXax@4G3U%v)@p(O*!VEi$yB8T!R4Rq~VHQYtML-Nn?p=^ajA!vN_{7 z-8S~_!X^gR2`i9h9gIi`pv)H9ktYY#AD?IVa};4wN^=&2CDOT%i2idR`3*_>Sp47B z{uk<dpS-G~t-<#;i#% zIz`i6f!OXq2nwE&vnn$PUmtFsvsE>XLO=9Hik&9cs0=CG+HQ3^!d8K?gVnTb+0}SG*Zl2Da?(9foBMc|JYxuarucRGBJPlGmgumFl$_X^b?$n~5p1D*dMIF9`%U)>QD>2^S0ObCD?S#e>MmdSmE< zWjh~o;2hpZyj3B82a#ZjIN|aNg8zuwL1UZf1~FGkT})fO-WCd=+pFQ>J6lPqm%>NX z=X4e|kBn_Wv9%E)Idaq*@gcGmNN_rbi$q%z>~V)vLWguSfMqX$X|XwB8|#8BJ@36l zXkd3(%bRRWE-$JDdWo~c3M#%9ZkKGZMs=e>jh|+3##ihk=nXlbFDh z`X|p}3a8=b%>buMn;TOhVi=|r9Ib6#x6WO1-~Xty%|D^vEy%)PKjTiN^Vt)L2!eZI z)!W#_{~>2~7Nn*z`H6`W#E;CN*(zPBFBXn0A3XqZx4hWYQ+6Q$dt$H6g(7jWSKA3S zT0KBMePoNI;k9ih6!e@of8Y>eAp;xknzQ$Cv_klrYoJ~gh~0~0Uw~MThBL$<+C8;T zGOQ#xZ6g6G=&9MU%4eUVDjrqFgl)>Uzy7GkqdT`NR`QblO$N z0}(5w%4i~azSS0QFzNSL+G@+*C)>KC#gCjoAx&LVijj?x{?q~iLIzQyfwLtFl(0Ae zAa5d4XSp>}xNtHttWo21vm`1B8(?@2ly5lBVgINC_VQl9l_GB0kK+h)Dbp!pn1Ks8 zlW);QxH`4@vqvyIF$?9!C00Ku2xXglbU&?1toIVK+UPAD`K?oA*~SoKmqYzSB8Ox19a) z0GPk{gUNvj>fS0hh!w4(wP|#R4yZ7!KfISK6-!K9n~D;8O9lP(BY;*B;gh3|q4RAF$0Br@n4P1z?*?JP@%yo(Qyn z`84Kr6P4NhP{Qs&LA7i&mD|RbX?w-ey0gnuGyY!3kW@;UipR-prCy55(KLp6e)|h{DG1EA(H9F4?y36@0o_~+W$^Q3Wn~4{2KKyDpmD-nfX>rY5X<+Y8m_LU zGV585l4&U(mD+19152H;FOI(KoxU%wKY#8BsBe71tT^%uE7FylXer(+?+~(dCB)!( zMM1?7+@mC4Jfla)7))gm5CB8(u4w)L0w@~S<$8J}P+z9BAO*cuXF~i0#Kq}x@vtR7 zO;6ha{V+Q}gJqj;QM1pN%<0#jpHD~sh4dt5NW=z;ln3-AQY%*ieWe`Am*MVcMN!$K z`oz0^WL={flkU-z7##S_BxXi>l9g4_lO!Y}bnZZT{A|vrHe=+73RY$q2s|xl)T0fB z=T@V#YCsE*fG7s<+#(7?5bg_|Q7(rF}VXQN3=*O68r z#h@3cC{v&|2owRBTe=YJ?*K8Gc)B`Jl5u~(;(mJ#?_LFH3dqY#r{u^H)?7-!=cqTy zx8kv~N+!*r!kDkR%#gbkLYW+yT!>%z+kDc=k%nPmNP2bQz;zQnNu^Qyk2`!0;Ze%( zM~>2S@CPjNKf}5W8@QHKj9#Zj`_NJ~gXokv8g=MFmt+|>A`K$5G9r&}Cc6EIz$TTxZA|LvYD1L6?7xD_5c@D=)^qRX_e^-vc*a32Qz+Nr}plJGuF^ z81NQO zstt6J6|MTc&D(uj6Ces^n#zpTtM-ul2UFYPoD?E+Dy_T>^FMV7iO~k^bRSPh+dFLDw2@S?1FyW+pD=F+oE_9`SacGdvY5TUq%vmy z5_;;au!@gh(VZk3zE*}y)9%cf(+*dEE7pI0oB~BQ+xB*0{8!6q6<0{&rC(U_<7s~V z;RxeLPGerJYldw+!It(R6MkVFwm2fmX=~> zcGsq}DtZ#b+Sn&B3=c~+w_{?+Q>d`CaYQDpAgACy-2sTK9H?2tA5mEjnR!JhOBEEB zsSwDV38`5feQ^fSF-i9}9YuK748>C}ASvbs8AWR3_V!pvt#EgBqAVkZ*z~)97Z#45 z1pB&Co}Wctk%F?~B1%*`EF8S4?e9);dLl6?nTTa}I9mzH%FIJ6w8G0%PG(AmQBVI^ z-w7nR`32!=siQ>J+Y%C517-FdqLT_iD8s|s1#7t+nWYpe3W$k`p|}FCHl)SeB(?DVri~Dv znjyH#_1ymb28Aj;a(g>t|GK$2qs)#aCiQ;sEis-!A$Z93#6?DvTYeV{N6%XLdB`cr zNhC7+Ew+Weo4&1&LAkP>y1tQQvBSVZ+&A=nEG zxOOASxGI!6xL_|*l9Fw}#1ao5JBrfNxF3zz5E;_Z+Jb_-Jfo3>jjJz#-ZmsfUni^h z-i${mBe+g2EY$hjxDksQF}BV&m`m;Pbe5BLCz8y<`zv2VdmYdyvM8=(>Sga6On|eT z%!DYCvK2u@>98a=K+hgu`fhsI62r-QjksgeWsfyb&~1c%Zq?ot=3om zYBU;sK|z6up5z74TA1ib{$3i27fMg!)Iz^-(^7qV+27lye*&$AsSW>(cSxL*Q+3P< zb8~Zae=2_K%PTldH8&yfrx7T)%9qmXI9)HDs8~-M}(JdSs zVJZjLZ|B+zX3+gB>ioZ$r-f%z-s&5UdG=X0Z8=JM%Aa#+{9nY%)aL&^1cbrC!Bqa% zu3Z}k2L}wBXH|a$$emnplt0BHsOrSeaMhA#{RYyxw#PH1dH7Mg+8r7FcDH-6pC7(g z)tS9}5Dl9&BGA*es@pH@nyNUPTQ^b&=+K8(16^NOzE8@?)~z}X8-(Ck6*EOu3B_`J zd_1wTxa$feFtZ`FegmUk{r=+y3j5mi8qpx6`oE(E8tzH$y{OlyF*SWFQLhN4_}6Yg zqdGN^{~5ZN`-S{%zvlEGHi}x72EBe7_jd;Vn(Bz~4GyDTEpMK~g5|HNk||dc0#89e ztbQbdkTG!06V+96x_vUAM#mR3X~)HcSX&&k6%_;+fIbrr$5o-5NQB=V@$ zjoD-RQz0xyqrJ)ES<8rfc)|HdY8fp?e9nsgfy^A=g`Z*_dH21!)Nw7R+)2Z}g`e_s zggHHizfHpcTg=Sd(cj+9oJBiOy0v7+oUu4&rXz54=E}CO`0h{)9Y)Wje_d#FDUvUQwzU_kd5)J;fuzZndF#hV-Isp)KoTRc$J(8eeAB^6$79S4i-ygBjAP9zu~N7K+=f zTJ$wZE}a-Vpgq+bt%y3fon?Ctp+rXb;7JT@<4bOAG+Vw~!nGVF_Wt3FAJYpTxt4P~ zma*#BM9P&==k<5^vWE?lg3BzMyOP*)0fFt`WN?RuI7vnPwskd|ev3e0?#_To6X{UX zp7@9}tXQ?)XoaG!C_yE+W$@$~h%T*U?Y=uzLZ(uru;uHSB&BKz9x#_V{kpRK-3|6*ByqAoQF;K4_Vx|4~MSoB;w#Yb}Y^SSv@vvdY{nEKap0q zH({1n==8x?)aW;tFFH43`3+n8G`D5tn`1ertHzAwAJ8S>7~5iHbbDtw?Ls_Ir^m5s z$zpC6l;d2hGm|Iwz)@4mv2E+vcJg<$X3q2(H;FExP9$Hy#QGJhiF;wzPWOSm`)lRi zfKl&FB)nct8hyN+&=Y%^zdo8?lLz1{kz()ZPRh}BEdKr!M&TZ z3xz_8vlB?peq8M(v1>w~zW%HnGKiz*%~-eeErNHP;f8f{ro3K{^`9-Ktl1#OH!Wew z{9TCZ_F>w%*N~SNb9nPAcAbyL+^Y_6ywRUVe$M3Iy1f; zHYA+d$Kq{2QKAvktnUQg=@LwFN&?%yTg>@X1+ERd@=nioRCACKb!a=wem;!y5eL|Z zQ8t~u>qEpqteP{EL}7L8oFxbfoS5+bAWD9i&GeK&W`8=C-*3%E zt#!gfcbt#DI!2RsXEA#4ZKf_ijiV-uwF_oZX4jE#rjF#=wfB(q97E3tZKideUovuBeTIeZ??gmx%XS93K@iO4C0KH+Yx`)WDOM}3Y?Xoh_aCvtAz zp-HpWuE#^(@Pxg*aSrDP8hP&SA_-8K@6LabZwlB|P z=(MjG)%$lo|3$<56FYKq~_Ynd?k7JA-2+xLIg8X_&~R*fQ(O>GX}gz^>w^Oc)TzkMm}7y}}1qCo@O|S4kQB zHhxV)p&wt)8$++u8*IJ!R}xoNF)mD({$CMzHsPVyP+X8hVMT>8q-<7BC29s`377XD z;KGfBdkqkiCA4Pj802@)vd+tUp8~-S|(ulg3vvjzyJ@*IuB)%-WEG^ zuraqqLJkLaA0syTHu=Xd^IDS{hy-WIm3c5~+^cBJW!O3iv9a_dD8!lLYZr4RHXCB^ z`T)54>2MEhN?1TTUu>C4O6k-7Yy|ZC@IzW#T<6{I&s9l!cfWT++7DuIpH`?N4>Et% z4sy%E%qEC;CXb@7RVh0+FXr@>C;1`>5D4{XA7L`o7G-kk;#Q*KpTNUak-AJ z4Kb{Y3^B4*WmLhtch4$PfKIQXyu1Q)-F+KmEw@i@;L5-;d>MR;R_`A}p>t*U=qb46 zZzf0WijRu}3U@cs#fBAfmx#)vUS#U;!6ei1bLz=%Oa(y z2*-p%tR1|Nq?)HrOW+ly{v#D*SVy{Y%qC$gvSSLR1+zWxXGgh%?*m^X>QFWbp z>#tyN!Avo}P7c(m=gFD%A9LZh0n;bpdcTLB|5vA}AU`V$MOg&}x#{E<8vHy2WG7wa zz^;p=6~fuLuGIJPf+~bZY4SBTE{{Vj&>Mw?K^3elEqF|D7;9))xd=e5Do3d_L!bw} zK!9Fd&d&9l=y~-Vu0IT9?Ad(m8urH~{~U9--!z6dPBn6T3dzzyuhs+U-b;^dO>0Wx z<+#V}0Oc4DMmB-ex$OKcMb^{+=+U z{BK6!*@zMEwM3vZ$K2}ST~CAR#6X?!;1kA_$-~Jwzl<-|?ITTPhM8VLMsha3O`72< z0g<&czFrmxisQ&kPvO!J>-h4Ef3a}kMlNI)Bayn%uz|mkP|mN09~DLEh~?pYIH4oQ zx6Ebf&I=R^ERm@4$jDL=)~1m$Zh_p{9S=tkSjfnU*v{w~8|X4?DX)0Q9#rp<{ZyFr~-Rcb>Oz2U{``#!T)()gycnfqHIoJpK6Mf|( zN|`s(;%Fk(;M=@69}Wv=^Cwf;Ylu~jh?;GC5NHv@rj6@aaX6LcJv!rqlG~Tp@zK<& zY`+vqX1suIogviXCio83htpjKlYG{lAA3ql?1f`^=l@ZdW z2?k^=9o_IYtUUh8k5Ga{A~sT#7>m*AklT7wueL3Sy^JxybBZfXo+{Nv?%R-&@6KTQ zw5d$_-~*;lpF!^yK2;JUD&y~C`a$jnBVXO+=O&iC92kN*vN^b!lX<#}G*I^Rq>O zBO}LsfL+mU<}TetQ~{WYwB#iwVpp>fVFo)9i8X${2CE7mCcQfWP0R+qSh<6QQZeR& z3bGQ@aI4z{KSM|rsXf(w3%Rr57 z?HV*~S|1;uAUqw#B%ayFkt;XwXz>;!-e^aoklN%$o+BHf(UKgjaGh2mM&gLNU@+gz9)>zShu~K_Qq#JK%TZ}n z&lc|y-4zuUQe0YY)N30t)N3d$E~2og7^PZ=VF*qEb_4h6A|GI_BunE?w=qL#;bG3r z>o+J-L2%=6WcgP)ee(%Resw947mjh@;IAA$e3(NA_jB@6G$mCU1}I5QEalbSqv+YU zBWA_Fv1a2jN~GRQeSZScTR&jIkBRgeKLKI#4z}+&!2W}WIeh38PJTh0-1Ir8E=S?& z--FRZyVERG%jWM^5SQo92lJQG(os#hQypGw=uOhC%f#I-r+SA0^lI0d{;h+!ymvK+ zBGd7x)s>Nh`|)byI$Sxrk^Sdm(c0Qj=amLDtzH8cPY=wqBH4N52pPHn-kCUrS6Z~j zp(2~BQSl@tW)s?dC_{R*rA`fRlCNGMT~Wn`!vlcn1k?l;RJ!)34+Sj#KT z*MWr_;XPUs;8&Zbz53#kew^joj!<01Vpf@##OY%PIr!_{{yBK?AXnq67Bo6#I)&xc z88&VNuXPFJ>aS}#csd2wy1jX~cM$U?PvcBc7-NQoaBCo(l3%No^b+Pofq-ody#TatD8R}Ngbf^D7Nj2`kT zP3qOBB<2D!Sw+}}2GF!|eZ0K`@pKdsck&1ksgG{f{b}?~555ElJRdy?;OOaxvs6oJ zYAVI$8qB0}%mr!`WtFU>%;orac_OMPAh%F~Mx~-mr2&Z*)v9?yX)ej>IscB*X75!U zXQ`0Plz0lub(qU65t~`!>}W@MPBNMIruZVcJ-+TvsETtbP?V!mmK!(cL^4OJdpc5< zmq}V~AqENuYYPFzMJ4Dk!@)^LVQxW{+))xsYwT@gSV(19NW_#EW{{Fq^oPRZ&-Crn z=}83GdHCTZDJ3Z-!?@XPA+tuLEvK~N#d14H?OgD7wj@0v!ARsN5L@7AYhjE5VrYxh z#sR6WkbK3xO%s6-ncNDkQbC1*-A^dR*WU|uehR4u9i6}edq-=eQcGk~3s999-vtB3 zibUp0buU}grFkTzrXQjA^U)SR#9_vh@KMcmYB$xKY7 z_yu;6vv+lD1PbmX-NnYj+7?T_l6*zEag|}`WJP&iJ{39vj$VE^m}^K)NTpP(0ig(I zkLuV-lw{@RqcPxEZjfqXT&q>bT3A7HLMjz{9f-|v^Q?wkP)4?4EEt|OHqac8>b_X& z6eK04qcZe@M2e@EHx?QN+4)6iHLAPsrO*=Z>OM%61x6zc;~P_HtmhcVx{`9$qZ@Ef z?K0B?FB1X=ZmY^)rBbQS&(Al}lic4L_z!+f^dv?(U|8qL*>njSMDU_#*85D-U2Jsd0BK*MfhV}rN1HyTZqwx7>d!vFBo2K3GY0YK>gFb;oL z(+y$C&i!45o60pI@DE2o926AvP!kO+kMic1{c*=PzB}&k4+degv-eta&9=I{T0lZ>oV_s2=tl?z-V)e5&KFw0vBm9H;2hiQn+>nK(0J@rQi;;bgK4m=V*$tHb4Ft+L8P4Sz(rxKp9?Rg|9+@9w9YOG6dJ!xsr+(U%vL7(VCG>?h}UE^y@JwCDvy0xyjaMnNqx5+rQ;=`#e-wt$tmU z`Txkp*Xc6i3<`s;&&|!P$&s7<+)74VLPFxnt7L0casqIivB{t_9zA%_Zul%pF85jr z#{=eP*Z=vpAnsLt*fp>P|+XeU{T$IwC2O@RdpuD_t9^;zD8EMd zq|p~B*^MFybm-VE+4bm@qfX|TP1+8&O-lRad7(h*(&)Yqqv(kMCk2(Zp9@)snPZz#Nxa{_z0f>rh;^E7lNCc z>s=l)f)L-l-j^#9x6OEK{p6=lpS2rOmqM(Jt~2} z7kNsc^crVfcP2elL{+%cxuMsN4-gqQ^!+;Px#@m0OQ$YXm&z@P;H}zn%v)!0aC6TJ zC!9H^+#gUsdkP;C2N_ zC?x?spkrybVkVIE8F&4Rx8EApMndnCP#M#pc~=ZDAwMhwNwnVXVpO z3~!N}TFmU;g;G-_p5MCMyTNCd!`C8;^vtJl*=C zdOD=Ck4<8-o8&t;P_pFa6rvQ1BuawU@6-Wb{IC`9D&`1XE@*7*Ykjej4Wc7g+Qbq< za3Qt~H>cscSH%c*n;-8(E_<=f7-iT(!>2ss3rS~srW1WLmRTpCZ=5E*R}d;r)C0AZ zZN3Ml3coi_;CN7P!jq#QEpCv2^r?rVcZCQTwCf7I+5wBTNnQB|m}02urFR zr>VU!>MCAnx^ z4x_?hG8|^sI->fWW7ZR4Q47MLH%)a#&)S|HDtDrO5p}+-@HNW-`vbU@DpY5pM#1JR9mY7m%SC(hhn48Ix=nlu>P`9f`AZ zFm5d}wQa8`jbQ7{N(ms5UTB5vzjfZ{B^=elFDJup)|AR}vtBa6ppXro*^AK&f1wvuJc=g&ycBgTzQm}d^Qms+;Mc=qgU z+8Y0UW2XM(*1pE_k7ol%yHSr+YA$Jt)omAS|c!i*vW@7ORPMfKs|5BRWK9Cd7 z#=Q3H;i<*DKXcT<#*kUJ_J2AvS)P3S_($g4hsj@d*FnCD)*0>M8Nj1K8z~JSIUbfa z3sA?EHo}mqVvusHmbm;&(Hk+nPiNg`Y4(zBUK!K4;566@tn&sMgoT70-F@5?nvbzB1^U*JEVeV|BxfrG+Z~wDV z9@DFeX;_CrU829ARuXiby^hviEO+6DVv2-&(%6mt zC-E^Fo%v{~F>ukei{5bkyI$c{T+q^2@|TYuuotj#WtkDwnBT}g0kM^r`)_>ZNyGML z!=9pQDFS(+_&Zq3L8kHvcZAg$ze|Z9Bm^6X_#+bf1Hr_0=#%ZpcswS#L1N&g#mHTL zF`KK$JJD!K8;|Nko&m3P{mHF^Z$9si$P(p(*uqjz1TJaU$@p|lKSh5;ZrtqWUyBBw6|+edOZ)4C{O||s@$)>6 zafVY4p90LAQpavvxa@~DD{uxExDI?|EQV$p<0Si$#+YA@yE%^*9h6f$^sMt zN_zO9vt(^?5M^&x!)#%1<3*>_B=^d{vI3f2I@hnEFK&ImM2DGx1FK@DtRPGeQoK@& zVtmGFJ*f=r818k%x4H_GTU}F`u48z^QY}8zBeW9dJ{$bfw;mS%O>$~c^6jfrS!laQ z8KyCn%Ipm?V_n%NR(6vucj4yB9O68;O)KA$b4BR3OGH7@G+0O#0g7W?!*vnBQddkQ zdg*Gp1L6e(w`Luve!9JuF4U4&dfo9dDXg44~iYxPawR?A4uYwC4e@DQ%&Ti)LQwXvlaQz zBYlq>C8XvQQ9X~{blmq!J7Bh~q5`!A-q0sFxYKkA&=<9D)k}Rm&c~mn!h^omwFGZ3 zsga1$#>MJP#`i&jXvx2#OwXn6EmNFPkN83DwDOc5O6e zi}_f|8q-clQ6Vg-x;;g?9+AqDPACn0<_sXzHNs7G{iHRc;Jb*B2f#c7F;7RTc?b`i z-QJtLuI}FUoS3(b1f@3CLgYpR6$YDwr`3K=_0>G5sqyS0;T~Kgg>q$FKewz~np;E=#M+XSK89wYhBck6^A zbkSVfO9gk`{n*W%3~Fvu*d_dygAi;QgJXc0;xnJ)*AINQOJ80LpQ^lJ+JqgTb=S3y z^SK=-zj>h>$?+&~ndmM{7B8Ismf_;P?B>0(W<8j#CIoJ)5u)^N+y2M?>C9j9*Io<~V>9q6uI z+AVeJ;Bv!w`XaD8yX`M_ZH{_VAV~PAx%3|mp)3!JIgyF>& zO32B)q^y%2d(9v-{Z+*3F)QgY#0rb zqdVOam}#LKC|}n3j99_a)24-a@a8!S3+!tzVIxZA@?WHmsnPBtF!p&|2{dED7;Uur@uO{q95nB&v1?L7B9Umx?gF(m+WKe8Nlj(SDl7FKW6HJM#VP`REqFMOSadq z4s;Umgt@d(f`M%$NQKlx!BaN`kqRPfeP?Wy5NB5h?TzNoxS$RvpYyQgO)jhpBz#gI zo%Hdb2%m%8AX%Z@=^kQ>db7BFkSj@mo?`t*35^pci!TAM)IyhB>lgZi87avMRK z5ladZOG)%qHL_Y69d!c>`AaSJyn&I^DduKe2{BV$W>pq4TV^98u4J)&MVOZ>G1Yi= z5TB2)U&SBgO-PkxUg0}P*^>}9A9KrANn&Z?dF;&?E6XzD`cEH~k#rH^m2Bn%jf`Z7 zYO>;H1siSv<}P1FK!*7_?f>7ORgNsYeehr?bxtsxt)h$xdvpR_Pk(pk=B`y5R-^8} z>MWmoEt#YJP79WSWQ>BD*LSUrQ2us#__dsbM4KOluDJTt`o_7msPiVYA+JXg61Q~z z=f)Q7|Hs6G%*N_7>L#F z`38VTnj>Us@*_H_jeCiSJl^pBt$Iovxa&;&Mwpbo-%(+PW+y)ca9SV$6s?CaNX)Rr zVsnjO@sqw-=!f6fgA8A_harM4G_HStEJpb3?zuJ`G)hn44`2UwU%&n>pie$`GVzxH zYEm(DG&VB0{-N=mt;I6E@V&_)GX+)IACZg?>3Lcain=^!F>uyMx(1ToY&Y-BSfYO+ zns^u^D~78X8^d2{c0{r8`EOq+(RGACj+q<_Th8LUw{iL@6njaRp-dq55P9MW(`-&i0U#BL&&FGPt-kV_D^H0Eid(8g6w z&)6j0U1Ne=_gi8{<%^VRmj-NG*Qc@(5xu1{>QYL{0dl#MNxx^pN5!mR_=016BCd4< zTY)V=R5G{0QYheu@+WEjp5V$@c*iM^`z7#&w#dcL7KDD6^zplI;w!)IQlDDFG8O~C zVuKvxO7^OkMwvUagT<`q4IOLV1eCAcnUy0gqf(;X$Gm>n4nA!69Up}R#p%TkM8>O} zON~lkx6~Nt$&V(5N8w2yX(%LnPYVS4kjyUk}HN0?DS~i`9Kq zZ&LRA2UMFFu(u2BY8}&Q4v$#_;WMPNz*zR#tfH<{QuYt=e6cA+gF<;pq{e|9c-T(#p}FkbTNaRNNZ!7@p3F2RTyq8j%9*6h#@ z{^9CLSO-8#?!su8j6FZ)_8sN1GN~rgLDNp}#HgkuNK8;WiTQrCCTP0k)4{qrI6B#6 zy!5=eB`)dkKi}LQ%4f>ox~BK4{!7K#qyuxW#~}xsdY)Y$_wG8J$nn5h>5PmxFOPmu z`gbQ>t4S34Yz&2Za2Hnwf>r;a(Jb1CFnW~rhbYR--dtS~;-{C#5QKSEx0+tPL{F$) ze9P3>rFP8lPFP_GyTPUQuQWWKV=znr?;!iA$E`*;#)7DBL(7PysCmBfx{A{+luC`i zTXCqpkR+=js}}1T&&nJJ=8MwkR9+dNr&a~J~gKnF=1oc+D3{ILvLZjo|3sg!+UB@+&Mx@MBp(sFsN$CR0>l;pgROqXqBtk)9 zcPkjqVd8XhbTc*m#%Af3b<&A(3$n`Az+{q|EQiZb30hpB8XQD3O83o>y0D&wV`ghZ zVp|7J|FPw@b>0pGGVE#sTD%Fu&hv17@?$!(zUczb`^*DWm)KEL;np_vEk0ndeolM` zf4!KsjdO|xTDRk|HQCn{z)U;*s^#b0VDKSsmd0G!fdjyWm0a(bn{%F@?rZbWE_~Xr z_6ZB&8cU~Z$w1*j(mXZLW3#JLN+Kc2^27iyMSE2a!z95;`$20b3Vd9VZNlSAzq>H` z`w$xvQ&wCPG{Jl&Z>Rh9xvK#Y7 z`JrJ)UTlS=N;!rapOX&|`wpwp;o^R)-h9_SqW zUrMZ$MCJ~<(!u`pvqs*ArKeYx19ntTAO{8+lfeLjm8`O@l&b~!he=8w_P@3H?uysFcgY;{I`qguO2)Q#x|^> z2W-s>1l)d^;G_S!@mHApKUF;R)K@-@8{pVD&a!N{U?eS1X^;w9FJo+M&5knO z^Z78Av3e1kq{xNIA8Vz*xRF+w8?_%;r%* zRtNlAZbCp{z|)4=7rTgl7lz**d}!Qb6-3XvS+z*!!>L zH`iJ>vN`o=-_|GG0dv`S>#tgD;BlSd#V%`=ihCUGLpR}BztYFhwwk*o3d2WP?S)9& zRpFzNIc=GW<_7F_rl)(TmysdE-)n?lmeg8V3=2GbUg!8bu{thQzS)JLF3WRGPf+16+w@*y;F|)hZu~q9>kH@ z>Z%1v$05(7GD^~TxmE^#XEp9ud|WhC!OfJvJvyGF-9ni)O(>pw$92$2*D3rE^pLs9 zSU2RZg+6^*J}ZK`w<33qFHcnP6HZgFK;@sg>a;?H^p#$y9@G~o>PbYd_!-%^5(gKx zG+G_0Y~hZ3Fc+(&X0DZZV6(4w2W5Oo`o88%4|}ciNC`LDFLGbYds3VFmQWB_L@7sD zV_cDSz6w^Pvh^QHwET45!M$pi1U7qs`@^)DO!00T@{0V`_G{n zG$m)o38x<32>1!?4@IaSBDh&nvT+9O$S<|!aj0x6A zO>3O)_opr)o?@$P6$_iE^5AU_ON#+_L;8)55)CGKF|E$Sr!2kN6p8(-3%(^{sLI2a z=pSm*gv#SVq{|-`Ix2|n1Xki@{g<~#`a*2#Rtf@s%dh%g(+>n=ye)DH2&%u-O`!?z zVgN1rqzBA4fdK}ZZlN*9V^F0Eta1}jmbMJCFmxY#J&aM=<@m+j(U#0E_$4m}(VJor zSj@>0c*Jd^-UzSAs?>O-+&tZkG`PP1nd)@mw7}-g?l*xkArTgq2&LYGk#2Bqnqhjk zKyO)!^P3dk3mX~4auWX~bidLG!dEQ|)x)!Gb+`56^?r*}GvZgSPS8GwS8SH#YU%eu zJaM&jddkFUSqH6eHC2x!<6U<#rQDJS!<;*?7geDNSK*P{!&T-I?8;L$lPsN&qoaT&G=d_r`Pi*>mCwU85n2G*bG zk#9aZ0TJtLBUT(*PAa$36J_M)-1HF6_j5Wr`Zh&4Tlpp_xF5V4rhN_>S=#{>sBw<3FQ7^QYLpS;dS97E6m4M?3fJege!$<{pZ7 zC#Pd>&X5S+FZ0?RTaMPGTvDKs*14vDD-J)E_9q zF_Xd{TNaj`>7sxrgBwC(s+Cc1y!@Na^` zwZuA!3D6NpHddSoCpAF*XHx**uJ7Nf0-zM1Nj=Cb-dAW9^Fi=XAkhdEkZhP&YB3YY zdTTO+rF!31QJr{*IVi$eC~x|S(L-5{l_q;^gbqU0s$q7xp)sN@Ats>f0(n5IZ)By|KeUo5Y1_`EE55mc3OI=bMT+82QqJ` z#uf>lMT;xBf%{ne6zm)eyG~`+>3Lwz;c8t~$uZ+<3LCy&8Ks=2;5lp7XiYz1%(uun zno=e{rJ)cu+3Id*&C?E=tW z-Wds+2DXhs3JK$KH#JIe_xlhNS6STczrFZ zyXGBsPa2|{SE6iF_HQfaA3bWK!N;>ZCQoYLiHOII8s$PA8l6(&E9q-oq0kKzLPeD{ znP>oR%qPbEo=o|ful)7*d>ffE&eCub)}|`?u8JfW06K?mywjFJ%a^%b=~8S7tbWni zYlk0j-d-Zjsz1;Jv3ew13k=D+{A-nbj?GUq>z)PiDpP$c_Avb$9oPDHcfcGLiG)+& zM&n9T32U*C(Cy{1oe7{^hwscL*H16<^DK{;>-m5*Z*qn39cH<(T5=m711F6Yg;H4A zKNZM+o+3v_onXCs;NTit;8UHLr$H9$npH1_>&A1E0wECNNo}^~mqI>W=g4Jg)0gLU zelCy`FMHWahj7-hQFKb8RJ{OtL;z&(B~~?a+S6ylOzq?7OC1T#CyV|l_^E*5UKu6Ozb5$m13`L^t0ozf z!_I@`u>OzJNzjOoL)KOPJ*44hRKE9BGnRY)75b~CqCfR&vxMw_4FVqZu-#SI5Dnpv zMM)hYZpzo5d6RtdZo};9$-&*t!{`$R0)21HT7@yFGS?a9j={Yz+BO0aT{d-DK^_p8 zKk-g?NXGkIn0?HWzbF3dK5*cXs_LFExfQqg%F{Qkk!nnr()1^*l0M}`1ziT_gm?t) zZ>)+TD6V(esnwhb6UxkrsC=RaGqvt_D6hF>EZ|S3w)k|1OwU=F*Pjzx(u`d2kdG2W zjj#2Le#TWissl>F!r#ujU&GJ5S}z;1G8pJoE?b><4|@~PU6ux>-gJsl&T_!iX|`9rWnR(#7v^J_oaQgj852yhvoVtr6~(M zimb!T0MmBCrU>PwaAm58eDHzcFjd?sY~8)j7pTS3rcc)~+NIlmHMKZ58)SfsZ%%fgr)X+1JmCKE{^F@WIj!wRE8hssN8C7JH_fTb*lRZmGN0;G&59oQW+en@ z1ZEPmHBg+;YY}P0QyQJj$Y%u#5Wsw~Mgp6#ZgX%}vSpB(6Hty&1hHITgbIxL2g zDEZT|;o{;LIEh{ zn>`xKmFD&bUJInxvUUD=Qst3~$`!$Usb(t~c%U%ZOjsAtKXI9GuRFaC4w=QP8zejr ztbPAvk+7#KhSZ%JDE}D4g0_dnb54Yn68rSvX&Y|w#38vn1$~&N>yESD*Cwr(3)j5t zjBkXsx%}|~8A}Ta0cpEP=ACVteona=RV$-$|MJ?^Tuh1~*$hy50b&V89im-17VRXy z4i-YxH7tSm9Zn^yIOXN)g`IJV#qBly99$h+g*rf=|IoV*a#;M5gt5Zk*R;OejD$#B z;svK?F2}WbniXIkRE(kh$gOOm+!1h4uh*~)(JW*VImM03~B~T4AIH%77 z-4@mJ{ktdCs-SV1qvfbW>)yMuX+97o7nq~clJm~^iK+p^_0U~)iw&?JJ;qJdL|;2? zwrxvGjXz^2^myrdhSKaaupWMunDN$|$=wRufikuf&RUwYu!W(+a@cwBF}Mo>5k#Wu z+9jNdj7a8cl{RRBgjZid$NpA;n&7_y=pKK=dQ|5I%u-tYk@DO+}cmy5e#+~Mm^D)M(Q2t00; ztPmdoysplyJLl{azW)C2Tl?$t&3R4(@c;GkOh_kqu3_}Uzd#3sj=}xVRIEwQCW4oBz6~ewNux@FJ8F^sjn4 zvod<@N+`=W73k zH~x}!?dGuG!~Z}R{npSVp8pU9X)XvW{U7WA>@ej8=pP2Rtpo7ukOeO`s$$1Xun*pQ_-)@(b+^}q7P$ksXB7Q7P*x(vyG`0(8?H- zZ;{E5yWjnk6ZWqTR#Vmv)_P_gdmG-1cqo==oOqSx9=(DH?ju(2SclIQaCG0~}ksk9{qBXEC#QjcNO`URZiyQ~re5gU#CQ|ce zwRAx8lS2!ey+irnI=_U*m4%9Aw;n0yWo)*K%|MQq=)P=`@K){9efS{vb$YLHNBJ(B z?C{B+FxC5?Wtl8H{azVpJW(Pny<+{VZeuc0NV`9Rb~c>)-F@aFlW@Okh0`d_j!#ol zDADwD{U{c({*7~WtQVR!mv`UHAcCrtl~+iFRt&453$tHD^2#%ElBn% z6Tw}dzpr+0J-V?kE<)f+@$xMBhXrJ<<}y`VN$s2_#b{C`sF>B0PE}mgLk=JG_ zIG09X7st6fLWXzZVVOnM~1| ziZP$GndZp{uqurEOANKe{Ir=SC6TQm$hYClez>| zjcM;G3txhV_|tENIU_WTXfIH$oCzUuvqfZTVXym-2C2^MT=lHU&*q5B7oz5_hA1%T zqYS#g`*RV<@NI?d*bQC0`H^tmYo#E;Nbyb))wL{O)da%m#=1r!Mm`{~u z&H59`pBq;x?ZYt@3eAcWP_C{WkjzB*#vhQ(q_{WF+IgmjXd_~JivK>gSb?7MfPt2h z3>cOKFIbRMVz$7{O{UI6>~x6gsxoWh*FQ4)i}iMlam>I1c+!gFe4BW>FAor5DD9B$ z9`pTkAkQJsxWZ;qFyEb8%bqZaNwZ$-59?`5r_KRf0sb>2@P^dUg~6#k5qV-0Q0uo+ zgfliX?}Hsvl3H`K^d4bTl3JMTPfd=!0mXTx4;L%1z@pR{3D4@Q&@%R+%wG{+H1AwMY=+8bG6;LWq;+F;R@H!xq-xi@uA*;#BS_W0rvoSfTBeKY_#WP8X zYewtc6lPz*%x2Oy(SwQem`EASka}1_O@vAHq}Ne%xty zGw?q_g2NJ@iXXCL@MGH1M-4ZUZW&)WZ>e%E4+XrVX=N+cVEXDzOd>Fstyq4V=l+FC z5qvUBEurKQan?vLGfg@^$rUvFN znrtmkfyWeC_6n3p5jrKosUs2caTwcECA z*3J~g1ePQhDZ_##bNlcXnEaFl;GNw9gQqfK9a(+JTu-$_}Nz1$Ksem-Jm6J7LYHzZR)5_rJ)+%SGxxp58+x3I00HCSK(>Kps zrn|E8$lZsBn*so824bUXQ3FC<#=Y?<1uM$wnFDWN;mj5q-ImKM0z}-KpZ4r1{TN8Oxq~c-H^}aFvC7F#W zQNCA-^lX%iXh3*rf5}YQ%2z?3z86i6>1X;K=)GY$s=puMUkj79y)d=A-aL(3XUF+U zm7h=0PHGDyYfvPCowbtIm^kb}s+2g#o25C^HNG6V`-++cIS^aCuX#dvL0tKv3}V~* zbE7-hg06}tWUZO;oJgEChn| z%QQet;6uxezwvOppz_hf8WJWO{0yM&t0*Wo9doSGUe>TMCm|*j+ZE zI<Hpohju$$U?Nqz$9I#2_jE2j8=MO2e0GKg;nlMfT&v|UnMC;? zNB>)T6a_YuVP9uLb6)KtY~*v&+*2{lsE}*jH{1_JtFkIU5gg~tE!Q>mBA$j^alhor zl=lh5;vB~k888F#kE54bO!kQgC6C{%*Y5vun1elBI~1Nd?&pX@vH@NzkMVoTg zvX$h(#_^h?1wR+#dI8KtN~mR@+>q zOo4C?w$2Qf`eTXWYT+DFZ(9jvk8XFa*XAs{jr0f6dIpG)ENKW7Gp$;x>i3XILOK54Jt?t-HxM2vyBH8b0#oHGRjkas}?UsyNfB?QO z*q9?9e1yrAC zW$T4ssB3vpYt0D_rzLKo4#t}qu!JVtBHiQC{4$jq%|*P@z#c=~Mk39odW`wc6G=d^#*EIi=-Uk(}&?vD! zVF&$K#Y;Qsl)RK^>d@C<^B}`*+OG}(z{G!}vCz{7F^LA1r^U5KcAMO+V+$u|J|gIk z4@SfcBy&&6te2fQcfj8x73ksFRRaO2P+9r2L5Jmp=*{){P)OP)yI0+Uc=-C)es=|8 zMYJR@*QB=S#jv}a7xiQWR`~mgvMReYgMMyT6pX}E$8MHg=Y+hvRbb-850igbdsk%? zJS{jXA|3w$=h(~U?K^`z1P+ad=_38~W>!3K*^|BRWyFW*1522UC&9GER17UPwclA~ zds{5Z!NF!Y{_H%Q3*LJ$1@PnTfHo(tvZ_kZ2)`2GWvsH=D_rG?H41yX9Q?IC#m7kW zDR?dj&$VgR01VN?=;?X_k{A!TQnp&WlMWG>N}YH-{IQZm*^^(Ck?at&|~Kzk3_oisk2t zFlm0Nf4V0AtR?d_3Z}X^E;2$tdD9Skf9mOfk@`F5#;e=y`G^}#lIDYU`+r-Mcg$do zTDfi`+E4Jy8_(tXzZrBBgWjB(P^y>^HIIK&SC{%nUezNM#h>Vnu0KFR_cw<0hh27& z884mGwk)P-qhe)0DvJJm@t=ZbgpKPh_2}z)ni^?LbQ<$4H=Fn-VVh4uc@3)h1o5Q&~;9Ne_P2|Wj zbNK&f@KIET_1ot{()@GL508G$f~2`QtniaT$oV8Hhk}AfDojg1QTs1rIy1_8<+zhN zg*?Vw%8(oHDO&@|OLp+J4bGg3_1*@=zhW&a?delu@ zDAtaa=0s?C&Dgii_TL%$Kb~V@Q01hE&Ez2jttcgKr|$n@pX#g~nQ5$g-mAsRIerz3@b~QJDn@N~K-wMu zI6UTiY%6bx3b-vzxljAfhY7x|Gp)w7f#0`#H;h7lKJ4}Y@Xk1Nc4A4*i8`E6{Pw?0 zN}Y9MJJUIN*pwZ!ly9>q$mDt|-7{1>t_zwroG%6jl4|Y zo*2|;Jl6O{E!^Q9GN?$(V4!=G;}+FNFLaZ_SnvWzf*R>q$_v~+2px8%gS38k=~YSx z;vXhX6XD`b(BJ6=u@|2*ov#M6US+ZeKa~hD^V0VMv?AJbUjK)odCWUg1q_Rpnp%_4lSqnQa6GbYL>2k)*JEHzo>h@sA~^_|9XHKGKIPiTaYX9T*K` zw4Kvr+y&~whL+OT!3N^Aoff7&!_VJu_wQU|3Ewvo%Am`JnrfAI7fX{amd{4oLWfAR{fx(U|t-?}74X*gCb3ROiNUCVTHEH*|+Kx^p^>U*oebcV@d26RXCA+rH|H*ghl2f^>qENM4a( zM&#%9<9wfqzh;g-U?-MVTu~G&+@@&PqSTiNhX+)DPhkyitqTJ1U?xanj1FTj?V1TH zvWuXjVlhQNhF|w7z&fRuJzdY+;YE&~2AYWgt=u_6?Jw52&s*@c2z!5vr8I8N%`(Ts z0Ah;V5|_UPMf4PBU}={cM46_H776XhcA!OyhfOjL3bcjEyMElpGsB*oKXJbNous0U zL*;VtzUcD=fKp9-vw6&mlBj^`ji5=x;o!WeTB}se;~&!&(wsA4YqYQzC1RT==GGNL zJ(u`xaQua0w}jCyi7Mps#5Y=dJY5eCmNuj((|(emCy z?Dh6gOh#;BL$p@E!j@1xjGx>}upBfXjM+@)!#vSwI!FP*+pM{oCT%lXwcMB z-Ckk(DX9&-uE`d}@j4%r@MKku{dI;40ly^zybA#Xv^xcuoY_3BwgCX3l%PMWvWu7@o(AwUbP9i^$A-Ffv zg(VfGRAeCWd7B=SAM?lLFn3ihAFy7hf3b+vagVPTidOLCTGqD}n68Z;Ws1S5iN0O> z*z~XWp1?|0s%y+~`OaL6T%NV!NdVJBPo3UQhxQ?y!kMQ&>BR&{^5npy{~8^!)?>R9 zHW$;PT+^`wPhLGwAc4On8`59bRf$mcbDe*!p#KHK_JuZ5a%?F#gQc>{LR`1>F7up& zr+q=qS81Tdr*FEC82V7%UT`!O6!~H8mMsK6VUFDg(ccr~owZ&RxO=YzFN7Xge0$Di z*5h#rkV5o5V0x)YKTXyxp!CSJm{)V}My6i2^HlmqoZf(zH>~X??u@PT!;%4Z(ANEb z*k>g3C?&;#3*u*0ZY4XN0o=y&)1bBRpNq)n8Pvf#Iw_m=jhpiYJ}-iH57{WC z*q0j-R{5yy4AY+48u$fNwynuuRa*LJmj>%UrO{e6omWh~vr!+i78B+k z3L4hoPk#fyt8_KCwtvHDom2nXNM%{XN0B?9k^Mc_HHcSua~t0xRGeg6i`yP5`yE$G z8%*+Q?erDGJN*R~xUYQ_H5wc-%iVTg`E8ZjW+gO}CXD!MjeMYKE2eUeruwL^IJY!W zISL!Pr8{)yiS7T7(LSQK z9rf2Ws;(&Zm3+O2auFHq>u*aeN2x0Yl-pc3)rIoboSA9j@6IdT7m*5>=R)>37Tm9LOr%!Y zXM-H8X%-s;d#=7^hQAj5U$}6m9psa-KmhOrHzrRPOU{ct;K`mPM;ty#$P>|r%|8v& zKQ|@D?UE}3{h;TzVwI_tYL=;OX34gEgujQ>t)N~$9QSw@C4TD?)#jU0=ej-VQb8Lq zbYYiYVMH9}`&ztQAjh4e;q`)^qKgE?JKKWydHp^>N@}-P zs!a+GFTVuvB+*zV)n4rLK+tbT?4BHw{tHIBmU`0dI8H3GY2D{-5;4qYc#^zw!QPPx zP9ENhL?9V7lD@Cg*j+znHn?4CnWivHEpHAzy90C$P+S=d6&IgQdI%rhT@0Ex_Xa>c z{hNJ%gRcWszd41{E0RO@ncdg6aKGOgurU`F4;Fo_ub#xFX%BXJ3yR z!N$6cg5pG`w#G_16pY^BG+ib;;Bi1O@wI3j)yy5%#Q-fa51#wGZ|--|Fq>bUjNDZq z*K8Zpy$s?yS8ht@f96)K%wkqPu=^a)19%zAM0S>6))VaZx@7mMRtvH$YA?m#i0UAG zsbYIq>|UmF+2+8FA~7q#XY$&*kE4)Z5zKx`_7NmrYzyQfr2jgilF9C}sptp}5P{q8 zA~pC4d69z0QVZ8zbvUoe1_T^5O_m!y)>C~uA`9hrWSS)cJG7n#)uxJvw?=9d->tQ_ z4S#$!7OMFo?|KIkk;TmQP4w2W?5c_nO-uw<%6{k{xwE}{_35}g1{`)YIm8~wvu@aU z_Mkwhg{4D>Mz@ssF!6YWMhYTF1O|SkN5o7#)*7+9JZMv=2V;s=g*?xRQL=iXuJ`4> z@3fsIsmf>t>yUuHtntP@ju^IdfN_|pS##2n_OLpQfwaMmpi+Gt77|LWt-|!vCoXRIAC-uFaXBN_tOI@?5>yNxU4ZM{aLgy z1#qE-RAE5~YRq?7lI=XT{z@j`^K(w_0L#B3hi`cI2U5rKF8FL|%sY|aR<=qVtPG7$ z!95A+(+;r;62-k)a5MmQXuEyN%*$UQWlz22O<>me#ysk`$q$k9?SK6|S+D;~DUP`_ z+%bBN^C_Yt_M!FCTrCsvCJnqv6>GrUBM6s?Vcv*%uRm~e#i5+L-t`JX1w`7eO435VL0sb;E;DF92)h!5JF)}zS^6*@q)BzO5!Llx; zdpvzcaJ*!Bpe|i@i6GhjRb_#x0{vo2^9FG)QGX$TlctnPe$j3~G{P zNMbD6rNs$j%f6Ll-?uCoI%SYO1|vp|Ovb+N+}9A*Ip_1efB)Q%`+NT$-@hu4$z0ca ze?MQ(MWf_NR%yk{LTwx@MKf7M=aR|XvjLIwm!n&=VNp>fu0Uh8#-_<%mCch<=_@LB z@f1Bqymuw5%#&?RqxZg@#%no!o*v@hbA9_3V$zOV%2Ns!zam);;emUpGlwhvwYGi1 z1PWmH*fFw4Rvy3EpAtsFWAmk1tf#cyJP5R4jEzFdVe5MQF0-uwN0wiZ7T<=!Vb8 zSwa5_UkvgP6>eKS@PTRI!>pdV0vmE{=FA}Vivfd|J2!oxDc(Fhp+l`Q*;%}Bih_J+ z*DR^9CnMP*i~_yzgYN;hvCB;%^;8G{1#xz=f5!pTKnx5pWP&u9X|k!YJz0cXJjnFv ztbtv2$^jq*BXeU)gK$peR-GL+nZo7fDxsRI@|2*HxW<{OdJ_{CJAU2RgOoPG;V}p( zsW)g2mV84%>6b(0#NqnwHu2=F{Rw zFs=|I&32i6%PV&h_dsy>jmt{AAh^Zhe}LfGUSx|y>roAyQFtN&kWS!Z4_cNg65GpG z^X~`x*oMZJtzYqKJ!K(+GV9*NpQu`?-$Gangq6weV@EHDABSGURtx3ZUsS}z>?ctn zKNfPgIT@K;Yxt~g_ccC8XfB|T&=8)Rlga&2&I<6T)RLVjXU6u>*ZA##>A=bCZ5_pd z>DV&r##ltfME8x_=ap${=&ZYMF9XeJaIbeElP?fPVQBvtV#hpSQ`XnvlI5JwCc~6e zXD@B=LmOgB`t|B>txxI-l2dFyJ|V_+dQW_AmgkdlCrO^OL2@s3&F19maCX4Yi9Xu8 z5?bgz7f&cz@OyyosLA#T+-7iqKmy=Unq+K%Z|&JS<3}mhhZtE-=c*)w^5DJC#H#nN0cHv&8NuIsy7B08saaaoZN0h%qEzD`Sl@SOgVuK3snF?nEJ+ z6k8kRIL7vcc}rPK!q>Z0%az;G%%-@k-mxYKOG1k9B#qVp>kf=QZm7-!OPL~!H& zaoM}eHVJC}n>ify-lvdd=cCy77d$zIM%fhf5Ww*30XeUBZfE%q1~lxbGo zJteH?Ml8Ri4LNn)sO^4xw%}E%)Q{CGcc@_OlMs4D)nu-}DE@d-wEs~M}ij)(K z-Sw~>YD(L#&se@DwQT(o*Y(_mIyHnu*a{Akbp{<9JQb(24~CChQ!MqmW1e#UB~a0( z_4#rjYH*5oR6V|De#?Km0U;nmkThaQ_JZ$a`3&kQ#a%SNw|fW8@2hFxtV&tdD_dvz z8ei(-(UvNiiJcE8I%_3MNthYBo@MjNpK{8%>v-htA3G2V;llRYmHC$|m=zrr3%PNS zmBlptk8uraoY_dOAI}6(EvPSD5eZz>DLuyN;w2XhZqO?@Vc*xXT5rL&^{v;y&C^|d8!5*WBkSBE3Cy_XLf7oeht)51^yRLA*Ol0)I8;f2s2pcZi5 z!X;T8vZr$Z3TE@*Ec!Sa>VCG~yL8Vg4!(<7Sn=?-$~h5`2osocN!FN}{~2Li%@>{u#RKmRwyu#OJF1D6zZx3nxjZ zCPw2cBygvjZfclpaZhG`Gd6#5t_bMPgRV-pMY=E6r4%0=E84t!?K7X>JS&mNme2Jo z*_L8+Dadxw!(WCb8Dw&d=A3`_iBO3nC|DhzJvfdzLBBwkh4FgCp%iobi_>wnrDZqG zI`AjTNBV_avY21Z7Juq};*!d+{COe2&aPI}`lHCpt?#EosIh!l)cj$uujL0OkOf{7 zpDT&=q{)yvocIm-n#2OdR@qH;_hUqt8s82c{X_)*kq| zM}+9!;fwrouYuFWt%_o-@dg0^&Mmrz)v?> zF4(Oe0buxq55FRwUv$se&H6la{sr;9<(qqyc81>hQUrKL#Gm1F$2UIcs(S zD-ftI(+bXUU1ZYI+`1(o7J0mAiPYgk1jCBAiFY9&qjJ8%4~x%`IS zKRw6tql&Vpr(e(k)4NIn#qv?d!@G$8Pu42H#AVzJKZZ6y{a;|=vNDCOb?%{$+Z4)k ze0)o3+l%&3!n?;gpix6e|2twY_ZjMy2?w9GdCUvfe|;IsyY{K=V)47q5|j$e=fjO| zJ@42CdW$0#Q2(rUJiDrFMkbmXoBw;iJORpi#~la&lwVGv@(tiH*C}&=!mF0`z;Nu8 z^sWi=)|$6Gu=kNYyNk1XjJrPHF1tv1(acincYVL2yxX*FtheFLfBz)N>uwmZb@A1Y zjdXw&i$hzqNOYX zoUk$L-$eWW!`RdE+8=<;x9(Z+Y22%6e%zQmu>yjsFjbK|HK=wly@p!-q4jUs_{Xj)^+nNFJv(-6+x}KQ8TL89 zMX83&%TLQ&E@)4VY*D*wiKb$ISer%st%BkTaQp-~6v8jDYp6A4qz8fcEkzS|s}aAI zRw<>M!{H$}S`o$&!O|cXMBg?E?VnX3E#;_5JHW1H@=sv>{AYoa2B7aXUVEqeu^t3* z)inEL-mq8J`mH?nW^HEBV@h%3c{V_qD%YOolS|HA`vxpg54FrM9FKkIur*gz?z85a ztkltsVcncbuJK&!@tN!E_t`=__~?b0Z?20DuD`m%jsC4hrKPMcEiuTNKe4sHu@dly zVx_NP4iHgE0m#`x&d4KMs}6+f4Zv-oW@0IWQC)J$XEQp#f3+5W-iKnmaCeO75sW!4 zp)ES0IEP1R2z_IddD9EC?|#Cb&qu}+U|j~rMs5^9M?ssveJ#&JDI$F^R-Z1dx1(OB zr(U7>IM{PJBlD`40J=CKl+eTg!h)LA_+31a$?o|rD`CuxBmUY^nVfKE-{yp>Z4t>i#Bug;D#S{09fPu6ELqueB@dk`laJ#n!`76MknjCw9la;W>0&5UX!*jk__bfsMxkvWUWnf>p* zN5H7hN9xl6^V`!r=xeR$LZCWw-+ZrU)yB4M_WG>0JnT0Y`(61p70rQuuzO1@p|^#d zkG{GM1V647CcLAqyGC=%J4EG`U#`S}hTt$a4p}F!4+K>4K?Qfu<{p;>v zj~oW6-ti{67|DqO_{UGl%26x)DUag*7+Q)%Ur)v@%y}qIrcP+$;-zIpU|vR|3qd^b zrv{#lvmZAa!>vn5FWQ>mIFnso`HUEUjLImhmm7(4w3f+pACH*5A%Ip3xwb>Ge+1oH zpSuKjmBg1*vKFeM$Wmk?dTT1~Lq$qg?tB5bf!~Mjpfw?Qj=3=oAlTv{Mki<$YA(G_ zuqfST7+V}Fl9)^a1r##Rlln&i1i!wz%rZo1zdyd@n-u_d10;2nWldzyP|_lJ9b2li z4S0)K=R#_&j+7?2ca^3Gl{FVfUBngKW{^jG{a{u9l3;W^oEPW#$x4C2*QJZvYwSc+ zYc>GowLYxT5V^c%^;W|`0uvN3u7-Im*9Hu>VUrP6*+nd(^tTbW1td4Xs<$v(lgsS{^R&+S_?)ZT0>9g0nZ<818|)zY)NFOvc948( zbNimKA!ML<4CljX&uj$&cJOjkjTghHc|>4oWpnx39jFsWj}}GAO2$$-4~HwWMbY%9 z%?f}0G!sLmB84L2qeB?%5)ETXW?K=VIx+&nqYo2HRiC;b;JKIpvWcAl6GsGtksLQr z{b?kI{g{5hSy`X<3U~Pz$-wn=2_8WrdY0GcpO9H27q1LG~tHR+8HQX2O)Cf}L zdXdS(IHYv){p%^;&q--iLJ+YWr%d!XmEX>h_bivMsm6)XN z3o)rtPri{{gwN|-7*)S;okW|%v!!bmh`vnFE5F0A6|Np?-8IAfd2X#&uq@^j(LhfI zPn_#?6U%eWR)h%UB42x1DcJ?bKLCoJiMbFx7-_k4{nz!5ayen`4GS2)N{_C)KBL}z z9PsK{r1(u9Fz}NX9B`Z0Qigf>Yi1yBJ!=aJn*kP=fm9^+)}#lnxSVTo5D)})Jx+!# zE(JZoBopIdUKhMt(Y7A;Tuckb3=^{21xkN9$}$w;C?P5PeJpEY_Y+a1;5Zm?d{OxG zQ40n3wBOi10s}pGtX4(lIE}G?9w;T$q4;9G*@4z5b+Icnor(r5dz$yEeY=|Xw6RZN zLzRPJnStD3TJJ-!8n_89j`IK zz0!)iTQZCOz`T|IR`X+T*`O3Z{hW^Z2~N;cWp{4<#h~PQfO#dh=mamb`fJYs3kl5> zjdy=dRjkpZP6)##S-;s_T&qkvp)h5GZELX2*+QS?u7Di|RRnrJ6n^C5y zQmh?K-EA66Z*6x2pF8nW;X)ZH~NkDL(rbbVxOSn5knRrZ(EQ{wO;f3v&$-UU5ZoXFkcR>FjHg zTQ=^0oVGGiDzwCp&D;Y?&QhPOP2;M&eTuC(7{ z)JTJdK4~m&`R%@CkA7i(dk{Xdhbm51B|JD|RcPZf!Jexs3+5G0yyT^I+87xgB+itf z0XycZEMWi_oJ&_|JWA9x@3%{ou@wPWaz!M5XKu__erLPzr_RLcZF)mBKRBh{q2OXo z=A=JP6W^_TuC7P#p0vciXW;W#Dh0wG)PXdubc859JAmm$#!kj!_kdoA`YWkVm+eAi<0hEry*GHdn2;5+e}j^ zfIn_?ql@@QtEiW4tOECsqYGstG4X>Rx62cv7A8C}gmb9ZL#fA|x`QwIYO&9md>VAA zIM}6#3z$B&uo9(|%qW|jU=@Lw4u9r;n8v}%#cEx2 zCb0i3uB!!5j>4bdp?O@2mKMM*}9l1kXp*9kyL57)To z$UrHY=hli)FR;0>xP{y4m}w}#oey3OSERY`Z%Fe+&WwBM%hKD*+c}UcL{Bw1{_eBo z7tnol&5l9NEVIdL+*29(n?`(2OjylbtXQLEvR_fa=iyHnworEO+uPC* zv@ccWz7Mq|P`)3Pn98k3Lw1L*vlLK}*ZLrnwI`lV+7{6g{@oz=WAz!-d=t#Ke=6ji zH7*>Eqn*?A63%ab;)3*(L|9GuRdhTdz9W$%#8w|cGgG~C{}K&)#Iqd4V2xd=C8Z%G z!dG4?k-$z<>rn30rcOto=(ys`SuCYgROZMHULB1t0wC+ST*ygkkKU&kEHToF`>Uk8 z!u_Bh%K6B`GMXyS;uep?x`*Sy*5Jn%X)b%`-#7?C`nI&mnT_YuW$H(VT#~h1H~o}0 zQSjkLbVegB;H9eKwTk8wZ^Zi&#?Hek>oG{|LBKeSmwfW2aB@$`M3Q5-!mir_I)E2V zg}fqgnf|EFez=9VfCs5A4u>)9Dp+Tk$zl+8?IA|kkjMbD2}2C zt1m;?XI46i205p|m!dO*D!T-&C)`ewdBHk(*Qp@ha09Z2=}Sed3z8dH;yh{Ief+-7 zspT%uLYvPR<^xEKFZT{c);nik`Lvolq<2c>$Q_rmC89Al)Oj5pCd zBBhkKl-yZ(8URau7t1cXE7)WYgnw7tGU4a#S#}kk)`lmVkI)j6=RdSAH?V$nZNlLS zTm~~%fb%rHD>U5m9`<1s@5)@&dLx_}-GwQGY?I}LXV15@LRV+5QTzwOe*(g+)TgN} z)Klm|c_4Hu^U==e6jobyCG3!_ij;~1Dm0}Cr&|vPaihM@>G@W_Le^{YSa8MiV0y|t z`oD?L>m<4OYM;DywHXZs4ac5^)FC`;q4q|GAuJnZ&cWKtS7e=XT|Olxr)DMQ1WH-u zMe0vzD3fDmPR{8#0Sw#F_5BYO9&~rpY8>$Kk9Nr)bK+1&*4Vti2H`M~*9`k3!Bq_inDR zb&&TAvv_-fu>2U5iu`Mx3=in&sXgxzj{dHftkcsH>==02X^2JRI<7DWs(Bm#*f###J_HXdKhEYR$(c1zt<1ZDLdqSSC*e~?=i_H0^ zrFdy`L`p|5SCMZdw{LcOdu$XNvQOblv$5?I)O3qGsPs9YK~pyZsMY_8>OHM~3}MgD zs_?ipeE`O{i(mZ>Z1BZqxpgF99(Q+N)Vs1*D|VSGQ;b3b)z2 zN?4D>o5v_9oBwZ*^u+t_zOHV zh@m>=>I!TFW{7;h|6iI60M*bpDH(H0LH#PXE>r>gF#o^ug0CviTDd8$3`g*UADVnH zeLQbAgnprfW3A@)Zkzu7-9Zlv)unCSnL|BWlgG9x;hmHGEK0w-QUDOQvF5pY5Xf51 zUDyM_5q~p`r2t8@Zr#gUzA?V*Z)Ti#Y-0aLw+#h^s!~e+-T#UOhPsIvEYY)yCPui0 zK5eg$ZU^|-S9Yh!wq8OS!1X~>fPCy(a^$y;9Oc;={HAE=f09;+G*BWPlOs1MQIeH& zDtxnX+*Mh7eK)o-skg^;}n0Phc^PX>e}J-~L$Q{t7m+gZOY9n(OW=H$($ z+2i@@7i>+M*3TLNEywydU>VZaka%RsM={;5x?d%h60Q0VnM`eB2%rQRe%Q8Pl~{f0?XOT#qE_kI&jjqkz){+5BK4;L!k3-J4_|mzr{;DdsRf0hGvz z^x7ZMp%u{0Wn%gYg_Av{S%w;p>vI3a0A#IsHbLR)Pqz(EX6sxPG2DVz=K6+`=S<1u zHobmTaeXv-gYa5A6mTp3O!izQ`K+wkY??GO*cV{i@-}tfKy+UYq>YWPhiEmO51~8> zCuWEIfON$2AtC}y&jN8e!psLJ@1ww%6`#~lD9dS1WZhN`&!*$Fq8fWo0MRic%K9yz zQs%v?*U=r^EjfH1Zk3bY z$v=E@gNOFxncr`9?B^-7Uu2ArUPdo^kSai~U%A{e=~IC8-?Vh(0vb@qzLS~JPzZlI-QwBf z^2~#ucfoDeX@cu0grgWZYv3p z$D2q(sHDp(B!#Qz{V8ZH1K&wa%xcI1%v`WXJpvlt%gw`2#+Cdr7|s^qjS8|AbebGL zh0}ybgC>ptGE3Hp+C=bp=X+o7eI0`M5HnBLlp2Y8cLY^fIAT(tL+q*u-u!$DFIhi` zFlp1kzaoT-rY?(PpDuPQ>346PM!wRnZ^Wc8AH$8e@orm%1CZ(zn1WU=y>0@0SOuol-@djN&ATk{G$3$^NzKVu{6@pJ%xI zdIerIoVXaxHaw|9UP*Msx|~W(Midv*_TCzwuM?PfQTB`=c?7Jxih{oKA*;VmDa(8> zpoArMait!Z%fvnd98KxEzV+Voes37WM6etzIb7-kP*p%cSjNM*-d1KF_Dx=myF;XF zI}G>^%?m(^p~9`AHxlkEl6><}IDN*gCso2FZ6uvbK21O>*-)j60#9;<1S>*9IvJZH zI+yB|D7wMtFW)4AksD+S5(QU{UYpP{*pgra%uud>nJdYc&fe-2bs?V+nbE*KLw`!Y zfJvb3K(u|Z+ z@ji>gL{H)t^O-}bCHzJ_V;5;wHP_>n5qoDe5`CKL zt9W3Wh;cd0Td0a`2;&x?cm3e^;z-dI2vNTys;EPB`Rv>WZ~bv9u%1>x=aV_-{AsLP zo?euD@SpZ}-KDeg6PelHn$Lbqor*9GstMYXm7dqaaPC)CtcL8`|CB#grZ)lklqNW2 z2?3G0fpp1O2{ziVK~;j(H*-Lt;49bmNg3tZ$0C|`%}M%(cFakndegk#ehRyv0t7v( zk9Ye@*5o$o@%xGUjk9G~CBZgF&WB(h-_NiF2aMsr%Pc-x7DpMg%yINz7%|7DB_wM| zWGUJ5)aN)^B=x?&YwBcIurECE!Q`|gVzzkkU?vZ#lgR|JQtC}WT$_Z2nD3NDo-=cH zrvxeo7m0{v`{CHyUx+AcQE8@h2g+q=@?v8TZ_YCbQTPsV4Cu`Z-%~R7BboQaH>aM#4 ziuN!o1euoO9<1aSfzU<28x za%imrN)R40r+$~JE2nkT;yVZ$ zrndKw1Aqi5+r(U$ypa#MbjxWSns@2vR&$Vvjh~A95@S%J zc+B8|%}QSpbRpwC6cD<~>^yhaIb9?L9j=__0Hxiid=KVVzkL`+y%^Vt;ZOqCvZd4~ zFUwUr>7(j)X!at_R9p&V8seL!GOZ58eNa4o z=SOstDb^=@wGLjW3hHoZ;jR$CVu1gI#^hzCpuk>rnYLwnq4w8DY>jEYqzy~HAB?ev z2z~e8%B@vG+?kN&UcPO2a5?Nj23XV3pby{$%R-xNf_t+zl8LVMIp1d8hL^W1vH)tX z;z%>8>7OdzAb-mGQc0SfP(yQ!iK;P@cZi2{aauhkK^jyK7sI@g+hiVi5CbDuRe?-4 zpNT9q4kC!c>>fhr$9O}peDw_$aeq2c=n0v? zWvC2AiFT&r(sRnPAq98rR`r?Jak9!y(d)Ptr>W0Kc6%X?3B&vAvaGSL>MvCXVyNtL zPlE4|%kdXm589;%0l}*JW%XJcaSRu%#!h2CBKCIF7oKy~mo_f@oVDhweOa?F1a7Q9 ze%+ofmOa8D&!$TC*cfkbu10-~#l0oJQhqVI)p1?C>m2=n%D=AcEpvdVYjVn!YSxsMjp2J$u&*Qvh9v`(i!wyXBFc}hX>#w79$io{5r}HVJA#?qf4dR zAhb{Mnop)gzDPrG(O@aBIC;?0hz0tge8$25I?Zg>Tjbj=K_s=<+>0Z&Is;sUtocmM zKE0PcZ}I0{f&or9b=e}LIXK6OOv*-6(;IyA8 zv1_R46Pr;tR=XY>NKO@zx_5<<;8m5pJp_>V|7bbr08`LB#E1uwLvzzYc24n86TMifZyLH^uML~u-P?)9}lm@;IaNMmS?CR}U=caSYkej_r?J6)-a5FjL$`WS{q znZM!6J?TNZh5>4tGx&>uIw!NPFNs%jj%wV>wARf3w!aMYTI-u;;kn$gudaZbi_3cJ zXN%GPHCHjOmQAd5sn;@BjjZpTFpu?2nJXVGI}hpgV6R+$@JxLlt7rp z=LdPpT6soi0hX4RQ?&s?OL73uxVahthW;wsm1BLoh(OdhU-`+L$1EvNZ! zz-qkiRG)A*P-kU3nDIoU@TOKFkRpP0G&aYy_qhtlEn8t#FZvfd5n(qYE_o}<>j{~YU@h)yjzn*_r}k6_8J!i zDh8L(Qke0+BGiVDe6#n>h4R`RUUjB+OIurv2Y%@ONZeLgO`fI|7mHrO$#$2j)(w$;7Z_XhjX-fn9ux&p%0Z4yI1QCBSh2K^7>VF6pHid#EG1Iaqd&~ zW^$V)ToGs;(g~xb@U2gG&gBoUXA!@>!A2)CT<-Kahv}NqX&ab1PYEN~;W_bK0vSZ_ z`#x`c;BNjgqWIn8-!FOKZ+q8HwJ~|$On|KytFgO&d}1=jMLSe7P&^s*R_e*s=-!I7 zJb=6Jp@Dgewa%9q?1Rc**u7?lF|skA>#nVSnDWe}o$j$!kt=tOjlI2;QO?*HKIHcJ zDbGS_Qb@CxP=iu@!Zi;saP+Frvmn<%9?@@l7#{c52KzVL-n5E_9yNZ3WZZ61=Nns8 zO)hI#PvbUcm|OwmXD)^AMnisBKHtE+S2{pi?x^Me_MuDM6TM$`xjWpC{xmp#khh#l zUER>4oz}XWGkF?Y`>YjmQmsaimv8Rg|AfT;e`0X%UUMjD<1T;pU#Xt|hd%f(>|kS6 z)k)Z%ZNd)lx?}{fG5;q~Y$wX_zs^y^?ojotWO3!q%XtAAUD}B8(ha@&&ej*jQh&K4{+9i=fqcG62@|^(DlwY?9B`sj zHYmRY#H2v%Cmo3I^|p6?Wrmk^F1vHyVb|Yy*W%hIw{t5zyG=s*^(HD(3n1|UqL{*n3fHv!6u>1W0yef!l)CDcML@*aTQVvF_sV_6FL%h4 zRh*500-JJ4Ae$hnMd+d$M=n%zj*U%Abi&2Nf{P~a?|LHzeOuiaXV&5{*hPJmm;Pw6v$qcS zgyNH^>uCK2^Tbd5B%b7J$%``%8Cbi<{kp3`c=>eBiz)C#hOK=%t0C=+VI@;fC$F>i z!Owkj*@fk|gSqqdS9^wRG{6t&onJ;WjbBgm6zV;xu8BEeG-L13gO;e3_H(MSziN(8 zZ!t<%wp(9}mu0jt?DqA@c^0f#^QT057AU>;Gucf;-3XAuDaY5Mu1K?4jT@p7639HM!CZvke27Qxkw4NPL7;g5#1txD&N}VA#A=fRh|5cvX5d6MzvEe>qtrnus$uD zKWQ{YFI1{10JGS^+f ze^v6UW}(sdT`ar$F{LO#05Z5eXO0eS{xk?LqA=ad+RVOdD<6h$1)3A+J15(QX|wh)COC%PU% zj1V4B(LN(Uj7#nuI-0wnF~AzT6s`oAF>4?fU{3I{2-)sc#W~YXd|_4@u3^1A!~@^6 zN*NF=a5=%&frNBrz6%2}Vt0WqDDjMfzc~MDFLFtb-kES#G!7M1H_gu|W|fe)iF=PT zNU1scoe-bq4%nV4uvXx9>{fuq23DspSd-i0!3?XrNt2ZaMS*nIYgE0eA;6a>`4+dP z?Yp-QQ9iih;-0V;7fjKgm-)Ygt-T6y$GUQXudXC64ipAf%3jay7HvW0YL8qWTWWUF zKw{4jCl$BKLgZ114gAc7QI?MAwrBvD1zh&r6E>y5eZXk8UO88_t(Eh}TO}&an=qEfEdXRLT&EYAZT>6zj4J_Dntscqpzeh8sMaBBIf-Z1#@( zin0h$HMxD{e(p}z0cAG&XX{F(e2K?Zo8N1MeV>0euxdX6h*~wG_a#J^0epxkU%+D6 zS5Fs`n-y4QI?@GwvSIpZQ>oE{sSB z8Z$W&F_*RW32Q=Xk1Gr5<|mnZqS4r4UQ}xCatu^|9&MjdIZt?>Awu0J=fJJ<(W>v* zpNOhwX`e$V+?XZhA&o8Z7e@X=e@Hu(2NXfXDR%yfbcI0Ty9#QRdHl6QldZe|x01|> zf-v#IM~6pD`$MQ#^j7Ho&QH`UV_Id#n&ehu7tj;NYLjPzgQQdP+)F+!yhxgLgfE{) zEx%s1_O#1uMKzN6iqPx*dz}uh1e?m~9B#%|alw4}PpgR6F`zB^Wpz_d`v)3sK+XinLPn07k`2QA-%Y*^AkfX6}{4hKr)B zim&@Mo)}TpM5W7?IsE!tme3h(ATKXVLSSLuihD-(8%nVQ4=mE9bJXw$o8J;L>hw55Zf)K?kU#FBM%~VbBpcAvsCxYRzjJd zJ|LY`fo>=Dxr?+Qg{V*VrFtqvH9K(%y7YL8@U0CI7=NxejEpD!xuC9f2OBl~lTQS6 zJCxBqV60g@cn* zl*FP>1QoY}%ASLYJ1EPht5(9nZ6j9xt!|eUuCGg1fe{prYkdN2UTA{kogv9NlcGxl zZwx%^jSA%#`{dK}4wu=^GTA4}Ea7T=G~}OO`Z>=}){V0b=ZPI6~7D=dOskyP^pyHrn&rR0?z9*uDSDhU0nmo^4{ z=NyY}Qj4PTN^$U#RVb);wDV36T9vz;QoYz`>!U#vUS=|0D$KXmh{@lso9B0>j-@4K z3-Go@>|URrfbyb2FX7XNJ+EG%C8nx_AKV;Q>+9sK^sNdP$F8Q$hNUTE2K!FFcnKX2 zxxls7iLxs-k255pODvNjMa2iHjf;RU_(EXb9$#K*+;GtaQz>fqy@YVZP~O`?ilV%N z_xMjwk^SU(G*qJo5_9gPSIFI~(RqmM4JmL#uS=kC zKVK2grtnUBq#?QEQpyogt!kszO75ABKiPMS?UVeXYNBtI80ninxoD@vSAkX%Qd|?J z48#(!RZ(`7PRW0ccCK5)B~(I&I-v`qZo&31;*UF*&5c&)^Aeq554X!R<&Zs7}N@XQzrt7_T;Vro+=fI1e*9qxZG3~GeRs9-`G{a1PW3GY8&(4eVqNYbhM?ruZ)K>CE&`%h_uU<2( z#AkZ&F-wqSdGoWyW?8=_wook22>Q;bglHw)_9iD-{!orX%Lq>HYXsl`F2W1NTJ-{| zc4z=6gEvmLr?B7>JVp4`1kUu*ZKW00otpozQBKkCPN{(Ez@BFzR4_sg%TS2dvgt#F zdiz26$_=qAoe@;f=~($=Liv7*uLgjxRj`q1jV_E>2HADHnv#1>#*E^uv^Hrpu$^wr z*=6~td3MqvjnB67P0=G~D8sCHXP5ydyg+cl1qwyM^9ZoAWg-fyFRxA)XJhCfe7zYy zUtNU?FvpC0+(;zc`>TdBdK>L6XBVuRO@>RiZvekOasH!JfT9{EMY+`c){dnXG=MJn zA30d&2L*Wf?rZ<^B_WpB*lj9VE`_G1#jQ_au6@F< zWJdm)%#^_#nKv`xO{iq3SX@w`R4Cr}`)?eO_3?X?9Ua6P_d1~1#3vu*4d4dg}5 zUxTOjxD9^3vAg4*gXqACm`&1J+0?mv$A_l2zC0^CQYmGqF4wt8p^E|csta61J@rEp z-iGGJngTd6>ad;*t)n~4wA{{QUUEDTxM@;ndNRW5RPAy^@*tt` zPDpX()%=<2iqhR|Vq^7`)o7oE(Q5_xj)nNZZ6i~)@W{Ix3*rJ$Cz-Dm8tlaPcMZ(} z!*yc;lJgEx!(h~>jdz~O|2zvLD)@?WlIRbF&XJWlW77SowZWnQZ!~DR?E{cCAw8V1 z;}Q;Bke2qn*p9s)(j1~w*!N)|0&q9ogg;CEQ_a&lVsXCZl+yf*sV6{e(;xfE?~+#9 zUn61cE=2g_*?u5jghi(&P-k-6tOXwO*B2*Hyi%8td3PJQ?uem2wmD9s z&9UXFtR6P5FkYNkE_L%^Su77pHN=tB-%KkHLtcPwS_V0q#X6)*ZNVi3?YL2sSv(1bemDQN5;|^<6SSS6EPw`wlRwz}uyQ8NYUDC}q~H&$`t1yL zc?Nf$TR?_-S9e+Ah8oX0f$q%Q6Y>*ItRnR$evOTI!^tpk>5>FV*?k;0d!+tGJkK|x zV=G|z>0$q8^Dmv}qus80@A)FQX*PCAte#h90c2C^HQ2{{Pird-Hu6{7nWjNNE1WLA zY>cHFVVX#!t+TGrLcXx`1f4_8TjjEg&NWwqEx^9llHG-K&jPV8^CvB?>X_b4l5*o7 z`zyTV4DOPN-Ir**(mTP}{ZI@08T07jF2_!2^2wS&y+NBs9{|}|M9aB$qjygs4u|XP z&3yOKv{a*O+a~k5(nS1h@I6Dx_nYdeDjxD;kT9LAvWV{cBiBi6Cd#3vYw7TjI4H4F zPpvi)`h2x!pWl`dkFCYvb77`6M1Q4$zYjimE_-5>@Z9xWA80+)(K@>9=C(9iLQ*z; zC$0d%4i!~cs5$)%kJZ`v+tHApmPH2potnVJAu`+#A0_*mQ~gk9R5GAaKI}b(d%mJ)Hs#h{ zGdQX)`$K_U%M-YPcd^gaXibUwggHC)-R?s8mGHcokY>H)x6+sHocuY%Fz?wIT{NkT zY0Dy+l9pNM%aKdy@{7ZdYqlJrAH)HqSI>@Z2YRoiw5_w8Yx+FBucy|OVKM! zR3!EjJ1K8fS7yQN2oU(QOHDC8utQZEzDwozoh`tCIb)>oMVN^A(2UUPZL<=N{$a;L zDIizGMa6lNy9-G)2C0-^sF>i`nm~H?`gntr5A-kw#H;raTJ2_wG zuJ-2O$rO|?*Ih&itPXe5uOFbX4}OjcUO)xuCIWB6BDeZkUy1yB@FVr;9!$v(tGmtX z#zWF0Xi)hNi^Mkc5)(tDmKPO&S8ezGqS`ioS&Wf}PE-Q7sgTw?la=SV%K4Q5nJo}! z`0IqTuDLW4LPZ#48G4lFK0P76@kTyenpoZr^D6J6i?g<`My|d(!UH5C9p&#$tNyh8 z4$bMd*%ZjHe53+`|KxDxz{{YI@+vdh`@aHgHsc;6Z6Ng7)3Gt(<*7FKLh4=eTTUQj zYL`V;bjrQ*9t@;PVewJDm9)B<+xg;YW5udg zKK7n?)B@}qSE3dRW7yWIpL0cNpLr^f4$-K#WcC+M;d?|aBN-uV;uXF7>^a>i&4Q}o zPieBMCJO_eWt4=aI8yk1ksu8f=f*cC2unCZ(Xu^r?n5c^lG?vcjoV9uw8M|=nS=AV z->ikn^9{%!17erlL1(9urk(6A$~re{@K01$hNRWXITP*s)Hga~p0{q|mrKUT(M|Gl z@xaYsOYP@Q?Q>Ra%)c`0?OX#q($>L&pbK-l!7&vFt>#c3=#=M5E%P4$9@Z14z0oPp z2he-)F$;>%;uOp{B0nX0!!&5;UVGbY>VxKDP119aCC{sv;S!%$zJ|*Rk4F8=G|(vM zdpmr{-SFkMJ>^3jj3pG*I!|;851rYF{Cv__Gw$6W;L2F=coNPA5I&9h7Y1TZC2oAa zNnXX87o=CG7RMrDiDE^=>3?6Ojs*yu7NF;NUTfE;P{}JI>OST5Me)Xg%AS#;E-U*Z z?mWJ#uMWDYDauf5__ifv6}%lDD;57l0%pgQ=BBn#z7NzLEr9`0N{tVl<|`+T5zuoM zZ#6bAo6O8Cs~>fO-PiMS98HiLm<49T?!B&>e}N0VdY-v!NxYKk&CkqlchBPx4VK1Q zJUq17CL3;aAZIlG_MIz_zb1FM`c>X-4r%o^tDj=7?NSj=_c0vo=rffUTu!Kh1HOal zQGv}@e(4<{qY$!8x977f9yAIx1)xAircm9h9QgZ7ywsfE^h*;K3rKfqC%$9bvK&S9 zVP0h;p;FAXMVlpGTs?JY+erevr-3`QzI^j3r_81p;HP#h305M_RZzKra3ftcp5BNc zzz?PjG6LhMEobM6@hN?nj4hkDGBX~t&Tdu2J_MabOh*)Dy>*f!{`%rl;4bhvN}~4~ zc$USqhmzeZLuV2r`rom5#ZF+lS&@b*0R*TBS%sjAd@DHeB#k!eYX;(yO;GpHF_VEzhS^ zQx8OC)927HckZVrFTa-i#$?Z;YDnK(Uq!zVKZ(B!19<>uB>MH=OS-I(N4f-0=h^$# zF5$rR#Nf?m`7G8wGm>{mP9u^6fE)04ux}J{w7Y!0H4bOj9Y9lX z$-}d}%c?D*_53eq6SS{|grCdMTnr;4V^6INV?zibO7IQ*A#~yDr3s$d)2u4@n$$0l zxqJamOU!F7YDa(K0ip}I;ro7zph*!;t;aNg0J$koOW9X8#Od9>vbl;f3=jmQae)Rp zY~;wfY>M7Le4d7glM7>ST-nL)X*;T7cG$Z|b*QRb5jc_5^G;ovh`orPp0oadi>iP1 z80z5_iztbFrC`{TK+A+F&P%)fWC1R@r07(6XK+cu)#~{!@d*N91EnG)#4k+4N`f&@85D?^oi`NS4YYm9Nh=DE2pIPwd||SvY3~kfnA>5}>_tEC zC@TLOq&)97!(IWEqQm=pnVyp3^#8vP{u>wqz!By8{A;1DwBP=}bG~!_^PP|D^1_g{-t~^p zd*AnSzw4KiE_R=4e5nC}Kt8qq{D0GGB{HcmJ1=RMe{Z#l+?KnDkNYsxN~0r_ap&a5 zU46{kZXEFOz~AM2Ew4g;{>R9fZ|olbUFV+<_Z(gC_}%(Fd;a;)U;mDcIkbR?6b#yQ z4^^KlL2@VD<9eN_v?QAg+}WAl{wPV?hD|^fA!qb9dz0V;pl53|%Z{p`~HVGb$P=t9e zhzfD?ww3WGTTEf{M)&Kl(7zOO8LZ`xqG)k)(tDRq|KZcw#$Yv+X{}86+?YFC5`>Kbsm0ZVxM8$bOFU1?ptE#YV0Y9+8Y9 z1=w$5)a^su4}XgC#s`HO-TB0#!X$O%hh<6ahL!6JaS)Y@kuf|rq?r)*wgFdCG)uK*VjFh zj7DkHSi@U_3#QKj?f+&APy=cDdht^2oZqZhwnO1O6j{Bwf+Eaxj(4u)MZP43xba!)$+#XPggt+97;Pq#u6m_*M|`l)=P zaFN=zQGNMt4`xuvy53n6a?u-6KVP2{WaEVzGT^t?(~pM9zA6g{={BvN>5V5#El{z^ zH5EzA^H}y!8(A4BSZTeCkITsw!1cwk`;+R;8VY7H14$hUaheo)`1+cW)`lCNCT-u@ z?&?<6(`+p&%ol5(%*p<)v;;nDha0QCPx5ok^7evp#=@`%4=(WH0+TfIjR}*6Z|0K+ zVv;>H5LLd}Tt%p#B)S>;+--BOG>k82`MJ^skyZ=UzB<=2wXiGVSew299G-2QfnLDc zz!F{3y^-T+`~lOlQ8Lz{vv=5B#E~i{4tG!8u9`{uB!&%rZAQh0X9hQ~t*LXyR%1g4 zw>#y~tE7}E$I2p#FR3Wpeuw+zlf@3XtmkEkhW)&d+WbjuVys7wyG&Htzu)7ON4I-0 zI?1OE@k>u6x%J@_I=%-sq4tWhqF$q=RA9qpdLjMDCNC>^%V@5Ifo$!qq&4U9?S002 zV`}lr1K%Wt2QI9c`@9SGr_$&5pj#e%PyV6QdN zW-xY#M|YUg@NP_UZ@~G}ITwJ3wo==o9Gju6d2EDLx2I+tS)-;r0Ab;Ue0Vd`V4yEJ zY30Q;%-RV$nbEa(gLl@ELk-t5Qz8hiZmcn!p%>IJp(=$rc=kkFuzz13nPz6H%ybJy zl=bL~CK>tVmOr!hkUlSmJw089^@{tX<&^Tyi17mH45xl8Dk3_o*@n}zsMcWfh!}6p zsDX1#u6+rEGa-Gw-L_lVY)fC;;rYI#gtD{`C{QBl8&Z|Q2}d_s6v3wasztcJ&lK89 zY`4{}B}oxsKu*19`pcBsu-1&~iVD6N^8z+8=MY+J+^y?QcTYQ;E)4ZAVO&0KLKM2O zXiD#pexlGeO%j|m!wgOIg0ET7n3$I4t?qYM1= z>Lz6t$}CC0-3ig?9kN@qJENLX_hW_gHF^T!vJ2IQHgPj zrfYb*>o(YnsS=knDT9`zwh#gtSYRyf zA~4+4NpX@$_G@tuXSwy19xB@_h#01_&#su1!(?S6W}?>7u5IVz1Z`wh>mtt+_`7{U zp*PBmM?`eTt{^xZ#oDPfYM|$IttxX*gj?4l(yX`nkdYy>%1I+HH+#ew?U>FNt74N8 zpJmLKIxxH`t+j_mzQu=mrA}nCy(qrWPVZFqY?^sX68|?cw@!Jd*=9jO9;`AIkNz5% zCyqU(D+-_JuMcOl@tPSlr;?imS2`Cv1HR6)1Hj3`-J>6zF*ST%;_N3ml#49eO(GV! zl{K`6@B@b;yfVwHQH4%4SAO`)1Et5M?2+>a;YwJNF)wf@xwSrS#u4rK zIjzjlWc%J?E$Z&wK{-UG+6XAqj{(QLhZRXvIkToXg^A2qa7W!|=XY6uH#1AHLQOMi zE=@@}F#0>xsBj%x$zR2TO=y$RC+5|=cb8^m21z>GIj}d+-$OPN-J6OWf$A}8EJcloHyuvmn_r0vJ#pN{ zQvTwcUt)IJZTQ?!&=y-Lgqna?%3oc$1>1o#>jnq&LA@U6x^`ug;$Bn-J?NrykotATR8|XKD7; zYP9zTK_E(3uvS+KDc{9Pc0d}{?m(%#Mjn!%`(lB=!@%06KAeIcL=u5&g3#&W*Eil> zE58S{;`A}RW-gfv^v4#k(O>f3-N^#)?DIh0t5tjgd6@!K_B_QJ7*wsdaOzBfQFd#&=mIP!EpaAN^pBDsp~GxN(4eVc~=8_?4XIZE4tv zfuC;u4RU)Y@TiHW_&O#3`ik5cwTsoM>1DoBIPXMnbFF{1={j7o%-C$Z2Xe**=;G-H z-#E;`MxCS?=V`8bn4r~<9qDWmqmq;6dZXaXgvH6re~_ehuHQ=5#M8Tkl`GV`FF%Ex zvjr!$W1_S>sy0YoBEi?sQ<~l`Ldw-=_7m}N_3IJ5q94BWB7yQVcC2Mq`-TUkkplGM z!~Ut(Y9db5aNX5rY3Nm+_h+}dTPN6aiz7ie8HW>X$lm$sJM?bEUMQznyBGZOjIu}1 zTea>B_7}e+`Bpn~(Uy;vUX)y&_QtKSVf0z22{ zXrB4p%tbYJ2xYmw7IM+A7~BhbO<$|07({JWG{DJ3*2_II!f4L|wNCk-AZ3~tx4Z_U z9;N6hu!b3{Y)9kZXF12#?6c0t$NvtDY`7qTe$vY zvM{_VJP*ZOzSeYeHi?VMrHkuatO~J2%T+Qmmrh{E9El>tia(t_?F+ztoenGRn%dSx zyVWmOuvP9)677VuDi!|WqnAH!+NLY7cKvjMF%UQat3_RVP?sMU=-oH4k8yocrrMJ( z39>3oWZqdGj8IlH{!-eRa35AtO7d{p@-q~)$t>c+p`PG@xNgG9T7|JlaTzb=u5`r& zW$kj;Y3{5veC}y?>2T_r&GKgKo%Io!8GBE-6#moFW&X3)=>V2=VQVnC@aWF9d;HTK zn!$#Fq)%FB%UZ=nD-8i&B_>y5lvLj(B%w^%GrKZHaIRuuR4uRL^KLpk7>wLR#%M=W zsiinCd^=}WFvXA+Q*i+n4Gs7b8mFeE-q(+SZPSd7W7oMdXT_D2y3eV8=Y|CN*=V~B z-l>Hv+5vXjc%^l(jHWxlNU{#|?}BZK;Gu2P3fD*MS~E9x26@~SVjS*GthDR;WS{lY z*UfR_{ifISeX;;k3$-JipCmZ*B>mWGC)Be*?-_QeH};=Z&V6}kURuUEl$i;?ebG20 zf{ykaM|-zE+{396z0QamhtY<4xOOTwIE|)LD6Mp=?TKXKf(9*h-L-A#wJ3bJXcxZ1 zsMyQIN6%N=r@~6mKRQUjdg*t^?xLmi^=1dtSW+B_OIIZefMt&sHGbdO36P1Rh9tvc z&k`EC>%k*0#I+mQ+J366`^77xkXlq0`ie8zV@Fm@sYYJ7kt}3WSsU5Sh#}gpG<#rz zwJlRhno#MJ_R7;G4_j-bmAf?kYq=x|eNva-S=VQwF6zsg6ss~6UM-eW`&;^<&7rl> zDU!AG)NTGmcrUj#5!{P@R{?Ii7k_VM!mva7p%o9pLkMr{QcS52Efr#X>dSLITUbFj zA8W*pUIK=OGW?M=7P9GnT#UyhdPhLc=OhyblsqFS!G?=o@aLgk6H9!4VL*$Te!|PD zfleH=a9Y>DFJn>06-)R3s=IdeKAq&G?P1snJpkTd=QHTxnYFtR?anKD-BRCLr#z6G z-D9^!nTTlXRU_OM1Cumu4J%`;E_=2EV4!daFV13gfE_5IUdeFAwPWALG>GSBJQC%B#7J?g5LX))w9ER>!mU|2SJks3+UHeE~gkn!& zmEMA#(4IXV%xs~vKd9&vtgO4}fUU1oq1B?m3pcQ&qdOy*0xl*Am|_uHvAh-;Lf_I zD5(3fT)JOI-d#S#J)AR4VQ5gC$XLg!C_Bwlg%kHEZ#b+msbw?qMjxVubyMfMQ`l^V zsvR@`0lwcUv$33 ztT4{gu-}C%qou_WPgM=qxn84S^0La|3+`iqa*TgAs&ugIH&S{WI*CP9g}aL)ON*aP zF;E-anZCr%fWB?#5RKY#%PqlvS%VD0MDDP_Ksl)1wP%1pFDG|>V==Xz>%L}_6JN;a z(!bmu?4M^G+oS1epY0Qb6#;)BiO*T(uqP3xyl~fc2lK^I=}%Jetvvx%Q?;Ds?iXnm zC)PCR|DV0^|I|~t?5P=HUKbUo9C(%I`Pr@Njwh~IyoHPEbymFg4PO8)xq%|(TPAXQ zSWPRv@>UE5ImCZtLWD@%8Tr#ifc{vftctIR&850NsqQOd+W6@A>_#CY${+9S2AR(j za|%F$^6|?ZN&p$nst9&#Fb{|+n?TUWF)w8+qmlQ1c@`-Y2-FqArA0u7ZCFw;h!%f< zpD0!51pduO5_}!drr9sQZ1@GhK;l8kvjf*xl)do1OR+R#$U`NFI%%L9%rP$m^mvr# z{a>Et7zn*!-UZQ((MfdE%!9gAGfn6~&7;&J_TX|wP=2p1Kkm1Hr%88 z$@ekBoOyuo0JEsE_LkrmPyFel$H!_i;M-ru7XS(>0LYFYV-E2^m^ebLA2lsd2A4k5 zm!s6;i7VYFY(Y9TE>m;9R`c{BZMQ)p@d13LkE@-s5z?3l;{N~l#OA-imp+-Ak!cbXl(2jDAgmV!SfSU-&jFcmf~kmTPwy6Y?OTnIU@jR zh-ZQzNLOduIqa~ylBzTK0pudK2&67&^WTz{hbzEHK&~8lM{}m(V5whiX1--e6M%XF zdHFZ;@2qE)yZ!e19VOBQDbbB8s6Orig9P0aHSLkCa@Ir#oAlLg zvqbfX4|iX4jyZn%R+FGXx>1OIdhdoE#TG~$0C4tU|Gd6rf})(CzbQhkL`C_oNbu^X zBdt%pFCq4=d??6d|QW;pW$|l|VTM z72$#dA+Xu7Md3lW4V@QNiufp3+*+HB5XOXnj3i1 zmeKv_OVVYwJb?2^L%g^aw}=c*w0Ujy(5Mk-GzYYf6ses|bTno}30lzU2Mf6s#-nr6y5r`At%H_4Fa5CU52 zc)PzzJJ#13NsTn1`9?7CH)5GYe^D?&RNAX@yC&hfDiih$2zWAYR~ENQY>8e=#C+h0 zYefe`y0=*%o(I;dLra{ZHc>IS^h84sHwRjGESvRBE5b2nSbez#ik`xx|E90(ie$7t z%FUK679*I;d+mlwTkm0re6**H%K*cPDm0_QJK8wWv}WG6m_sII%?+r1Tpy-yq^#R6 zEeKvQLkNhN_2GxCB!$kHCplI5vbE)}fMx!BDwC(M@7(X;gY$^)(mF}LmIp)pgVr5m zC5tN6GbFk_>k+dC?N4PWrNwSpFvLutHuhGW$7ZH$1jFMug6eM(kd{uINocVc#&87zkRxB+c86~TcEJD%r`4jZr>*m zz!~JLAsI>bYIc zJBO(G{>m|pn$fkqsgG-UqPec=WZwbr$RPo+?$~Ax4Q}P8@u4~8)g=`fh~npGLuTD| z%dDrN^f=v8=sNeK5)R!H~-!JLh;|GfYCH8oVxbV_mrpZN;vg%$B#2q zoVuxN6?H!vH940cdAkji=^=8Mh?7(`^MsJ3M7xvglUD)akH1d!3&K zDau|=ti^CHO8Gpp)S;=ox~~^DQ|re`)!{lhhUT=1W&u7j*HZ&sm^w0_&@&qo)^9la zmpNVuMcfT{`-HZ^RpXBFfjYcjR-b;8qfddJ*i;(Da2LAeg&=p`amUc-`=m z^f+y4LNDy*IBg)XHjYS)%V@su7o<@`|0FYd4J&dUn@<1Sbc44t+GEGs;Xm$TAb$`H zOZ8!YV1inx>|2hk@tr(em$och(;d0bCifJ3DK~DKw|YL`=`0*bTC*qo&(j!JSwxDv zLQ9Z@Spr-ffJXZkA%MK-r(2sKFA%^IlXih>IFP!5OJ2sm<3Il%aF7`(aRC2m*G&$5 z3piqj40QZb-PsAnvsAcn%%wfck9nA%9% zWLj`lc5-%<3tj}I0=~F4)H=J;-<&<_4rAraX+T~?fOYIEomuG^iSmu^AF-p>b7q0- z@>~4UtgDwQe}Z3#;S-2QwpRi&aS0$3Q$d7hBRkc>#g9(D%JTxSpF?Z4;`KOMH{tb} zBEU+M4`S8qG+R~Mtoo&C3~YtO)B-&@Pt0k6KPW#XyqaRov1=nP%~ZdqOAVR9wV#{l zPPFapC#o7uO;;2{t4jX!40Yqht9P8tSb=w165Nsby`UfHtrcm)7H8nCI=c?2f{Xgh zML{AU6#)4ErEg1b@M<=~boj!`e0w;o&myT1z_o*K(@FZHscibkkOe^WhP-IxvL&$_ z1?wQ^{eh|YUrONo7kJKpB`@^R`(0!gClz8!`SmbW9C72v=g{-Bz{8n;9Z@=eT($h!I>^OpS@ufG%KX=N*eU@F z3Un&w21vA~!HgRQq@4eK|83;M<{PVweazXCd&bFE^5!2uDt9x>(w`b$1C$U${>)J2f0cpXVtB>eGT^^r00QAyo7V%rvyDzO)zeKz%HykMU<<`OE*@o+~ zhFR?OFiP#Yxw`&_$mqEyEmQyH5v}W2cUkRlHKPQkB+e!am`fvC>_-XG0U)=k3pt|! z6n5lWh5)A=ndg}5vL*pBqpawpa?Ajp_|50*AkDzkzxc(Q9(Pw0N`sU)G2F(QLQuU2 z6Gm@x%xh#r@q&?G3<^%COjrp%`^*AkR$%?6@q_EGct!VhIG|1V){h^eCPq%TAVOSW z^0CLyK7@oj0{`hYjAmPWr+X1T|qCgl%(b&=O7^v~2_0r3quAA4t`jj)bS9fw* z%3x!^aa#w;17xMfe@+GD8FF>7i=A&Xa1In(^5mXmW0ItBio|N$J ztf1XhMsh_zTRqrp5yceKfBFmv&;JCbqP`nG;sARg{2lFlwFRGG0c()bsD9Q9Z3i|M zZi77B2h4w`m&3`ket>@v#b4a`!STTU^t2c?kE-GU#BzB8jt7aQ2&~qJ!!nl41hD=A zUHQZu%+crjMAo7$T!t=mJFiCZx5ed#QM_3DRltB)ycN4@MHD6=V)Y_Xs|LZhh55_s z`oY5D1=x35*K%~m4R?YcW&q3qmalgDqotAS!2Yt3{Ie}6uVKF0QTjRL%mH8u+&k<>L+ZXa#DyPfKl&6*9I-$H^;hNchlg7 ziKRK2E*9e{+U-PW;$TK+{o%yOD!3>+A_6RyQ~&0&sjtpNW^qtoR@}LvLU}Bh6QhHC z>*ML9OPGarbJIpoIa-4>z>zjFbI2JiZn zu&E~V%fwOqi>w2+zZr6B^iKOU79D&hE;9Z56l=i6#GUW(6@mO9RPkC(OO-;&Td`h; zQKG`qS{ucq5EGvkDNl~AO0m(8BPy;2`lQ$JofTqzm6^ytzbD&S9KfGVRvrOBzjz#H zuiSnv$p$YD@Mz|hqQ)OYob!>~9@`$H8Q`{%mZXzzDU~Ys2pAk%+A%Duxsy`p%x0@B zGo%yyP}RORSH##Vitl80b9KXy)pVPr;V}P|BL#8q8-mEe$uA>Mn8CYw*tR(| zt}ib_cqCT&a9*F&i|fH0Fj?puicAj(XXMMhC?=Jj#dNEra6Xo*YU$6-7M~laL#5AF z`?9FQDLF^oQ_pL*9CiSBuw*GPKVpAoVoo;JW$MuZs`TDaX`IfLC%C6PW&h}}Azu49 zV=%F0=zupXJ1mVk<6eesj}FAKsLhrP(ZoT1Mci1}kZF^5$xSu3m-_=;RSwRow`+sx zeHStJT+6et=wCqy*b0% zKC2zd{`3mE#uY1fL!Uss0E~Qn54L&%F2aZ*aY=ovnAPSLw*s^1qwftXWhfCMPX8c9 zoO&(CDN6T=l2|Xo15~4e5|o{`E9x74!wngA z`6@p|f|M^JUUv|ODXV{-MT(zzf$`{VkigK6imqRM(nT;Qx8AJ#q0B@}!H=lgl7qDW zI77(aecu%2nWcHCfu1!|Nbz*opFZk~cvI7&iY4L{b^MBSeLe;28j1?7MNFnK@`q=T zY&dNQx03D@)n7ZcJuIoBkaCxVC5_F66UY-Lm)$k$S?9@0T6cOl)zvDhCM|A|7Cxk- z9nVg+EWqR-7CgnVU6F8$aNYUS=%F|((Jsv*CTMVY8$n<6uCEwgq%NGQQtb5^@<&7# z-JRlGR%41C2r2E$fvxK+(v5JWH!ab-;)Jdz&erL3xSQNSu5dh<)DYN2e zN_Tz*KfAcJsxuZhlWaLU~&pm^98{EYMJNlwBX( zJIKtNK14h$mS#MW-ost-)*(Z0_ZwDlcLTxx1sE6gACfnCr+*jH+uQ?TcpP6m@sw0`zeL6-^&IAtFWFj5y-4LnVvn2h!w5d+fcD}PCL;@o z8IRUiXtc*s2FXQtozCVE$+`5Y+nYJ3xW`n}i)qL5aN1Y2U00TL=v*&K!R**WY_MZ> zQfeyn6c@CHzpD#pgSX}5XA640z*l~}g#{~|>F{Nh_A-MtEx@uMgexJ+N zf2y9_<>SMHrDwk1@oUjP9vJl~(ri5U-x9jPirOB8V0RGK?<

    ^Fv6BoStE0nRKM6 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

    qD@D(fDbR&NwSX01&8p)a4)y>65)(SC9Ky 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�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[h$qjG_nT)KU+TmZ!>%ZO! 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 literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/en-us_image_0000001052530298.png b/en/device-dev/kernel/figure/en-us_image_0000001179847649.png similarity index 100% rename from en/device-dev/kernel/figure/en-us_image_0000001052530298.png rename to en/device-dev/kernel/figure/en-us_image_0000001179847649.png diff --git a/en/device-dev/kernel/figure/en-us_image_0000001052810300.png b/en/device-dev/kernel/figure/en-us_image_0000001179848349.png similarity index 100% rename from en/device-dev/kernel/figure/en-us_image_0000001052810300.png rename to en/device-dev/kernel/figure/en-us_image_0000001179848349.png diff --git a/en/device-dev/kernel/figure/en-us_image_0000001053224218.png b/en/device-dev/kernel/figure/en-us_image_0000001179848731.png similarity index 100% rename from en/device-dev/kernel/figure/en-us_image_0000001053224218.png rename to en/device-dev/kernel/figure/en-us_image_0000001179848731.png diff --git a/en/device-dev/kernel/figure/en-us_image_0000001053826366.png b/en/device-dev/kernel/figure/en-us_image_0000001179967527.png similarity index 100% rename from en/device-dev/kernel/figure/en-us_image_0000001053826366.png rename to en/device-dev/kernel/figure/en-us_image_0000001179967527.png diff --git a/en/device-dev/kernel/figure/en-us_image_0000001052370305.png b/en/device-dev/kernel/figure/en-us_image_0000001179967909.png similarity index 100% rename from en/device-dev/kernel/figure/en-us_image_0000001052370305.png rename to en/device-dev/kernel/figure/en-us_image_0000001179967909.png diff --git a/en/device-dev/kernel/figure/en-us_image_0000001191018697.png b/en/device-dev/kernel/figure/en-us_image_0000001191018697.png new file mode 100644 index 0000000000000000000000000000000000000000..9a59650368d40f7a2fdffeab84e844b0671c9906 GIT binary patch literal 28182 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 TLx9h6`^DPA?ilIFxoiIhs}%i- literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/event-working-mechanism-21.png b/en/device-dev/kernel/figure/event-working-mechanism-21.png new file mode 100644 index 0000000000000000000000000000000000000000..ff238b1b976f7e51f3f13d495be2a01f18b327f9 GIT binary patch literal 33007 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 ZU0t=*D-Vr!0)J+@d_nJg{yFR5{{h2zx(omS literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/event-working-mechanism.png b/en/device-dev/kernel/figure/event-working-mechanism.png new file mode 100644 index 0000000000000000000000000000000000000000..ff238b1b976f7e51f3f13d495be2a01f18b327f9 GIT binary patch literal 33007 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 ZU0t=*D-Vr!0)J+@d_nJg{yFR5{{h2zx(omS literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/exported-symbol-table-information.png b/en/device-dev/kernel/figure/exported-symbol-table-information.png new file mode 100644 index 0000000000000000000000000000000000000000..87d6aaf4a5f1d7f25c2ee2c964931c71388b043d GIT binary patch literal 9281 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 aQecRA77uJtz)yojY^@#7)SSL@?>_)i43|0p literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/futex-design.jpg b/en/device-dev/kernel/figure/futex-design.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f6c83d6434f3c68d1baecbf42db9a3df21568b49 GIT binary patch literal 830374 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¬%;Pe1;cnDg9fH*@ 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%0Ayu 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%0D!igUcvM_0*M8CkLm&weX~+XKq;i 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⋙hMr{lGyi2_A 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

      +4cU_z#1t_9 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 f2JjfbV*rlz+(W90Xzo&-7%m$-28t4Hqbz! literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/heap-memory-core-algorithm.png b/en/device-dev/kernel/figure/heap-memory-core-algorithm.png new file mode 100644 index 0000000000000000000000000000000000000000..8fa49b71f46505f335a5e782cbef362f7336fdaa GIT binary patch literal 51453 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

DYiIU+)w3t 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 EALft9X#fBK literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/kernel-architecture.png b/en/device-dev/kernel/figure/kernel-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..1e120a02344a848cc8b87b58f6c86a5f97e560c1 GIT binary patch literal 28052 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 literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/kernel-startup-process.png b/en/device-dev/kernel/figure/kernel-startup-process.png new file mode 100644 index 0000000000000000000000000000000000000000..e20abdc4493bc503efab410f444135c48d0ec250 GIT binary patch literal 45752 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 literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/liteos-m-kernel-dynamic-loading-architecture.png b/en/device-dev/kernel/figure/liteos-m-kernel-dynamic-loading-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..a460e8dbf1953929bb31be3323fc716f2cdaf9ad GIT binary patch literal 16809 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 TcmRJj0vTR4xl($`HuC=fSHB~i literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/mutex-working-mechanism-23.png b/en/device-dev/kernel/figure/mutex-working-mechanism-23.png new file mode 100644 index 0000000000000000000000000000000000000000..870e3441f4988be3d73ac9a4f844dda8ecc0773c GIT binary patch literal 39810 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 YDpV|HjDGiFAG0tuvb;$)`0bDX3)(GcRR910 literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/mutex-working-mechanism.png b/en/device-dev/kernel/figure/mutex-working-mechanism.png new file mode 100644 index 0000000000000000000000000000000000000000..870e3441f4988be3d73ac9a4f844dda8ecc0773c GIT binary patch literal 39810 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 YDpV|HjDGiFAG0tuvb;$)`0bDX3)(GcRR910 literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/overall-file-system-architecture.png b/en/device-dev/kernel/figure/overall-file-system-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..07ca835af056e96dbbf0f08f9015eb2ea1c45380 GIT binary patch literal 16983 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 fu*H9PIcBbMmfm7H`q!G&d;ZL&( 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 literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/process-of-creating-a-vnode.png b/en/device-dev/kernel/figure/process-of-creating-a-vnode.png new file mode 100644 index 0000000000000000000000000000000000000000..196379c4e96421909b045bdfee66aad69ed09855 GIT binary patch literal 38518 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%0D3s8{XF6r7yB6>uR<9UXhq@ zg`+z`EEE?xIx?DFv^LumS$;3?C>;LwDrxJ-mT>O)}tfPT)= zvSh2SQNfk+Gh@L11F!olu+a3^^Y%taW7nL~>_xkctua5+f;!g4Wa_z zZ-0^ST1}e1{3ig?@ciows0GxV3I_hU2S4!blp7qOTr!AnG=XbLeYduCv~qe57-4U; z@h|DFg_^HRRYu-0S5+bPZ?;hisyFT^R!-(SZT;PICIoW!J0O>{=Q9i26Hpb3g-qsJ z+E;Zwfpz9?B{|)OLtOk%xNP>Z#anQU244mlGSrb@%*v+&tB_Cvf@tRbSE~p&{&Q~) z|Fb^dHTovq#=Dw;M3Z{Y@L)(*E=_laBvkhbd4@){?x_e@jsc+z%lQVxBSvNY@L1Fp zF6D*;pAhjZ?aD&x>>=zWo|JDPo59FA|8;AxrO^dWhK@99JjD=T7J#~>C$LW_{j5Qz z;B;-w8re>1Rj1+5HKA()Ia;2ZGiu)U!&~?Hak8%}(nuv2BS@tgB=Xo+99{+8BuZ2e zvTsY--R6wNp`54RS@PHRsKceIV(x+eo2^W!!8~|E#6Vaau}e?jX2&{I8L*jQdCuCW zd1?4zpVXkCuo-nStSN@;kZPe5kiMSFKtnoPQc86SUv6BZ1spmaeVWz8=B%A#7*3XP zchL^2T>zDzQn||6_V>-pT??%yig#1klXDdnB(%G7?L>?qA8WG0Siga#FFE}nv|X%X zJh2g|zpcB|La?3PxHLV@LDC9Dlq*r(+S`ExxXuBfo~Yq@vefQl5|{7Su>A0`G(_cN zAzEMGQtU+s{pbmw)=TuZ%C0k3)rq|#DPdPS0&kd__l zr`dj{8Dds0%=+{Wf^2cqz2CEbWKFJ#YKxeSEGvn+R*2xpA|@hsj2si=1_H_$zexoj zxo&PqdIhki;CquMORws2u9&{le*6L=cmxQ5E~`?g*eodUoVIMIjN;+O;d0 zQW(g$h3p^EueYd=pYFvuCSV)2e8#>uzLL-}{G{JVXl{%@C1%%eX!JR(;GTi7ofrIt zsO=~}*!)Zd1TI?+6h+^|3GT|`+7_^M<&IFx!9bCe={1mop9S`yn{$sP(sy>Ro&bO3 ztr*rQjBq$y2yM`a6TVlTlH*uR>vyfp!A-K7`-J4?MfcIZ5G-62oE#ulAKj7vMlbYb zWwR0}b{pQLM73o{n&Pq}m#pFvrr(2@v+ZxeBZ2x@eLwv`n+2l=Zi@vGk(+mf^gKWY z=4sr|Ow|~;l&HtXC1SF4N)FIu-{Z4Gp~M+mD8A@VYl88OGIreZsVL@R5z@M+J&*cm3U~_kn`rMRR5&6I>~n9F9T=` zON#exQZBfA!xkthQ9Vwk2)1qctN8&XOtn4VuB`x@mK%msF3*m1pLfU^#p)ipUEYq7 zz(^(LWN}i8Ufm_1^+Jj|GW57>mG9C@W=plAYKy;0BF~KixeQ-N^%;6%B!# z<1+nD@c{-9$yJIKupRfEicX}Mg=^n1Uhn>bm+XG0Si`1Hk5+xb-)l9dN&O8eV~%;`D>*f$elh3UCtE zAOAfDWxG+dDWJV)yg{zPHf8dbf$@jCTyU}3lHvMp=Rrxt>rG)u_s<^yG)M=x9pk;NA)HiFp0L8Q-$kDSWjkpQAgAZH zwPZoh8G`379HsSjw|r1+(+7W4)^uKjVWUrhSb-1@VsYY(>}A;fQB&I>^ToKbpI!? zdDf1~wU&4C>uG!ezAQwY4OFoi`k4>B{K{^DZ-%ZmIVXN@W3v^s|7J;Whq=-C`aG0NVr2Wj(X$OszV>#KO8-2_$cFt}7VJiV; zHdKb4QLi$qS2yfhfcrrI1}%LGE!Bes`2lkWxYCZd-vV4&cLuI}ppDJOG5NRC@1d$2 zlfsb{@Vw$XJwTxT1NAdzirPHKpH8(VmX{039@WZ%wpsv)m8i* zVtd4;ZJ~uJ@6pl%*4lseZ%U%*Pdx!odrhFG%kEk!c0B+sENu^!rnS3(PXieQm?Ls$ zQBD@{hxkdoNtyx1zv8BiwE@@@h8;J7zcwMisd#on5ZLo-hXlX9FkS?($smdS?Jsa= zqnbf9J3RotY__Kyof!ZYu$pHhT@$FK8lSXnVX!s^HGyLwZ8u*5WH05pdDTAPp)jgS z+N56DK*xaa+%po&7@1#KIRL8&-9|V_)+uN7pByf9BR1DVPuT*T;=Q#_p6_}IWjpoR&u0h}a7V3s5h&$Mf4;j}XQGWqityB-WuJ8TuY9soyJ_6#sBL4+Mfv=Sh9 zq{2l_v1_52V>Wp@OZzRz`U&KM@Th5)#_xYw@~9q@^t8w|$1BmCA!L8j!3cMC9%?x>9_in@BPrsu$;MPScN4j5Tu!ydiBoC<+cT=M6{j@2>e>DnG;Zz23dOSxg835m~>@F7Ef{= z1MFPw>by3~1`Dd#p+j^6$hIOS;u^+VQc|=PI;DV;k^wDlfA4UiQ{3{yWeLzSMqt_& zbXYc&#r~thgF2z~JSgZu*HURZFFNV+gVaAY4oKLeWkv1OB9BgiN&)uD4kYQILj)@P zK;|8G8!Gq^_WhqW7B|5|^%X~sKTnngtUrV@)fac}=?&n{LUosIK}>IE?W;!7{*;U$ zUkjF9qD(~5s6($lR&6de^+DOLvUA?Qe|!w6V(f-t+5a5LuPT&y!9hz9UKkw%&u4}m zyZ#52rv?oL?|+8Lk6RvG6MRw1CJ+i7q?yob&N zn@Zglp<|xf3M-vDZ1KiZ?cAS>qMhUh_lJ;~VD10ll^5;WTlB8X?*1JiE=^>o^!5K@ zS5TmQSC7ZwTRu(sC)LSxONYIt18cGYR;YDcGDaA@YX zJXJYgP4hEjf=T-Qf%X=9OVqGoZOtF1^!m@%UF%B|B`V>EEeyXbA6(-(XFlo51cS0h z+aix&ndz}IYzSPf9A4>$!CKk>a1WPjM-6@FS*lS6%3_E9(5J)yi++PgDJXP->etSV zsd8`ubTAhH7h~7XQw{h>6U{5tyI@$8KR`LIwykb=F@m-uZE7s1OH*25sm2Vbn6mCH z5#GzzThHS*$Ir?K!wT=L^3XM5N-Xnnrb2y&;uh%3{;1Wy?Vd)^W0ydOB1SZ$_NxkqaUhMK0YLIpXkddkIyDs-{9`Xr zH!LC1$L65Iy>2TE3!3jh%*Es+B5KX|*;!JXX+{;=TXE;(!OV}PEPbHd`60*&WF-7u zbhInD0APe22MFt*7vvYz5G@Pe6#GH%J=QfQ*?E)fNYlYk12 zoZFIGv&K&dq7NIPuT*X{^_a&%jc`za>OxKqZe#KX>azLmhq%w(o>!c^tKTBM>HKEM zMB}T8Tb~$|+$Jv#nr|u~8EOZ-Q3s+?jr6lE5cI~v@gP8*Z+{5CKtl1S<|@fH_jVm) z?fVUK=@#`8b}b(sr4q1%tBW5gP|It{gfPHTZ(AIKsQgs!>l{A~+&+!*^_rb`CUe&W zjs+_lqJ`M>0FTQZ)xAb-E6+OGj)NjnUy}sst)`Y1HOAa+^verhSm#b^pjFX;HIC&Y zA3JiL`eU9+RKzX}CpP_0x}2JPD%>rU{DdqH`s4_+%e6?hxB{@1xTJl>*9?r>lKi;TM@VBTfX<3pP$=ElcbC@UT?z= z#5lnU?JFMRXgNhwUYFN;T*=$Hai8j=PDwG@=ED7|Uv*0j-6f?sx%|tmR zQ481F-|d<}(44JELZrfKqH9>{Lz@<(t?BcWxXog-n|Pa1u5(ed9nHDjP9#}F(m;y4 zznB1Na5(a2%Xgw)PJk7~NB@(H8ETjwnDg|pOtt>|WjbfLk*+SYWWWwX+Lm@}1mEV+ zs%4syWHaXFAWHj0o1$_iE%co zBq_witS@CwT6fBF3RmuI}j zTtGQ3wi}eHvm&>xjSdM10hz~*JuHVa ze$c*HB-a0MOMbR7Zdg^gf)s_`Up(ezK2pB4FP3MvgVo^uKx4|_IoUH6DKTUNyvQ&Q zTFxsnRDd2)*zX}#xn#5lKO;C4kFxo>IJ}S5v_zk{$*p`WX45&%vtPBz zokXX)%!QJyHhL!SCEQACjEk9Zu2SOwO}mhPRP(zuKPaT_SdNuY$&{-Xyb1R`gd8$M z35$25^}-SSleyee#JSwXgNH+m!x}?V$5eJVM1Bv$TEG_<$nd(xTWt^J&dD{WjxIDc zQIDJ}vn?glo1c?53|45jm*1x~B){gtcO}wz2&DBsL`h|jU_;;qUnx1yIpz5>4o}^- z+s|(=-0oXMEZ+%n1x`-YsgAIDXqM7zKEciAJ0LX*O+C;{5%j7#{dBIhjgQa$@y*2=S6v zINEe$LJTwSjyq?4-yTS%3diw_ah+KF6aXvuG(X6-J3Rxr_Vl&YbL(ra`3)g@vl}WZ zH)v6s&zE%{v{tV`0vXO4Es&^C2;3eOVNq=_bFa55^`o(|vlqKff*leiM`#@j@5 z-Mc&gNW#6Wl;`(z-mxackoTb0dZpDYggf9eu9@g^Qx;Ijg)Ge3%#TSdzI+s?RwKh2 zX`cuV5%M99Xy6BCsMM*CHCUa;GogIoUs?Y~#XZ&ZTt*b=o-zmvQZS_0_LdIt2$1B( zVj7QywB0sL&g1UuZ20YCv(3Xo(*_F7+DIUGn?5gq_&a;ELS_tXsc2Ld5nR9lG znFi0{qF!tFx2!t6iU6C~X^L@O9gCJ{@e zu(X_Gy|#`?RDRKCie4e=MktpQ>U-0<@JN*=dSHH>W4u6Osx4c}qd5FxI=xq_@@J-P z=R?;t^2mc2Kq^b%%52IaWf6Xn7uKuKszk}{e~0Z#%kt^lgil#c&-|j|FjC@rx+POD0>e_PND)rqN*A{kU36+E zYp-P5-+?B+#g3J!ARD;X)GFiII{V@pU8NtWj)&3w$LFqlhny{Rhkahg7-a&B@r;Wc<>xPhb7ZA@mu{*K%4W``@2YzxLCiI?3 zyWN`81}{!seY#?{2ec$Zv5dz{7HvAPTvmKfoFs8q<5?Vvuks6>e4*3&Pw3?FH;WqI zNvERpt9qBCQ-cmFv+Uc=@yA`gb5yrxuTYwXajT-|YPVCN9I*6%@{yxKyHxi&=|LT| zRrnb-@*Q)@H35%*Wwo6D-)SvFx3c`E z;~E)hg~nbfCDmmhH}jCD0%mH{9J@Jcj%_QLJKWOmTaR4}=HQV1^!MJ~E&-`hX~@M5 zsG;71KIXh=!$qEh44t-1lFFD8tyR%>W+p7`d2($QqHJpN%1n8E_sh1Yk6EyYZIznE zygRQ_m#L#B5OQZ$4wDOp;YZ-asBcO97Df(d?G{$j%hw)5y;6N2>bRwk*>8)1Bs+JJ zN2;hPUvGW)y32rkynCk83wk$?#hu&>-1s%W_JR-9G#8==eS|VEh%R%#>OVef+vhgO zq~x&e>(*)j=k5rco1+(AbxG_4D=ya}A;*!~KVz6yRIsu9VUyLEaxZ~eNMEBlqYYoh zC{+Axx6S&{C!=Uz&rjCUy%_#*q39YG@rrIliizLv~CZw(ccII zLuq&G55}b7M@xG!xBHgS`W9x0b38Fpvqm$Nfj)+d9Li#4^A$DpF$<`bRSul=+8|+`kDE-*RJk5LRxFLZjyf1gSA*-MvMOCRcYmc9rSH)K28Yh!+tl=S7Z1Yml3V_uEEgphE0*oAe_$6)7msKojE_ z3Q!lq0R@3bQ^Zh9HIIGWD*`f@n*enxF$Z<00@Brm^OQKGpkz#I0thdNDt^nl%RS=5 zS7wpFVhYcZU+(k~2SvE+!)#KX@m7Aictc1}{{W#%0!|bYyP#61)P%~;_50uj7Y}$_ z6x|1M-D|yG6(l&1fd6|^;66mtZT(x}VODWPlZO?I5c!1<18-hR?YUQVH?(lHcx&$U z-I751#t=H>ZxGK#=03!LrpY*YpL1plw6wl_ZBi_X5&F7=5zOFOb#HQm8q1)jb2z-)Sx)q(;ax(0RDt#SY~GD~ zBoP?{+?3+2uo4eK6AYWh3;e^w zrvt=D+k~0{mHrje%vsM$M^<~%Wcj3TmRMc48KwBsm`oMkr-R+gfYGa&!2#WI3Q|Z%+h5`DmHe@FY%qN`{ zpYS2045`d9!v;_*7BJEcYmCuulQ9(Yj2MwcxN^muQa~u6Ndw8b7AD~;Gr4cA+9Th< zC9ArpFRp@WoKDRb?(H+5gI2H6Y2K$Hk7X>2ou2T$A$we@%z;<;sFNMbtqe~Y^1exJ z$9fvDUh5hyo%O)n1odlHIJhU5`&EtN2?(;`YS}AXz0QLYe5U6e;jj!VrxIJ;tAu*} z%`T*zyPv#3CZp7LB`TlhBnKLbh!SYU(q!fCp-E7)d_EjlfoAG(&b72X4@T6^f<(e~ zA4piUxOV5$iyy!HSe^>VV2Wj#Gew+}2&Wd(Rw|FDuNbfaV7eHDW@5)E8Gasqn5-4j zl$;m^mv^06O>?CEo;HgM4AEFE&Gj4!%qR4B-Z0B7Tp1|U?7LEo>hl}KMVFp2tXb{{ zS+d`rFL!mLxTT}M;85~??Y!!i6(<7h55H2;~S&vaT7!oz}6QhTZT3YPF3{GweO zQH9ny%7HJ;X&YUC%&R(+pN^@EJWq_2=3(Vk{M z_egN>{85}vD|kLq!rG5xpOw*B>p0Ma{qL7Qp^6nW;3ETy`V?TV>Fw)yXu+Mc)=(?V zzYpeIxsU&V-EJG+F4}?_4>=F2&GLuW*-=lT=v9U1GN5`9x<=Yp#Rwg&G_9}2o zN=N-6!ZE5`=m-|88CCGOuHZ?AVS|UKhRQfD(fxUW`y-Ew9gXSL?qRI)F;g?WsERj$ zRKuS1<{59RLZ+H5-3Bm4rrN;!IdDRUlhrhaa{zPS_g;w009T@$Z&&8Tn9;XSW1~mu z`=`BiNv}5sJLetO{MDJRkpX-DSt!Yu4VShsX$!I_78Mmu@jYiX!4}U#BL;%bJ_&N@ zsR7(Ht(Z_1dCkf>ENQlOjszMM1JFeCGCJMUtlnh?PEJu-jS}#FFaM#ix?2i0o05{k z>If=-bDum%%8O9zWBr-4J@XxiC?qn$#;GYhH8nps5Hv3yV&$y}`VSHA9tA@d+umVw zEY+b$kuci6T6^d)0hL*wi|q><9D0;)EZmB<3ehNADeRsK3$NavdAVQ4w9u2Ph!e^9 zNOdrJ1nSy2T5bfG!s~m8npKaVn~Aa_JIe`>T+>q1?W+TvhDY$f1B)O1Se-|ZW60}E ztE(BeitDK$!oFzVPR&M_CPfYl*2aj^n+p}byx07g9`r7J`@){EW49qaatsC8C}?2W z3Rxjq={)$60_IM>q+(4D?u|8z*I`;Tdbq53O1$iLy5~rZ)l8mzFFtj$I!r=!!?a0X zHsE9N7~__{&&ti>_MfpPZEaMQ`b<C0&#Ae1~;v6+FyU*LeLhmQ(#H zCcTIkK8TDU?h6l@<1%woQKf+vwchjVpVCmK`#R|PZ`Wxdv~zy@Wea*AiW+#4=jNlX z6;F)B&Qw=_Ga-l(%~zvP!vt4jJ2LQZK~26Qc-K=c(Bts0yvs+}UhTjt$`qAJ=@JGS zpIDqPp&L^~ZX2t9a^$yqydhq8oa-Ft@U^=}&py=?X`+mFNn?IPf#t47 z9!CSqlP-}gNMjY~_XAY^>e&3RlMVr(Foj}^3p84mOB)uT?`N|352m#~e4&pGrGH3> zo-jP^VO1%hjuEx%cfgGGTY=0&ETijT2AEF_iz^VU>lPlVUMY=PcLkt4x>M#_`Ma3n zyEdjW3=#t1Jo6R_s!v)(;M0|oyc8$8%Z!8kW_f0i(8Xma0w-U#sW)0ioi#0>)yFuejOc%py~e~0rk?-3fvuXE%@*5fhDxYDxuLefLx8&6 zsc%0VpkImCl+KE(Qp?VZFpe+MJ{Fa*x7?3)^`aFy*yB1KS5b zXW@GLYSAklfT)~>J)ZNGPFoSm5nUlLgp8n$sq2u&`U|bxQe?7hGG1knO?kA`J0FTK zAr9GOG?0cx0yI$h_Fk1P<*cu)-1PQ(22wsu8rP1N(7vz&|6~wp?xu2qIu(8aNHMjL zThdzRKjcn#;@+)kU#A#U%emOp_)LOJWLHJXY;7ujVxB*oxO6IO_@Tnx_XCOxt*P~d z?1=s$*0f~X%PP9{dArgcVaX%av*rD>_%W~jn^NTN)X~z3ktXb%^Tbf5WBDB7T-h#O z%XR*fAQyssv|*AS#019q{-r-CjA66iI4U8`F5S?V$@>u@B4S#7j41A^s7Q~PbjZjH znsU%W`fnWh3mOdh*H|3r_{^;)HB`I{m$HxU@;UJCS!?JQ2L9bPNF?BDB{UjxCYaM4 zi_HKwvsL~->m|7yTCBcVl6^%g!7v$$t$)?3KLzrbU3wm{_P-C^#X{KemYzghrFie> zg*X=A*%#@;VB;n{*tZ+h{Qt9?&K}nOH3(GytogC3nX}ePX8%$0LAqFMsf293Y>(^& zh?}b&HioAB_hK#nquP|X&N`+=Nm$F4jjZE>m_|b()r>#?O_HIi!*hu7pyynD;6#v2 z(PQf9N+^Ci8=q5IX1Q^sRHv1NZ8!U*;x;sj5e%IPXuw+x%ym1nMKKzt)yA8@gZZY{ z4sSv}Gq6siM`@${T?mD)rJhw$VnH~#YuFdik4=!*=HlBQQ^8m|9^)?10;&U1jJKJ< zn}`+!Tc5OO&=*wPC>CA(NH<7Hj)fxKbAya#*D|$vJ#NfFOnGm`oiQlvMXF-bP8aOY zW*_oc5^wViYqlV*)IvQHg&90fSowCdgGmRKSK@XewtStrzn&PO^b5F2 zd14~RMbwKuYr|M|U!S^u%3wmwki`hJ{a3rSF3EI&hW3S*HdjSOt!4Mf^2nZXr^sqD zF&|PAy7tnJExurUGRN4(Lf2!r#wlyafQp_H5$cbnX0O~LWurhUx|axI2$R3{r#euS zdv6tDe#VLt^M-A?6*7$pNP%mVTUgd?WJ>=R!4k@O{c+0WaMmQMJ=qamtZX>89_b9^ zVDj;~!_oq2kp}hVz_lCj+z(3+0j#=tSW5I#vCYBoTTdj+MN}$GGj?HDDjuej!@4mR z!b^3xwqgXr1?!0&=O>-XmQ9oe`a@B1kz2$e?OHK^EtNJ@z`|{U#Gp|~Q;ZXum~T^G zh^Esi4?N#im^#(Fkk3}QHqozi^niZ(C4p7oaJ8z88n*^8brgrxt1~f!sOH^`S0NhA zz8phMjiD-_*_#LLsg|L%`_nMhKFw+~kef`hI;?K2>=OU8aPO3_Q@q3tL*-dkear-R zI2?hVb1``@Azt!0tJk+|*2Aps>u?Lzz9lnD-Z?%gT%^T&z?Sq#iB;bc`YjIswUyew zvSgo2U;u5L4Y0As1zfw6Q_AD9+1!o?=51#vte~fy45}6Ew;Mhg?|YuVv~cRP1Y6-> z*>Rv9+ft<|kD%|XRXi#0#J?5iH&jtLe9lXe!n<7P7D_A5I@`}!cF)V(c%%zR?hiEd z4WA}T$klHcmD$!8tkJ$u)7EH)zSX0Gv?OLpP;sQ!(H9&2-*%fe529WAyWS*Sl$Y1P#W`gfFRtsCh?uPG(m5Nc8{>e>Rtk?+5ij1i$ z%gMU@dh#-62uQVtbk0_+eURj(lcd8-4bc$=cd2iZ7_yuf9mSfW+w5XU%?c z-CQbI45(M2%I(1>q&}u1x5liNl<$^_-(h0jp&33zBiNf`)8L!_v%I)$v8>kehMp_Yf7ch{ChgPnOMa_1%gq19|C=@nPWtMwp3C2|tY_ zDkYyWECeIv^T z22COHtTjv(3QfL(CTY$&lyp(qE9-^bpKU^viXS_G1lkM14%WETb{iv~Jb7*v@>;!^ zDQ?my&)78JpnhYr9?22euP9~_BNC#~_Gq;pYfHFo-_|8%R_HpbII=#!8nA-uM!C=) zu!XSmM%IOA4qfy5)$kHbyYh1EsJ8%VEN8fqSpS#U1W6Ho`?_0gfjKUh$dl&-n8GqB zS6&=9h zFUf%EQxJgzn*wSn_rgbv&b?W=f&(qoGbVaw_~I*S7871#3AgEw7wSA+YQ$<)W>dt&`a6t`^BDL z`|5BqyCzxw3!cw(cBZOfgZ^jf-MaH|&^(0w<6MIgM&A9RcJ5UxhVEbQe`byE?Nq@? zSP>}Kjs zo&Vbn=;m$D9ojtdG;6%3#d3(oa(0+sR6ORQYY7;z8#0Cc&(Ypt6TYwYnC2L}QrUlx zQ{!hl5+wb95)7$aWe}#j!oGp=^gmLmF6JksV>5Gu#*D21ZAW8uO%9-m!&j&y)FJOb zGud%TwV|9=e2)yCH}bV#OjCZkU{6|uwR(o`7ic^zW*p5^ga=Z3vhx0j@_aH((toBq zzcSAQKGx@u^8K9Uhu%sasJ|hCzR0Y^>JnySV(C9yI-~%zzMNwTWjR2?yx1xbcH`qe z%`&E+#KI4YH#Vmrhb#BM*tNHFao{pMFXn;$Kka>YSW{WMZ;%lc1uTF{i#TJUNl{Ti zKyk1jh>8$;lu#uBlp-yO4qyQ!SZE@kL5j2(N>CJ{AOr#FB@i$w!_X3nKmrMYyEcq7 z&Ua?+^PF?fbMAef`^`VjCVQ{F_A2js%kTZYuoKk~bjG-$QkEsup21SyilA)+-fsF@ z80;yLX<2yt_L_nip=`?*$bt73__0yyD`2trh`G)@KVw+7#b5uv@$YiH&!kO2&3^hF z+oJp}*ZbIx*N{&vaLKt2duoEH0vtCkrsGO&mU}_Y>5_{sd^x^&BFSL~NCt;pc(Bw% zaQH${xos|GCYe+{&_?tUDOk$=Oy`W^N5bnMM_;d0WoNlDq=8;wTH zfeHwPEMXcS(LRCGg6Q>HznrPnI1geMcgveM7@a`uHKjDs-`riVHQzoN!dmL}QQ7Xb z@`~Yp`>UM!(PDCI6syeTsWgS9$V~Buu(jYR3)ojp$+|d#{!)~|{YR0_;jsmo zG1uitN#W7j{__eUOW)djY~7yKiVkM-!a9z7*KEa%%<3-#PoLb`V!z&~?4hp6mDjEt zwR*mLzvhc=;Pw9NehvKalXLO2elC3pR(V6)$>+%G;Y%Z1Y9}9_taZ1bjgyx{kC=C# zep%nz(XJWWzyE%0OJ)ocMOX^D_1t>9Qt@f-Gt{;NF{C60M=pAgxu$W48lJ1qJHuCI`e-2tGn6M{aHA0WPC04hI^B zF8e9C`tGSG3PwX|o%@q^;ze%U{c}jt%T{d$lx62Ze>(&ZJ*pKUWQofs75TmL(drd= z565h$(VSz(rwHXB3AJUW2fw7qMjKfzqs4o&$Dls#ivuI%Pj!`+S``-$qBhBHvFEh! z1GG@a#RmyX2@vSMt6s14@diMv6_5C*$2ltE0o5lFb@NxGc8it8P2h~fCW-uP*6>K8 zeoQA{#hPMZ?s@PKil8+qgODdRghZrD1j8ujhtrE=k4{;Al zvzZ(eKiZ6DKiA-!(CJAHmIJ8`$Rr#Org}NSlxQ(U>t5DA2;s2drC&jNKS76K9BbIZj43Q_J#Eon*$;8CLJmWfr+Og)`2z zl*GUls4*R!;ROCrAR8C3u8duO_gp~3=b-1azSa+j=LVWG6wLW8R9v$4Nd?#MM8Svx zkOe0!z&=HAJzZNKcR3-#rc1<%F^5^Gu&+KEjspf{)N>c*A3h6m?ByqgL-b=fQqtmT zZIg2@3$y$bSv-@DtK^To@K>lBBw7cxUcMyT*QBm)5=ZMWVC5vm+szC7K>B85Qpzs* zqg0eQy#7nm#j};D=k$dc|CR-Tw*S+A8ZK$EV5wJy&efT9hxK|h>#$C==J6Lf?-USC zN5Za#h#T0#<5%Ec3u4|f4^Yx3D#9MD1{7Q-Dg5U@^B(9IU>DEV&g1;#J`2D;%DdJb zAc)Zkjge*_uNM?*kWq+vlr)>ldg1z=DE+J4u-P|c$r?#Cds3ugCMf6)51Ulx-j)wD zyIJIMC#+`7o3<$gNBO8eMH}aSE^Pr=_vE^vQ@J}rPY3J~XbU##?Yihh1JPH`L1TWi zC2ayHy*OVV)7=p8EtsIUjyN9vsenS%V$Nz~{};zi9h z_2E)-Dl2uh^*2|0r}OFBJjAF#OGRB-hciD-N^0ivW4I&kqI&Bo6A1R}zaoB5Zso8Qv z237`@?>dJmz$0trq#C@ZV)wA;;{0?ki;PWbzU-NT$+9Ll>*{$&R&c6!#ZNp^u6V4( z36*49tUSRjV$TN~(*~n1Qc+gL`ACvK*>_8ny0^(J9iSOjM6AP{=YkW;=%EQXUnmu> zIpN{LE^x!=lm~ssSE>aV8gqdQ?Dhlsuuds?syTJA+uPx6-I&F|i{g))f7NgyJed)U zG1XlN`Xk>-&=P-e8Y&k3x1FrDKEwm>MujDSQnwduM4IPL#dNdpPyQ$#@xU=gmbuOJ zh8o`a{7mLL!f0mMWP;9%x7k=b$f)&)c zfp2GIJkZpM5WG48+(3EQf9N`}CM4Ae4%KI$G;>VOK5K5*XB=y3KM|*=pNdHzAh!}- z$OC00wmD#iIP)3BL$z^&4FYzY8Rl{?OX|5YDn|C5#-IpNb|l{%kgLUrv0EIe;3NtZ z%$sO2DggzmI6Zb#!N&+jT#DT}@Z7~u< zqCIE(+wt?xS+N5B?SaP~A)l^RG=5$5zP@_MA*}pIX2q(77xOPcq&dHc%>p=Pn*gtq z<^McFdFVN#i(&pq=kwcvL{DePyrYRsDkFS@Bd@8$=o_j)O`es;=nuXF-y<{J=VAlHc>MX4q(MbIQ=IItK z0Dm}2`?d6J@g0XFg)}xIzLJ)9(ofupCKnZ>bI7ZYf}+r0D(SgdJ#cE$e7!xZe;xdI z3)xfemBT>qz2LuBU}vgD1Tqgi*B4xW?ZwZ%5E&=LXgpp&Ljoyvo(mOqXwjsY_mQy# z`CLj%oQBluzD~`Y;&4QLB~3l5?hYrNZ_S#cQ6x}1&NexevgK|VcQxL@Yz81iaqeJ$ z*UYQR3{;oy|MvYmRjE~KQx-#c_OlY{w|2-)*f|l>8RRSJF1VK_ z&5zp#S^Az8);9=D_25JLUe>9VD3vG$sv{bzvx;pnhkESXbCrD{uxJAiz=uh#kF_3WN4uAE@)@7|tpRGUB!%P6ogw66 zJ(KEU*=>~4FIfzpErImKnKlA%63ytNBG-_)l^$t5X$vLybO8j0^>UPq8ueENdMm14 z;QKr`frp@x=t1qi;-!F?@;Hsu->Fqi$-Uym4v|s$#hJ6TAzh2e%nx*3W2yz`m1|3( z&nq0CjC}{7T;J(&x853KTky^M4@;~~BD#FmjoYQNMOsCNa!2H=t?Q`e53IT*W`c+$ zPLDwlS@_%`uf}C4>xu)+5oXZ)ZN%nLqf&7)d}@X9!1mq()!;+yT=x+6sZrFZstb+1x0ZZI*D~fq zBLeM^Sm=9d1Xy0cKuk8HZqImE_rRfpyXYHXq;2pQ<4<#;| zU(!mnd-gj$^AF>c=IL7W%(k|YVXr95{7V(6 z`21lUccb%EhpVDPS)$f?u>d+hXDFUeU6T#cbPL%mLd7VdgF)fh;?Jj1f25m!r-pxL zk!#BWM^mPTvXd=xU*DPWAKR`Vi_gEQ6bx_j6lgD0d@eq&_3-a|%5wFKQ`N@a-S^j3 z@&B}U;6Exmf6U-NxH%rN@2>|=i-=`6L#^YGQ`lBOwmb;VwIb}j$-0E`pdaC3eRIu4 zEi+FA&z5t_Ag@cc$X>wF+W0JF+s#Sx)$xy^>o~2a)Mw&hz}pLaHBavBc6NSXiBPi<-#15B0O-mV% zz+nq=G66o}k95Z7AC{b-%eh?Og*(50_mT(t!mr;ouuM{^apk+-fb2!HKfYoq-O?TC z%)pNg`L0fY>=HJklp7B_EcmXO|6D&HCYtL@Ax|hv3(ClRyyl-f0Q|f-z)Aj>K7uSm zfHZqkyW}uk9#|X2kkR~7kc0Uc_g!07wc2QU^S=x&Z~}k-N&iQK`hdkKRabX3sE=2x zU)voirBVoz`yAtcJRUPWwgy(U))%VN0+pHM9v0L#P^+e;S!l}U~?!Vkp96U4PzM&`&Nv$Z|0c#KY zb9l4=^reC?{Wgz~TNPWj9oBy5&pS;J?{O1haC@s7={@#|DLTHHr7L0W%facTnKDIG zg(?C^@3pf_2$iLUs?_!u#>`{iO>84z;na75((#s{aFE~B|C`?wmj3g%?}I|&y{5G% zrjqpVvJR(DI0*f*vM`deuYoHf;m;k^Q!Ao+oY@4pS}dN#00!@qij{w^9H22?4{m+iomN@Rm5Ow~iFp1z& zUV7{ugL(yryM0R#f?v%)AG+J^8fz3V*87t6;Q*7>XVmq_JRdV&d>i!T_O3#+WbHWV zqV~1j9mtBEdYvil`CRxA|tm( zpkIq7jUfVzJ!9Rsk+9NnB6ifTNrS}E(LY-lEM9wCs*t$d^~izWMH}=y*~oQG6nK8Z zDD$4v%43U{WQ{Fgf&gjihcEmD$1>%C(x8Dmcjk1d4uKtYb$4UBC~X3CIfV|IYETbOxG194;wa8;8 z?{*fJ*20hqABRG|>rzYG2R?5w!Y%^O77W!Klf~#sV;w2fo$ zDjAb7ibMDKs``;CqgFsn*i%X z%P^25jJ9*-ik-UK$5dZi9}AD>57=f3crK9&h%i5-DQm>a#)eE2<$A8HfhS{f1tXqz zUQHe5nD(jmfQ1EJ^PWcPuKbapR-TU@0|~st^vgE~>KgAXbdX0h1#^YIpQsW6_C1I| zJo3QyOrjBIaenAPT>X||px&+qp`pDxIwxySe1$Jg!dn*C&kZd~ zkM)#{wmwLuU)UMpzCKqd0G+Z?cIXnHj`g!NV)R(X(qRr{A?%Ao(NaH9O}T4V&03jM z8li-F%HxaYj!d|;#z)YQ#pZTiG*_CWw286tvC+J2OMP=?)z6yBJ$nN1Z~%q-y0VrQ znSdP+t@O2+4kVA~0-KI+Ib*LvPP6!$r4(hErK0?>=U7=X2sCn!xx4`(@oTn2i?A9I znMf(kql&VQiba_H7br)r9^8U(622O@DQ*SE`|O(4@Ld#hl}*ZP0??6Oo8^ygVcd*y zD6KaMgG_cXpul7oyOMey;1782Nz6U*)-Pwsl~yh(!2M7Yf0N(LPQpRU6tI0JF=Ol( z6tte5Ykdez)8Yne%Kjs>e3hFb_nJ z$?{WeDrsNIgHEL-7&MZM9SWH3MdMwV>L6$_O`=lOxO_3fT~m-Kkcre3js*eqYqqmS zR_EWDjsP@?ADLU3+-?q{tWKk=0GkOj8*}W&I)%E7A%TD}au9aodL%KRgVJ9{p zU&XakvOHx(MHNmx<*&Pv>KEfzFt2TCVf7j#{!7S(=-G(}IAf zFJhCdzr8s-Hcko}k|Hj)T7;&Za@x3BU0o(NS7Y`{*2eWJ>$UfP@ERTU!7GdOAYRxr zZlpbSLzGtb%k9%$)kBEeq`&BsoU`KzQ*&6yX3`=jH48_xluiz?_A6;NxmRF2H^4I( znw_88&0FwH0tlc|H=ZCTxB%e$$wo<6>O_+!tJfX21uEku&D!L63w3AhPgeVUIxiqv z-t@-bTzOd7J8p;UZqIVDSu7bO0BnDPDQOg8M`8xYbNgGU%0C9Pd_H++G{v;Ve5i}W zibZMz0->yi*p7~a=Rvn=^$yw5}>XqY$tMm zThI)5hUPhF&kTv%nP2J>kSZl_2VOU@5Euspo}V3K2x<3Q0v}as^vuQ9d+;c~ZSp4n z#13F-p8b6gYcd>bCB-T**I4O76!;@-$8<5KMVGv^B`1()8SSH7dPq1>Cj7}lR} ziOtV!Ss-K16wnF|pa1g3!sy)VWnAZVYDn(S+y z&`ZjlIBmFCbnd!aC22VWC;4qS)M#;s^lLlr>=!2w_lxPZUP99NV*1f>!D`28Q0QNiA)fz|U=A6N#v z0pCjV!QZv1|1Ym(p957DAq)e`CQN2CP+ZR;yli~%5MqtB)-X_~EHzel#nP|Wo~j}% z4yijcO1;OIxoMz+0pPJ^V*Ptig#tiJ^Peg{009gBLrH-D`6gAD=z9Jn-T80)u%SGF zzj5~LDkxV4wo}8}Zh#+Ax2y2#D`QngtSt{&0n=Ejyx{gM_F1Uqdkb^@j#mI@k`5Lo z%rCwm5K#L31d`_*;_${!64Ed~wtV(WRCx&?Fj}g+ zPzktN)L#Lt$nmAJ1Gb>t!cujHD&&qfc$moVk7_MpO8}G6(r?Cy_b+q-_0U>yNYsF$ z0j@^J;>}e@(ErWY z`S;a-eI)woYd+kEif9!sp-h;5oq1TDWphJJPj_>09tkVBG5-k7@YN`D=(B-%N|so< z%M|!Q?K-#eNqfHu%mWR;r080*R)%N=wFX*Oy%tJDs$^oTDduVry4gVHsRVyMd!iv} z@2;ef}*R;U9?*NLawl@gjK-pT)PZ{plNN*>y3vSE~X(k8u;#w}y zMKZOoQ7WH9h6s0fv&x&#UyrO!;-s_v<#?&xligfDIwG#vn|*-dmDr-w(ckcEZ{t25 z?wv_qJgovz6{+8aGn`U(>TzvHoK|v%^+bckce!e}vyA(tH&U{-cb1N-N}1PPN~bmj3EU+HRb}jPKKTol3S@ z5#_d;9Y10_~Wi{ARlkui+q>pn8bIF~hG!m7J5HduPLvh^{l@U2HnMV&&{ z?w-;<^V@OFM1bid3fx~hygZ}XsyRnnb1EXWh}}dX`+6`p339O>FF{7*9`;ce4Xc{U z^E!K|`Gz!JkHXPXkQ>x={oKB|J-s{UaWtZ@#~`hMH^bk03kzq5u&HC*A|iHZa{2`Y z$xpqML?mI50?uIR4d%6WRilnBb z-e2s_>#u{nPS7MlpXKp9_pMdjkwTH+9;>j!aWJW!eaO*$2iq3QOFevp7w=I@W~4Fc z{B9TmBv={VDjtZ$xCuAq5H>}LH1%|Ho(bq|I_F|>3PmD;ajiq-sf;xr)iu=-Z1}iC zo6<`u8om^ex}V;G^Lxah^LjW>#*^YLgT_qa`p*?3@m`XBO)*WWq>5dXI~Z?5&;YPFh567!#My_<6sY< z>Fq^>G&p;i6V;s&Wa8uN)(0mFk3509GqyD+Qj)Jvs0|J`}*dxXhs0;aj&{1p*}uh@Lgkye5uH1 zT$)u3=9Tr^W?fkpqmW4N4`(9u3>N9SR+v$I3~M3ywK5ZF%%C-9DYT_V=^KXZ(UqX2 z;M9v#76s3NHHIx5bR}GD(ZVal5mBv_g+$iiPpb7CL7{K|_$b_vq3; z^Y)EsmNa;0(SyWESHcIWmo~5yeBc2Fyp&UVV?LiS^%x{&{P}9>K10(NhSf3Vd=5jI z_i_TPGQ3T3`Pk+?UEJ;jIjTLE%;4Er*-SEa8*?Q#srXS;=YzKVnm8TO54K7rnn@~5 z)8i|I8%|Li0vEdhx^?-CaJ8%5_c%&y8;UH1IQXVS=piTl?PEgxD3W0n<|Fp&z86Ix zaG4f>r=nwNN|Bt;aJv@lj5j(29wG;qKZSK6QI9nu6UJ{Ae|8Vb@JU zyrsVMD{9{u;_G|>E-28H%&zn&FKQBpLU~h8gEl1jfOU~xeD)2HowqFNk}-;HhfTt= zmD{4x7o^2+U|x!FdAiXiu}hkG=8?w*Z`?m+(luwXJ=>bp+bVJnoj%Jl3FCMY^4*gb z?)1@UX)5}Tfde$B9mf}YP~p|bLAoN>ve@iJKGKVJsWjJdYu*)mU<0D~lJZvrk$T87 z`FhiW*cm+owW-m_m?GrT91sMD0Cmq6o~>cO?hWgCY?KoaH=)CFV*QCu3?&>WcBrcB zg)+E&Qe;8Qk)O?yD=jcHk!@Bn9b5z^f%oSl4_Rl zUDC4j5#_^xH3lX8QNvi+3jXR+#?(jxtIm_2~Wl&M3b1V&GfhnSalYE zgNjbo!JQa4z%lREGS_}ZPhC*43V<5Fms@#9%FhKvyccoBT|>7#HXlAPyGLfCI@831 zLElzb*Z*##xU!n|>>aVnDoJ@NA@16QTy~%zr?OEU7T$=};KPv~Kkt1FP8*?;Vt0!y9qUh0Kh?Avfm6kb*ii z;XN*u#YY*gz1UKyMVflX_}6YKX@4qw7A}*mWLv<{K3FRB2)@m3-tX`$D)C6F*bkUD zS=UocZgqN|$)a^!p&H8mJhBCiw1j8v4wj44!DJoD;AAiYOv(J&aN$1dVsA|PUq}Ip0`h{FV&OCXV2vm!YfvL>Ju~M`G$zv*Z(;_#MG&UBQfx zPW2c)EWsZgyiPufeX7Z#w2FUo4cCpVlF#c(O%}W!I#|W$^W&>Usq(p;`~lrvCNIiU zR9@w?*@F#>tdSQizTFPatBnS`(sF1|$4d=&0;HgA<~TthA;dUMMs?}5W7y_Mh5AvmR+cL2gYBKM-51R_BsHwot5G z04WN+DP?T)0x+4^VVg?stU;hAR|pX00!=hZ z%n@9jTE6jK&Vaah3|HV zsdI>@ZA^PHyO7c1uk@}00ZJrX?zw_bj)tmKesdf9 zBg{Bsx17(-tpPy~%@lKOe-gRF*{YIa>qzU5Xqnp`B9~t}l^F_>6P)2mdIylw3L)JK zEWU!>;3gGkh>U}mC?KM?I)`ioso=||+1Xl=D6s}wMy#dU#xRh7c>brl$W{#^O&zo) zk;bR!uPR!CiYCqtxbSm>6;KiAoh=48=Jq~-O5J{QrCOse7@PpUb}3-C+A5W;_)3WVE7i8PEOtl0ognXthe%6XIG!!(dZ&m$%oMq&03Xf@k=qHOJ z*6Lk07k^5ay~Km6g-43j_|F_eTrN%_lB%#Hg3~<(XjwZi#vJ!#_oTaWT1DrApS{53 zZsc`N&|JcOgJ$e^P@5CPOrP**+b!dKBHTy$cN`q;#oJGArYb34Mm zUwYLdzv14<@02s8i402vPL2x^ioG>saPel#-r@!)MDKjRdk{LU>|W*&84GAXu!;1^ z-IO%?6)N-Mp$ZBizsS8DlXWkPls|t%Y5B|ejyLPii?9RFn^-nDtqoU`HBr*C@z;@{51n#V!!oitVfc`b;_L`y#}U%hotpyT9enLF*FnmIR_0s zqk7nMJ~>bBM!lNxpk{Q817mJ*yQWBgrY7QS@~^IZIx zMGrPi+#?gKV(W##RIa!PVpO2Gh5YHDDE-rC@2+OH?RTG_oE_467il)zdt-7|Ao^gV zK_)iw80#_!iiu|I=tZ1$VusPR;Cvh}_iCA$VltrV{d1eJut;N<%1n7)uDr4E*NHGS z)`;D#f|l%a2CUD->IIeFp~ujEw9yUG=7fmK`I$SDMt47Z`LL1uM@dGH~-Opt;jDW#~V5N8hp z!epc$T#rd9S1Y2mQG;U^+}@6%__tG#{JHFN>)xOLZcK{Y*XIiriL^?K#S0$yI0;|L z=Q46N!Vv}g&T#pb7mL9DVMxhGnLHlLC6#~$B(T#w>$i@R*t3TtSNSZKJT%82MA0&7 z=YVQG;I2&=AKz3%xvii1r9Q!MQTY&H?mfe_8b_rCfalnJ#sgt{cU<7&c$%jx^4w)Ri zxFmh(2Ufj#hp%i@qkr7^=zdD~bq}$pzbX8C`pf|-7%z1KtBdrWJqZcls z$1Oow5D>O%J_)yfkyuV1_0ygl6?7-Wdqs&ipLjU;uJUT3%H|3whvTgcOMIYH8G`Oy zhWP+V9tMG6VJTmG8ZEjpxg2Mxpjd*~iwYm6Gl!kUb-tRfm#9C@Nbk-u+f_94s?pg_ zJgo`R@r`s91O=m49jSc6{FwWKt`F^K7$J6(BNMBwJFz`H78ew<$Pd!tw}Tqn5LMn#4nMUYkkRVGH0+@U zPL5B_PV$a+?=n=qpzYo|{bS~~jYc=_zW;HsXk28mXmCs-N@iSBSOX2+JlOtnZTAPl zc;l**b!IA8eT}2npF8DO4Hf2oH682=h~*2bvJ8jHWrW^2`tjc#l$-#pWVKR6?_jrXfnxwjPT#&uBD1wDjf88T(pV+VHW6`HML z62uzY# zTp^x}j_Fj*b+;SZZ5K;@drwH$Aa!Uh6+iyqCr)V109{d@fWlFN)#S#F+ zsyz%Q1xB{Gk(-(pY+eH<;rJ>8;NPhM_0OLXs;D!=++dO`>`RwrK>D#&NHcCR(R>yv}$IK&GnY!YgcK$z6v-68e61rt0aWwdJiCppmo~oBPlXFYQX3 zgk1x8Gnnn?Q>RJ?!Zr&ochEoGSZ`FL#9JL&o(WODmLqgvx1fGLTHqv#>_NWp*3x|r zy&^jE!f1(^MWN7RK!$O+KQ(m9+Q5B|(>Bl6Y;A-Xs{-0Sl>Xec;hZGaDbJAsRlXSS z5Qk+#ZS@M1PM3EX!KLJ7+t;6yl*-7ZhMMhTzGQQTu&x`~-oR7@k#Na@1%$*P33HXC z-yBjRd~F!?RE8_q%ozxahe~(rW`mN75M@AAD`2rYkRSUjuX=3n{WG<-riEXqnFR}@ z-l{7OL*av(VM5lW=E6&D?}r}Wh$UJp+5v-fh<7o<=$Pw0sH8QL;T4KT{Mo-5f~lZ9 z6$quDSM3j%gur6~lsg5FhAD-YedoiR=e488kq?pA(_`-*DH{INzDsSy!uj`sfW&KP zbK$_m+|s+UH9&2>o@3)m7Gxe27$yZ`oyU3)RXo5jd?#8vG$7EV=+>?K_@|K#NCvc7 z|LDad5mgiP;iD(0fOf@FHBJj2r^09yjiVH~0B-;Jn|S&{B{$6mWbCbewlM@NyzGVR z7u}lVk$1S7Sn0wT4q#bqF0ps1_Zp2%Dj?2b09-HWBulh=*JjLcd5_Q=Kd{5^^y@o2 zXKr<_BU0|Dl^SvCWM$Wuf)7gy=f(D@S*Y4qauJ^9IOh3z?m}!?k_$2(hS0{$0~1iRkVow zc(jK0@qUu?Ft2LPlhNlXG405PU4Ux%*67duMhmio)EY3?$GA15&SRsrwOsdY-bxA z(f+7-FNBgaFFQ0&lM3%^ihM{_S9F;hDU=6K%f33z{niDmSx{tlKzOr($K7H@WmlKB zZEJ=TO1b9P$}fXsf}@$N^YocbwTL1slGw(u~m9N z4*oVIN_DI%z&pE*TZ+K|UR%gril6M9mPoG*dB0i_CFRgf1!v^^eyDOvFzFJk8KkTn z9vwmv_dk9)aGOgEQvh#6d9lkSICkc*86o?HuYrscSbh<|>h2wb6jR}3e}?(8%*}+D z%yBNrq(gxP+)E;`0Z96IeCe{l@8*HC?ft6I^+vWS@-&0mg)a-3InU1d{UISFC)gP= zXsm|E@Ab{n+gF9!^P3yd%;Bh(>+1n&N77L@!_a)*T)St7fBn_3S81?y5Ky56std<& zZGE;ln#Xm0Cvp^gtMhME4gdX%Q-+Tk#2+1EhRm#hs{g=j&Bm)=fXcJf;i>ywF+Z>R z8Ql7_0>eiYk7@O6w+m^Ub}WHi0Lcfid@eXk=VS*KSygB1Rx4s|)g?OKKVNHA?)#d1 zX(cQSjNX>DDmeT;br+fW`L>+$Ili`2*iS~QpY081lRYBqme#6?(3=L}c8(TvP%0XZ z0^E`J&5=KaNAKh9Gv>o2%B3&6tb3yY-5^z-)nG7m6n?vjsq|xb^md*eiqpd3!6ZKJ z6@lud!fIj+uq_4~kwEf>6qa(SaQUA%7}cVQDwDhih-9sN0%fpGQfS>KkWORW%2Wc} zv6LgN(9&XdJy9|yACXcFUw02Gkh95C!Wn^^?ICt;DeoL27))KQfvp2o@84K6Ky6%B zXBP97UkPh(RH-YZxM6e}`1Pw5!;X{Wxzyl;$yb}&`Id1IIk$m>3~b~uI0DxM8{SN- z$%dwimCBTJ(*05KsrR%D8L9&?v$#O3cRUKMIS$Yd%Mn{)*$@d=R$gDQ)*`k0Vdc;& zE9f}mFP!2}9Z6WgHLtZZAMkD+G?7vC_<4LKUl8I}v?RHO{iIAuYmg3<{=zQN@_>1^ z`c*e|FN2m4OChKzBFt~8dY@1Sr10UlKZN^iFuK(Q?d1SQj(+z;Gg=T~%eA{;+D=pg zLEuKHxcn1DB02Zw)Z(gnsL}#*euK-MSV`idW;!!SFgCjX(?|bRU%P%N*B(0h3sn9} z3j{l0?%))J{*{5ieK6QHD0l?^d#w0>;pbz{-HQ_2wA44*s=fOJ_2Q)Q>7NUXF8uPp E0E13K^#A|> literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/process-of-loading-an-elf-file.png b/en/device-dev/kernel/figure/process-of-loading-an-elf-file.png new file mode 100644 index 0000000000000000000000000000000000000000..23bc27b7de00aeb9d1ff9fa349c1be4fe4559b18 GIT binary patch literal 9475 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 axHj>&xyFb7Lhy1EL{HmTt5D-&*#7|1s7^ir literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/process-of-locating-a-file.png b/en/device-dev/kernel/figure/process-of-locating-a-file.png new file mode 100644 index 0000000000000000000000000000000000000000..1f2a1adb1e33ba8847dfc45b1eb496bac7639d67 GIT binary patch literal 51389 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

;-rks(3MJUA+ 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 literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/state-transition-of-a-process.png b/en/device-dev/kernel/figure/process-state-transition.png similarity index 100% rename from en/device-dev/kernel/figure/state-transition-of-a-process.png rename to en/device-dev/kernel/figure/process-state-transition.png diff --git a/en/device-dev/kernel/figure/process-tree.png b/en/device-dev/kernel/figure/process-tree.png new file mode 100644 index 0000000000000000000000000000000000000000..25dc996ca88dffc3128c89853f09caf585c4e7a9 GIT binary patch literal 15699 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 Oz*-vmx2kU1KlvX}vcUTQ literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/program-execution-process.png b/en/device-dev/kernel/figure/program-execution-process.png new file mode 100644 index 0000000000000000000000000000000000000000..41e88e6c7eaa02179eb2f1f2637fc5c07cc3eb03 GIT binary patch literal 82026 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 MuY2yTre*N|13*h0DgXcg literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/querying-information-about-a-specified-software-timer.png b/en/device-dev/kernel/figure/querying-information-about-software-timer-1.png similarity index 100% rename from en/device-dev/kernel/figure/querying-information-about-a-specified-software-timer.png rename to en/device-dev/kernel/figure/querying-information-about-software-timer-1.png diff --git a/en/device-dev/kernel/figure/reading-and-writing-data-in-a-queue.png b/en/device-dev/kernel/figure/reading-and-writing-data-in-a-queue.png new file mode 100644 index 0000000000000000000000000000000000000000..677d351338e6251a0e5a85b8ecc2cc883e9ba148 GIT binary patch literal 14495 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 literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/relationship-between-the-vfs-and-file-systems.png b/en/device-dev/kernel/figure/relationship-between-the-vfs-and-file-systems.png deleted file mode 100644 index e1f42cf60e872242c72175b91f2fe14404c439be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17437 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

;96pFweXHD*Y8y3emCz`PsM;rV96 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 literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/requesting-memory.png b/en/device-dev/kernel/figure/requesting-memory.png new file mode 100644 index 0000000000000000000000000000000000000000..6899061a11a0653d0013d0ec89272713cc90cce4 GIT binary patch literal 43065 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

58V(zpU$X^R+;e~_8K2=(~2BZqWkIBrH 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�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�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 Ng&&JP+8mOS`%g8J!_d3*%^|h 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 MXZs6PmNy^%FF_X31poj5 literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/system-call.png b/en/device-dev/kernel/figure/system-call.png new file mode 100644 index 0000000000000000000000000000000000000000..df2b50e6f5b94e142197a43ebc25d854d279aadc GIT binary patch literal 24801 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 TiUUB82kXekVTYMPiG_ayLmYY| literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/figure/task-state-transition.png b/en/device-dev/kernel/figure/task-state-transition.png new file mode 100644 index 0000000000000000000000000000000000000000..efa7fbd8c7bf2705de70bb5d5c3fff332845f8aa GIT binary patch literal 12567 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

bdA9MS0hYPs8$UajZ_>!aQ9h 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 z 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∈h2gNPlAIz?|0$`pKXk8FA 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�I(AcYyNigT_`E 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 z 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 literal 0 HcmV?d00001 diff --git a/en/device-dev/kernel/kernel-basic-mini-time.md b/en/device-dev/kernel/kernel-basic-mini-time.md new file mode 100644 index 00000000000..f529600d20d --- /dev/null +++ b/en/device-dev/kernel/kernel-basic-mini-time.md @@ -0,0 +1,7 @@ +# Time Management + +- **[Basic Concepts](kernel-mini-basic-time-basic.md)** + +- **[Development Guidelines](kernel-mini-basic-time-guide.md)** + + diff --git a/en/device-dev/kernel/kernel-lite-mini.md b/en/device-dev/kernel/kernel-lite-mini.md index f87451dcc80..c1bba9a66cf 100644 --- a/en/device-dev/kernel/kernel-lite-mini.md +++ b/en/device-dev/kernel/kernel-lite-mini.md @@ -1,2 +1,13 @@ # Kernel for Mini Systems +- **[Kernel Overview](kernel-mini-overview.md)** + +- **[Basic Kernel](kernel-mini-basic.md)** + +- **[Extension Components](kernel-mini-extend.md)** + +- **[Kernel Debugging](kernel-memory-inner.md)** + +- **[Appendix](kernel-mini-app.md)** + + diff --git a/en/device-dev/kernel/kernel-lite-small-basic.md b/en/device-dev/kernel/kernel-lite-small-basic.md deleted file mode 100644 index d373831984d..00000000000 --- a/en/device-dev/kernel/kernel-lite-small-basic.md +++ /dev/null @@ -1,11 +0,0 @@ -# Basic Kernel - -- **[Process](kernel-lite-small-process.md)** - -- **[Thread](kernel-lite-small-thread.md)** - -- **[Memory](kernel-lite-small-memory.md)** - -- **[Network](kernel-lite-small-net.md)** - - diff --git a/en/device-dev/kernel/kernel-lite-small-file-fat.md b/en/device-dev/kernel/kernel-lite-small-file-fat.md deleted file mode 100644 index 3f4cafec157..00000000000 --- a/en/device-dev/kernel/kernel-lite-small-file-fat.md +++ /dev/null @@ -1,108 +0,0 @@ -# FAT - -- [Overview](#section17906101815113) -- [Important Notes](#section781233610116) -- [Development Guidelines](#section26081559713) - -## Overview - -There are FAT12, FAT16, and FAT32. A FAT file system divides a hard disk into five areas: MBR, DBR, FAT, DIR, and DATA. - -FAT supports multiple media, especially removable storage media \(such as USB flash drives, SD cards, and portable hard disks\). In this way, embedded devices can be better compatible with desktop systems such as Windows and Linux, facilitating file management and operation. - -FAT in the OpenHarmony kernel features low code, less resource occupation, tailorability, and multiple physical media support. It is compatible with systems such as Windows and Linux, and provides functions such as identification of multiple devices and partitions. - -The OpenHarmony kernel supports multiple partitions on the hard disk. A FAT file system can be created on the primary or logical partition. The OpenHarmony kernel can also identify other types of file systems on the hard disk. - -## Important Notes - -- A maximum of 512 FATFS files or folders that can be opened simultaneously. - -- After a file is opened in writable mode, the file cannot be opened again before it is closed. To open a file for multiple times, the read-only attribute can be used only. If a file is opened for a long time and is not closed, data loss will occur. The file can be saved only after being closed. - -- The size of an individual FAT file cannot be greater than 4 GB. - -- When there are two SD card slots, the first card inserted is card 0, and that inserted later is card 1. - -- When multi-partition is enabled and there are multiple partitions, the device node **/dev/mmcblk0** \(primary device\) registered by card 0 and **/dev/mmcblk0p0** \(secondary device\) are the same device. In this case, you cannot perform operations on the primary device. - -- The read and write pointers are not separated. Therefore, after a file is opened in **O\_APPEND** mode, the read pointer is also at the end of the file. You must manually set the position of the read pointer before reading the file. - -- The file modification time is obtained by the **stat** and **lstat** functions. The creation time and last access time cannot be obtained. As limited by the FAT protocol, the time before 1980 is not supported. - -- When you use **open** with the parameter **O\_TRUNC** to open a file, the file content will be cleared. - -- You can perform the following operations on FAT files: **open**, **close**, **read**, **write**, **seek**, **sync**, **opendir**, **closedir**, **readdir**, **rewinddir**, **readdir\_r**, **statfs**, **remove**, **unlink**, **mkdir**, **rmdir**, **rename**, **stat**, **stat64**, **seek64**, **fallocate**, **fallocate64**, **truncate**, **truncate64**, **mount**, and **umount**. - -- To prevent SD card exceptions and memory leakage, opened files and directories must be closed and mounted nodes must be unmounted before an SD card is removed. - -- If a FAT file system has been mounted before the **format** operation, ensure that all directories and files are closed. Otherwise, the **format** operation will fail. - -- FAT supports mounting with the read-only attribute. - - - When **MS\_RDONLY** is carried in the **mount** function, the read-only attribute is enabled for the FAT file system. All APIs with the write attribute, such as **write**, **mkdir**, and **unlink**, and files that are opened not by using the attribute **O\_RDONLY** are rejected and the error code **EACCESS** is thrown. - - - When **MS\_NOSYNC** is carried in the **mount** function, FAT does not proactively write the content in the cache back to the storage device. The FAT-related APIs **open**, **close**, **unlink**, **rename**, **mkdir**, **rmdir**, and **truncate** do not automatically perform the **sync** operation, which improves the operation speed. However, the upper layer must actively invoke the **sync** operation to synchronize data. Otherwise, data may be lost after a power outage. - - -- The FAT file system supports periodical cache flushing. After **LOSCFG\_FS\_FAT\_CACHE\_SYNC\_THREAD** is enabled in **menuconfig**, the OpenHarmony kernel creates a task to flush the cache. By default, the OpenHarmony kernel checks the percentage of dirty data blocks in the cache every 5 seconds. If the percentage exceeds 80%, the OpenHarmony kernel performs the **sync** operation to write all dirty data in the cache back to the disk. The task priority, flush interval, and dirty data block percentage thresholds can be set by calling **LOS\_SetSyncThreadPrio**, **LOS\_SetSyncThreadInterval**, and **LOS\_SetDirtyRatioThreshold**, respectively. - -- The default cache size is 16 blocks, and each block has 256 sectors. - - -## Development Guidelines - -**Device Identification** - -- Multi-partition is enabled if **FF\_MULTI\_PARTITION** in the **ffconf.h** file is set to **1**. - -- Multi-device is enabled if **FF\_VOLUMES** in the **ffconf.h** file is greater than 2. - - -When multi-device and multi-partition are enabled, the system automatically identifies an inserted SD card and registers the device node. **mmcblk0** \(card 0\) and **mmcblk1** \(card 1\) are independent primary devices. **mmcblk0p0** and **mmcblk0p1** are two partitions of card 0 and can be used as partitions. Do not use the primary device if a partition exists. - -You can run the **partinfo** command to view information about identified partitions. - -``` -OHOS # partinfo /dev/mmcblk0p0 -part info : -disk id : 0 -part_id in system: 0 -part no in disk : 0 -part no in mbr : 1 -part filesystem : 0C -part dev name : mmcblk0p0 -part sec start : 8192 -part sec count : 31108096 -``` - -**FAT Mounting** - -Mount a FAT file system. - -``` -OHOS # mount /dev/mmcblk0p0 /vs/sd vfat -``` - -If the following information is displayed, the FAT file system is mounted: - -``` -OHOS # mount /dev/mmcblk0p0 /vs/sd vfat -mount ok -``` - -**FAT Unmounting** - -Unmount the FAT file system. - -``` -OHOS # umount /vs/sd -``` - -If the following information is displayed, the FAT file system is unmounted: - -``` -OHOS # umount /vs/sd -umount ok -``` - diff --git a/en/device-dev/kernel/kernel-lite-small-file-jffs.md b/en/device-dev/kernel/kernel-lite-small-file-jffs.md deleted file mode 100644 index 59ac9f446b9..00000000000 --- a/en/device-dev/kernel/kernel-lite-small-file-jffs.md +++ /dev/null @@ -1,171 +0,0 @@ -# JFFS2 - -- [Overview](#section01261544730) -- [Important Notes](#section94343420) -- [Development Guidelines](#section14979101812411) - -## Overview - -JFFS2 is a journal-type file system implemented on MTDs. JFFS2 is mainly used in NOR flash memory. It is readable and writable, supports data compression and write leveling, and provides crash/power failure protection. - -There are many differences between flash memory and disk media. Therefore, running a disk file system directly on flash memory causes poor performance and security. JFFS2 is introduced as a file system specially designed for flash memory. - -JFFS2 in the OpenHarmony kernel is mainly used to manage files of the NOR flash memory and supports multiple partitions. - -## Important Notes - -- The JFFS2 file system is used for NOR flash memory, and NOR flash driver APIs are called. Therefore, before using the JFFS2 file system, ensure that the NOR flash memory is available on the hardware and the driver is initialized \(the return value of **spinor\_init\(\)** is **0**\). - -- The system automatically aligns the start address and partition size based on the block size. The valid partition number ranges from 0 to 19. - -- **mkfs.jffs2** is supported. You can change parameter values based on service requirements. - -- When you use **open** with the parameter **O\_TRUNC** to open a file, the file content will be cleared. - -- You can perform the following operation on JFFS2 files: **open**, **close**, **read**, **write**, **seek**, **opendir**, **closedir**, **readdir**, **readdir\_r**, **rewinddir**, **statfs**, **sync**, **remove**, **unlink**, **mkdir**, **rmdir**, **rename**, **stat**, **stat64**, **seek64**, **mmap**, **mount**, **umount**, **chmod**, and **chown**. - -- JFFS2 files can be mounted in the read-only attribute. When **MS\_RDONLY** is carried in the **mount** function, the read-only attribute is enabled. All APIs with the write attribute, such as **write**, **mkdir**, and **unlink**, and files that are opened not by using **O\_RDONLY**, are rejected and the error code **EACCESS** is returned. - - -## Development Guidelines - -**Adding a JFFS2 Partition** - -Call **add\_mtd\_partition** to add a JFFS2 partition. This function automatically names the device node in the format of **/dev/spinorblk** plus the partition number. - -The **add\_mtd\_partition** function has four parameters. The first parameter indicates the medium, which can be **nand** or **spinor**. A JFFS2 partition is used on **spinor**, whereas **nand** is provided for a YAFFS2 partition. - -The second parameter indicates the start address, and the third parameter indicates the partition size. Both parameters are transferred in hexadecimal format. - -The last parameter indicates the partition number, which ranges from 0 to 19. - -``` -INT32 uwRet; -if (uwRet = add_mtd_partition("spinor", 0x100000, 0x800000, 0) != 0) { - dprintf("add jffs2 partition failed, return %d\n", uwRet); -} else { - dprintf("Mount jffs2 on spinor.\n"); - uwRet = mount("/dev/spinorblk0", "/jffs0", "jffs2", 0, NULL); - if (uwRet) { - dprintf("mount jffs2 err %d\n", uwRet); - dprintf("Mount jffs2 on nor finished.\n"); - } -} - -if (uwRet = add_mtd_partition("spinor", 0x900000, 0x200000, 1) != 0) { - dprintf("add jffs2 partition failed, return %d\n", uwRet); -} -``` - -After the partition is added, you can run **partition spinor** in **shell** to view the information about the spinor flash partition. - -``` -OHOS # partition spinor -spinor partition num:0, dev name:/dev/spinorblk0, mountpt:/jffs0, startaddr:0x0100000,length:0x0800000 -spinor partition num:1, dev name:/dev/spinorblk1, mountpt:(null), startaddr:0x0900000,length:0x0200000 -``` - -**Mounting JFFS2** - -Call **mount\(\)** to mount a device node and mount point. - -This function has five parameters. The first parameter indicates the device node, which must match the **add\_mtd\_partition\(\)** function. The second parameter indicates the mount point. The third parameter indicates the file system type. - -The last two parameters indicate the mounting flag and data. The default values are **0** and **NULL**, respectively. This operation can also be implemented by running the **mount** command in **shell**. You do not need to specify the last two parameters. - -Mount a JFFS2 file system. - -``` -OHOS # mount /dev/spinorblk1 /jffs1 jffs2 -``` - -If the following information is displayed, the JFFS2 file system is mounted: - -``` -OHOS # mount /dev/spinorblk1 /jffs1 jffs2 -mount OK -``` - -Now, you can read and write the NOR flash memory. - -**Unmounting JFFS2** - -Call **umount\(\)** to unmount the partition. You only need to provide the correct mount point. - -Unmount JFFS2. - -``` -OHOS # umount /jffs1 -``` - -If the following information is displayed, the JFFS2 file system is unmounted: - -``` -OHOS # umount /jffs1 -umount ok -``` - -**Deleting a JFFS2 Partition** - -Call **delete\_mtd\_partition** to delete an unmounted partition. - -This function has two parameters. The first parameter is the partition number, and the second parameter is the medium type. This function corresponds to the **add\_mtd\_partition\(\)** function. - -``` -INT32 uwRet; -uwRet = delete_mtd_partition(1,"spinor"); -if(uwRet != 0) { - printf("delete jffs2 error\n"); -} else { - printf("delete jffs2 ok\n"); -} - -OHOS # partition spinor -spinor partition num:0, dev name:/dev/spinorblk0, mountpt:/jffs0, startaddr:0x0100000,length:0x0800000 -``` - -**Creating a JFFS2 File System Image** - -Use the **mkfs.jffs2** tool to create an image. The default page size is 4 KiB, and the default eraseblock size is 64 KiB. The image size adapts to the source directory and is filled with 0xFF, which is an integer multiple of the eraseblock size. The default command is as follows. If the actual parameters are different from the following parameters, use the actual parameters. - -``` -./mkfs.jffs2 -d rootfs/ -o rootfs.jffs2 -``` - -**Table 1** Commands - - - - - - - - - - - - - - - - - - - - - - -

Command

-

Description

-

-s

-

Page size. If this parameter is not specified, the default value 4KiB is used.

-

-e

-

eraseblock size. If this parameter is not specified, the default value 64KiB is used.

-

-p

-

Image size. If this parameter is not specified, the source directory is used by default, and 0xFF is filled as an integer multiple of the eraseblock size.

-

-d

-

Source directory of the file system image.

-

-o

-

Image name.

-
- diff --git a/en/device-dev/kernel/kernel-lite-small-file-nfs.md b/en/device-dev/kernel/kernel-lite-small-file-nfs.md deleted file mode 100644 index 7b93df28d13..00000000000 --- a/en/device-dev/kernel/kernel-lite-small-file-nfs.md +++ /dev/null @@ -1,163 +0,0 @@ -# NFS - -- [Overview](#section18322139164413) -- [Important Notes](#section532912331467) -- [Development Guidelines](#section166873374711) - -## Overview - -NFS allows you to share files across hosts and OSs over a network. You can treat NFS as a file system service, which is equivalent to folder sharing in the Windows OS to some extent. - -An NFS client can mount a directory shared by a remote NFS server to the local host to run programs and share files without occupying the current system resources. The directory of the remote server is like a disk to the local host. - -## Important Notes - -- NFS files do not support permissions control. Use file permission **777** when creating NFS directories and files. - -- NFS files do not support read or write blocking. - -- NFS files do not support the signal function. - -- In NFS, the path length \(excluding the IP address\) in a **mount** operation cannot exceed 255 characters. If the maximum length is exceeded, the error code **ENAMETOOLONG** error is returned. - -- You can perform the following operation on NFS files: **open**, **close**, **read**, **write**, **seek**, **dup**, **dup2**, **sync**, **opendir**, **closedir**, **readdir**, **readdir\_r**, **rewinddir**, **scandir**, **statfs**, **remove**, **unlink**, **mkdir**, **rmdir**, **rename**, **stat**, **stat64**, **seek64**, **mmap**, **mount**, and **umount**. - -- Two transport layer protocols are supported in NFS: TCP \(default\) and UDP. - -- When you use **open** with the parameter **O\_TRUNC** to open a file, the file content will be cleared only when you have the write permission on the file. - -- When file A is not closed and the **rename\(\)** function renames file A as B, the fd is not changed. - -- The NFS feature is currently in the beta test and may be unstable. You are advised not to use the feature in commercial products. - - -## Development Guidelines - -1. **Create an NFS server.** - - This section uses the Ubuntu operating system \(OS\) as an example to describe how to configure an NFS server. - - 1. Install the NFS server software. - - Set the download source of the Ubuntu OS when the network connection is normal. - - ``` - sudo apt-get install nfs-kernel-server - ``` - - 2. Create a directory for mounting and set full permissions for the directory. - - ``` - mkdir /home/sqbin/nfs - sudo chmod 777 /home/sqbin/nfs - ``` - - 3. Configure and start the NFS server. - - Append the following line in the **/etc/exports** file: - - ``` - /home/sqbin/nfs *(rw,no_root_squash,async) - ``` - - **/home/sqbin/nfs** is the root directory shared by the NFS server. - - Start the NFS server. - - ``` - sudo /etc/init.d/nfs-kernel-server start - ``` - - Restart the NFS server. - - ``` - sudo /etc/init.d/nfs-kernel-server restart - ``` - - -2. **Configure a board as the NFS client.** - - In this section, the NFS client is a device running the OpenHarmony kernel. - - 1. Set the hardware connection. - - Connect the OpenHarmony kernel device to the NFS server. Set their IP addresses in the same network segment. For example, set the IP address of the NFS server to **10.67.212.178/24** and set the IP address of the OpenHarmony kernel device to **10.67.212.3/24**. Note that the preceding IP addresses are private IP addresses used as examples. You need to use your actual IP addresses. - - You can run the **ifconfig** command to view the device's IP address. - - 2. Start the network and ensure that the network between the board and NFS server is normal. - - Start the Ethernet or another type of network, and then run **ping** to check whether the network connection to the server is normal. - - ``` - OHOS # ping 10.67.212.178 - [0]Reply from 10.67.212.178: time=1ms TTL=63 - [1]Reply from 10.67.212.178: time=0ms TTL=63 - [2]Reply from 10.67.212.178: time=1ms TTL=63 - [3]Reply from 10.67.212.178: time=1ms TTL=63 - --- 10.67.212.178 ping statistics --- - 4 packets transmitted, 4 received, 0 loss - ``` - - Initialize the NFS client. - - ``` - OHOS # mkdir /nfs - OHOS # mount 10.67.212.178:/home/sqbin/nfs /nfs nfs 1011 1000 - ``` - - If the following information is displayed, the NFS client is initialized. - - ``` - OHOS # mount 10.67.212.178:/home/sqbin/nfs /nfs nfs 1011 1000 - Mount nfs on 10.67.212.178:/home/sqbin/nfs, uid:1011, gid:1000 - Mount nfs finished. - ``` - - This command mounts the **/home/sqbin/nfs** directory on the NFS server whose IP address is 10.67.212.178 to the **/nfs** directory on the device. - - >![](../public_sys-resources/icon-note.gif) **NOTE:** - >This section assumes that the NFS server is available, that is, the **/home/sqbin/nfs** directory on the NFS server 10.67.212.178 is accessible. - - The **mount** command format is as follows: - - ``` - mount nfs - ``` - - In this command, **SERVER\_IP** indicates the IP address of the NFS server, **SERVER\_PATH** indicates the path of the shared directory on the NFS server, and **CLIENT\_PATH** indicates the NFS path on the device. - - If you do not want to restrict the NFS access permission, set the permission of the NFS root directory to **777** on the Linux CLI. - - ``` - chmod -R 777 /home/sqbin/nfs - ``` - - The NFS client setting is complete, and the NFS file system has been mounted. - - -3. **Share files using NFS.** - - Create the **dir** directory on the NFS server and save the directory. Run the **ls** command in the OpenHarmony kernel. - - ``` - OHOS # ls /nfs - ``` - - The following information is returned from the serial port: - - ``` - OHOS # ls /nfs - Directory /nfs: - drwxr-xr-x 0 u:0 g:0 dir - ``` - - The **dir** directory created on the NFS server has been synchronized to the **/nfs** directory on the device. - - Similarly, you can create files and directories on the device and access them on the NFS server. - - **Platform differences:** - - Currently, the NFS client supports some NFS v3 specifications. Therefore, the NFS client is not fully compatible with all types of NFS servers. During the development and test, you are advised to use the Linux NFS server. - - diff --git a/en/device-dev/kernel/kernel-lite-small-file-ramfs.md b/en/device-dev/kernel/kernel-lite-small-file-ramfs.md deleted file mode 100644 index 7dfad727c5a..00000000000 --- a/en/device-dev/kernel/kernel-lite-small-file-ramfs.md +++ /dev/null @@ -1,90 +0,0 @@ -# RAMFS - -- [Overview](#section7216205735619) -- [Important Notes](#section970375615711) -- [Development Guidelines](#section18433111125812) - -## Overview - -RAMFS is a RAM-based file system whose size can be dynamically adjusted. RAMFS does not have a backup storage source. Directory entries and page caches are allocated when files are written into RAMFS. However, data is not written back to any other storage medium, and data is lost after a power outage. - -RAMFS stores all files in RAM, and read/write operations are performed in RAM. RAMFS is generally used to store temporary data or data that needs to be frequently modified, such as the **/tmp** and **/var** directories. Using RAMFS reduces the read/write loss of the memory and improves the data read/write speed. - -RAMFS in the OpenHarmony kernel is a simple file system and provides a storage buffer for RAM-based dynamic file systems. - -RAMFS in the OpenHarmony kernel is based on VFS and cannot be formatted. - -## Important Notes - -- The read and write pointers of RAMFS are not separated. Therefore, after a file is opened in **O\_APPEND** mode, the read pointer is also at the end of the file. You must manually set the position of the read pointer before reading the file. - -- A RAMFS file system can be mounted only once. After it is mounted to a directory, it cannot be mounted to other directories. - -- The number of RAMFS files is restricted by semaphore resources and cannot exceed the value of **LOSCFG\_BASE\_IPC\_SEM\_LIMIT**. - -- When you use **open** with the parameter **O\_TRUNC** to open a file, the file content will be cleared. - - -- You can perform the following operation on RAMFS files: **open**, **close**, **read**, **write**, **seek**, **opendir**, **closedir**, **readdir**, **readdir\_r**, **rewinddir**, **sync**, **statfs**, **remove**, **unlink**, **mkdir**, **rmdir**, **rename**, **stat**, **stat64**, **seek64**, **mmap**, **mount**, and **umount**. - - -- RAMFS is under debugging and disabled by default. Do not use it in formal products. - - -## Development Guidelines - -You can mount or unmount RAMFS using either of the following methods: - -- Using code: - 1. Call the **mount** function to mount the RAMFS file system. - - ``` - void ram_fs_init(void) { - int swRet; - swRet = mount(NULL, RAMFS_DIR, "ramfs", 0, NULL); - if (swRet != 0) { - dprintf("mount ramfs err %d\n", swRet); - return; - } - dprintf("Mount ramfs finished.\n"); - } - ``` - - If the following information is displayed during the startup of the OpenHarmony kernel, the RAMFS file system is successfully mounted: - - ``` - Mount ramfs finished - ``` - - 2. Call the **umount** function to unmount the RAMFS file system. The following information will be displayed in the OpenHarmony kernel if the RAMFS file system is successfully unmounted. - - ``` - void ram_fs_uninit(void) { - int swRet; - swRet = umount(RAMFS_DIR); - if (swRet != 0) { - dprintf("Umount ramfs err %d\n", swRet); - return; - } - dprintf("Umount ramfs finished.\n"); - } - ``` - - -- Using commands: - 1. Run the **mount** command to mount the RAMFS file system. If the following information is displayed, the RAMFS file system is successfully mounted: - - ``` - OHOS # mount 0 /ramfs ramfs - mount ok - ``` - - 2. Run the **umount** command to unmount the RAMFS file system. If the following information is displayed, the RAMFS file system is successfully unmounted: - - ``` - OHOS # umount /ramfs - umount ok - ``` - - - diff --git a/en/device-dev/kernel/kernel-lite-small-file-vfs.md b/en/device-dev/kernel/kernel-lite-small-file-vfs.md deleted file mode 100644 index 8634d9cf6c7..00000000000 --- a/en/device-dev/kernel/kernel-lite-small-file-vfs.md +++ /dev/null @@ -1,171 +0,0 @@ -# VFS - -- [Overview](#section132540468341) -- [Basic Concepts](#section229417111227) -- [Working Principles](#section18114182834215) -- [Important Notes](#section18311145173712) -- [Development Guidelines](#section422619258380) -- [Use Code](#section180311121420) -- [Result Verification](#section16772334714) - -## Overview - -## Basic Concepts - -In essence, VFS is not a real file system. It is an abstract layer on top of a heterogeneous file system and provides you with a unified Unix-like file operation interface. - -Different types of file systems provide different interfaces. If there are multiple types of file systems in the system, different and non-standard interfaces are required for accessing these file systems. The VFS can be introduced as an abstract layer in the system to harmonize the differences between these heterogeneous file systems. In this way, the system does not need to care about the storage medium and file system type at the bottom layer when accessing a file system. The figure below illustrates the relationship between the VFS and file systems. - -**Figure 1** Relationship between the VFS and file systems -![](figure/relationship-between-the-vfs-and-file-systems.png "relationship-between-the-vfs-and-file-systems") - -In the OpenHarmony kernel, the VFS framework is implemented using the tree structure in the memory. Each node in the tree is an **inode** structure. After a device is registered and a file system is mounted, the corresponding node is generated in the tree based on the path. VFS provides the following functions: - -- Node query -- Unified file system invoking \(standard\) - -## Working Principles - -At the VFS layer, standard Unix file operation functions \(such as **open**, **read**, and **write**\) can be used to access different file systems on different media. - -There are three types of **inode** tree nodes in the VFS framework memory: - -- Virtual node: virtual file of the VFS framework, for example, **/usr** and **/usr/bin**, which ensures the continuity of the tree -- Device node: mapping to a device in the **/dev** directory, for example, **/dev/mmcblk0** -- Mount point: used to mount a specific file system, for example, **/vs/sd** or **/mnt** - -**Figure 2** Tree structure of the file system -![](figure/tree-structure-of-the-file-system.png "tree-structure-of-the-file-system") - -## Important Notes - -- For all file systems in VFS, the name of a directory or file can contain a maximum of 255 bytes, and the maximum length of a full path is 259 bytes. Directories or files whose length exceeds the maximum length cannot be created. - -- Currently, only the JFFS2 file system supports complete permission control. - -- After the **inode\_find\(\)** function is called, the number of found **inode** connections is incremented by 1. After the call is complete, the **inode\_release\(\)** function is called to decrease the number of **inode** connections by 1. Therefore, the two functions must be used together. - -- Devices are classified into character devices and block devices. To ensure data security of the file system on a block device, mount the file system and then operate data through the file system interface. - -- The **los\_vfs\_init\(\)** function can be called only once. Multiple calls cause exceptions to the file system. - -- The file names and directory names in all file systems of the OpenHarmony kernel can contain only hyphens \(-\) and underscores \(\_\), but no other special characters. If other special characters are used, unpredictable errors may occur. - -- The OpenHarmony kernel supports the **open\(\)+O\_DIRECTORY** method to obtain directory data. - -- The mount point must be an empty directory. A file system cannot be mounted to the same mount point or to a directory or file under another mount point. Otherwise, the device or system may be damaged. - -- Only one of the **O\_RDWR**, **O\_WRONLY**, and **O\_RDONLY** parameters can be used with **open** to open a file. If two or more of them are used, the file read or write operation is rejected, and the error code **EACCESS** is returned. - -- Before unmounting a file system in the OpenHarmony kernel, ensure that all directories and files are closed. Otherwise, unmounting fails. Forcible unmounting may cause problems such as file system and file damage. - -- Before removing an SD card, ensure that all directories and files are closed and unmounting is performed. Forcible removal may cause problems such as SD card data loss and SD card damage. - - -## Development Guidelines - -**How to Develop** - -It is recommended that driver developers use the VFS framework to register or uninstall devices \(that is, call **register\_driver\(\)** and **register\_blockdriver\(\)** to obtain device nodes\) and the application layer use **open\(\)** and **read\(\)** to operate character device files to invoke drivers. - -**File Descriptor** - -A process can have a maximum of 256 file descriptors \(including file and socket descriptors\). The system can have a maximum of 640 file descriptors, where there can be a maximum of - -- 512 file descriptors - -- 128 socket descriptors - - -**Operations Supported by VFS** - -open, close, read, write, seek, ioctl, fcntl, mmap, sync, dup, dup2, truncate, opendir, closedir, readdir, rewinddir, mount, umount, statfs, unlink, remove, mkdir, rmdir, rename, stat, utime, seek64, fallocate, fallocate64, truncate64, chmod, and chown - ->![](../public_sys-resources/icon-note.gif) **NOTE:** ->- Currently, only the interfaces for modifying the attributes of JFFS2 files and VFS device nodes are provided. Each system has its own processing mode for attributes such as read-only. ->- In the OpenHarmony kernel, the attributes do not conflict with each other, and they can be modified randomly. ->- A read-only file or directory in the OpenHarmony kernel cannot be deleted. ->- A read-only file or directory in the OpenHarmony kernel can be renamed. ->- A read-only file cannot be opened in **O\_CREAT**, **O\_TRUNC**, or other modes with the write permission. ->- If the hidden attribute is added to a system file in the OpenHarmony kernel, the system file can be found only on the command line interface \(CLI\) in the Windows OS. \(This system file cannot be viewed regardless of whether **Show hidden files, folders, and drivers** is selected.\) - -## Use Code - -``` -/* The following code shows how to create and traverse directories. */ -#include -#include -#include -#include -#include -#include - -int main() -{ - int ret; - char *dirname = "/test"; - char *pathname0 = "/test/test0"; - char *pathname1 = "/test/test1"; - char *pathname2 = "/test/test2"; - struct dirent **namelist; - int num; - - ret = mkdir(dirname, 0777); - if ((ret < 0) && (errno != EEXIST)) { - printf("mkdir failed. path=%s, errno=%d\n", dirname, errno); - goto EXIT; - } - - ret = mkdir(pathname0, 0777); - if ((ret < 0) && (errno != EEXIST)) { - printf("mkdir failed. path=%s, errno=%d\n", pathname0, errno); - goto EXIT0; - } - - ret = mkdir(pathname1, 0777); - if ((ret < 0) && (errno != EEXIST)) { - printf("mkdir failed. path=%s, errno=%d\n", pathname1, errno); - goto EXIT1; - } - - ret = mkdir(pathname2, 0777); - if ((ret < 0) && (errno != EEXIST)) { - printf("mkdir failed. path=%s, errno=%d\n", pathname2, errno); - goto EXIT2; - } - - num = scandir(dirname, &namelist, NULL, alphasort); - if (num < 0) { - perror("scandir"); - } else { - while (num--) { - printf("%s\n", namelist[num]->d_name); - free(namelist[num]); - } - free(namelist); - } - - printf("fs_demo exit.\n"); - return 0; - -EXIT2: - remove(pathname2); -EXIT1: - remove(pathname1); -EXIT0: - remove(pathname0); -EXIT: - remove(dirname); - return 0; -} -``` - -## Result Verification - -``` -OHOS # test2 -test1 -test0 -fs_demo exit. -``` - diff --git a/en/device-dev/kernel/kernel-lite-small-file.md b/en/device-dev/kernel/kernel-lite-small-file.md deleted file mode 100644 index 4a1e2be2e6b..00000000000 --- a/en/device-dev/kernel/kernel-lite-small-file.md +++ /dev/null @@ -1,54 +0,0 @@ -# File System - -The OpenHarmony lite kernel supports the following file systems: Virtual File System \(VFS\), Network File System \(NFS\), RAM File System \(RAMFS\), File Allocation Table \(FAT\), and Journalling Flash File System Version 2 \(JFFS2\). - -The table below describes the functions of these file systems. - -**Table 1** File system functions - - - - - - - - - - - - - - - - - - - - - - -

File System

-

Function

-

VFS

-

In essence, VFS is not a real file system. It is an abstract layer on top of a heterogeneous file system and provides you with a unified Unix-like file operation interface.

-

NFS

-

NFS allows you to share files across hosts and OSs over a network.

-

RAMFS

-

RAMFS is a RAM-based file system. All files are stored in the RAM, and file read/write operations are performed in the RAM, which reduces the read/write loss of the memory and improves the data read/write speed. It provides a RAM-based storage buffer for dynamic file systems.

-

FAT

-

There are FAT12, FAT16, and FAT32. FAT is often used on removable storage media (such as USB flash drives, SD cards, and portable hard disks) to provide better compatibility between devices and desktop systems such as Windows and Linux.

-

JFFS2

-

JFFS2 is a journal-type file system implemented on Memory Technology Devices (MTDs). It is mainly used to manage files of the NOR flash memory. JFFS2 used in the OpenHarmony kernel supports multiple partitions.

-
- -- **[VFS](kernel-lite-small-file-vfs.md)** - -- **[NFS](kernel-lite-small-file-nfs.md)** - -- **[RAMFS](kernel-lite-small-file-ramfs.md)** - -- **[FAT](kernel-lite-small-file-fat.md)** - -- **[JFFS2](kernel-lite-small-file-jffs.md)** - - diff --git a/en/device-dev/kernel/kernel-lite-small-lib-differ.md b/en/device-dev/kernel/kernel-lite-small-lib-differ.md deleted file mode 100644 index aa315d3b074..00000000000 --- a/en/device-dev/kernel/kernel-lite-small-lib-differ.md +++ /dev/null @@ -1,96 +0,0 @@ -# Differences from the Linux Standard Library - -- [Process](#section249218475301) -- [Memory](#section55731513163117) -- [Differences from Linux mmap](#section1943551142314) -- [Code Example](#section16947155092514) -- [File System](#section1746965493115) -- [Signal](#section1198254310333) -- [Time](#section0833419133414) - -This section describes the key differences between the standard library carried by the OpenHarmony kernel and the Linux standard library. For more information, see the API document of the C library. - -## Process - -1. Only the static priority is supported by OpenHarmony user-level processes. The priority ranges from 10 \(highest priority\) to 31 \(lowest priority\). -2. Only the static priority is supported by OpenHarmony user-level threads. The priority ranges from 0 \(highest priority\) to 31 \(lowest priority\). -3. OpenHarmony process scheduling policy can only be **SCHED\_RR**, and the thread scheduling policy can be **SCHED\_RR** or **SCHED\_FIFO**. - -## Memory - -## Differences from Linux mmap - -mmap prototype: void \*mmap \(void \*addr, size\_t length, int prot, int flags, int fd, off\_t offset\) - -The lifecycle implementation of **fd** is different from that of Linux glibc. To be specific, the glibc can release the **fd** handle immediately after successfully invoking the mmap for mapping. In the OpenHarmony kernel, you are not allowed to close **fd** immediately after the mapping is successful. You can close **fd** only after the munmap is canceled. If you do not close the **fd**, the operating system reclaims it when the process exits. - -## Code Example - -For Linux OS: - -``` -int main(int argc, char *argv[]) -{ - int fd; - void *addr = NULL; - ... - fd = open(argv[1], O_RDONLY); - if (fd == -1){ - perror("open"); - exit(EXIT_FAILURE); - } - addr = mmap(NULL, length, PROT_READ, MAP_PRIVATE, fd, offset); - if (addr == MAP_FAILED) { - perror("mmap"); - exit(EXIT_FAILURE); - } - close(fd); /* OpenHarmony does not support closing fd immediately after the mapping is successful. */ - ... - exit(EXIT_SUCCESS); -} -``` - -For OpenHarmony: - -``` -int main(int argc, char *argv[]) -{ - int fd; - void *addr = NULL; - ... - fd = open(argv[1], O_RDONLY); - if (fd == -1) { - perror("open"); - exit(EXIT_FAILURE); - } - addr = mmap(NULL, length, PROT_READ, MAP_PRIVATE, fd, offset); - if (addr == MAP_FAILED) { - perror("mmap"); - exit(EXIT_FAILURE); - } - ... - munmap(addr, length); - close(fd); /* Close fd after the munmap is canceled. */ - exit(EXIT_SUCCESS); -} -``` - -## File System - -**System directories**: include **/dev**, **/proc**, **/app**, **/bin**, **/data**, **/etc**, **/lib**, **/system** and **/usr**. Users do not have the permission to modify the directories and mount devices. - -**User directory**: refers to **/storage**. Users can create, read, and write files in this directory, but cannot mount devices. - -In addition to the system and user directories, you can create folders to mount devices. Note that a mounted folder and its subfolders cannot be mounted repeatedly or in nested mode. A non-empty folder cannot be mounted. - -## Signal - -- The default behavior for signals does not include **STOP**, **CONTINUE**, and **COREDUMP**. -- A sleeping process \(for example, a process enters the sleeping status by calling the **sleep** function\) cannot be woken up by a signal. Cause: The signal mechanism does not support wakeup. The behavior for a signal can be processed only when the process is scheduled by the CPU. -- After a process exits, **SIGCHLD** is sent to its parent process. The sending action cannot be canceled. -- Only signals 1 to 30 are supported. If the receiver receives the same signal multiple times, the callback function is executed only once. - -## Time - -The time precision of OpenHarmony is tick, with the default value of 10 ms/tick. The discrepancy of the **sleep** and **timeout** functions is less than or equal to 2 ticks. - diff --git a/en/device-dev/kernel/kernel-lite-small-lib.md b/en/device-dev/kernel/kernel-lite-small-lib.md deleted file mode 100644 index 7b82773508b..00000000000 --- a/en/device-dev/kernel/kernel-lite-small-lib.md +++ /dev/null @@ -1,7 +0,0 @@ -# Standard Library - -- **[Standard Library](kernel-lite-small-lib-standard.md)** - -- **[Differences from the Linux Standard Library](kernel-lite-small-lib-differ.md)** - - diff --git a/en/device-dev/kernel/kernel-lite-small-memory.md b/en/device-dev/kernel/kernel-lite-small-memory.md deleted file mode 100644 index 7e5191df7b4..00000000000 --- a/en/device-dev/kernel/kernel-lite-small-memory.md +++ /dev/null @@ -1,353 +0,0 @@ -# Memory - -- [Basic Concepts](#section1392116583424) -- [When to Use](#section159581619194319) -- [API Description](#section114001032104317) - -## Basic Concepts - -Memory management is an important procedure in software development, including memory allocation, usage, and reclamation. - -Sound memory management approaches and strategies help you improve software performance and reliability. - -## When to Use - -For user-space development, the OpenHarmony kernel provides a set of APIs for you to perform memory-related operations, such as memory application, release, remapping, and attribute setting, in addition to standard APIs provided by the C library. - -## API Description - -**Table 1** Standard APIs in the C library - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Header File

-

Function

-

Description

-

strings.h

-

int bcmp(const void *s1, const void *s2, size_t n)

-

Compares byte sequences.

-

strings.h

-

void bcopy(const void *src, void *dest, size_t n)

-

Copies byte sequences.

-

strings.h

-

void bzero(void *s, size_t n)

-

Sets byte sequences to zero.

-

string.h

-

void *memccpy(void *dest, const void *src, int c, size_t n)

-

Copies the first n bytes from the source memory area pointed to by src to the destination memory area pointed to by dest. The copy checks whether a character specified by c is found. If c is found, this function returns the next character of character c in the destination memory area.

-

string.h

-

void *memchr(const void *s, int c, size_t n)

-

Searches for the first occurrence of the character specified by c in the n-byte memory area pointed to by s.

-

string.h

-

int memcmp(const void *s1, const void *s2, size_t n)

-

Compares two memory areas.

-

string.h

-

void *memcpy(void *dest, const void *src, size_t n)

-

Copies n bytes from the source memory area pointed to by src to the destination memory area pointed to by dest.

-

string.h

-

void *memmem(const void *haystack, size_t haystacklen, const void *needle, size_t needlelen)

-

Searches for a needle string in its haystack string.

-

string.h

-

void *memmove(void *dest, const void *src, size_t n)

-

Copies n bytes from the source memory area pointed to by src to the destination memory area pointed to by dest.

-

string.h

-

void *mempcpy(void *dest, const void *src, size_t n)

-

Copies n bytes from the source memory area pointed to by src to the destination memory area pointed to by dest.

-

string.h

-

void *memset(void *s, int c, size_t n)

-

Copies a character to the specified memory area.

-

stdlib.h

-

void *malloc(size_t size)

-

Dynamically allocates a memory block of size.

-

stdlib.h

-

void *calloc(size_t nmemb, size_t size)

-

Dynamically allocates nmemb memory blocks of size.

-

stdlib.h

-

void *realloc(void *ptr, size_t size)

-

Changes the size of the memory block pointed to by ptr to size bytes.

-

stdlib.h/malloc.h

-

void *valloc(size_t size)

-

Allocates a block of memory with the specified size and aligns the allocated memory by page size.

-

stdlib.h

-

void free(void *ptr)

-

Releases the memory space pointed to by ptr.

-

malloc.h

-

size_t malloc_usable_size(void *ptr)

-

Obtains the size of the memory block pointed to by ptr.

-

unistd.h

-

int getpagesize(void)

-

Obtains the page size.

-

unistd.h

-

void *sbrk(intptr_t increment)

-

Changes the data segment size.

-
- -Details on API differences: - -- **mmap** - - **Function prototype:** - - void \*mmap\(void \*addr, size\_t length, int prot, int flags, int fd, off\_t offset\); - - **Function description:** applies for virtual memory. - - **Parameter description:** - - - - - - - - - - - - - - - - - - - - - - - - - -

Parameter

-

Description

-

addr

-

Indicates the pointer to the start address of the mapping between the virtual address space of the calling process and a file or device. If this parameter is NULL, the kernel determines the address to start (recommended). Otherwise, the portability of the program will deteriorate, because the available addresses vary depending on the OS.

-

length

-

Indicates the length of the mapping.

-

prot

-

Indicates the permission to be granted on the mapping area. The options are as follows:

-
  • PROT_READ: The mapping area is readable.
  • PROT_WRITE: The mapping area is writable.
  • PROT_EXEC: The mapping area is executable.
  • PROT_NONE: The mapping area cannot be accessed.
-

flags

-

Specifies whether updates are visible to other processes mapping the same segment. The options are as follows:

-
  • MAP_PRIVATE: The mapping area is private, and updates to the mapping are invisible to other processes mapping the same segment.
  • MAP_SHARED: Updates to the mapping are visible to other processes mapping the same segment, and are stored to the disk file.
-

fd

-

Indicates the file descriptor.

-

offset

-

Indicates the offset into the file where the mapping will start.

-
- - >![](../public_sys-resources/icon-note.gif) **NOTE:** - >For details about the implementation differences between **mmap** and Linux function, see [Differences from the Linux Standard Library](kernel-lite-small-lib-differ.md). - - **Return values:** - - - Returns the pointer to the page-aligned address where the mapping is placed if the operation is successful. - - Returns **\(void \*\)-1** if the operation fails. - - -- **munmap** - - **Function prototype:** - - int munmap\(void \*addr, size\_t length\); - - **Function description:** releases virtual memory. - - **Parameter description:** - - - - - - - - - - - - - -

Parameter

-

Description

-

addr

-

Indicates the pointer to the start address of the memory region to unmap.

-

length

-

Indicates the length of the address range to unmap.

-
- - **Return values:** - - - Returns **0** if the operation is successful. - - Returns **-1** if the operation fails. - - -- **mprotect** - - **Function prototype:** - - int mprotect\(void \*addr, size\_t length, int prot\); - - **Function description:** modifies the access permission on a memory region. - - **Parameter description:** - - - - - - - - - - - - - - - - -

Parameter

-

Description

-

addr

-

Indicates the pointer to the start address of the memory region to modify, which must be a multiple of the page size. If the access permission is abnormal, the kernel throws an exception and kills the process rather than send SIGSEGV signals to the current process.

-

length

-

Indicates the length of the memory region to modify.

-

prot

-

Indicates the permission of the memory region to modify. The options are as follows:

-
  • PROT_READ: The memory region is readable.
  • PROT_WRITE: The memory region is writable.
  • PROT_EXEC: The memory region is executable.
  • PROT_NONE: The memory region cannot be accessed.
-
- - **Return values:** - - - Returns **0** if the operation is successful. - - Returns **-1** if the operation fails. - - -- **mremap** - - **Function prototype:** - - void \*mremap\(void \*old\_address, size\_t old\_size, size\_t new\_size, int flags, void new\_address\); - - **Function description:** remaps the virtual memory address. - - **Parameter description:** - - - - - - - - - - - - - - - - - - - -

Parameter

-

Description

-

old_address

-

Indicates the old address of the virtual memory block that needs to be expanded or shrunk. The old_address must be page-aligned.

-

old_size

-

Indicates the old size of the virtual memory block.

-

new_size

-

Indicates the new size of the virtual memory block.

-

flags

-

Indicates the flags to control the remapping. If there is no sufficient space to expand the mapping in the current location, the operation will fail.

-
  • MREMAP_MAYMOVE: allows the kernel to relocate the mapping to a new virtual address.
  • MREMAP_FIXED: enables the mremap() function to accept the fifth parameter void *new_address, which specifies that the mapping address must be page-aligned. All previous mappings within the address range specified by new_address and new_size are unmapped. If MREMAP_FIXED is specified, MREMAP_MAYMOVE must also be specified.
-
- - **Return values:** - - - Returns the pointer to the new virtual memory area if the operation is successful. - - Returns **\(void \*\)-1** if the operation fails. - - diff --git a/en/device-dev/kernel/kernel-lite-small-net.md b/en/device-dev/kernel/kernel-lite-small-net.md deleted file mode 100644 index 0f542fa5292..00000000000 --- a/en/device-dev/kernel/kernel-lite-small-net.md +++ /dev/null @@ -1,303 +0,0 @@ -# Network - -- [Basic Concepts](#section9840143083510) -- [When to Use](#section1575885183516) -- [API Description](#section16351198193614) - -## Basic Concepts - -The network module implements basic functions of the TCP/IP protocol stack and provides the standard POSIX socket interfaces. - ->![](../public_sys-resources/icon-note.gif) **NOTE:** ->Currently, the OS uses **lwIP** to provide network capabilities. - -## When to Use - -For user-space development, the OpenHarmony kernel provides a set of APIs for you to implement network functionalities, including creating and disabling sockets, transmitting and receiving data, and setting network attributes, in addition to standard POSIX socket functions provided by the C library. - -## API Description - -**Table 1** Standard APIs in the C library - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Header File

-

Function

-

Description

-

sys/socket.h

-

int accept(int socket, struct sockaddr *address, socklen_t *address_len)

-

Accepts incoming connection requests.

-

sys/socket.h

-

int bind(int s, const struct sockaddr *name, socklen_t namelen)

-

Binds an IP address to a socket.

-

sys/socket.h

-

int shutdown(int socket, int how)

-

Shuts down a socket.

-

sys/socket.h

-

int getpeername(int s, struct sockaddr *name, socklen_t *namelen)

-

Retrieves the peer address of the specified socket.

-

sys/socket.h

-

int getsockname(int s, struct sockaddr *name, socklen_t *namelen)

-

Retrieves the local address of the specified socket.

-

sys/socket.h

-

int getsockopt(int s, struct sockaddr *name, socklen_t *namelen)

-

Retrieves the socket options.

-

sys/socket.h

-

int setsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen)

-

Sets the socket options.

-

unistd.h

-

int close(int s)

-

Closes a socket.

-

sys/socket.h

-

int connect(int s, const struct sockaddr *name, socklen_t namelen)

-

Initiates a connection to a socket.

-

sys/socket.h

-

int listen(int sockfd, int backlog)

-

Listens for network connections.

-

sys/socket.h

-

ssize_t recv(int socket, void *buffer, size_t length, int flags)

-

Receives data from another socket.

-

sys/socket.h

-

ssize_t recvmsg(int s, struct msghdr *message, int flags)

-

Receives data from a specified socket based on the input parameters.

-

sys/socket.h

-

ssize_t recvfrom(int socket, void *buffer, size_t length, int flags, struct sockaddr *address, socklen_t *address_len)

-

Receives data from a specified socket and obtains the IP address of the data source.

-

sys/socket.h

-

ssize_t send(int s, const void *dataptr, size_t size, int flags)

-

Sends data to another socket.

-

sys/socket.h

-

ssize_t sendmsg(int s, const struct msghdr *message, int flags)

-

Sends data to another socket based on the input parameters.

-

sys/socket.h

-

ssize_t sendto(int s, const void *dataptr, size_t size, int flags, const struct sockaddr *to, socklen_t tolen)

-

Sends data to another socket at the specified destination IP address.

-

sys/socket.h

-

int socket(int domain, int type, int protocol)

-

Creates a socket.

-

sys/select.h

-

int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout)

-

Monitors the I/O events of multiple file descriptors.

-

sys/ioctl.h

-

int ioctl(int s, int request, ...)

-

Obtains and sets socket options.

-

arpa/inet.h

-

const char *inet_ntop(int af, const void *src, char *dst, socklen_t size)

-

Converts an IP address in binary format to a string.

-

arpa/inet.h

-

int inet_pton(int af, const char *src, void *dst)

-

Converts a string to an IP address in binary format.

-
- -Details on API differences: - -- **sendmsg** - - **Function prototype:** - - ssize\_t sendmsg\(int s, const struct msghdr \*message, int flags\) - - **Function description:** sends a message on a socket. - - **Parameter description:** - - - - - - - - - - - - - - - - -

Parameter

-

Description

-

s

-

Indicates the socket descriptor.

-

message

-

Indicates the pointer to the message to be sent. The ancillary message is not supported.

-

flags

-

Indicates the socket flags for sending the message. The options are as follows:

-
  • MSG_MORE: allows messages that have been sent for multiple times to be packaged and sent at a time.
  • MSG_DONTWAIT: enables a non-blocking operation.
-
- - **Return values:** - - - Returns the number of bytes that have been sent if the operation is successful. - - Returns **-1** and sets **errno** if the operation fails. - - -- **recvmsg** - - **Function prototype:** - - ssize\_t recvmsg\(int s, struct msghdr \*message, int flags\) - - **Function description:** receives a message from a socket. - - **Parameter description:** - - - - - - - - - - - - - - - - -

Parameter

-

Description

-

s

-

Indicates the socket descriptor.

-

message

-

Indicates the pointer to the address to receive the message. The ancillary message is not supported.

-

flags

-

Indicates the socket flags for receiving the message. The options are as follows:

-
  • MSG_PEEK: allows the message to be read without being removed.
  • MSG_DONTWAIT: enables a non-blocking operation.
-
- - **Return values:** - - - Returns the number of bytes that have been received if the operation is successful. - - Returns **-1** and sets **errno** if the operation fails. - - -- **ioctl** - - **Function prototype:** - - int ioctl\(int s, int request, ...\) - - **Function description:** obtains or sets socket options. - - **Parameter description:** - - - - - - - - - - - - - -

Parameter

-

Description

-

s

-

Indicates the socket descriptor.

-

request

-

Indicates the operation to perform on the socket options. The options are as follows:

-
  • FIONREAD: obtains the number of bytes of the data that can be read from the socket.
  • FIONBIO: sets whether the socket is non-blocked.
-
- - **Return values:** - - - Returns **0** if the operation is successful. - - Returns **-1** and sets **errno** if the operation fails. - - diff --git a/en/device-dev/kernel/kernel-lite-small-process.md b/en/device-dev/kernel/kernel-lite-small-process.md deleted file mode 100644 index 4ce3abc48b9..00000000000 --- a/en/device-dev/kernel/kernel-lite-small-process.md +++ /dev/null @@ -1,301 +0,0 @@ -# Process - -- [Basic Concepts](#section29197338383) -- [When to Use](#section85513272398) -- [API Description](#section4517119124015) - -## Basic Concepts - -Processes are resource management units in the OS. They can use or wait to use CPUs and use system resources such as memory. They run independently from one another. - -The OpenHarmony kernel allows multiple processes to run simultaneously, switch, and communicate, facilitating your management over service programs. In this regard, you will have more time to devote to the implementation of service functionalities. - -Processes in the OpenHarmony kernel use the preemptive scheduling mechanism, round-robin \(RR\) scheduling. - -These processes are assigned 32 priorities \(**0** to **31**\). Among them, user processes can be configured with 22 priorities from **10** \(highest\) to **31** \(lowest\). - -A high-priority process can preempt the resources of a low-priority process. The low-priority process can be scheduled only after the high-priority process is blocked or terminated. - -Each user-space process has its own memory space, which is invisible to other processes. In this way, processes are isolated from each other. - -The user-space root process init is started by the kernel. Then other user-space processes are created by the init process via the **fork** call. - -**A process may have the following states:** - -- **Init**: The process is being created. - -- **Ready**: The process is in the ready list and waits for being scheduled by the CPU. - -- **Running**: The process is running. - -- **Pending**: The process is blocked and suspended. When all threads in a process are blocked, the process is blocked and suspended. - -- **Zombies**: The process stops running and waits for the parent process to reclaim its control block resources. - - -**Figure 1** State transition of a process -![](figure/state-transition-of-a-process.png "state-transition-of-a-process") - -**Description of the process state transition:** - -- Init→Ready: - - When a process is created, the process enters the **Init** state to start initialization after obtaining the process control block. After the process is initialized, the process is inserted into the scheduling queue and therefore enters the **Ready** state. - -- Ready→Running: - - When a process switchover is triggered, the process with the highest priority in the ready list is executed and enters the **Running** state. If this process has no thread in the **Ready** state, the process is deleted from the ready list and resides only in the **Running** state. However, if it has threads in the **Ready** state, the process still stays in the ready list. In this case, the process is in both the **Ready** and **Running** states. - -- Running→Pending: - - If all threads in a process are entering the **Pending** state, the process will enter the **Pending** state together with its last thread. Then, a process switchover is triggered. - -- Pending→Ready: - - When any thread in a **Pending** process restores to the **Ready** state, the process is added to the ready list and changes to the **Ready** state. - -- Ready→Pending: - - When the last ready thread in a process enters the **Pending** state, the process is deleted from the ready list, and the process changes from the **Ready** state to the **Pending** state. - -- Running→Ready: - - A process may change from the **Running** state to the **Ready** state in either of the following scenarios: - - 1. After a process with a higher priority is created or restored, processes will be scheduled. The process with the highest priority in the ready list will change to the **Running** state, and the originally running process will change from the **Running** state to the **Ready** state. - 2. If a process has the **SCHED\_RR** scheduling policy and shares the same priority with another process in the **Ready** state, this process will change from the **Running** state to the **Ready** state after its time slices are used up, and the other process with the same priority will change from the **Ready** state to the **Running** state. - -- Running→Zombies: - - After the main thread or all threads of a process are stopped, the process changes from the **Running** state to the **Zombies** state and waits for the parent process to reclaim resources. - - -## When to Use - -After processes are created, you can operate the resources only in your own process space, except shared resources. In user space, processes can be suspended, restored, and delayed. In addition, you can set and obtain the scheduling priority and scheduling policy of processes. When a process is terminated, it proactively releases its resources. However, the PID resources of the process are reclaimed by the parent process via **wait**/**waitpid** or when the parent process exits. - -## API Description - -The following table describes the APIs provided by the process management module of the OpenHarmony kernel. - -**Table 1** APIs provided by the process management module - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Category

-

Function

-

Description

-

Remarks

-

Process

-

fork

-

Creates a new process.

-

N/A

-

exit

-

Exits the process.

-

N/A

-

atexit

-

Registers the callback that will be called when the process is terminated normally.

-

N/A

-

abort

-

Terminates the process.

-

N/A

-

getpid

-

Obtains the process ID.

-

N/A

-

getppid

-

Obtains the parent process ID.

-

N/A

-

getpgrp

-

Obtains the ID of the process group of the calling process.

-

N/A

-

getpgid

-

Obtains the process group ID of the process identified by pid.

-

N/A

-

setpgrp

-

Sets the process group ID of the calling process.

-

N/A

-

setpgid

-

Sets the process group ID of the process identified by pid.

-

N/A

-

kill

-

Sends a signal to a specified process.

-
  • Only signals 1 to 30 can be sent.
  • The default behavior for signals does not include STOP and CONTINUE and terminates the process without a core dump.
  • SIGSTOP, SIGKILL, and SIGCONT cannot be masked.
  • After an asynchronous signal is sent to a process, the signal callback is invoked only after the process is scheduled. For the sake of security, the process can be killed only by itself, and the kernel cannot forcibly kill the process by sending signals.
  • After the process is killed, SIGCHLD is sent to its parent process. The sending action cannot be canceled.
  • A sleeping process cannot be woken up by a signal.
-

wait

-

Waits for any child process to terminate and reclaims its resources.

-

The status value is defined by the following macros:

-
  • WIFEXITED(status): If the child process terminates normally, true is returned. Otherwise, false is returned.
  • WEXITSTATUS(status): If WIFEXITED(status) is true, this macro can be used to obtain the exit code that the child process passed to exit().
  • WTERMSIG(status): If a child process terminates abnormally, the child process exit code obtained by the parent process through WTERMSIG is always SIGUSR2. This is the only case supported.
  • The following operations are not supported: WIFSTOPPED, WSTOPSIG, WCOREDUMP, and WIFCONTINUED.
-

waitpid

-

Waits for a specified child process to terminate and reclaims its resources.

-

The options to control the function behavior do not support WUNTRACED and WCONTINUED.

-

The status value is defined by the following macros:

-
  • WIFEXITED(status): If the child process terminates normally, true is returned. Otherwise, false is returned.
  • WEXITSTATUS(status): If WIFEXITED(status) is true, this macro can be used to obtain the exit code that the child process passed to exit().
  • WTERMSIG(status): If a child process terminates abnormally, the child process exit code obtained by the parent process through WTERMSIG is always SIGUSR2. This is the only case supported.
  • The following operations are not supported: WIFSTOPPED, WSTOPSIG, WCOREDUMP, and WIFCONTINUED.
-

Scheduling

-

getpriority

-

Obtains the static priority of a specified ID.

-
  • PRIO_PGRP and PRIO_USER are not supported.
-
  • The priority to obtain and set refers to the static priority. The dynamic priority is not involved.
-

setpriority

-

Sets the static priority of a specified ID.

-

sched_rr_get_interval

-

Obtains the execution time limit of a process.

-

N/A

-

sched_yield

-

Yields the running process.

-

N/A

-

sched_get_priority_max

-

Obtains the maximum static priority that can be used for a process.

-

The scheduling policy can only be SCHED_RR.

-

sched_get_priority_min

-

Obtains the minimum static priority that can be used for a process.

-

sched_getscheduler

-

Obtains the scheduling policy of a process.

-

sched_setscheduler

-

Sets a scheduling policy for a process.

-

sched_getparam

-

Obtains scheduling parameters of a process.

-

N/A

-

sched_setparam

-

Sets scheduling parameters related to a scheduling policy for a process.

-

N/A

-

exec

-

execl

-

Executes a specified user program file in ELF format.

-

N/A

-

execle

-

Executes a specified user program file in ELF format.

-

N/A

-

execlp

-

Executes a specified user program file in ELF format.

-

N/A

-

execv

-

Executes a specified user program file in ELF format.

-

N/A

-

execve

-

Executes a specified user program file in ELF format.

-

N/A

-

execvp

-

Executes a specified user program file in ELF format.

-

N/A

-
- diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file.md b/en/device-dev/kernel/kernel-lite-small-shell-cmd-file.md deleted file mode 100644 index b47f48fbebd..00000000000 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file.md +++ /dev/null @@ -1,45 +0,0 @@ -# File Commands - -- **[cat](kernel-lite-small-shell-cmd-file-cat.md)** - -- **[cd](kernel-lite-small-shell-cmd-file-cd.md)** - -- **[chgrp](kernel-lite-small-shell-cmd-file-chgrp.md)** - -- **[chmod](kernel-lite-small-shell-cmd-file-chmod.md)** - -- **[chown](kernel-lite-small-shell-cmd-file-chown.md)** - -- **[cp](kernel-lite-small-shell-cmd-file-cp.md)** - -- **[format](kernel-lite-small-shell-cmd-file-format.md)** - -- **[ls](kernel-lite-small-shell-cmd-file-is.md)** - -- **[lsfd](kernel-lite-small-shell-cmd-file-isfd.md)** - -- **[mkdir](kernel-lite-small-shell-cmd-file-mkdir.md)** - -- **[mount](kernel-lite-small-shell-cmd-file-mount.md)** - -- **[partinfo](kernel-lite-small-shell-cmd-file-part.md)** - -- **[partition](kernel-lite-small-shell-cmd-file-partion.md)** - -- **[pwd](kernel-lite-small-shell-cmd-file-pwd.md)** - -- **[rm](kernel-lite-small-shell-cmd-file-rm.md)** - -- **[rmdir](kernel-lite-small-shell-cmd-file-rmdir.md)** - -- **[statfs](kernel-lite-small-shell-cmd-file-sta.md)** - -- **[sync](kernel-lite-small-shell-cmd-file-sync.md)** - -- **[touch](kernel-lite-small-shell-cmd-file-touch.md)** - -- **[writeproc](kernel-lite-small-shell-cmd-file-write.md)** - -- **[umount](kernel-lite-small-shell-cmd-file-umount.md)** - - diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-mag.md b/en/device-dev/kernel/kernel-lite-small-shell-cmd-mag.md deleted file mode 100644 index 9bcfa88de03..00000000000 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-mag.md +++ /dev/null @@ -1,40 +0,0 @@ -# Magic Key Usage - -- [When to Use](#section2350114718546) -- [How to Use](#section3305151511559) - -## When to Use - -When the system does not respond, you can use the magic key function to check whether the system is locked and interrupted \(the magic key also does not respond\) or view the system task running status. - -If the interrupt is responded, you can use the magic key to check the CPU usage \(**cpup**\) in the task information to find out the task that occupies the CPU for a long period of time and causes other tasks in the system not to respond. \(Generally, the high-priority tasks always preempt the CPU and cause the low-priority tasks not to respond.\) - -## How to Use - -1. Configure macro **LOSCFG\_ENABLE\_MAGICKEY**. - -The magic key depends on the **LOSCFG\_ENABLE\_MAGICKEY** macro. To use the magic key, enable the **Enable MAGIC KEY** configuration item using **menuconfig**. - -Debug ---\> Enable MAGIC KEY - -If this configuration item is disabled, the magic key is invalid. - ->![](../public_sys-resources/icon-note.gif) **NOTE:** ->1. In **menuconfig**, you can move the cursor to **LOSCFG\_ENABLE\_MAGICKEY** and enter a question mark \(?\) to view the help information. - -2. Press **Ctrl+R** to enable the magic key detection function. - -When the UART or USB-to-virtual serial port is connected, press **Ctrl+R** to enable the magic key detection function. The message "Magic key on" is displayed. After you press **Ctrl+R** again, the magic key detection function is disabled, and message "Magic key off" is displayed. The functions of the magic key are as follows: - -- **Ctrl+Z**: help key, which is used to display the brief introduction to related magic keys. - -- **Ctrl+T**: displays task information. - -- **Ctrl+P**: The system proactively enters the panic state. After the panic-related information is printed, the system is suspended. - -- **Ctrl+E**: The system checks the integrity of the memory pool. If an error is detected, the system displays an error message. If no error is detected, the system displays "system memcheck over, all passed!". - - ->![](../public_sys-resources/icon-notice.gif) **NOTICE:** ->When the magic key detection function is enabled and special characters need to be entered through the UART or USB-to-virtual serial port, ensure that the special characters are not the same as the magic key values. Otherwise, the magic key may be triggered by mistake, which may cause errors in the original design. - diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-net.md b/en/device-dev/kernel/kernel-lite-small-shell-cmd-net.md deleted file mode 100644 index 68d76bf26ec..00000000000 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-net.md +++ /dev/null @@ -1,25 +0,0 @@ -# Network Commands - -- **[arp](kernel-lite-small-shell-cmd-net-arp.md)** - -- **[dhclient](kernel-lite-small-shell-cmd-net-dh.md)** - -- **[dns](kernel-lite-small-shell-cmd-net-dns.md)** - -- **[ifconfig](kernel-lite-small-shell-cmd-net-ipc.md)** - -- **[ipdebug](kernel-lite-small-shell-cmd-net-ipd.md)** - -- **[netstat](kernel-lite-small-shell-cmd-net-net.md)** - -- **[ntpdate](kernel-lite-small-shell-cmd-net-ntp.md)** - -- **[ping](kernel-lite-small-shell-cmd-net-ping.md)** - -- **[ping6](kernel-lite-small-shell-cmd-net-ping6.md)** - -- **[telnet](kernel-lite-small-shell-cmd-net-tel.md)** - -- **[tftp](kernel-lite-small-shell-cmd-net-tftp.md)** - - diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys.md b/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys.md deleted file mode 100644 index 5549fe5c32b..00000000000 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys.md +++ /dev/null @@ -1,47 +0,0 @@ -# System Commands - -- **[cpup](kernel-lite-small-shell-cmd-sys-cpup.md)** - -- **[date](kernel-lite-small-shell-cmd-sys-date.md)** - -- **[dmesg](kernel-lite-small-shell-cmd-sys-demsg.md)** - -- **[exec](kernel-lite-small-shell-cmd-sys-exec.md)** - -- **[free](kernel-lite-small-shell-cmd-sys-free.md)** - -- **[help](kernel-lite-small-shell-cmd-sys-help.md)** - -- **[hwi](kernel-lite-small-shell-cmd-sys-hwi.md)** - -- **[kill](kernel-lite-small-shell-cmd-sys-kill.md)** - -- **[log](kernel-lite-small-shell-cmd-sys-log.md)** - -- **[memcheck](kernel-lite-small-shell-cmd-sys-mem.md)** - -- **[oom](kernel-lite-small-shell-cmd-sys-oom.md)** - -- **[pmm](kernel-lite-small-shell-cmd-sys-pmm.md)** - -- **[reset](kernel-lite-small-shell-cmd-sys-reset.md)** - -- **[sem](kernel-lite-small-shell-cmd-sys-sem.md)** - -- **[stack](kernel-lite-small-shell-cmd-sys-stack.md)** - -- **[su](kernel-lite-small-shell-cmd-sys-su.md)** - -- **[swtmr](kernel-lite-small-shell-cmd-sys-swymr.md)** - -- **[systeminfo](kernel-lite-small-shell-cmd-sys-sys.md)** - -- **[task](kernel-lite-small-shell-cmd-sys-task.md)** - -- **[uname](kernel-lite-small-shell-cmd-sys-uname.md)** - -- **[vmm](kernel-lite-small-shell-cmd-sys-vmm.md)** - -- **[watch](kernel-lite-small-shell-cmd-sys-watch.md)** - - diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd.md b/en/device-dev/kernel/kernel-lite-small-shell-cmd.md deleted file mode 100644 index ca4697ae096..00000000000 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd.md +++ /dev/null @@ -1,13 +0,0 @@ -# Shell Command Reference - -This chapter describes the functions, syntax, parameter ranges, usages, and examples of key system commands. - -For details about the commands that are not described in this document, see the output of the [help](kernel-lite-small-shell-cmd-sys-help.md) command. You can also use the **-h | --help** option of a command to view the help information about the command. - -- **[System Commands](kernel-lite-small-shell-cmd-sys.md)** - -- **[File Commands](kernel-lite-small-shell-cmd-file.md)** - -- **[Network Commands](kernel-lite-small-shell-cmd-net.md)** - - diff --git a/en/device-dev/kernel/kernel-lite-small-shell.md b/en/device-dev/kernel/kernel-lite-small-shell.md deleted file mode 100644 index e780951cf49..00000000000 --- a/en/device-dev/kernel/kernel-lite-small-shell.md +++ /dev/null @@ -1,15 +0,0 @@ -# Commissioning - -- **[Introduction to the Shell](kernel-lite-small-shell-des.md)** - -- **[Shell Command Development Guidelines](kernel-lite-small-shell-guide.md)** - -- **[Shell Command Programming Example](kernel-lite-small-shell-sample.md)** - -- **[Shell Command Reference](kernel-lite-small-shell-cmd.md)** - -- **[Magic Key Usage](kernel-lite-small-shell-cmd-mag.md)** - -- **[User-Space Exception Information](kernel-lite-small-shell-cmd-abn.md)** - - diff --git a/en/device-dev/kernel/kernel-lite-small-thread.md b/en/device-dev/kernel/kernel-lite-small-thread.md deleted file mode 100644 index d1d04cc376e..00000000000 --- a/en/device-dev/kernel/kernel-lite-small-thread.md +++ /dev/null @@ -1,702 +0,0 @@ -# Thread - -- [Basic Concepts](#section1179311337405) -- [When to Use](#section44877547404) -- [API Description](#section2069477134115) - -## Basic Concepts - -Threads are the minimum running units that compete for system resources. They can use or wait to use CPUs and use system resources such as memory. They run independently from one another. - -Threads in each process of the OpenHarmony kernel run and are scheduled independently. The scheduling of threads in a process is not affected by threads in other processes. - -Threads in the OpenHarmony kernel use the preemptive scheduling mechanism, either round-robin \(RR\) scheduling or First In First Out \(FIFO\) scheduling. - -Threads in the OpenHarmony kernel are assigned 32 priorities, ranging from **0** \(highest\) to **31** \(lowest\). - -A high-priority thread in a process can preempt the resources of a low-priority thread in this process. The low-priority thread can be scheduled only after the high-priority thread is blocked or terminated. - -**A thread may have the following states:** - -- **Init**: The thread is being created. - -- **Ready**: The thread is in the ready list and waits for being scheduled by the CPU. - -- **Running**: The thread is running. - -- **Blocked**: The thread is blocked and suspended. The **Blocked** states include **pending** \(blocked due to lock, event, or semaphore issues\), **suspended** \(active pending\), **delay** \(blocked due to delays\), and **pendtime** \(blocked by waiting timeout of locks, events, or semaphores\). - -- **Exit**: The thread stops running and waits for the parent thread to reclaim its control block resources. - - -**Figure 1** State transition of a thread -![](figure/state-transition-of-a-thread.png "state-transition-of-a-thread") - -**Description of the thread state transition:** - -- Init→Ready: - - When a thread is created, the thread enters the **Init** state to start initialization after obtaining the control block. After the thread is initialized, the thread is inserted into the scheduling queue and therefore enters the **Ready** state. - -- Ready→Running: - - When a thread switchover is triggered, the thread with the highest priority in the ready list is executed and enters the **Running** state. This thread will be deleted from the ready list. - -- Running→Blocked: - - When a running thread is blocked \(for example, is pended, delayed, or reading semaphores\), its state changes from **Running** to **Blocked**. Then, a thread switchover is triggered to run the thread with the highest priority in the ready list. - -- Blocked→Ready: - - After the blocked thread is restored \(the thread is restored, the delay times out, the semaphore reading times out, or the semaphore is read\), the thread is added to the ready list and changes from the **Blocked** state to the **Ready** state. - -- Ready→Blocked: - - A thread may also be blocked \(suspended\) in the **Ready** state. The blocked thread will change from the **Ready** state to the **Blocked** state and is deleted from the ready list. In this case, the thread will not be scheduled until it is restored. - -- Running→Ready: - - After a thread with a higher priority is created or restored, threads will be scheduled. The thread with the highest priority in the ready list will change to the **Running** state. The originally running thread will change from the **Running** state to the **Ready** state and be added to the ready list. - -- Running→Exit: - - When a running thread is terminated, its state changes from **Running** to **Exit**. The thread without the **PTHREAD\_CREATE\_DETACHED** attribute will present the **Exit** state after being terminated. - - -## When to Use - -After a thread is created, it can be scheduled, suspended, restored, and delayed in user space. In addition, you can set and obtain the scheduling priority and scheduling policy of the thread. - -## API Description - -The following table describes the APIs provided by the thread management module of the OpenHarmony kernel. - -**Table 1** APIs provided by the thread management module - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Header File

-

Function

-

Description

-

Remarks

-

pthread.h

-

pthread_attr_destroy

-

Destroys a thread attribute object.

-

N/A

-

pthread.h

-

pthread_attr_getinheritsched

-

Obtains inherit scheduler attributes of a thread attribute object.

-

N/A

-

pthread.h

-

pthread_attr_getschedparam

-

Obtains scheduling parameter attributes of a thread attribute object.

-

N/A

-

pthread.h

-

pthread_attr_getschedpolicy

-

Obtains scheduling policy attributes of a thread attribute object.

-

OpenHarmony supports the SCHED_FIFO and SCHED_RR scheduling policies.

-

pthread.h

-

pthread_attr_getstacksize

-

Obtains the stack size of a thread attribute object.

-

N/A

-

pthread.h

-

pthread_attr_init

-

Initializes a thread attribute object.

-

N/A

-

pthread.h

-

pthread_attr_setdetachstate

-

Sets the detach state for a thread attribute object.

-

N/A

-

pthread.h

-

pthread_attr_setinheritsched

-

Sets inherit scheduler attributes for a thread attribute object.

-

N/A

-

pthread.h

-

pthread_attr_setschedparam

-

Sets scheduling parameter attributes for a thread attribute object.

-

A larger value represents a higher priority of the thread in the system.

-

Note: The inheritsched field of the pthread_attr_t attribute must be set to PTHREAD_EXPLICIT_SCHED. Otherwise, the configured thread scheduling priority does not take effect. The default value is PTHREAD_INHERIT_SCHED.

-

pthread.h

-

pthread_attr_setschedpolicy

-

Sets scheduling policy attributes for a thread attribute object.

-

OpenHarmony supports the SCHED_FIFO and SCHED_RR scheduling policies.

-

pthread.h

-

pthread_attr_setstacksize

-

Sets the stack size for a thread attribute object.

-

N/A

-

pthread.h

-

pthread_getattr_np

-

Obtains the attributes of a created thread.

-

N/A

-

pthread.h

-

pthread_cancel

-

Sends a cancellation request to a thread.

-

N/A

-

pthread.h

-

pthread_testcancel

-

Requests delivery of any pending cancellation request.

-

N/A

-

pthread.h

-

pthread_setcanceltype

-

Sets the cancelability type for the calling thread.

-

N/A

-

pthread.h

-

pthread_setcancelstate

-

Sets the cancelability state for the calling thread.

-

N/A

-

pthread.h

-

pthread_create

-

Creates a thread.

-

N/A

-

pthread.h

-

pthread_detach

-

Detaches a thread.

-

N/A

-

pthread.h

-

pthread_equal

-

Compares whether two thread IDs are equal.

-

N/A

-

pthread.h

-

pthread_exit

-

Terminates the calling thread.

-

N/A

-

pthread.h

-

pthread_getschedparam

-

Obtains the scheduling policy and parameters of a thread.

-

OpenHarmony supports the SCHED_FIFO and SCHED_RR scheduling policies.

-

pthread.h

-

pthread_join

-

Waits for a thread to terminate.

-

N/A

-

pthread.h

-

pthread_self

-

Obtains the ID of the calling thread.

-

N/A

-

pthread.h

-

pthread_setschedprio

-

Sets a static scheduling priority for a thread.

-

N/A

-

pthread.h

-

pthread_kill

-

Sends a signal to a thread.

-

N/A

-

pthread.h

-

pthread_once

-

Enables the initialization function to be called only once.

-

N/A

-

pthread.h

-

pthread_atfork

-

Registers a fork handler to be called before and after fork().

-

N/A

-

pthread.h

-

pthread_cleanup_pop

-

Removes the routine at the top of the clean-up handler stack.

-

N/A

-

pthread.h

-

pthread_cleanup_push

-

Pushes the routine to the top of the clean-up handler stack.

-

N/A

-

pthread.h

-

pthread_barrier_destroy

-

Destroys a barrier (an advanced real-time thread).

-

N/A

-

pthread.h

-

pthread_barrier_init

-

Initializes a barrier (an advanced real-time thread).

-

N/A

-

pthread.h

-

pthread_barrier_wait

-

Synchronizes participating threads at a barrier.

-

N/A

-

pthread.h

-

pthread_barrierattr_destroy

-

Destroys a barrier attribute object.

-

N/A

-

pthread.h

-

pthread_barrierattr_init

-

Initializes a barrier attribute object.

-

N/A

-

pthread.h

-

pthread_mutex_destroy

-

Destroys a mutex.

-

N/A

-

pthread.h

-

pthread_mutex_init

-

Initializes a mutex.

-

N/A

-

pthread.h

-

pthread_mutex_lock

-

Locks a mutex.

-

N/A

-

pthread.h

-

pthread_mutex_trylock

-

Attempts to lock a mutex.

-

N/A

-

pthread.h

-

pthread_mutex_unlock

-

Unlocks a mutex.

-

N/A

-

pthread.h

-

pthread_mutexattr_destroy

-

Destroys a mutex attribute object.

-

N/A

-

pthread.h

-

pthread_mutexattr_gettype

-

Obtains the mutex type attribute.

-

N/A

-

pthread.h

-

pthread_mutexattr_init

-

Initializes a mutex attribute object.

-

N/A

-

pthread.h

-

pthread_mutexattr_settype

-

Sets the mutex type attribute.

-

N/A

-

pthread.h

-

pthread_mutex_timedlock

-

Blocks the calling thread to lock a mutex.

-

N/A

-

pthread.h

-

pthread_rwlock_destroy

-

Destroys a read-write lock.

-

N/A

-

pthread.h

-

pthread_rwlock_init

-

Initializes a read-write lock.

-

N/A

-

pthread.h

-

pthread_rwlock_rdlock

-

Applies a read lock to a read-write lock.

-

N/A

-

pthread.h

-

pthread_rwlock_timedrdlock

-

Blocks the calling thread to lock a read-write lock for reading.

-

N/A

-

pthread.h

-

pthread_rwlock_timedwrlock

-

Blocks the calling thread to lock a read-write lock for writing.

-

N/A

-

pthread.h

-

pthread_rwlock_tryrdlock

-

Attempts to apply a read lock to a read-write lock.

-

N/A

-

pthread.h

-

pthread_rwlock_trywrlock

-

Attempts to apply a write lock to a read-write lock.

-

N/A

-

pthread.h

-

pthread_rwlock_unlock

-

Unlocks a read-write lock.

-

N/A

-

pthread.h

-

pthread_rwlock_wrlock

-

Applies a write lock to a read-write lock.

-

N/A

-

pthread.h

-

pthread_rwlockattr_destroy

-

Destroys a read-write lock attribute object.

-

N/A

-

pthread.h

-

pthread_rwlockattr_init

-

Initializes a read-write lock attribute object.

-

N/A

-

pthread.h

-

pthread_cond_broadcast

-

Unblocks all threads that are currently blocked on the condition variable cond.

-

N/A

-

pthread.h

-

pthread_cond_destroy

-

Destroys a condition variable.

-

N/A

-

pthread.h

-

pthread_cond_init

-

Initializes a condition variable.

-

N/A

-

pthread.h

-

pthread_cond_signal

-

Unblocks a thread.

-

N/A

-

pthread.h

-

pthread_cond_timedwait

-

Blocks the calling thread to wait for the condition set by pthread_con_signal() for a period of time specified by ts.

-

N/A

-

pthread.h

-

pthread_cond_wait

-

Blocks the calling thread to wait for the condition set by pthread_con_signal().

-

N/A

-

semaphore.h

-

sem_destroy

-

Destroys a specified anonymous semaphore that is no longer used.

-

N/A

-

semaphore.h

-

sem_getvalue

-

Obtains the count value of a specified semaphore.

-

N/A

-

semaphore.h

-

sem_init

-

Creates and initializes an anonymous semaphore.

-

N/A

-

semaphore.h

-

sem_post

-

Increments the semaphore count by 1.

-

N/A

-

semaphore.h

-

sem_timedwait

-

Obtains the semaphore, with a timeout period specified.

-

N/A

-

semaphore.h

-

sem_trywait

-

Attempts to obtain the semaphore.

-

N/A

-

semaphore.h

-

sem_wait

-

Obtains the semaphore.

-

N/A

-
- diff --git a/en/device-dev/kernel/kernel-lite-small.md b/en/device-dev/kernel/kernel-lite-small.md index 7964a667d36..c742df10d58 100644 --- a/en/device-dev/kernel/kernel-lite-small.md +++ b/en/device-dev/kernel/kernel-lite-small.md @@ -1,11 +1,15 @@ # Kernel for Small Systems -- **[Basic Kernel](kernel-lite-small-basic.md)** +- **[Kernel Overview](kernel-small-overview.md)** -- **[File System](kernel-lite-small-file.md)** +- **[Kernel Startup](kernel-small-start.md)** -- **[Standard Library](kernel-lite-small-lib.md)** +- **[Basic Kernel](kernel-small-basics.md)** -- **[Commissioning](kernel-lite-small-shell.md)** +- **[Extension Components](kernel-small-bundles.md)** + +- **[Debugging and Tools](kernel-small-debug.md)** + +- **[Appendix](kernel-small-apx.md)** diff --git a/en/device-dev/kernel/kernel-lite.md b/en/device-dev/kernel/kernel-lite.md index 523555a5f4e..78ab3657511 100644 --- a/en/device-dev/kernel/kernel-lite.md +++ b/en/device-dev/kernel/kernel-lite.md @@ -1,5 +1,7 @@ # Kernel for Mini and Small Systems +- **[Kernel for Mini Systems](kernel-lite-mini.md)** + - **[Kernel for Small Systems](kernel-lite-small.md)** diff --git a/en/device-dev/kernel/kernel-memory-inner.md b/en/device-dev/kernel/kernel-memory-inner.md new file mode 100644 index 00000000000..fe608e0da41 --- /dev/null +++ b/en/device-dev/kernel/kernel-memory-inner.md @@ -0,0 +1,9 @@ +# Kernel Debugging + +- **[Memory Debugging](kernel-mini-memory-debug.md)** + +- **[Exception Debugging](kernel-mini-memory-exception.md)** + +- **[Trace Debugging](kernel-mini-memory-trace.md)** + + diff --git a/en/device-dev/kernel/kernel-mini-app.md b/en/device-dev/kernel/kernel-mini-app.md new file mode 100644 index 00000000000..02461263905 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-app.md @@ -0,0 +1,9 @@ +# Appendix + +- **[Kernel Coding Specification](kernel-mini-appx-code.md)** + +- **[Basic Data Structure](kernel-mini-appx-data.md)** + +- **[Standard Libraries](kernel-mini-appx-lib.md)** + + diff --git a/en/device-dev/kernel/kernel-mini-appx-code.md b/en/device-dev/kernel/kernel-mini-appx-code.md new file mode 100644 index 00000000000..7892f4823b5 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-appx-code.md @@ -0,0 +1,332 @@ +# Kernel Coding Specification + +- [Principle](#section9512812145915) +- [Directory Structure](#section1355317267017) +- [Naming](#section1375364815017) +- [Comments](#section1692516179119) +- [Format](#section10888536113) +- [Macros](#section12276501124) +- [Header Files](#section158507231319) +- [Data Types](#section91351731446) +- [Variables](#section575493915417) +- [Assertions](#section13864440410) +- [Functions](#section671919481745) + +This kernel coding specification is developed based on the general programming specifications in the industry. It defines the programming styles for kernel developers to follow. + +## Principle + +Overall principle: + +- Clear: The code should be easy to understand, maintain, and rebuilt. Avoid obscure syntax. +- Simple: Use short names and compact functions. +- Efficient: Improve program efficiency by using algorithms, compiler optimization options, or hardware resources. +- Concise: The code is reasonable and consistent. + +Comply with this specification in most cases. When third-party open-source code needs to modified or a large number of open-source code APIs are used, follow the specifications applied to the third-party open-source code. Flexibly use this specification based on general principles. + +## Directory Structure + +You are advised to divide directories by function module and then define the header file directory and source file directory for each module. + +Unless otherwise specified, use lowercase letters separated by underscores \(\_\) for directory names and file names. + +## **Naming** + +The CamelCase style is recommended. The rules are as follows: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Type

+

Naming Style

+

Format

+

Function, struct, enumeration, union, and typedef

+

Upper camel case, or upper camel case prefixed with the module name

+

AaaBbb

+

XXX_AaaBbb

+

Local variables, function parameters, macro parameters, structure fields, and union members

+

Lower camel case

+

aaaBBB

+

Global variables

+

Lower camel case prefixed with g_

+

g_aaaBBB

+

Macros (excluding function-like macros), enumerated values, goto tags

+

All uppercase letters separated with underscores (_)

+

AAA_BBB

+

Function-like macros

+

Uppercase letters separated with underscores (_), upper camel case, or upper camel case prefixed with the module name

+

AAA_BBB

+

AaaBbb

+

XXX_AaaBbb

+

Header file names

+

Starts with an underscore (_) and ends with H. The middle part is the file name in all caps and is separated by underscores (_).

+

_AAA_H

+
+ +The **LOS\_**_ModuleFunc_ format is recommended for external APIs of the kernel. Preposition the object if there is any. Example: + +``` +LOS_TaskCreate +LOS_MuxLock +``` + +The APIs between internal modules in the kernel directory are in the **Os**_ModuleFunc_ format. For example: + +``` +OsTaskScan +OsMuxInit +``` + +## Comments + +Generally, clear software architecture and appropriate symbol naming improve code readability. + +Comments are added to make the source code easier for humans to understand. Therefore, add comments only when necessary, from the perspective of the readers. + +Comments must be concise, clear, and unambiguous. The information must be complete and not redundant. + +Comments must be added to the file header. It is recommended that the comments include the copyright description, file function description, author, creation date, and precautions. + +Use a consistent style for comments. The use of /\* and \*/ as block comment delimiters is recommended. There must be a space between the comment characters and the comment. Comment single-line and multi-line comments are as follows: + +``` +/* Single-line comment */ +// Single-line comment +/* + * Multi-line comment + * Second line + */ +// Multi-line comment +// Another line +``` + +Place the code comment above or to the right of the code. + +Leave no blank line between the code and the comment, and indent the comment the same way as the code. + +Leave at least one space between the code and the comment on the right. + +You are advised to align multiple consecutive comments on the right. For example: + +``` +#define CONST_A 100 /* Const A */ +#define CONST_B 2000 /* Const B */ +``` + +## **Format** + +Indent code of each level with four spaces rather than tabs \('\\t'\) for a better readability. + +While wrapping a line, the left brace of the function starts a new line and takes a single line. Other left braces are placed at the end of the line along with the statement. The right brace occupies one line unless followed by the remaining part of the same statement, for example, while in the do statement, else/else if in the if statement, or a comma or semicolon. + +Write only one statement in one line. + +Example: + +``` +struct MyType { // Add a comment here, and leave a space between the comment sign (//) and the comment. + ... +}; // The right brace is followed by a semicolon (;). +int Foo(int a) {// The left brace of the function is placed at the beginning of a line and occupies one line. + if (a > 0) { + Foo(); // There is only one statement in a line. + Bar(); + } else { // The right brace, else, and the subsequent left brace are in the same line. + ... + } // The right brace occupies one line exclusively. + ... +} +``` + +Avoid lines longer than 120 characters. When starting a new line, place the operator at the end of the line, indent the new line or align the lines of the same type, and place the operator indicating not end or connection sign at the end of the line. + +``` +// Assume that the first line below does not fit on a single line. +if (currentValue > MIN && // Good: Place the Boolean operator at the end of the new line. + currentValue < MAX) { // Good: Align with the two operands of the (&&) operator. + DoSomething(); + ... +} +flashPara.flashEndAddr = flashPara.flashBaseAddr + // Good: Place the plus sign at the end of the line. + flashPara.flashSize; // Good: Align the two operands. + +// Good: Place function parameters in one line. +ReturnType result = FunctionName(paramName1, paramName2); +ReturnType result = FunctionName(paramName1, + paramName2, + paramName3); // Good: Align with the preceding parameters. +ReturnType result = FunctionName(paramName1, paramName2, + paramName3, paramName4, paramName5); // Good: Place the parameters in a new line, with an indentation of 4 spaces. +ReturnType result = VeryVeryVeryLongFunctionName( // Start a new line because the first parameter does not fit on a single line. + paramName1, paramName2, paramName3); // Indent the new line 4 spaces. + +// Good: Place a group of data structures with strong correlation in a line for easy understanding. +int result = DealWithStructLikeParams(left.x, left.y, // Indicates a group of related parameters. + right.x, right.y); // Indicates another group of related parameters. +``` + +Use braces, that is, compound statements for **if**, **for**, **while**, and **do-while** statements. + +``` +while (condition) {} // Good: Use braces even if the loop body is empty. +while (condition) { + continue; // Good: continue indicates empty logic. Use braces. +} +``` + +Indent the **case** or **default** statement as follows compared with the **switch** statement: + +``` +switch (var) { + case 0: // Good: Indent + DoSomething1(); // Good: indent + break; + case 1: { // Good: with braces + DoSomething2(); + break; + } + default: + break; +} +``` + +The pointer "\*" follows a variable or function name, for example: + +``` +int *p1; // OK +int* p2; // Bad: The pointer * follows a data type. +int*p3; // Bad: There is no space on both sides of *. +int * p4; // Bad: There is a space on both sides of *. +struct Foo *CreateFoo(void); // OK: The pointer * follows a function name. +Exception: +char * const VERSION = "V100"; // OK: When there is the const modifier, a space is required on both sides of *. +int Foo(const char * restrict p); // OK: When there is the restrict modifier, a space is required on both sides of *. +sz = sizeof(int*); // OK: There is no variable on the right, and * follows the data type. +``` + +## Macros + +If a function-like macro can be replaced by a function, use a function instead. Use inline functions for performance-critical scenarios. + +When defining a macro, use complete parentheses \(round brackets\). For example: + +``` +#define SUM(a, b) ((a) + (b)) // Complies with this specification. +#define SOME_CONST 100 // Good: No parentheses are required for a single number. +#define ANOTHER_CONST (-1) // Good: Parentheses are required for a negative number. +#define THE_CONST SOME_CONST // Good: No parentheses are required for a single identifier. +``` + +Pay attention to the following: + +- Do not add parentheses for macro parameters used in \# or \#\# operations. +- Do not add parentheses for macro parameters used in string concatenation. +- If a macro parameter is used as a separate part in one side of an assignment operation\(including += and -=\), parentheses can be omitted. +- If a macro parameter is used as a separate part in a comma expression, function, or macro call list, parentheses can be omitted. + +``` +// Do not enclose x in parentheses. +#define MAKE_STR(x) #x + +// Do not enclose obj in parentheses. +#define HELLO_STR(obj) "Hello, " obj + +// Parentheses are required for a and b, but not for value. +#define UPDATE_VALUE(value, a, b) (value = (a) + (b)) + +// Parentheses are required for a, but not for b. +#define FOO(a, b) Bar((a) + 1, b) +``` + +The statement used to implement the function-like macros that contain multiple statements must be placed in **do-while\(0\)**. + +Do not pass expressions with side effects, such as **a++**, to function-like macros as parameters. + +Exercise caution when using the statements such as **return**, **goto**, **continue**, and **break** in the function-like macro definition. + +Do not use preprocessor directives, such as **\#include**, **\#define**, and **\#ifdef**, in arguments for macro calling. Otherwise, undefined behavior may occur. + +Do not end macro definitions with a semicolon \(;\). + +## Header Files + +A header file should have a single responsibility. + +Generally, each .c file should have a .h file \(the file name may not be the same\) to store the function declaration, macro definition, and type definition provided externally. If no external API is provided, the .h file can be skipped. + +Avoid circular dependency between header files. For example, **a.h** contains **b.h**, **b.h** contains **c.h**, and **c.h** contains **a.h**. + +Header files should be self-contained \(compile on their own\). + +Protect header files by **\#define**, **\#ifndef**, and **\#endif** to prevent repeated inclusion. Do not use **\#pragma once**. + +Do not reference external function APIs or variables in declaration mode. Use the APIs provided by other modules or files only by including header files. + +It is recommended that header files be included by stability in the following sequence: header file corresponding to the source code, C standard library, operating system library, platform library, project public library, and other dependencies. + +## Data Types + +You are advised to use the basic data types defined in **los\_compiler.h**. For example, define the 32-bit unsigned integer as **UINT32**. + +## Variables + +Avoid large stack allocations, such as large local arrays. + +Use global variables with caution. Do not use or reduce global variables if possible. + +Variables must be initialized before being used. + +Do not return the address of a local variable outside its scope. + +A variable that points to a resource handle or descriptor is assigned a new value immediately after the resource is released. If the scope of the variable ends immediately, no new value needs to be assigned. Variables that point to resource handles or descriptors include pointers, file descriptors, socket descriptors, and other variables that point to resources. + +## Assertions + +Assertions must be defined using macros and take effect only in the debugging version. + +Assertions should be considered as design constraints. Do not use assertions to detect errors that may occur during program running. Use error processing code to handle possible errors. + +Do not change the running environment in an assertion. + +An assertion is used to check only one error. + +## Functions + +The validity of data sent from a process to another process and data sent from an application to the kernel must be verified. The verification includes but is not limited to the following: + +- Data length +- Data range +- Data type and format +- Input that contains only acceptable characters \(in a trustlist\) + +Do not use global variables, static local variables, or direct I/O operations in functions. If such operations are inevitable, encapsulate read and write operations. + diff --git a/en/device-dev/kernel/kernel-mini-appx-data-list.md b/en/device-dev/kernel/kernel-mini-appx-data-list.md new file mode 100644 index 00000000000..c99d45cbe43 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-appx-data-list.md @@ -0,0 +1,191 @@ +# Doubly Linked List + +- [Basic Concepts](#section1990715203418) +- [Available APIs](#section848334511411) +- [How to Develop](#section01781261552) +- [Development Example](#section67569495514) + - [Example Description](#section48761994551) + - [Sample Code](#section1280202685519) + - [Verification](#section5811249105512) + + +## Basic Concepts + +A doubly linked list is a linked data structure that consists of a set of sequentially linked records called nodes. Each node contains a pointer to the previous node and a pointer to the next node in the sequence of nodes. The pointer head is unique. + +A doubly linked list allows access from a list node to its next node and also the previous node on the list. This data structure facilitates data search, especially traversal of a large amount of data. The symmetry of the doubly linked list also makes operations, such as insertion and deletion, easy. However, pay attention to the pointer direction when performing operations. + +## Available APIs + +The doubly linked list module provides the following APIs. For more details about the APIs, see the API reference. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Initializing a linked list

+

LOS_ListInit

+

Initializes a specified doubly linked list node as a doubly linked list.

+

LOS_DL_LIST_HEAD

+

Defines a doubly linked list node and initializes the node as a doubly linked list.

+

Adding a node

+

LOS_ListAdd

+

Inserts the specified node to the head of a doubly linked list.

+

LOS_ListTailInsert

+

Inserts the specified node to the end of a doubly linked list.

+

Deleting a node

+

LOS_ListDelete

+

Deletes the specified node from a doubly linked list.

+

LOS_ListDelInit

+

Deletes the specified node from the linked list and uses the node to initialize the linked list.

+

Checking whether a doubly linked list is empty

+

LOS_ListEmpty

+

Checks whether a linked list is empty.

+

Obtaining structure information

+

LOS_DL_LIST_ENTRY

+

Obtains the address of the structure that contains the linked list. The first input parameter of the API indicates a node in the list, the second input parameter indicates the name of the structure to be obtained, and the third input parameter indicates the name of the linked list in the structure.

+

LOS_OFF_SET_OF

+

Obtains the offset of a member in a specified structure relative to the start address of the structure.

+

Traversing a doubly linked list

+

LOS_DL_LIST_FOR_EACH

+

Traverses a doubly linked list.

+

LOS_DL_LIST_FOR_EACH_SAFE

+

Traverses a doubly linked list, and stores the next node of the current node for security verification.

+

Traversing the structure that contains the doubly linked list

+

LOS_DL_LIST_FOR_EACH_ENTRY

+

Traverses the specified doubly linked list and obtains the address of the structure that contains the linked list node.

+

LOS_DL_LIST_FOR_EACH_ENTRY_SAFE

+

Traverses the specified doubly linked list, obtains the structure address of the node that contains the linked list, and stores the structure address that contains the next node of the current node.

+
+ +## How to Develop + +The typical development process of the doubly linked list is as follows: + +1. Call **LOS\_ListInit/LOS\_DL\_LIST\_HEAD** to initialize a doubly linked list. +2. Call **LOS\_ListAdd** to insert a node to the list. +3. Call **LOS\_ListTailInsert** to insert a node to the end of the list. +4. Call **LOS\_ListDelete** to delete the specified node. +5. Call **LOS\_ListEmpty** to check whether a linked list is empty. +6. Call **LOS\_ListDelInit** to delete a specified node, and initialize the linked list based on this node. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- Pay attention to the operations of the front and back pointer of the node. +>- The linked list operation APIs are underlying APIs and do not check whether the input parameters are empty. You must ensure that the input parameters are valid. +>- If the memory of a linked list node is dynamically requested, release the memory after deleting the node. + +## Development Example + +### Example Description + +This example implements the following: + +1. Initialize a doubly linked list. +2. Add nodes. +3. Delete a node. +4. Check whether the operation is performed successfully. + +### Sample Code + +The sample code is as follows: + +``` +#include "stdio.h" +#include "los_list.h" + +static UINT32 ListSample(VOID) +{ + LOS_DL_LIST listHead = {NULL,NULL}; + LOS_DL_LIST listNode1 = {NULL,NULL}; + LOS_DL_LIST listNode2 = {NULL,NULL}; + + // Initialize the linked list. + printf("Initial head\n"); + LOS_ListInit(&listHead); + + // Add node 1 and node 2 and verify their relationship. + LOS_ListAdd(&listHead, &listNode1); + if (listNode1.pstNext == &listHead && listNode1.pstPrev == &listHead) { + printf("Add listNode1 success\n"); + } + + LOS_ListTailInsert(&listHead, &listNode2); + if (listNode2.pstNext == &listHead && listNode2.pstPrev == &listNode1) { + printf("Tail insert listNode2 success\n"); + } + + // Delete the two nodes. + LOS_ListDelete(&listNode1); + LOS_ListDelete(&listNode2); + + // Check that the linked list is empty. + if (LOS_ListEmpty(&listHead)) { + printf("Delete success\n"); + } + + return LOS_OK; +} +``` + +### Verification + +The development is successful if the return result is as follows: + +``` +Initial head +Add listNode1 success +Tail insert listNode2 success +Delete success +``` + diff --git a/en/device-dev/kernel/kernel-mini-appx-data.md b/en/device-dev/kernel/kernel-mini-appx-data.md new file mode 100644 index 00000000000..d58ec79bc4e --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-appx-data.md @@ -0,0 +1,5 @@ +# Basic Data Structure + +- **[Doubly Linked List](kernel-mini-appx-data-list.md)** + + diff --git a/en/device-dev/kernel/kernel-mini-appx-lib-cmsis.md b/en/device-dev/kernel/kernel-mini-appx-lib-cmsis.md new file mode 100644 index 00000000000..a30a1367739 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-appx-lib-cmsis.md @@ -0,0 +1,487 @@ +# CMSIS Support + +- [Basic Concepts](#section131091144111615) +- [Development Guidelines](#section57653573161) + - [Available APIs](#section1795910417173) + - [How to Develop](#section48301225131720) + - [Development Example](#section524434761713) + + +## Basic Concepts + +The Cortex Microcontroller Software Interface Standard \([CMSIS](https://developer.arm.com/tools-and-software/embedded/cmsis)\) is a vendor-independent hardware abstraction layer for microcontrollers based on Arm Cortex processors. Of the CMSIS components, the Real Time Operating System \(RTOS\) defines a set of universal and standardized APIs to reduce the dependency of application developers on specific RTOS and facilitate software porting and reuse. The CMSIS provides CMSIS-RTOS v1 and CMSIS-RTOS v2. The OpenHarmony LiteOS-M supports only the implementation of CMSIS-RTOS v2. + +## Development Guidelines + +### Available APIs + +The following table describes CMSIS-RTOS v2 APIs. For more details about the APIs, see the API reference. + +**Table 1** CMSIS-RTOS v2 APIs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Kernel information and control

+

osKernelGetInfo

+

Obtains RTOS kernel information.

+

osKernelGetState

+

Obtains the current RTOS kernel status.

+

osKernelGetSysTimerCount

+

Obtains the RTOS kernel system timer count.

+

osKernelGetSysTimerFreq

+

Obtains the RTOS kernel system timer frequency.

+

osKernelInitialize

+

Initializes the RTOS kernel.

+

osKernelLock

+

Locks the RTOS kernel scheduler.

+

osKernelUnlock

+

Unlocks the RTOS kernel scheduler.

+

osKernelRestoreLock

+

Restores the RTOS kernel scheduler to the locked state.

+

osKernelResume

+

Restores the RTOS kernel scheduler. (not implemented yet)

+

osKernelStart

+

Starts the RTOS kernel scheduler.

+

osKernelSuspend

+

Suspends the RTOS kernel scheduler. (not implemented yet)

+

osKernelGetTickCount

+

Obtains the RTOS kernel tick count.

+

osKernelGetTickFreq

+

Obtains the RTOS kernel tick frequency.

+

Thread management

+

osThreadDetach

+

Detaches a thread (thread storage can be reclaimed when the thread terminates). (not implemented yet)

+

osThreadEnumerate

+

Enumerates active threads. (not implemented yet)

+

osThreadExit

+

Terminates execution of the thread that is currently running.

+

osThreadGetCount

+

Obtains the number of active threads.

+

osThreadGetId

+

Returns the ID of the thread that is running.

+

osThreadGetName

+

Obtains the name of a thread.

+

osThreadGetPriority

+

Obtains the current priority of a thread.

+

osThreadGetStackSize

+

Obtains the stack size of a thread.

+

osThreadGetStackSpace

+

Obtains the available stack space of a thread based on the stack waterline record during execution.

+

osThreadGetState

+

Obtains the current status of a thread.

+

osThreadJoin

+

Waits for the specified thread to terminate. (not implemented yet)

+

osThreadNew

+

Creates a thread and add it to active threads.

+

osThreadResume

+

Resumes the execution of a thread.

+

osThreadSetPriority

+

Changes the priority of a thread.

+

osThreadSuspend

+

Suspends the execution of a thread.

+

osThreadTerminate

+

Terminates the execution of a thread.

+

osThreadYield

+

Passes control to the next thread in the ready state.

+

Thread flag

+

osThreadFlagsSet

+

Sets the specified thread flags for a thread. (not implemented yet)

+

osThreadFlagsClear

+

Clears the specified thread flags of the thread that is running. (not implemented yet)

+

osThreadFlagsGet

+

Obtains the current thread flags of the thread that is running. (not implemented yet)

+

osThreadFlagsWait

+

Waits for one or more thread flags of the currently running thread to emit a signal. (not implemented yet)

+

Event flag

+

osEventFlagsGetName

+

Obtains the name of an event flag object. (not implemented yet)

+

osEventFlagsNew

+

Creates and initializes an event flag object.

+

osEventFlagsDelete

+

Deletes an event flag object.

+

osEventFlagsSet

+

Sets the specified event flag.

+

osEventFlagsClear

+

Clears the specified event flag.

+

osEventFlagsGet

+

Obtains the current event flag.

+

osEventFlagsWait

+

Waits for one or more event flags to be signaled.

+

General wait function

+

osDelay

+

Waits for timeout (time delay).

+

osDelayUntil

+

Waits until the specified time.

+

Timer management

+

osTimerDelete

+

Deletes a timer.

+

osTimerGetName

+

Obtains the name of a timer. (not implemented yet)

+

osTimerIsRunning

+

Check whether a timer is running.

+

osTimerNew

+

Creates and initializes a timer.

+

osTimerStart

+

Starts or restarts a timer.

+

osTimerStop

+

Stops a timer.

+

Mutex management

+

osMutexAcquire

+

Acquires a mutex or waits for timeout (if locked).

+

osMutexDelete

+

Deletes a mutex object.

+

osMutexGetName

+

Obtains the name of a mutex object. (not implemented yet)

+

osMutexGetOwner

+

Obtains the thread that has a mutex object.

+

osMutexNew

+

Creates and initializes a mutex object.

+

osMutexRelease

+

Releases the mutex obtained by calling osMutexAcquire.

+

Semaphore

+

osSemaphoreAcquire

+

Obtains a semaphore token or waits for timeout if no token is available.

+

osSemaphoreDelete

+

Deletes a semaphore object.

+

osSemaphoreGetCount

+

Obtains the number of tokens of the current semaphore.

+

osSemaphoreGetName

+

Obtains the name of a semaphore object. (not implemented yet)

+

osSemaphoreNew

+

Creates and initializes a semaphore object.

+

osSemaphoreRelease

+

Releases a semaphore token till the initial maximum count.

+

Memory pool

+

osMemoryPoolAlloc

+

Allocates a memory block from the memory pool.

+

osMemoryPoolDelete

+

Deletes a memory pool object.

+

osMemoryPoolFree

+

Releases the allocated memory block to the memory pool.

+

osMemoryPoolGetBlockSize

+

Obtains the memory block size in the memory pool.

+

osMemoryPoolGetCapacity

+

Obtains the maximum number of memory blocks in the memory pool.

+

osMemoryPoolGetCount

+

Obtains the number of memory blocks used in the memory pool.

+

osMemoryPoolGetName

+

Obtains the name of a memory pool object.

+

osMemoryPoolGetSpace

+

Obtains the number of available memory blocks in the memory pool.

+

osMemoryPoolNew

+

Creates and initializes a memory pool object.

+

Message queue

+

osMessageQueueDelete

+

Deletes a message queue object.

+

osMessageQueueGet

+

Obtains a message from the queue or waits for timeout if the queue is empty.

+

osMessageQueueGetCapacity

+

Obtains the maximum number of messages in a message queue.

+

osMessageQueueGetCount

+

Obtains the number of queued messages in a message queue.

+

osMessageQueueGetMsgSize

+

Obtains the maximum size of the message in the memory pool.

+

osMessageQueueGetName

+

Obtains the name of a message queue object. (not implemented yet)

+

osMessageQueueGetSpace

+

Obtains the number of available slots for messages in a message queue.

+

osMessageQueueNew

+

Creates and initializes a message queue object.

+

osMessageQueuePut

+

Puts the message into the queue or waits till timeout if the queue is full.

+

osMessageQueueReset

+

Resets the message queue to its initial empty state. (not implemented yet)

+
+ +### How to Develop + +The CMSIS-RTOS v2 component can be provided as a library \(shown in the figure\) or source code. By adding the CMSIS-RTOS v2 component \(typically configuration files\), you can implement RTOS capabilities on CMSIS-based applications. You only need to include the **cmsis\_os2.h** header file. RTOS APIs can then be called to process RTOS kernel-related events. You do not need to recompile the source code when the kernel is replaced. + +The RTOS object control block definition needs to be called for static object allocation. The implementation-specific header file \(**os\_xx.h** in the following figure\) provides access to such control block definitions. In the OpenHarmony LiteOS-M kernel, the header files whose names start with **los\_** provide the definitions of the kernel. + +![](figure/en-us_image_0000001132778524.png) + +### Development Example + +``` +#include ... +#include "cmsis_os2.h" + +/*---------------------------------------------------------------------------- + * Application main thread + *---------------------------------------------------------------------------*/ +void app_main (void *argument) { + // ... + for (;;) {} +} + +int main (void) { + // Initialize the system. + MySystemInit(); + // ... + + osKernelInitialize(); // Initialize CMSIS-RTOS. + osThreadNew(app_main, NULL, NULL); // Create the main thread of the application. + osKernelStart(); // Start to execute the thread. + for (;;) {} +} +``` + diff --git a/en/device-dev/kernel/kernel-mini-appx-lib-posix.md b/en/device-dev/kernel/kernel-mini-appx-lib-posix.md new file mode 100644 index 00000000000..ebed9d85d51 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-appx-lib-posix.md @@ -0,0 +1,1637 @@ +# POSIX Support + +- [Basic Concepts](#section1757915134139) +- [Development Guidelines](#section1573664211318) + - [Available APIs](#section10429150121317) + - [Important Notes](#section109174418147) + - [Development Example](#section206149278155) + + +## Basic Concepts + +The OpenHarmony kernel uses the **musl libc** library and self-developed APIs and supports the Portable Operating System Interface \(POSIX\). You can develop components and applications working on the kernel based on the POSIX. + +## Development Guidelines + +### Available APIs + +**Table 1** Available APIs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Type

+

Header File

+

API

+

Description

+

process

+

#include <stdlib.h>

+

void abort(void);

+

Terminates the execution of a thread.

+

#include <assert.h>

+

void assert(scalar expression);

+

Terminates the thread if the assertion is false.

+

#include <pthread.h>

+

int pthread_cond_destroy(pthread_cond_t *cond);

+

Destroys a condition variable.

+

#include <pthread.h>

+

int pthread_cond_init(pthread_cond_t *restrict cond, const pthread_condattr_t *restrict attr);

+

Initializes a condition variable.

+

#include <pthread.h>

+

int pthread_cond_timedwait(pthread_cond_t *restrict cond, pthread_mutex_t *restrict mutex, const struct timespec *restrict abstime);

+

Waits for the condition.

+

#include <pthread.h>

+

int pthread_condattr_init(pthread_condattr_t *attr);

+

Initializes a condition variable attribute object.

+

#include <pthread.h>

+

int pthread_mutex_unlock(pthread_mutex_t *mutex);

+

Unlocks a mutex.

+

#include <pthread.h>

+

int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg);

+

Creates a thread.

+

#include <pthread.h>

+

int pthread_join(pthread_t thread, void **retval);

+

Waits for a thread to terminate.

+

#include <pthread.h>

+

pthread_t pthread_self(void);

+

Obtains the ID of the current thread.

+

#include <pthread.h>

+

int pthread_getschedparam(pthread_t thread, int *policy, struct sched_param *param);

+

Obtains the scheduling policy and parameters of a thread.

+

#include <pthread.h>

+

int pthread_setschedparam(pthread_t thread, int policy, const struct sched_param *param);

+

Sets a scheduling policy and parameters for a thread.

+

#include <pthread.h>

+

int pthread_mutex_init(pthread_mutex_t *__restrict m, const pthread_mutexattr_t *__restrict a);

+

Initializes a mutex.

+

#include <pthread.h>

+

int pthread_mutex_lock(pthread_mutex_t *m);

+

Locks a mutex.

+

#include <pthread.h>

+

int pthread_mutex_trylock(pthread_mutex_t *m);

+

Attempts to lock a mutex.

+

#include <pthread.h>

+

int pthread_mutex_destroy(pthread_mutex_t *m);

+

Destroys a mutex.

+

#include <pthread.h>

+

int pthread_attr_init(pthread_attr_t *attr);

+

Initializes a thread attribute object.

+

#include <pthread.h>

+

int pthread_attr_destroy(pthread_attr_t *attr);

+

Destroys a thread attribute object.

+

#include <pthread.h>

+

int pthread_attr_getstacksize(const pthread_attr_t *attr, size_t *stacksize);

+

Obtains the stack size of a thread attribute object.

+

#include <pthread.h>

+

int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize);

+

Sets the stack size for a thread attribute object.

+

#include <pthread.h>

+

int pthread_attr_getschedparam(const pthread_attr_t *attr, struct sched_param *param);

+

Obtains scheduling parameter attributes of a thread attribute object.

+

#include <pthread.h>

+

int pthread_attr_setschedparam(pthread_attr_t *attr, const struct sched_param *param);

+

Sets scheduling parameter attributes for a thread attribute object.

+

#include <pthread.h>

+

int pthread_getname_np(pthread_t pthread, char *name, size_t len);

+

Obtains the name of a thread.

+

#include <pthread.h>

+

int pthread_setname_np(pthread_t pthread, const char *name);

+

Set the thread name.

+

#include <pthread.h>

+

int pthread_cond_broadcast(pthread_cond_t *c);

+

Unblocks the threads that are currently blocked on the condition variable.

+

#include <pthread.h>

+

int pthread_cond_signal(pthread_cond_t *c);

+

Unblocks a thread.

+

#include <pthread.h>

+

int pthread_cond_wait(pthread_cond_t *__restrict c, pthread_mutex_t *__restrict m);

+

Waits for the condition.

+

fs

+

+

#include <libgen.h>

+

char *dirname(char *path);

+

Obtains the folder name.

+

#include <dirent.h>

+

struct dirent *readdir(DIR *dirp);

+

Reads a directory.

+

#include <sys/stat.h>

+

int stat(const char *restrict path, struct stat *restrict buf);

+

Obtains file information.

+

#include <unistd.h>

+

int unlink(const char *pathname);

+

Deletes a file.

+

#include <fcntl.h

+

int open(const char *path, int oflags, ...);

+

Opens a file. If the file does not exist, create a file and open it.

+

#include <nistd.h>

+

int close(int fd);

+

Closes a file.

+

#include <stdio.h>

+

int rename(const char *oldpath, const char *newpath);

+

Rename the specified file.

+

#include <dirent.h>

+

DIR *opendir(const char *dirname);

+

Opens the specified directory.

+

#include <dirent.h>

+

int closedir(DIR *dir);

+

Closes the specified directory.

+

#include <sys/mount.h>

+

int mount(const char *source, const char *target, const char *filesystemtype, unsigned long mountflags, const void *data);

+

Mounts a file system.

+

#include <sys/mount.h>

+

int umount(const char *target);

+

Unmounts a file system.

+

#include <sys/mount.h>

+

int umount2(const char *target, int flag);

+

Unmounts a file system.

+

#include <sys/stat.h>

+

int fsync(int fd);

+

Synchronizes the files associated with a specified file descriptor to a storage device.

+

#include <sys/stat.h>

+

int mkdir(const char *pathname, mode_t mode);

+

Creates a directory.

+

#include <unistd.h>

+

int rmdir(const char *path);

+

Deletes a directory.

+

#include <sys/stat.h>

+

int fstat(int fd, struct stat *buf);

+

Obtains file status information.

+

#include <sys/statfs.h>

+

int statfs(const char *path, struct statfs *buf);

+

Obtains the file system information of a file in the specified path.

+

time

+

#include <sys/time.h>

+

int gettimeofday(struct timeval *tv, struct timezone *tz);

+

Obtains the time. Time zone is not supported. The return value of tz is empty.

+

#include <time.h>

+

struct tm *gmtime(const time_t *timep);

+

Converts a date and time to broken-down time or ASCII.

+

#include <time.h>

+

struct tm *localtime(const time_t *timep);

+

Obtains the time.

+

#include <time.h>

+

struct tm *localtime_r(const time_t *timep, struct tm *result);

+

Obtains the time.

+

#include <time.h>

+

time_t mktime(struct tm *tm);

+

Converts a date and time to broken-down time or ASCII.

+

#include <time.h>

+

size_t strftime(char *s, size_t max, const char *format,const struct tm *tm);

+

Formats the date and time string.

+

#include <time.h>

+

time_t time(time_t *tloc);

+

Obtains the calendar time.

+

#include <sys/times.h>

+

clock_t times(struct tms *buf);

+

Obtains the thread time.

+

#include <unistd.h>

+

int usleep(useconds_t usec);

+

Goes to hibernation (in μs).

+

#include <time.h>

+

int nanosleep(const struct timespec *tspec1, struct timespec *tspec2);

+

Pauses the calling thread till the specified time.

+

#include <time.h>

+

int clock_gettime(clockid_t id, struct timespec *tspec);

+

Obtains the clock time.

+

#include <time.h>

+

int timer_create(clockid_t id, struct sigevent *__restrict evp, timer_t *__restrict t);

+

Creates a timer for a thread.

+

#include <time.h>

+

int timer_delete(timer_t t);

+

Deletes a thread timer.

+

#include <time.h>

+

int timer_settime(timer_t t, int flags, const struct itimerspec *__restrict val, struct itimerspec *__restrict old);

+

Sets a timer for a thread.

+

#include <time.h>

+

time_t time (time_t *t);

+

Obtains the time.

+

#include <time.h>

+

char *strptime(const char *s, const char *format, struct tm *tm);

+

Converts the time string into the time tm structure.

+

util

+

#include <stdlib.h>

+

int atoi(const char *nptr);

+

Converts the character string into an integer (int).

+

#include <stdlib.h>

+

long atol(const char *nptr);

+

Converts the character string into an integer (long).

+

#include <stdlib.h>

+

long long atoll(const char *nptr);

+

Converts the character string into an integer (long long).

+

#include <ctype.h>

+

int isalnum(int c);

+

Checks for alphanumeric characters.

+

#include <ctype.h>

+

int isascii(int c);

+

Checks for ASCII.

+

#include <ctype.h>

+

int isdigit(int c);

+

Checks for numeric characters.

+

#include <ctype.h>

+

int islower(int c);

+

Checks for lowercase letters.

+

#include <ctype.h>

+

int isprint(int c);

+

Checks for printable characters, including spaces.

+

#include <ctype.h>

+

int isspace(int c);

+

Checks for a space.

+

#include <ctype.h>

+

int isupper(int c);

+

Checks for uppercase letters.

+

#include <ctype.h>

+

int isxdigit(int c);

+

Checks for hexadecimal digits.

+

#include <stdlib.h>

+

long int random (void);

+

Generates a random number.

+

#include <stdlib.h>

+

void srandom(unsigned int seed);

+

Initializes the random number generator.

+

#include <ctype.h>

+

int tolower(int c);

+

Converts letters to lowercase letters.

+

#include <ctype.h>

+

int toupper(int c);

+

Converts letters to uppercase letters.

+

#include <stdarg.h>

+

type va_arg(va_list ap, type);

+

Obtains the current parameter of a variable parameter, returns the value of the specified type, and moves the pointer to the next parameter.

+

#include <stdarg.h>

+

void va_copy(va_list dest, va_list src);

+

Copies parameters.

+

#include <stdarg.h>

+

void va_end(va_list ap);

+

Clears the va_list variable parameter list.

+

#include <stdarg.h>

+

void va_start(va_list ap, last);

+

Defines the start position of the variable-length parameter list.

+

#include <string.h>

+

char *strchr(const char *s, int c);

+

Locates the last occurrence of a character in a string.

+

#include <string.h>

+

int strcmp(const char *s1, const char *s2);

+

Compares strings.

+

#include <string.h>

+

size_t strcspn(const char *s, const char *reject);

+

Obtains the length of the initial segment of a string.

+

#include <string.h>

+

char *strdup(const char *s);

+

Copies a string to a new position.

+

#include <string.h>

+

size_t strlen(const char *s);

+

Calculates the length of a string.

+

#include <strings.h>

+

int strncasecmp(const char *s1, const char *s2, size_t n);

+

Compares fixed-length strings (case-insensitive).

+

#include <strings.h>

+

int strcasecmp(const char *s1, const char *s2);

+

Compares strings (case-insensitive).

+

#include <string.h>

+

int strncmp(const char *s1, const char *s2, size_t n);

+

Compares strings of the specified length.

+

#include <string.h>

+

char *strrchr(const char *s, int c);

+

Locates the last occurrence of a character in a string.

+

#include <string.h>

+

char *strstr(const char *haystack, const char *needle);

+

Searches for the specified string needle.

+

#include <stdlib.h>

+

long int strtol(const char *nptr, char **endptr, int base);

+

Converts a string into a long int value.

+

#include <stdlib.h>

+

unsigned long int strtoul(const char *nptr, char **endptr, int base);

+

Converts a string into an unsigned long int value.

+

#include <stdlib.h>

+

unsigned long long int strtoull(const char *nptr, char **endptr,int base);

+

Converts a string into an unsigned long long int value.

+

#include <regex.h>

+

int regcomp(regex_t *preg, const char *regex, int cflags);

+

Compiles a regular expression.

+

#include <regex.h>

+

int regexec(const regex_t *preg, const char *string, size_t nmatch,regmatch_t pmatch[], int eflags);

+

Matches a regular expression.

+

#include <regex.h>

+

void regfree(regex_t *preg);

+

Releases a regular expression.

+

#include <string.h>

+

char *strerror(int errnum);

+

Returns an error description string of the specified error code.

+

math

+

#include <stdlib.h>

+

int abs(int i);

+

Returns the absolute value.

+

#include <math.h>

+

double log(double x);

+

Returns the natural logarithm (base-e logarithm) of x.

+

#include <math.h>

+

double pow(double x, double y);

+

Returns x raised to the power of y.

+

#include <math.h>

+

double round(double x);

+

Rounds off the value from zero to the nearest integer.

+

#include <math.h>

+

double sqrt(double x);

+

Returns the square root of x.

+

IO

+

#include <stdio.h>

+

void clearerr(FILE *stream);

+

Clears the file end and error indication of a stream.

+

#include <stdio.h>

+

int fclose(FILE *stream);

+

Closes a file stream.

+

#include <stdio.h>

+

FILE *fdopen(int fd, const char *mode);

+

Opens a file stream by using a file descriptor.

+

#include <stdio.h>

+

int feof(FILE *stream);

+

Tests the end-of-file indicator for the specified stream.

+

#include <stdio.h>

+

int fflush(FILE *stream);

+

Refreshes a stream.

+

#include <stdio.h>

+

char *fgets(char *s, int size, FILE *stream);

+

Reads the next line of the stream.

+

#include <stdio.h>

+

int fileno(FILE *stream);

+

Returns the file descriptor of a stream.

+

#include <stdio.h>

+

FILE *fopen(const char *path, const char *mode);

+

Open a stream.

+

#include <stdio.h>

+

int fputs(const char *s, FILE *stream);

+

Writes a line to a specified stream.

+

#include <stdio.h>

+

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);

+

Reads a stream.

+

#include <stdio.h>

+

int fseek(FILE *stream, long offset, int whence);

+

Sets the position of a stream pointer.

+

#include <stdio.h>

+

long ftell(FILE *stream);

+

Obtains the position of a stream pointer.

+

#include <stdio.h>

+

size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);

+

Writes data to a stream.

+

#include <stdio.h>

+

void perror(const char *s);

+

Prints system error information.

+

#include <stdio.h>

+

void rewind(FILE *stream);

+

Re-positions a stream.

+

#include <unistd.h>

+

ssize_t write(int fd, const void *buf, size_t size);

+

Writes data to a file.

+

#include <unistd.h>

+

ssize_t read(int fd, void *buf, size_t size);

+

Reads data from a file.

+

net

+

#include <sys/socket.h>

+

void freeaddrinfo(struct addrinfo *res);

+

Releases the dynamic memory allocated by calling getaddrinfo.

+

#include <sys/socket.h>

+

int getaddrinfo(const char *restrict nodename,const char *restrict servname,const struct addrinfo *restrict hints,struct addrinfo **restrict res);

+

Performs network address translation.

+

#include <sys/socket.h>

+

int getnameinfo(const struct sockaddr *restrict sa, socklen_t salen,char *restrict node, socklen_t nodelen, char *restrict service,socklen_t servicelen, int flags);

+

Performs address-to-name translation in a protocol-independent manner.

+

#include <net/if.h>

+

unsigned int if_nametoindex(const char *ifname);

+

Obtains the index based on the network interface name.

+

#include <arpa/inet.h>

+

in_addr_t inet_addr(const char *cp);

+

Converts the network host address from dotted decimal notation to binary format.

+

#include <arpa/inet.h>

+

char *inet_ntoa(struct in_addr in);

+

Converts the network host address from binary format to dotted decimal notation.

+

#include <arpa/inet.h>

+

const char *inet_ntop(int af, const void *src,char *dst, socklen_t size);

+

Performs network address translation.

+

#include <arpa/inet.h>

+

int inet_pton(int af, const char *src, void *dst);

+

Performs network address translation.

+

#include <sys/socket.h>

+

int listen(int sockfd, int backlog);

+

Listens for sockets.

+

#include <sys/socket.h>

+

ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags);

+

Receives a message from a socket. Note that the IOV size can be 1 only, and the ancillary message is not supported.

+

#include <sys/socket.h>

+

ssize_t send(int sockfd, const void *buf, size_t len, int flags);

+

Sends messages from a socket.

+

#include <sys/socket.h>

+

ssize_t sendmsg(int sockfd, const struct msghdr *msg, int flags);

+

Sends messages from a socket. Ancillary messages are not supported.

+

#include <sys/socket.h>

+

ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,const struct sockaddr *dest_addr, socklen_t addrlen);

+

Sends messages from a socket.

+

#include <sys/socket.h>

+

int setsockopt(int sockfd, int level, int optname,const void *optval, socklen_t optlen);

+

Sets the options associated with a socket.

+

mem

+

#include <string.h>

+

int memcmp(const void *s1, const void *s2, size_t n);

+

Compares memory areas.

+

#include <string.h>

+

void *memcpy(void *dest, const void *src, size_t n);

+

Copies memory content.

+

#include <string.h>

+

void *memset(void *s, int c, size_t n);

+

Initializes memory.

+

#include <stdlib.h>

+

void *realloc(void *ptr, size_t size);

+

Reallocates memory.

+

#include <stdlib.h>

+

void *malloc(size_t size);

+

Dynamically allocates memory blocks.

+

#include <stdlib.h>

+

void free(void *ptr);

+

Releases the memory space to which the PTR pointer points.

+

IPC

+

#include <semaphore.h>

+

int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout);

+

Locks a semaphore for a specified period of time.

+

#include <semaphore.h>

+

int sem_destroy(sem_t *sem);

+

Destroys a specified anonymous semaphore.

+

#include <semaphore.h>

+

int sem_init(sem_t *sem, int pshared, unsigned int value);

+

Creates and initializes an anonymous semaphore.

+

#include <semaphore.h>

+

int sem_post(sem_t *sem);

+

Increments the semaphore count.

+

#include <semaphore.h>

+

int sem_wait(sem_t *sem);

+

Obtains the semaphore.

+

#include <mqueue.h>

+

mqd_t mq_open(const char *mqName, int openFlag, ...);

+

Opens an existing message queue with the specified name or creates a message queue.

+

#include <mqueue.h>

+

int mq_close(mqd_t personal);

+

Closes the message queue with the specified descriptor.

+

#include <mqueue.h>

+

int mq_unlink(const char *mqName);

+

Deletes a specified message queue.

+

#include <mqueue.h>

+

int mq_send(mqd_t personal, const char *msg, size_t msgLen, unsigned int msgPrio);

+

Puts a message with the specified content and length into a message queue with the specified descriptor.

+

#include <mqueue.h>

+

ssize_t mq_receive(mqd_t personal, char *msg, size_t msgLen, unsigned int *msgPrio);

+

Deletes the oldest message from the message queue with the specified descriptor and places it in the buffer pointed to by msg_ptr.

+

#include <mqueue.h>

+

int mq_timedsend(mqd_t personal, const char *msg, size_t msgLen, unsigned int msgPrio, const struct timespec *absTimeout)

+

Puts a message with the specified content and length into a message queue identified by the specified descriptor within specified time.

+

#include <mqueue.h>

+

ssize_t mq_timedreceive(mqd_t personal, char *msg, size_t msgLen, unsigned int *msgPrio, const struct timespec *absTimeout);

+

Obtains a message with the specified content and length from a message queue specified by the descriptor.

+

#include <mqueue.h>

+

int mq_setattr(mqd_t mqdes, const struct mq_attr *__restrict newattr, struct mq_attr *__restrict oldattr);

+

Sets the attributes of the message queue specified by the descriptor.

+

version

+

#include <libc.h>

+

const char *libc_get_version_string(void);

+

Obtains the libc version string.

+

#include <libc.h>

+

int libc_get_version(void);

+

Obtains the libc version.

+
+ +### Important Notes + +Error codes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

C Name

+

Value

+

Description

+

Description

+

ENOERR

+

0

+

Success

+

Successful

+

EPERM

+

1

+

Operation not permitted

+

The operation is not allowed.

+

ENOENT

+

2

+

No such file or directory

+

The file or directory does not exist.

+

ESRCH

+

3

+

No such process

+

There is no such process (not supported currently).

+

EINTR

+

4

+

Interrupted system call

+

The system call is interrupted.

+

EIO

+

5

+

I/O error

+

An I/O error occurs.

+

ENXIO

+

6

+

No such device or address

+

The device or address does not exist.

+

E2BIG

+

7

+

Arg list too long

+

The parameter list is too long.

+

ENOEXEC

+

8

+

Exec format error

+

The execution format is incorrect.

+

EBADF

+

9

+

Bad file number

+

The file descriptor is invalid.

+

ECHILD

+

10

+

No child processes

+

There is no child process (not supported currently).

+

EAGAIN

+

11

+

Try again

+

The resource is temporarily unavailable.

+

ENOMEM

+

12

+

Out of memory

+

The memory overflows.

+

EACCES

+

13

+

Permission denied

+

The permission is rejected.

+

EFAULT

+

14

+

Bad address

+

The address is incorrect.

+

ENOTBLK

+

15

+

Block device required

+

A block device is required.

+

EBUSY

+

16

+

Device or resource busy

+

The device or resource is engaged.

+

EEXIST

+

17

+

File exists

+

The file already exists.

+

EXDEV

+

18

+

Cross-device link

+

The cross-device link is invalid.

+

ENODEV

+

19

+

No such device

+

The device does not exist.

+

ENOTDIR

+

20

+

Not a directory

+

It is not a directory.

+

EISDIR

+

21

+

Is a directory

+

It is a directory.

+

EINVAL

+

22

+

Invalid argument

+

The parameter is invalid.

+

ENFILE*

+

23

+

File table overflow

+

The number of file systems opened exceeds the limit.

+

EMFILE

+

24

+

Too many open files

+

The number of files opened exceeds the limit.

+

EFBIG

+

27

+

File too large

+

The file is too large.

+

ENOSPC

+

28

+

No space left on device

+

There is no space on the device.

+

ESPIPE

+

29

+

Illegal seek

+

Illegal shift

+

EROFS

+

30

+

Read-only file system

+

The file system is read-only.

+

EMLINK

+

31

+

Too many links

+

There are too many links.

+

EDOM

+

33

+

Math argument out of domain

+

The value is out of range.

+

ERANGE

+

34

+

Math result not representable

+

The result is not representative.

+

EDEADLK

+

35

+

Resource deadlock would occur

+

Resource deadlock occurs.

+

ENAMETOOLONG

+

36

+

Filename too long

+

The file name is too long.

+

ENOLCK

+

37

+

No record locks available

+

There is no lock available.

+

ENOSYS

+

38

+

Function not implemented

+

The function is not implemented.

+

ENOTEMPTY

+

39

+

Directory not empty

+

The directory is not empty.

+

ELOOP

+

40

+

Too many symbolic links encountered

+

There are too many symbolic link layers.

+

ENOMSG

+

42

+

No message of desired type

+

There is no message of the expected type.

+

EIDRM

+

43

+

Identifier removed

+

The identifier is removed.

+

ELNRNG

+

48

+

Link number out of range

+

The number of links exceeds the limit.

+

EBADR

+

53

+

Invalid request descriptor

+

The requested descriptor is invalid.

+

EBADRQC

+

56

+

Invalid request code

+

The requested code is invalid.

+

ENOSTR

+

60

+

Device not a stream

+

The device is not a character stream.

+

ENODATA

+

61

+

No data available

+

No data is available.

+

ETIME

+

62

+

Timer expired

+

The timer has expired.

+

EPROTO

+

71

+

Protocol error

+

Protocol error.

+

EBADMSG

+

74

+

Not a data message

+

It is not a data message.

+

EOVERFLOW

+

75

+

Value too large for defined data type

+

The value is too large for the data type.

+

EMSGSIZE

+

90

+

Message too long

+

The message is too long.

+
+ +### Development Example + +Demo: + +Creates a thread, transfers the information in the parent thread to the child thread, and prints the transferred information and the thread ID in the child thread. + +``` +#include +#include + +pthread_t ntid; + +void *ThreadFn(void *arg) +{ + pthread_t tid; + while(1) { + tid = pthread_self(); + printf("\n++++++++++++++ %s %s tid = %d ++++++++++++++\n", (char*)arg, __FUNCTION__, tid); + } + return ((void *)0); +} + +void DemoForTest() +{ + int err; + char* str = "Hello world"; + err = pthread_create(&ntid, NULL, ThreadFn, (void*)str); + if(err != 0) { + printf("can't create thread\n"); + } +} + +``` + +The execution result of **DemoForTest** is as follows: + +``` +++++++++++++++ Hello world ThreadFn tid = 48 ++++++++++++++ + +++++++++++++++ Hello world ThreadFn tid = 48 ++++++++++++++ + +++++++++++++++ Hello world ThreadFn tid = 48 ++++++++++++++ +``` + diff --git a/en/device-dev/kernel/kernel-mini-appx-lib.md b/en/device-dev/kernel/kernel-mini-appx-lib.md new file mode 100644 index 00000000000..6c475ca7054 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-appx-lib.md @@ -0,0 +1,7 @@ +# Standard Libraries + +- **[CMSIS Support](kernel-mini-appx-lib-cmsis.md)** + +- **[POSIX Support](kernel-mini-appx-lib-posix.md)** + + diff --git a/en/device-dev/kernel/kernel-mini-basic-interrupt-concept.md b/en/device-dev/kernel/kernel-mini-basic-interrupt-concept.md new file mode 100644 index 00000000000..658ff6c4be5 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-interrupt-concept.md @@ -0,0 +1,37 @@ +# Basic Concepts + +An interrupt is a signal to the processor emitted by hardware or software indicating an event that needs immediate attention. An interrupt alerts the processor to a high-priority condition requiring the interruption of the current code being executed by the processor. When a hardware interrupt is triggered, the interrupt handler is located based on the interrupt ID and then executed to handle the interrupt. + +By using the interrupt mechanism, the CPU responds to the interrupt request from a peripheral only when required, and execute other tasks when the peripherals do not require the CPU. In this way, the CPU does not need to spend a lot of time in waiting and querying the peripheral status, which effectively improves the real-time performance and execution efficiency of the system. + +The following describes the concepts related to interrupts: + +- Interrupt ID + + Identifies an interrupt request signal. The computer locates the device that sends the interrupt request based on the interrupt ID. + +- Interrupt request + + A process in which an electrical pulse signal is sent to the CPU, alerting the CPU to a high-priority event requiring the interruption of the current code being executed by the CPU. + +- Interrupt priority + + Prioritizes the sources that trigger interrupts based on the importance and urgency of interrupt events, so that the CPU can respond to and handle all interrupts in a timely manner. + +- Interrupt handler + + A program executed by the CPU to respond to the interrupt request from a peripheral. Each device that triggers an interrupt has its own interrupt handler. + +- Interrupt triggering + + The interrupt source sends an interrupt signal to the interrupt controller. The interrupt controller arbitrates all pending interrupts, determines the priority, and sends the interrupt signal to the CPU. When an interrupt source generates an interrupt signal, the interrupt trigger is set to **1**, alerting the CPU to respond to the interrupt. + +- Interrupt vector + + Entry address of an interrupt handler. + +- Interrupt vector table + + An area for storing interrupt vectors. It stores the mapping between interrupt vectors and interrupt IDs. + + diff --git a/en/device-dev/kernel/kernel-mini-basic-interrupt-guide.md b/en/device-dev/kernel/kernel-mini-basic-interrupt-guide.md new file mode 100644 index 00000000000..b1b66d320fe --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-interrupt-guide.md @@ -0,0 +1,130 @@ +# Development Guidelines + +- [Available APIs](#section158501652121514) +- [How to Develop](#section11841123033618) +- [Development Example](#section460018317164) + - [Verification](#section1048572415182) + + +When an interrupt request is generated by a peripheral, the CPU suspends the current task and responds to the interrupt request. You need to register the interrupt handler and specify the operation to be performed by the CPU. + +## Available APIs + +The following table describes APIs available for the OpenHarmony LiteOS-M interrupt module. For more details about the APIs, see the API reference. + +**Table 1** APIs of the interrupt module + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Creating or deleting interrupts

+

HalHwiCreate

+

Creates an interrupt and registers the interrupt ID, interrupt triggering mode, interrupt priority, and interrupt handler. When an interrupt is triggered, the interrupt handler will be called.

+

HalHwiDelete

+

Deletes an interrupt based on the specified interrupt ID.

+

Enabling or disabling interrupts

+

LOS_IntUnLock

+

Enables the CPU to respond to all interrupt requests.

+

LOS_IntLock

+

Disables the CPU from responding to interrupt requests.

+

LOS_IntRestore

+

Restores the interrupt status before the LOS_IntLock and LOS_IntUnLock operations are performed.

+
+ +## How to Develop + +1. Create an interrupt by calling **HalHwiCreate**. +2. Call **TestHwiTrigger** to trigger the specified interrupt. \(This API is defined in the test suite. It simulates an external interrupt by writing the related register of the interrupt controller. Skip this step for common peripheral devices.\) +3. Call **HalHwiDelete** to delete the specified interrupt. Use this API based on actual requirements. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- Configure the maximum number of interrupts supported and the number of configurable interrupt priorities based on the specific hardware. +>- If the interrupt handler takes long time, the CPU cannot respond to interrupt requests in a timely manner. +>- Functions that trigger **LOS\_Schedule** cannot be directly or indirectly executed during interrupt response process. +>- The input parameter of **LOS\_IntRestore\(\)** must be the return value of **LOS\_IntLock\(\)**, that is, the current program status register \(CPSR\) value before the interrupt is disabled. Interrupts 0 to 15 in the Cortex-M series processors are for internal use. You are advised not to apply for or create interrupts 0 to 15. + +## Development Example + +This example implements the following: + +1. Create an interrupt. +2. Trigger an interrupt. +3. Delete an interrupt. + +The following sample code shows how to create and delete an interrupt. When the interrupt **HWI\_NUM\_TEST** is generated, the interrupt handler function will be called. + +``` +#include "los_interrupt.h" + +/* Create an interrupt.*/ +#define HWI_NUM_TEST 7 + +STATIC VOID HwiUsrIrq(VOID) +{ + printf("in the func HwiUsrIrq \n"); +} + +static UINT32 Example_Interrupt(VOID) +{ + UINT32 ret; + HWI_PRIOR_T hwiPrio = 3; + HWI_MODE_T mode = 0; + HWI_ARG_T arg = 0; + + /* Create an interrupt. */ + ret = HalHwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiUsrIrq, arg); + if(ret == LOS_OK){ + printf("Hwi create success!\n"); + } else { + printf("Hwi create failed!\n"); + return LOS_NOK; + } + + /* Delay 50 ticks. When a hardware interrupt occurs, the HwiUsrIrq function will be called.*/ + LOS_TaskDelay(50); + + /* Delete an interrupt./ + ret = HalHwiDelete(HWI_NUM_TEST); + if(ret == LOS_OK){ + printf("Hwi delete success!\n"); + } else { + printf("Hwi delete failed!\n"); + return LOS_NOK; + } + return LOS_OK; +} +``` + +### Verification + +The development is successful if the return result is as follows: + +``` +Hwi create success! +Hwi delete success!. +``` + diff --git a/en/device-dev/kernel/kernel-mini-basic-interrupt.md b/en/device-dev/kernel/kernel-mini-basic-interrupt.md new file mode 100644 index 00000000000..3f7c1ac22f2 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-interrupt.md @@ -0,0 +1,7 @@ +# Interrupt Management + +- **[Basic Concepts](kernel-mini-basic-interrupt-concept.md)** + +- **[Development Guidelines](kernel-mini-basic-interrupt-guide.md)** + + diff --git a/en/device-dev/kernel/kernel-mini-basic-ipc-event-basic.md b/en/device-dev/kernel/kernel-mini-basic-ipc-event-basic.md new file mode 100644 index 00000000000..3ac227417f0 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-ipc-event-basic.md @@ -0,0 +1,50 @@ +# Basic Concepts + +- [Working Principles](#section1735611583011) + - [Event Control Block](#section1161415384467) + - [Working Principles](#section187761153144617) + + +An event is a mechanism for communication between tasks. It can be used to synchronize tasks. The events have the following features: + +- Events can be synchronized in one-to-many or many-to-many mode. In one-to-many mode, a task can wait for multiple events. In many-to-many mode, multiple tasks can wait for multiple events. However, a write event wakes up only one task from the block. +- Event read timeout mechanism is used. +- Events are used only for task synchronization, but not for data transmission. + +APIs are provided to initialize, read/write, clear, and destroy events. + +## Working Principles + +### Event Control Block + +``` +/** +* Event control block data structure + */ +typedef struct tagEvent { + UINT32 uwEventID; /* Event set, which is a collection of events processed (written and cleared).*/ + LOS_DL_LIST stEventList; /* List of tasks waiting for specific events*/ +} EVENT_CB_S, *PEVENT_CB_S; +``` + +### Working Principles + +**Initializing an event**: An event control block is created to maintain a collection of processed events and a linked list of tasks waiting for specific events. + +**Writing an event**: When a specified event is written to the event control block, the event control block updates the event set, traverses the task linked list, and determines whether to wake up related task based on the task conditions. + +**Reading an event**: If the read event already exists, it is returned synchronously. In other cases, the return time is determined based on the timeout period and event triggering status. If the wait event condition is met before the timeout period expires, the blocked task will be directly woken up. Otherwise, the blocked task will be woken up only after the timeout period has expired. + +The input parameters **eventMask** and **mode** determine whether the condition for reading an event is met. **eventMask** indicates the mask of the event. **mode** indicates the handling mode, which can be any of the following: + +- **LOS\_WAITMODE\_AND**: Event reading is successful only when all the events corresponding to **eventMask** occur. Otherwise, the task will be blocked, or an error code will be returned. +- **LOS\_WAITMODE\_OR**: Event reading is successful when any of the events corresponding to **eventMask** occur. Otherwise, the task will be blocked, or an error code will be returned. +- **LOS\_WAITMODE\_CLR**: This mode must be used with **LOS\_WAITMODE\_AND** or **LOS\_WAITMODE\_OR** \(LOS\_WAITMODE\_AND | LOS\_WAITMODE\_CLR or LOS\_WAITMODE\_OR | LOS\_WAITMODE\_CLR\). In this mode, if **LOS\_WAITMODE\_AND** or **LOS\_WAITMODE\_OR** is successful, the corresponding event type bit in the event control block will be automatically cleared. + +**Clearing event**: Clear the event set of the event control block based on the specified mask. If the mask is **0**, the event set will be cleared. If the mask is **0xffff**, no event will be cleared, and the event set remains unchanged. + +**Destroying an event**: Destroy the specified event control block. + +**Figure 1** Event working mechanism +![](figure/event-working-mechanism.png "event-working-mechanism") + diff --git a/en/device-dev/kernel/kernel-mini-basic-ipc-event-guide.md b/en/device-dev/kernel/kernel-mini-basic-ipc-event-guide.md new file mode 100644 index 00000000000..6a6fe2e2cf8 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-ipc-event-guide.md @@ -0,0 +1,194 @@ +# Development Guidelines + +- [Available APIs](#section158501652121514) +- [How to Develop](#section783435801510) +- [Development Example](#section460018317164) + - [Example Description](#section896412438910) + - [Sample Code](#section149077554912) + - [Verification](#section4461439172017) + + +## Available APIs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Checking events

+

LOS_EventPoll

+

Checks whether the expected event occurs based on eventID, eventMask, and mode.

+
NOTICE:

If mode contains LOS_WAITMODE_CLR and the expected event occurs, the event that meets the requirements in eventID will be cleared. In this case, eventID is an input parameter and an output parameter. In other cases, eventID is used only as an input parameter.

+
+

Initializing events

+

LOS_EventInit

+

Initializes an event control block.

+

Reading events

+

LOS_EventRead

+

Reads an event (wait event). The task is blocked to wait based on the timeout period (in ticks).

+

If no event is read, 0 is returned.

+

If an event is successfully read, a positive value (event set) is returned.

+

In other cases, a specific error code is returned.

+

Writing events

+

LOS_EventWrite

+

Writes a specific event to the event control block.

+

Clearing events

+

LOS_EventClear

+

Clears an event in the event control block based on the event mask.

+

Destroying events

+

LOS_EventDestroy

+

Destroys an event control block.

+
+ +## How to Develop + +The typical event development process is as follows: + +1. Initialize an event control block. +2. Block a read event control block. +3. Write related events. +4. Wake up a blocked task, read the event, and check whether the event meets conditions. +5. Handle the event control block. +6. Destroy an event control block. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- When an event is read or written, the 25th bit of the event is reserved and cannot be set. +>- Repeated writes of the same event are treated as one write. + +## Development Example + +### Example Description + +In this example, run the **Example\_TaskEntry** task to create the **Example\_Event** task. Run the **Example\_Event** task to read an event to trigger task switching. Run the **Example\_TaskEntry** task to write an event. You can understand the task switching during event operations based on the sequence in which logs are recorded. + +1. Create the **Example\_Event** task in the **Example\_TaskEntry** task with a higher priority than the **Example\_TaskEntry** task. +2. Run the **Example\_Event** task to read event **0x00000001**. Task switching occurs to execute the **Example\_TaskEntry** task. +3. Run the **Example\_TaskEntry** task to write event **0x00000001**. Task switching occurs to execute the **Example\_Event** task. +4. The **Example\_Event** task is executed. +5. The **Example\_TaskEntry** task is executed. + +### Sample Code + +The sample code is as follows: + +``` +#include "los_event.h" +#include "los_task.h" +#include "securec.h" + +/* Task ID*/ +UINT32 g_testTaskId; + +/* Event control structure*/ +EVENT_CB_S g_exampleEvent; + +/* Type of the wait event*/ +#define EVENT_WAIT 0x00000001 + +/* Example task entry function*/ +VOID Example_Event(VOID) +{ + UINT32 ret; + UINT32 event; + + /* Set a timeout period for event reading to 100 ticks. If the specified event is not read within 100 ticks, the read operation times out and the task is woken up.*/ + printf("Example_Event wait event 0x%x \n", EVENT_WAIT); + + event = LOS_EventRead(&g_exampleEvent, EVENT_WAIT, LOS_WAITMODE_AND, 100); + if (event == EVENT_WAIT) { + printf("Example_Event,read event :0x%x\n", event); + } else { + printf("Example_Event,read event timeout\n"); + } +} + +UINT32 Example_TaskEntry(VOID) +{ + UINT32 ret; + TSK_INIT_PARAM_S task1; + + /* Initialize the event.*/ + ret = LOS_EventInit(&g_exampleEvent); + if (ret != LOS_OK) { + printf("init event failed .\n"); + return -1; + } + + /* Create a task.*/ + (VOID)memset_s(&task1, sizeof(TSK_INIT_PARAM_S), 0, sizeof(TSK_INIT_PARAM_S)); + task1.pfnTaskEntry = (TSK_ENTRY_FUNC)Example_Event; + task1.pcName = "EventTsk1"; + task1.uwStackSize = OS_TSK_DEFAULT_STACK_SIZE; + task1.usTaskPrio = 5; + ret = LOS_TaskCreate(&g_testTaskId, &task1); + if (ret != LOS_OK) { + printf("task create failed.\n"); + return LOS_NOK; + } + + /* Write the task wait event (g_testTaskId). */ + printf("Example_TaskEntry write event.\n"); + + ret = LOS_EventWrite(&g_exampleEvent, EVENT_WAIT); + if (ret != LOS_OK) { + printf("event write failed.\n"); + return LOS_NOK; + } + + /* Clear the flag.*/ + printf("EventMask:%d\n", g_exampleEvent.uwEventID); + LOS_EventClear(&g_exampleEvent, ~g_exampleEvent.uwEventID); + printf("EventMask:%d\n", g_exampleEvent.uwEventID); + + /* Delete the task.*/ + ret = LOS_TaskDelete(g_testTaskId); + if (ret != LOS_OK) { + printf("task delete failed.\n"); + return LOS_NOK; + } + + return LOS_OK; +} +``` + +### Verification + +The development is successful if the return result is as follows: + +``` +Example_Event wait event 0x1 +Example_TaskEntry write event. +Example_Event,read event :0x1 +EventMask:1 +EventMask:0 +``` + diff --git a/en/device-dev/kernel/kernel-mini-basic-ipc-event.md b/en/device-dev/kernel/kernel-mini-basic-ipc-event.md new file mode 100644 index 00000000000..1693a5bc36d --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-ipc-event.md @@ -0,0 +1,7 @@ +# Event + +- **[Basic Concepts](kernel-mini-basic-ipc-event-basic.md)** + +- **[Development Guidelines](kernel-mini-basic-ipc-event-guide.md)** + + diff --git a/en/device-dev/kernel/kernel-mini-basic-ipc-mutex-basic.md b/en/device-dev/kernel/kernel-mini-basic-ipc-mutex-basic.md new file mode 100644 index 00000000000..827323f9101 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-ipc-mutex-basic.md @@ -0,0 +1,19 @@ +# Basic Concepts + +- [Working Principles](#section115161649726) + +A mutual exclusion \(mutex\) is a special binary semaphore used for exclusive access to shared resources. + +A mutex can be unlocked or locked. When a mutex is held by a task, the mutex is locked and the task obtains the ownership of the mutex. When the task releases the mutex, the mutex is unlocked and the task will lose the ownership of the mutex. When a task holds a mutex, other tasks cannot unlock or hold the mutex. + +In an environment where multiple tasks compete for shared resources, the mutex can protect the shared resources via exclusive access. In addition, the mutex can prevent semaphore priority inversion, which occurs when a low-priority task holds a semaphore but a high-priority task has to wait until the low-priority task releases it. + +## Working Principles + +In a multi-task environment, multiple tasks may access the same shared resources. However, certain shared resources are not shared, and can only be accessed exclusively by tasks. A mutex can be used to address this issue. + +When non-shared resources are accessed by a task, the mutex is locked. Other tasks will be blocked until the mutex is released by the task. The mutex allows only one task to access the shared resources at a time, ensuring integrity of operations on the shared resources. + +**Figure 1** Mutex working mechanism +![](figure/mutex-working-mechanism.png "mutex-working-mechanism") + diff --git a/en/device-dev/kernel/kernel-mini-basic-ipc-mutex-guide.md b/en/device-dev/kernel/kernel-mini-basic-ipc-mutex-guide.md new file mode 100644 index 00000000000..664e6e9214b --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-ipc-mutex-guide.md @@ -0,0 +1,205 @@ +# Development Guidelines + +- [Available APIs](#section158501652121514) +- [How to Develop](#section783435801510) +- [Development Example](#section1426719434114) + - [Example Description](#section896412438910) + - [Sample Code](#section149077554912) + - [Verification](#section2059413981311) + + +## Available APIs + +**Table 1** APIs of the mutex module + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Creating or deleting a mutex

+

LOS_MuxCreate

+

Creates a mutex.

+

LOS_MuxDelete

+

Deletes the specified mutex.

+

Requesting or releasing a mutex

+

LOS_MuxPend

+

Requests the specified mutex.

+

LOS_MuxPost

+

Releases the specified mutex.

+
+ +## How to Develop + +The typical mutex development process is as follows: + +1. Call **LOS\_MuxCreate** to create a mutex. +2. Call **LOS\_MuxPend** to request a mutex. + + The following modes are available: + + - Non-block mode: A task acquires the mutex if the requested mutex is not held by any task or the task holding the mutex is the same as the task requesting the mutex. + - Permanent block mode: A task acquires the mutex if the requested mutex is not occupied. If the mutex is occupied, the task will be blocked and the task with the highest priority in the ready queue will be executed. The blocked task can be unlocked and executed only when the mutex is released. + - Scheduled block mode: A task acquires the mutex if the requested mutex is not occupied. If the mutex is occupied, the task will be blocked and the task with the highest priority in the ready queue will be executed. The blocked task can be executed only when the mutex is released within the specified timeout period or when the specified timeout period expires. + +3. Call **LOS\_MuxPost** to release a mutex. + - If tasks are blocked by the specified mutex, the task with a higher priority will be unblocked when the mutex is released. The unblocked task changes to the Ready state and is scheduled. + - If no task is blocked by the specified mutex, the mutex is released successfully. + +4. Call **LOS\_MuxDelete** to delete a mutex. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- Two tasks cannot lock the same mutex. If a task attempts to lock a mutex held by another task, the task will be blocked until the mutex is unclocked. +>- Mutexes cannot be used in the interrupt service program. +>- When using the LiteOS-M kernel, OpenHarmony must ensure real-time task scheduling and avoid long-time task blocking. Therefore, a mutex must be released as soon as possible after use. +>- When a mutex is held by a task, the task priority cannot be changed by using APIs such as **LOS\_TaskPriSet**. + +## Development Example + +### Example Description + +This example implements the following: + +1. Create the **Example\_TaskEntry** task. In this task, create a mutex, lock task scheduling, create two tasks **Example\_MutexTask1** \(with a lower priority\) and **Example\_MutexTask2** \(with a higher priority\), and unlock task scheduling. +2. When being scheduled, **Example\_MutexTask2** requests a mutex in permanent block mode. After acquiring the mutex, **Example\_MutexTask2** enters the sleep mode for 100 ticks. **Example\_MutexTask2** is suspended, and **Example\_MutexTask1** is woken up. +3. **Example\_MutexTask1** requests a mutex in scheduled block mode, and waits for 10 ticks. Because the mutex is still held by **Example\_MutexTask2**, **Example\_MutexTask1** is suspended. After 10 ticks, **Example\_MutexTask1** is woken up and attempts to request a mutex in permanent block mode. **Example\_MutexTask1** is suspended because the mutex is still held by **Example\_MutexTask2**. +4. After 100 ticks, **Example\_MutexTask2** is woken up and releases the mutex, and then **Example\_MutexTask1** is woken up. **Example\_MutexTask1** acquires the mutex and then releases the mutex. At last, the mutex is deleted. + +### Sample Code + +The sample code is as follows: + +``` +#include +#include "los_mux.h" + +/* Mutex handler ID*/ +UINT32 g_testMux; +/* Task ID*/ +UINT32 g_testTaskId01; +UINT32 g_testTaskId02; + +VOID Example_MutexTask1(VOID) +{ + UINT32 ret; + + printf("task1 try to get mutex, wait 10 ticks.\n"); + /* Request a mutex.*/ + ret = LOS_MuxPend(g_testMux, 10); + + if (ret == LOS_OK) { + printf("task1 get mutex g_testMux.\n"); + /*Release the mutex.*/ + LOS_MuxPost(g_testMux); + return; + } + if (ret == LOS_ERRNO_MUX_TIMEOUT ) { + printf("task1 timeout and try to get mutex, wait forever.\n"); + /* Request a mutex.*/ + ret = LOS_MuxPend(g_testMux, LOS_WAIT_FOREVER); + if (ret == LOS_OK) { + printf("task1 wait forever, get mutex g_testMux.\n"); + /*Release the mutex.*/ + LOS_MuxPost(g_testMux); + /* Delete the mutex. */ + LOS_MuxDelete(g_testMux); + printf("task1 post and delete mutex g_testMux.\n"); + return; + } + } + return; +} + +VOID Example_MutexTask2(VOID) +{ + printf("task2 try to get mutex, wait forever.\n"); + /* Request a mutex.*/ + (VOID)LOS_MuxPend(g_testMux, LOS_WAIT_FOREVER); + + printf("task2 get mutex g_testMux and suspend 100 ticks.\n"); + + /* Enable the task to enter sleep mode for 100 ticks.*/ + LOS_TaskDelay(100); + + printf("task2 resumed and post the g_testMux\n"); + /* Release the mutex.*/ + LOS_MuxPost(g_testMux); + return; +} + +UINT32 Example_TaskEntry(VOID) +{ + UINT32 ret; + TSK_INIT_PARAM_S task1; + TSK_INIT_PARAM_S task2; + + /* Create a mutex.*/ + LOS_MuxCreate(&g_testMux); + + /* Lock task scheduling.*/ + LOS_TaskLock(); + + /* Create task 1.*/ + memset(&task1, 0, sizeof(TSK_INIT_PARAM_S)); + task1.pfnTaskEntry = (TSK_ENTRY_FUNC)Example_MutexTask1; + task1.pcName = "MutexTsk1"; + task1.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE; + task1.usTaskPrio = 5; + ret = LOS_TaskCreate(&g_testTaskId01, &task1); + if (ret != LOS_OK) { + printf("task1 create failed.\n"); + return LOS_NOK; + } + + /* Create task 2.*/ + memset(&task2, 0, sizeof(TSK_INIT_PARAM_S)); + task2.pfnTaskEntry = (TSK_ENTRY_FUNC)Example_MutexTask2; + task2.pcName = "MutexTsk2"; + task2.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE; + task2.usTaskPrio = 4; + ret = LOS_TaskCreate(&g_testTaskId02, &task2); + if (ret != LOS_OK) { + printf("task2 create failed.\n"); + return LOS_NOK; + } + + /* Unlock task scheduling.*/ + LOS_TaskUnlock(); + + return LOS_OK; +} +``` + +### Verification + +The development is successful if the return result is as follows: + +``` +task2 try to get mutex, wait forever. +task2 get mutex g_testMux and suspend 100 ticks. +task1 try to get mutex, wait 10 ticks. +task1 timeout and try to get mutex, wait forever. +task2 resumed and post the g_testMux +task1 wait forever, get mutex g_testMux. +task1 post and delete mutex g_testMux. +``` + diff --git a/en/device-dev/kernel/kernel-mini-basic-ipc-mutex.md b/en/device-dev/kernel/kernel-mini-basic-ipc-mutex.md new file mode 100644 index 00000000000..15585c6ed43 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-ipc-mutex.md @@ -0,0 +1,7 @@ +# Mutex + +- **[Basic Concepts](kernel-mini-basic-ipc-mutex-basic.md)** + +- **[Development Guidelines](kernel-mini-basic-ipc-mutex-guide.md)** + + diff --git a/en/device-dev/kernel/kernel-mini-basic-ipc-queue-basic.md b/en/device-dev/kernel/kernel-mini-basic-ipc-queue-basic.md new file mode 100644 index 00000000000..509a08916b0 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-ipc-queue-basic.md @@ -0,0 +1,67 @@ +# Basic Concepts + +- [Working Principles](#section1582619446311) + - [Queue Control Block](#section1648304614720) + - [Working Principles](#section15384012164811) + + +A queue, also called a message queue, is a data structure used for communication between tasks. The queue receives messages of unfixed length from tasks or interrupts, and determines whether to store the transferred messages in the queue based on different APIs. + +Tasks can read messages from a queue. When the queue has no messages, the tasks are suspended. When the queue has a new message, the suspended tasks are woken up and process the new message. Tasks can also write messages to the queue. When the queue is full, the write task is suspended. When there is an available message node in the queue, the suspended write task is woken up and writes a message. + +You can adjust the timeout period of the read queue and write queue to adjust the block mode of the read and write APIs. If the timeout period is set to **0** for the read queue and write queue, tasks will not be suspended and the API directly returns. This is the non-block mode. If the timeout period is greater than **0**, block mode is used. + +An asynchronous processing mechanism is provided to allows messages in a queue not to be processed immediately. In addition, queues can be used to buffer messages and implement asynchronous task communication. Queues have the following features: + +- Messages are queued in first-in-first-out \(FIFO\) mode and can be read and written asynchronously. +- Both the read queue and write queue support the timeout mechanism. +- Each time a message is read, the message node becomes available. +- The types of messages to be sent are determined by the parties involved in communication. Messages of different lengths \(not exceeding the message node size of the queue\) are allowed. +- A task can receive messages from and send messages to any message queue. +- Multiple tasks can receive messages from and send messages to the same queue. +- When a queue is created, the required dynamic memory space is automatically allocated in the queue API. + +## Working Principles + +### Queue Control Block + +``` +/** + * Data structure of the queue control block + */ +typedef struct +{ + UINT8 *queue; /* Pointer to the memory space of queue messages */ + UINT16 queueState; /* Queue status*/ + UINT16 queueLen; /* Number of message nodes in a queue, that is, the queue length */ + UINT16 queueSize; /* Size of a message node */ + UINT16 queueID; /*Queue ID */ + UINT16 queueHead; /* Position of the message head node (array subscript)*/ + UINT16 queueTail; /* Position of the message tail node (array subscript) */ + UINT16 readWriteableCnt[OS_READWRITE_LEN];/* The array element with subscript 0 indicates the number of readable messages in a queue. + The element with subscript 1 indicates the number of writable messages in a queue. */ + LOS_DL_LIST readWriteList[OS_READWRITE_LEN]; /* A linked list of tasks waiting to read or write messages. + Subscript 0: list of tasks waiting to read messages. Subscript 1: list of tasks waiting to write messages.*/ + LOS_DL_LIST memList; /* A linked list of memory blocks*/ +} LosQueueCB; +``` + +Each queue control block contains information about the queue status. + +- **OS\_QUEUE\_UNUSED**: The queue is not in use. +- **OS\_QUEUE\_INUSED**: The queue is in use. + +### Working Principles + +- The queue ID is returned if a queue is created successfully. +- The queue control block contains **Head** and **Tail**, which indicate the storage status of messages in a queue. **Head** indicates the start position of occupied message nodes in the queue. **Tail** indicates the end position of the occupied message nodes and the start position of idle message nodes. When a queue is created, **Head** and **Tail** point to the start position of the queue. +- When data is to be written to a queue, **readWriteableCnt\[1\]** is used to determine whether data can be written to the queue. If **readWriteableCnt\[1\]** is **0**, the queue is full and data cannot be written to it. Data can be written to the head node or tail node of a queue. To write data to the tail node, locate the start idle message node based on **Tail** and write data to it. If **Tail** is pointing to the tail of the queue, the rewind mode is used. To write data to the head node, locate previous node based on **Head** and write data to it. If **Head** is pointing to the start position of the queue, the rewind mode is used. +- When a queue is to be read, **readWriteableCnt\[0\]** is used to determine whether the queue has messages to read. Reading an idle queue \(**readWriteableCnt\[0\]** is** 0**\) will cause task suspension. If the queue has messages to read, the system locates the first node to which data is written based on **Head** and read the message from the node. If **Head** is pointing to the tail of the queue, the rewind mode is used. +- When a queue is to be deleted, the system locates the queue based on the queue ID, sets the queue status to **OS\_QUEUE\_UNUSED**, sets the queue control block to the initial state, and releases the memory occupied by the queue. + +Figure 1 Reading and writing data in a queue + +![](figure/en-us_image_0000001132935054.png) + +The preceding figure illustrates how to write data to the tail node only. Writing data to the head node is similar. + diff --git a/en/device-dev/kernel/kernel-mini-basic-ipc-queue-guide.md b/en/device-dev/kernel/kernel-mini-basic-ipc-queue-guide.md new file mode 100644 index 00000000000..8a40c65f3f3 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-ipc-queue-guide.md @@ -0,0 +1,199 @@ +# Development Guidelines + +- [Available APIs](#section158501652121514) +- [How to Develop](#section783435801510) +- [Development Example](#section460018317164) + - [Example Description](#section2148236125814) + - [Sample Code](#section121451047155716) + - [Verification](#section2742182082117) + + +## Available APIs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Creating or deleting a message queue

+

LOS_QueueCreate

+

Creates a message queue. The system dynamically allocates the queue space.

+

LOS_QueueDelete

+

Deletes the specified queue based on the queue ID.

+

Reading or writing data in a queue (without the content contained in the address)

+

LOS_QueueRead

+

Reads data in the head node of the specified queue. The data in the queue node is an address.

+

LOS_QueueWrite

+

Writes the value of the input parameter bufferAddr (buffer address) to the tail node of the specified queue.

+

LOS_QueueWriteHead

+

Writes the value of the input parameter bufferAddr (buffer address) to the head node of the specified queue.

+

Reading or writing in a queue (with the content contained in the address)

+

LOS_QueueReadCopy

+

Reads data from the head node of the specified queue.

+

LOS_QueueWriteCopy

+

Writes the data saved in the input parameter bufferAddr to the tail node of the specified queue.

+

LOS_QueueWriteHeadCopy

+

Writes the data saved in the input parameter bufferAddr to the head node of the specified queue.

+

Obtaining queue information

+

LOS_QueueInfoGet

+

Obtains information about the specified queue, including the queue ID, queue length, message node size, head node, tail node, number of readable nodes, number of writable nodes, tasks waiting for read operations, and tasks waiting for write operations.

+
+ +## How to Develop + +1. Call **LOS\_QueueCreate** to create a queue. The queue ID is returned when the queue is created. +2. Call **LOS\_QueueWrite** or **LOS\_QueueWriteCopy** to write messages to the queue. +3. Call **LOS\_QueueRead** or **LOS\_QueueReadCopy** to read messages from the queue. +4. Call **LOS\_QueueInfoGet** to obtain queue information. +5. Call **LOS\_QueueDelete** to delete the queue. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- The maximum number of queues supported by the system is the total number of queue resources of the system, not the number of queue resources available to users. For example, if the system software timer occupies one more queue resource, the number of queue resources available to users decreases by one. +>- The input parameters queue name and flags passed when a queue is created are reserved for future use. +>- The input parameter **timeOut** in the queue interface function is relative time. +>- **LOS\_QueueReadCopy**, **LOS\_QueueWriteCopy**, and **LOS\_QueueWriteHeadCopy** are a group of APIs that must be used together. **LOS\_QueueRead**, **LOS\_QueueWrite**, and **LOS\_QueueWriteHead** are a group of APIs that must be used together. +>- As **LOS\_QueueWrite**, **LOS\_QueueWriteHead**, and **LOS\_QueueRead** are used to manage data addresses, you must ensure that the memory directed by the pointer obtained by calling **LOS\_QueueRead** is not modified or released abnormally when the queue is being read. Otherwise, unpredictable results may occur. +>- **LOS\_QueueWrite**, **LOS\_QueueWriteHead**, and **LOS\_QueueRead** are called to manage data addresses, which means that the actual data read or written is pointer data. Therefore, before using these APIs, ensure that the message node size is the pointer length during queue creation, to avoid waste and read failures. + +## Development Example + +### Example Description + +Create a queue and two tasks. Enable task 1 to call the queue write API to send messages, and enable task 2 to receive messages by calling the queue read API. + +1. Create task 1 and task 2 by calling **LOS\_TaskCreate**. +2. Create a message queue by calling **LOS\_QueueCreate**. +3. Enable messages to be sent in task 1 by calling **SendEntry**. +4. Enable messages to be received in task 2 by calling **RecvEntry**. +5. Delete the queue by calling **LOS\_QueueDelete**. + +### Sample Code + +The sample code is as follows: + +``` +#include "los_task.h" +#include "los_queue.h" +static UINT32 g_queue; +#define BUFFER_LEN 50 + +VOID SendEntry(VOID) +{ + UINT32 ret = 0; + CHAR abuf[] = "test message"; + UINT32 len = sizeof(abuf); + + ret = LOS_QueueWriteCopy(g_queue, abuf, len, 0); + if(ret != LOS_OK) { + printf("send message failure, error: %x\n", ret); + } +} + +VOID RecvEntry(VOID) +{ + UINT32 ret = 0; + CHAR readBuf[BUFFER_LEN] = {0}; + UINT32 readLen = BUFFER_LEN; + + // Sleep for 1s. + usleep(1000000); + ret = LOS_QueueReadCopy(g_queue, readBuf, &readLen, 0); + if(ret != LOS_OK) { + printf("recv message failure, error: %x\n", ret); + } + + printf("recv message: %s\n", readBuf); + + ret = LOS_QueueDelete(g_queue); + if(ret != LOS_OK) { + printf("delete the queue failure, error: %x\n", ret); + } + + printf("delete the queue success!\n"); +} + +UINT32 ExampleQueue(VOID) +{ + printf("start queue example\n"); + UINT32 ret = 0; + UINT32 task1, task2; + TSK_INIT_PARAM_S initParam = {0}; + + initParam.pfnTaskEntry = (TSK_ENTRY_FUNC)SendEntry; + initParam.usTaskPrio = 9; + initParam.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE; + initParam.pcName = "SendQueue"; + + LOS_TaskLock(); + ret = LOS_TaskCreate(&task1, &initParam); + if(ret != LOS_OK) { + printf("create task1 failed, error: %x\n", ret); + return ret; + } + + initParam.pcName = "RecvQueue"; + initParam.pfnTaskEntry = (TSK_ENTRY_FUNC)RecvEntry; + ret = LOS_TaskCreate(&task2, &initParam); + if(ret != LOS_OK) { + printf("create task2 failed, error: %x\n", ret); + return ret; + } + + ret = LOS_QueueCreate("queue", 5, &g_queue, 0, 50); + if(ret != LOS_OK) { + printf("create queue failure, error: %x\n", ret); + } + + printf("create the queue success!\n"); + LOS_TaskUnlock(); + return ret; +} +``` + +### Verification + +The development is successful if the return result is as follows: + +``` +start test example +create the queue success! +recv message: test message +delete the queue success! +``` + diff --git a/en/device-dev/kernel/kernel-mini-basic-ipc-queue.md b/en/device-dev/kernel/kernel-mini-basic-ipc-queue.md new file mode 100644 index 00000000000..221b182a2b6 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-ipc-queue.md @@ -0,0 +1,7 @@ +# Queue + +- **[Basic Concepts](kernel-mini-basic-ipc-queue-basic.md)** + +- **[Development Guidelines](kernel-mini-basic-ipc-queue-guide.md)** + + diff --git a/en/device-dev/kernel/kernel-mini-basic-ipc-sem-basic.md b/en/device-dev/kernel/kernel-mini-basic-ipc-sem-basic.md new file mode 100644 index 00000000000..3c3d3a19ac5 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-ipc-sem-basic.md @@ -0,0 +1,53 @@ +# Basic Concepts + +- [Working Principles](#section1794010261861) + - [Semaphore control block](#section11372149164815) + - [Working Principles](#section139726510491) + + +Semaphore is a mechanism for implementing inter-task communication. It implements synchronization between tasks or exclusive access to shared resources. + +In the data structure of a semaphore, there is a value indicating the number of shared resources available. The value can be: + +- **0**: The semaphore is unavailable. Tasks waiting for the semaphore may exist. +- Positive number: The semaphore is available. + +The semaphore for synchronization is different from the semaphore for mutex: + +- Semaphore used for exclusive access: The initial semaphore counter value is not 0, indicating the number of shared resources available. The semaphore counter value must be acquired before a shared resource is used, and released after the resource is used. When all shared resources are used, the semaphore counter is reduced to 0 and the tasks that need to obtain the semaphores will be blocked. This ensures exclusive access to shared resources. In addition, when the number of shared resources is 1, a binary semaphore \(similar to the mutex mechanism\) is recommended. +- Semaphore used for synchronization: The initial semaphore counter value is 0. Task 1 cannot acquire the semaphore and is blocked. Task 1 enters Ready or Running state only when the semaphore is released by task 2. In this way, task synchronization is implemented. + +## Working Principles + +### Semaphore control block + +``` +/** + * Data structure of the semaphore control block + */ +typedef struct { + UINT16 semStat; /* Semaphore status */ + UINT16 semType; /* Semaphore type*/ + UINT16 semCount; /* Semaphore count*/ + UINT16 semId; /* Semaphore index*/ + LOS_DL_LIST semList; /* Mount the task blocked by the semaphore.*/ +} LosSemCB; +``` + +### Working Principles + +Semaphore initialization: The system allocates memory for the semaphores configured \(you can configure the number of semaphores using the **LOSCFG\_BASE\_IPC\_SEM\_LIMIT** macro\), initializes all semaphores to be unused semaphores, and adds them to a linked list for the system to use. + +Semaphore creation: The system obtains a semaphore from the linked list of unused semaphores and assigns an initial value to the semaphore. + +Semaphore request: If the counter value is greater than 0, the system allocates a semaphore, decreases the value by 1, and returns a success message. Otherwise, the system blocks the task and adds the task to the end of a task queue waiting for semaphores. The wait timeout period can be set. + +Semaphore release: When a semaphore is released, if there is no task waiting for it, the counter is increased by 1. Otherwise, the first task in the wait queue is woken up. + +Semaphore deletion: The system sets a semaphore in use to unused state and inserts it to the linked list of unused semaphores. + +Semaphore allows only a specified number of tasks to access a shared resource at a time. When the number of tasks accessing the resource reaches the limit, other tasks will be blocked until the semaphore is released. + +**Figure 1** Semaphore working mechanism +![](figure/semaphore-working-mechanism.png "semaphore-working-mechanism") + diff --git a/en/device-dev/kernel/kernel-mini-basic-ipc-sem-guide.md b/en/device-dev/kernel/kernel-mini-basic-ipc-sem-guide.md new file mode 100644 index 00000000000..a9c14c93dd8 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-ipc-sem-guide.md @@ -0,0 +1,206 @@ +# Development Guidelines + +- [Available APIs](#section158501652121514) +- [How to Develop](#section783435801510) +- [Development Example](#section460018317164) + - [Example Description](#section22061718111412) + - [Sample Code](#section1775922321416) + - [Verification](#section160404016213) + + +## Available APIs + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Creating or deleting a semaphore

+

LOS_SemCreate

+

Creates a semaphore and returns the semaphore ID.

+

LOS_BinarySemCreate

+

Creates a binary semaphore. The maximum counter value is 1.

+

LOS_SemDelete

+

Deletes a semaphore.

+

Requesting or releasing a semaphore

+

LOS_SemPend

+

Requests a specified semaphore and sets the timeout period.

+

LOS_SemPost

+

Posts (releases) a semaphore.

+
+ +## How to Develop + +1. Call **LOS\_SemCreate** to create a semaphore. To create a binary semaphore, call **LOS\_BinarySemCreate**. +2. Call **LOS\_SemPend** to request a semaphore. +3. Call **LOS\_SemPost** to release a semaphore. +4. Call **LOS\_SemDelete** to delete a semaphore. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>As interrupts cannot be blocked, semaphores cannot be requested in block mode for interrupts. + +## Development Example + +### Example Description + +This example implements the following: + +1. Create a semaphore in task **ExampleSem** and lock task scheduling. Create two tasks **ExampleSemTask1** and **ExampleSemTask2** \(with higher priority\). Enable the two tasks to request the same semaphore. Unlock task scheduling. Enable task **ExampleSem** to enter sleep mode for 400 ticks. Release the semaphore in task **ExampleSem**. +2. Enable** ExampleSemTask2** to enter sleep mode for 20 ticks after acquiring the semaphore. \(When **ExampleSemTask2** is delayed, **ExampleSemTask1** is woken up.\) +3. Enable **ExampleSemTask1** to request the semaphore in scheduled block mode, with a wait timeout period of 10 ticks. \(Because the semaphore is still held by **ExampleSemTask2**, **ExampleSemTask1** is suspended. **ExampleSemTask1** is woken up after 10 ticks.\) Enable **ExampleSemTask1** to request the semaphore in permanent block mode after it is woken up 10 ticks later. \(Because the semaphore is still held by **ExampleSemTask2**, **ExampleSemTask1** is suspended.\)** ** +4. After 20 ticks, **ExampleSemTask2** is woken up and releases the semaphore. **ExampleSemTask1** acquires the semaphore and is scheduled to run. When **ExampleSemTask1** is complete, it releases the semaphore. +5. Task **ExampleSem** is woken up after 400 ticks and deletes the semaphore. + +### Sample Code + +The sample code is as follows: + +``` +#include "los_sem.h" +#include "securec.h" + +/* Task ID*/ +static UINT32 g_testTaskId01; +static UINT32 g_testTaskId02; + +/* Task priority */ +#define TASK_PRIO_TEST 5 + +/* Semaphore structure ID*/ +static UINT32 g_semId; + +VOID ExampleSemTask1(VOID) +{ + UINT32 ret; + + printf("ExampleSemTask1 try get sem g_semId, timeout 10 ticks.\n"); + + /* Request the semaphore in scheduled block mode, with a wait timeout period of 10 ticks.*/ + ret = LOS_SemPend(g_semId, 10); + + /* The semaphore is acquired.*/ + if (ret == LOS_OK) { + LOS_SemPost(g_semId); + return; + } + /* The semaphore is not acquired when the timeout period has expired.*/ + if (ret == LOS_ERRNO_SEM_TIMEOUT) { + printf("ExampleSemTask1 timeout and try get sem g_semId wait forever.\n"); + + /* Request the semaphore in permanent block mode.*/ + ret = LOS_SemPend(g_semId, LOS_WAIT_FOREVER); + printf("ExampleSemTask1 wait_forever and get sem g_semId.\n"); + if (ret == LOS_OK) { + LOS_SemPost(g_semId); + return; + } + } +} + +VOID ExampleSemTask2(VOID) +{ + UINT32 ret; + printf("ExampleSemTask2 try get sem g_semId wait forever.\n"); + + /* Request the semaphore in permanent block mode.*/ + ret = LOS_SemPend(g_semId, LOS_WAIT_FOREVER); + + if (ret == LOS_OK) { + printf("ExampleSemTask2 get sem g_semId and then delay 20 ticks.\n"); + } + + /* Enable the task to enter sleep mode for 20 ticks.*/ + LOS_TaskDelay(20); + + printf("ExampleSemTask2 post sem g_semId.\n"); + /* Release the semaphore.*/ + LOS_SemPost(g_semId); + return; +} + +UINT32 ExampleSem(VOID) +{ + UINT32 ret; + TSK_INIT_PARAM_S task1; + TSK_INIT_PARAM_S task2; + + /* Create a semaphore.*/ + LOS_SemCreate(0, &g_semId); + + /* Lock task scheduling.*/ + LOS_TaskLock(); + + /* Create task 1.*/ + (VOID)memset_s(&task1, sizeof(TSK_INIT_PARAM_S), 0, sizeof(TSK_INIT_PARAM_S)); + task1.pfnTaskEntry = (TSK_ENTRY_FUNC)ExampleSemTask1; + task1.pcName = "TestTask1"; + task1.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE; + task1.usTaskPrio = TASK_PRIO_TEST; + ret = LOS_TaskCreate(&g_testTaskId01, &task1); + if (ret != LOS_OK) { + printf("task1 create failed.\n"); + return LOS_NOK; + } + + /* Create task 2.*/ + (VOID)memset_s(&task2, sizeof(TSK_INIT_PARAM_S), 0, sizeof(TSK_INIT_PARAM_S)); + task2.pfnTaskEntry = (TSK_ENTRY_FUNC)ExampleSemTask2; + task2.pcName = "TestTask2"; + task2.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE; + task2.usTaskPrio = (TASK_PRIO_TEST - 1); + ret = LOS_TaskCreate(&g_testTaskId02, &task2); + if (ret != LOS_OK) { + printf("task2 create failed.\n"); + return LOS_NOK; + } + + /* Unlock task scheduling.*/ + LOS_TaskUnlock(); + + ret = LOS_SemPost(g_semId); + + /* Enable the task to enter sleep mode for 400 ticks.*/ + LOS_TaskDelay(400); + + /* Delete the semaphore. */ + LOS_SemDelete(g_semId); + return LOS_OK; +} +``` + +### Verification + +The development is successful if the return result is as follows: + +``` +ExampleSemTask2 try get sem g_semId wait forever. +ExampleSemTask2 get sem g_semId and then delay 20 ticks. +ExampleSemTask1 try get sem g_semId, timeout 10 ticks. + +ExampleSemTask1 timeout and try get sem g_semId wait forever. +ExampleSemTask2 post sem g_semId. +ExampleSemTask1 wait_forever and get sem g_semId. +``` + diff --git a/en/device-dev/kernel/kernel-mini-basic-ipc-sem.md b/en/device-dev/kernel/kernel-mini-basic-ipc-sem.md new file mode 100644 index 00000000000..602aedfb3c9 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-ipc-sem.md @@ -0,0 +1,7 @@ +# Semaphore + +- **[Basic Concepts](kernel-mini-basic-ipc-sem-basic.md)** + +- **[Development Guidelines](kernel-mini-basic-ipc-sem-guide.md)** + + diff --git a/en/device-dev/kernel/kernel-mini-basic-ipc.md b/en/device-dev/kernel/kernel-mini-basic-ipc.md new file mode 100644 index 00000000000..f18d6b58f05 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-ipc.md @@ -0,0 +1,11 @@ +# Kernel Communication Mechanisms + +- **[Event](kernel-mini-basic-ipc-event.md)** + +- **[Mutex](kernel-mini-basic-ipc-mutex.md)** + +- **[Queue](kernel-mini-basic-ipc-queue.md)** + +- **[Semaphore](kernel-mini-basic-ipc-sem.md)** + + diff --git a/en/device-dev/kernel/kernel-mini-basic-memory-basic.md b/en/device-dev/kernel/kernel-mini-basic-memory-basic.md new file mode 100644 index 00000000000..2e48ff75659 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-memory-basic.md @@ -0,0 +1,17 @@ +# Basic Concepts + +Memory management, one of the core modules of the OS, manages the memory resources of the system. Memory management primarily involves initializing, allocating, and releasing memory. + +While the OS is running, the memory management module manages the memory usage of users and the OS by allocating and releasing memory. This helps achieve the optimal memory usage and usage efficiency and minimize memory fragments. + +The OpenHarmony LiteOS-M kernel memory management involves static and dynamic memory management, and provides functions such as memory initialization, allocation, and release. + +- Dynamic memory: memory blocks of user-specified size allocated in the dynamic memory pool. + - Advantage: Resources are allocated on demand. + - Disadvantage: Fragments may occur in the memory pool. + +- Static memory: memory blocks of the fixed size \(preset during initialization\) allocated in the static memory pool. + - Advantage: Memory is allocated and released efficiently, and there is no fragment in the static memory pool. + - Disadvantage: Only the memory blocks of the fixed size can be allocated. Memory cannot be allocated on demand. + + diff --git a/en/device-dev/kernel/kernel-mini-basic-memory-dynamic.md b/en/device-dev/kernel/kernel-mini-basic-memory-dynamic.md new file mode 100644 index 00000000000..cd9379dc05b --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-memory-dynamic.md @@ -0,0 +1,227 @@ +# Dynamic Memory + +- [Working Principles](#section328282013571) +- [Development Guidelines](#section7921151015814) + - [When to Use](#section326917198583) + - [Available APIs](#section1032331584) + - [How to Develop](#section07271773592) + - [Development Example](#section84931234145913) + - [Verification](#section165233233917) + + +## Working Principles + +Dynamic memory management allows memory blocks of any size to be allocated from a large contiguous memory \(memory pool or heap memory\) configured in the system based on user demands when memory resources are sufficient. The memory block can be released for further use when not required. Compared with static memory management, dynamic memory management allows memory allocation on demand but causes fragmentation of memory. + +The dynamic memory of the OpenHarmony LiteOS-M has optimized the memory space partitioning based on the Two-Level Segregate Fit \(TLSF\) algorithm to achieve higher performance and minimize fragmentation. [Figure 1](#fig14558185217397) shows the core algorithm of the dynamic memory. + +**Figure 1** Dynamic memory core algorithm +![](figure/dynamic-memory-core-algorithm.png "dynamic-memory-core-algorithm") + +Multiple free lists are used for management based on the size of the free memory block. The free memory blocks are divided into two parts: \[4, 127\] and \[27, 231\], as indicated by the size class in [Figure 1](#fig14558185217397). + +1. The memory in the range of \[4, 127\] \(lower part in [Figure 1](#fig14558185217397)\) is divided into 31 parts. The size of the memory block corresponding to each part is a multiple of 4 bytes. Each part corresponds to a free list and a bit that indicates whether the free list is empty. The value **1** indicates that the free list is not empty. There are 31 bits corresponding to the 31 memory parts in the range of \[4, 127\]. +2. The memory greater than 127 bytes is managed in power of two increments. The size of each range is \[2^n, 2^\(n+1\)-1\], where n is an integer in \[7, 30\]. This range is divided into 24 parts, each of which is further divided into 8 second-level \(L2\) ranges, as shown in Size Class and Size SubClass in the upper part of [Figure 1](#fig14558185217397). Each L2 range corresponds to a free list and a bit that indicates whether the free list is empty. There are a total of 192 \(24 x 8\) L2 ranges, corresponding to 192 free lists and 192 bits. + +For example, insert 40-byte free memory to a free list. The 40-byte free memory corresponds to the 10th free list in the range of \[40, 43\], and the 10th bit indicates the use of the free list. The system inserts the 40-byte free memory to the 10th free list and determines whether to update the bitmap flag. When 40-byte memory is requested, the system obtains the free list corresponding to the memory block of the requested size based on the bitmap flag, and then obtains a free memory node from the free list. If the size of the allocated node is greater than the memory requested, the system splits the node and inserts the remaining node to the free list. If 580-byte free memory needs to be inserted to a free list, the 580-byte free memory corresponds to the 47th \(31 + 2 x 8\) free list in L2 range \[2^9, 2^9+2^6\], and the 47th bit indicates the use of the free list. The system inserts the 580-byte free memory to the 47th free list and determines whether to update the bitmap flag. When 580-byte memory is requested, the system obtains the free list corresponding to the memory block of the requested size based on the bitmap flag, and then obtains a free memory node from the free list. If the size of the allocated node is greater than the memory requested, the system splits the node and inserts the remaining node to the free list. If the corresponding free list is empty, the system checks for a free list meeting the requirements in a larger memory range. In actual application, the system can locate the free list that meets the requirements at a time. + +[Figure 2](#fig5395115964114) shows the memory management structure. + +**Figure 2** Dynamic memory management structure +![](figure/dynamic-memory-management-structure.png "dynamic-memory-management-structure") + +- Memory pool header + + The memory pool header contains the memory pool information, bitmap flag array, and free list array. The memory pool information includes the start address of the memory pool, total size of the heap memory, and attributes of the memory pool. The bitmap flag array consists of seven 32-bit unsigned integers. Each bit indicates whether the free list is inserted with free memory block nodes. The free list contains information about 223 free memory head nodes. The free memory head node information contains a memory node header and information about the previous and next nodes in the free list. + +- Memory pool nodes + + There are three types of nodes: free node, used node, and end node. Each memory node maintains the size and use flag of the memory node and a pointer to the previous memory node in the memory pool. The free nodes and used nodes have a data area, but the end node has no data area. + + +## Development Guidelines + +### When to Use + +Dynamic memory management allocates and manages memory resources requested by users dynamically. It is a good choice when users need memory blocks of different sizes. You can call the dynamic memory allocation function of the OS to request a memory block of the specified size. You can call the dynamic memory release function to release the memory at any time. + +### Available APIs + +The following table describes APIs available for OpenHarmony LiteOS-M dynamic memory management. For more details about the APIs, see the API reference. + +**Table 1** APIs of the dynamic memory module + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Initializing or deleting a memory pool

+

LOS_MemInit

+

Initializes a dynamic memory pool of the specified size.

+

LOS_MemDeInit

+

Deletes a memory pool. It is valid only when LOSCFG_MEM_MUL_POOL is enabled.

+

Allocating or releasing dynamic memory

+

LOS_MemAlloc

+

Allocates memory of the specified size from the dynamic memory pool.

+

LOS_MemFree

+

Releases the memory allocated from the specified dynamic memory.

+

LOS_MemRealloc

+

Re-allocates a memory block of the required size and copies data from the original block to the newly allocated bock. If the new memory block is successfully allocated, the original memory block will be released.

+

LOS_MemAllocAlign

+

Allocates the memory of the specified size and aligned based on the specified bytes from a dynamic memory pool.

+

Obtaining memory pool information

+

LOS_MemPoolSizeGet

+

Obtains the total size of the specified dynamic memory pool.

+

LOS_MemTotalUsedGet

+

Obtains the total memory usage of the specified dynamic memory pool.

+

LOS_MemInfoGet

+

Obtains the memory structure information of the specified memory pool, including the free memory, used memory, number of free memory blocks, number of used memory blocks, and maximum size of the free memory block.

+

LOS_MemPoolList

+

Prints information about all initialized memory pools in the system, including the start address, size, total free memory, used memory, maximum size of the free memory block, number of free memory blocks, and number of used memory blocks of each memory pool. It is valid only when LOSCFG_MEM_MUL_POOL is enabled.

+

Obtaining memory block information

+

LOS_MemFreeNodeShow

+

Prints the size and number of free memory blocks in the specified memory pool.

+

LOS_MemUsedNodeShow

+

Prints the size and number of used memory blocks in the specified memory pool.

+

Checking memory pool integrity

+

LOS_MemIntegrityCheck

+

Checks the integrity of the specified memory pool. It is valid only when LOSCFG_BASE_MEM_NODE_INTEGRITY_CHECK is enabled.

+
+ +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- The dynamic memory module manages memory through control block structures, which consume extra memory. Therefore, the actual memory space available to users is less than the value of **OS\_SYS\_MEM\_SIZE**. +>- The **LOS\_MemAllocAlign** and **LOS\_MemMallocAlign** APIs consume extra memory for memory alignment, which may cause memory loss. When the memory used for alignment is freed up, the lost memory will be reclaimed. + +### How to Develop + +The typical development process of dynamic memory is as follows: + +1. Call the **LOS\_MemInit** API to initialize a memory pool. + + After a memory pool is initialized, a memory pool control header and end node will be generated, and the remaining memory is marked as free nodes. The end node is the last node in the memory pool, and its size is **0**. + + +1. Call the **LOS\_MemAlloc** API to allocate dynamic memory of any size. + + The system checks whether the dynamic memory pool has free memory blocks greater than the requested size. If yes, the system allocates a memory block and returns the pointer to the memory block. If no, the system returns NULL. If the memory block allocated is greater than the requested size, the system splits the memory block and inserts the remaining memory block to the free list. + + +1. Call the **LOS\_MemFree** API to release dynamic memory. + + The released memory block can be reused. When **LOS\_MemFree** is called, the memory block will be reclaimed and marked as free nodes. When memory blocks are reclaimed, adjacent free nodes are automatically merged. + + +### Development Example + +The example below implements the following: + +1. Initialize a dynamic memory pool. +2. Allocate a memory block from the dynamic memory pool. +3. Store a piece of data in the memory block. +4. Print the data in the memory block. +5. Release the memory block. + +The sample code is as follows: + +``` +#include "los_memory.h" + +VOID Example_DynMem(VOID) +{ + UINT32 *mem = NULL; + UINT32 ret; + + /* Initialize the memory pool. */ + ret = LOS_MemInit(g_testPool, TEST_POOL_SIZE); + if (LOS_OK == ret) { + printf("Mem init success!\n"); + } else { + printf("Mem init failed!\n"); + return; + } + + /* Allocate memory.*/ + mem = (UINT32 *)LOS_MemAlloc(g_testPool, 4); + if (NULL == mem) { + printf("Mem alloc failed!\n"); + return; + } + printf("Mem alloc success!\n"); + + /* Assign a value.*/ + *mem = 828; + printf("*mem = %d\n", *mem); + + /* Release memory.*/ + ret = LOS_MemFree(g_testPool, mem); + if (LOS_OK == ret) { + printf("Mem free success!\n"); + } else { + printf("Mem free failed!\n"); + } + + return; +} +``` + +### Verification + +The output is as follows: + +``` +Mem init success! +Mem alloc success! +*mem = 828 +Mem free success! +``` + diff --git a/en/device-dev/kernel/kernel-mini-basic-memory-static.md b/en/device-dev/kernel/kernel-mini-basic-memory-static.md new file mode 100644 index 00000000000..1d35df912f4 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-memory-static.md @@ -0,0 +1,182 @@ +# Static Memory + +- [Working Principles](#section165473517522) +- [Development Guidelines](#section57511620165218) + - [When to Use](#section215474911529) + - [Available APIs](#section79231214539) + - [How to Develop](#section1388511316548) + - [Development Example](#section17801515105519) + - [Verification](#section11818154112319) + + +## Working Principles + +The static memory is a static array. The block size in the static memory pool is set during initialization and cannot be changed after initialization. + +The static memory pool consists of a control block **LOS\_MEMBOX\_INFO** and several memory blocks **LOS\_MEMBOX\_NODE** of the same size. The control block is located at the head of the memory pool and used for memory block management. It contains the memory block size \(**uwBlkSize**\), number of memory blocks \(**uwBlkNum**\), number of allocated memory blocks \(**uwBlkCnt**\), and free list \(**stFreeList**\). Memory is allocated and released by block size. Each memory block contains the pointer **pstNext** that points to the next memory block. + +**Figure 1** Static memory +![](figure/static-memory.png "static-memory") + +## Development Guidelines + +### When to Use + +Use static memory allocation to obtain memory blocks of the fixed size. When the memory is no longer required, release the static memory. + +### Available APIs + +The following table describes APIs available for OpenHarmony LiteOS-M static memory management. For more details about the APIs, see the API reference. + +**Table 1** APIs of the static memory module + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Initializing the static memory pool

+

LOS_MemboxInit

+

Initialize a static memory pool and sets the start address, total size, and size of each memory block based on the input parameters.

+

Clearing static memory blocks

+

LOS_MemboxClr

+

Clears the memory blocks allocated from the static memory pool.

+

Allocating or releasing static memory

+

LOS_MemboxAlloc

+

Allocates a memory block from a specified static memory pool.

+

LOS_MemboxFree

+

Releases a memory block allocated from the static memory pool.

+

Obtaining or printing static memory pool information

+

LOS_MemboxStatisticsGet

+

Obtains information about a specified static memory pool, including the total number of memory blocks in the memory pool, number of allocated memory blocks, and size of each memory block.

+

LOS_ShowBox

+

Prints information about all nodes in a specified static memory pool (the print level is LOS_INFO_LEVEL). The information includes the start address of the memory pool, memory block size, total number of memory blocks, start address of each idle memory block, and start addresses of all memory blocks.

+
+ +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>The number of memory blocks in the memory pool after initialization is not equal to the total memory size divided by the memory block size. The reason is the control block of the memory pool and the control header of each memory block have memory overheads. When setting the total memory size, you need to consider these factors. + +### How to Develop + +The typical development process of static memory is as follows: + +1. Plan a memory space as the static memory pool. +2. Call the **LOS\_MemboxInit** API to initialize the static memory pool. + + During initialization, the memory space specified by the input parameter is divided into multiple blocks \(the number of blocks depends on the total static memory size and the block size\). Insert all memory blocks to the free list, and place the control header at the beginning of the memory. + +3. Call the **LOS\_MemboxAlloc** API to allocate static memory. + + The system allocates the first free memory block from the free list and returns the start address of this memory block. + +4. Call the **LOS\_MemboxClr** API. + + Clear the memory block corresponding to the address contained in the input parameter. + +5. Call the **LOS\_MemboxFree** API. + + Add the memory block to the free list. + + +### Development Example + +The example below implements the following: + +1. Initialize a static memory pool. +2. Allocate a memory block from the static memory pool. +3. Store a piece of data in a memory block. +4. Print the data in the memory block. +5. Clear the data in the memory block. +6. Release the memory block. + + The sample code is as follows: + + +``` +#include "los_membox.h" + +VOID Example_StaticMem(VOID) +{ + UINT32 *mem = NULL; + UINT32 blkSize = 10; + UINT32 boxSize = 100; + UINT32 boxMem[1000]; + UINT32 ret; + + /* Initialize the memory pool.*/ + ret = LOS_MemboxInit(&boxMem[0], boxSize, blkSize); + if(ret != LOS_OK) { + printf("Membox init failed!\n"); + return; + } else { + printf("Membox init success!\n"); + } + + /* Request a memory block.*/ + mem = (UINT32 *)LOS_MemboxAlloc(boxMem); + if (NULL == mem) { + printf("Mem alloc failed!\n"); + return; + } + printf("Mem alloc success!\n"); + + /* Assign a value.*/ + *mem = 828; + printf("*mem = %d\n", *mem); + + /* Clear data in the memory block. */ + LOS_MemboxClr(boxMem, mem); + printf("Mem clear success \n *mem = %d\n", *mem); + + /* Release the memory.*/ + ret = LOS_MemboxFree(boxMem, mem); + if (LOS_OK == ret) { + printf("Mem free success!\n"); + } else { + printf("Mem free failed!\n"); + } + + return; +} +``` + +### Verification + +The output is as follows: + +``` +Membox init success! +Mem alloc success! +*mem = 828 +Mem clear success +*mem = 0 +Mem free success! +``` + diff --git a/en/device-dev/kernel/kernel-mini-basic-memory.md b/en/device-dev/kernel/kernel-mini-basic-memory.md new file mode 100644 index 00000000000..a473de6739f --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-memory.md @@ -0,0 +1,9 @@ +# Memory Management + +- **[Basic Concepts](kernel-mini-basic-memory-basic.md)** + +- **[Static Memory](kernel-mini-basic-memory-static.md)** + +- **[Dynamic Memory](kernel-mini-basic-memory-dynamic.md)** + + diff --git a/en/device-dev/kernel/kernel-mini-basic-soft-basic.md b/en/device-dev/kernel/kernel-mini-basic-soft-basic.md new file mode 100644 index 00000000000..e799f434a36 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-soft-basic.md @@ -0,0 +1,54 @@ +# Basic Concepts + +- [Working Principles](#section070665816719) + - [Timer States](#section115453813506) + - [Timer Modes](#section137521353175010) + + +The software timer is a software-simulated timer based on system tick interrupts. When the preset tick counter value has elapsed, the user-defined callback will be invoked. The timing precision is related to the cycle of the system tick clock. + +Due to the limitation in hardware, the number of hardware timers cannot meet users' requirements. Therefore, the OpenHarmony LiteOS-M kernel provides the software timer function. The software timer allows more timing services to be created, increasing the number of timers. + +The software timer supports the following functions: + +- Disabling the software timer using a macro +- Creating a software timer +- Starting a software timer +- Stopping a software timer +- Deleting a software timer +- Obtaining the number of remaining ticks of a software timer + +## Working Principles + +The software timer is a system resource. When modules are initialized, a contiguous section of memory is allocated for software timers. The maximum number of timers supported by the system is configured by the **LOSCFG\_BASE\_CORE\_SWTMR\_LIMIT** macro in **los\_config.h**. + +Software timers use a queue and a task resource of the system. The software timers are triggered based on the First In First Out \(FIFO\) rule. A timer with a shorter value is always closer to the queue head than a timer with a longer value, and is preferentially triggered. + +The software timer counts time in ticks. When a software timer is created and started, the OpenHarmony LiteOS-M kernel determines the timer expiry time based on the current system time \(in ticks\) and the timing interval set by the user, and adds the timer control structure to the global timing list. + +When a tick interrupt occurs, the tick interrupt handler scans the global timing list for expired timers. If such timers are found, the timers are recorded. + +When the tick interrupt handling function is complete, the software timer task \(with the highest priority\) is woken up. In this task, the timeout callback function for the recorded timer is called. + +### Timer States + +- OS\_SWTMR\_STATUS\_UNUSED + +The timer is not in use. When the timer module is initialized, all timer resources in the system are set to this state. + +- OS\_SWTMR\_STATUS\_CREATED + +The timer is created but not started or the timer is stopped. When **LOS\_SwtmrCreate** is called for a timer that is not in use or **LOS\_SwtmrStop** is called for a newly started timer, the timer changes to this state. + +- OS\_SWTMR\_STATUS\_TICKING + +The timer is running \(counting\). When **LOS\_SwtmrStart** is called for a newly created timer, the timer enters this state. + +### Timer Modes + +The OpenHarmony LiteOS-M kernel provides three types of software timers: + +- One-shot timer: Once started, the timer is automatically deleted after triggering only one timer event. +- Periodic timer: This type of timer periodically triggers timer events until it is manually stopped. +- One-shot timer deleted by calling an API + diff --git a/en/device-dev/kernel/kernel-mini-basic-soft-guide.md b/en/device-dev/kernel/kernel-mini-basic-soft-guide.md new file mode 100644 index 00000000000..41d1077832d --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-soft-guide.md @@ -0,0 +1,218 @@ +# Development Guidelines + +- [Available APIs](#section158501652121514) +- [How to Develop](#section783435801510) +- [Development Example](#section460018317164) + - [Example Description](#section3741753191918) + - [Sample Code](#section20760101182016) + - [Verification](#section11244112818172) + + +## Available APIs + +The following table describes APIs available for the OpenHarmony LiteOS-M software timer module. For more details about the APIs, see the API reference. + +**Table 1** Software timer APIs + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Creating or deleting timers

+

LOS_SwtmrCreate

+

Creates a software timer.

+

LOS_SwtmrDelete

+

Deletes a software timer.

+

Starting or stopping timers

+

LOS_SwtmrStart

+

Starts a software timer.

+

LOS_SwtmrStop

+

Stop a software timer.

+

Obtaining remaining ticks of a software timer

+

LOS_SwtmrTimeGet

+

Obtains the number of remaining ticks of a software timer.

+
+ +## How to Develop + +The typical development process of software timers is as follows: + +1. Configure the software timer. + - Check that **LOSCFG\_BASE\_CORE\_SWTMR** and **LOSCFG\_BASE\_IPC\_QUEUE** are set to **1**. + - Configure **LOSCFG\_BASE\_CORE\_SWTMR\_LIMIT** \(maximum number of software timers supported by the system\). + - Configure **OS\_SWTMR\_HANDLE\_QUEUE\_SIZE** \(maximum length of the software timer queue\). + +2. Call **LOS\_SwtmrCreate** to create a software timer. + - Create a software timer with the specified timing duration, timeout handling function, and triggering mode. + - Return the function execution result \(success or failure\). + +3. Call **LOS\_SwtmrStart** to start the software timer. +4. Call **LOS\_SwtmrTimeGet** to obtain the remaining number of ticks of the software timer. +5. Call **LOS\_SwtmrStop** to stop the software timer. +6. Call **LOS\_SwtmrDelete** to delete the software timer. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- Avoid too many operations in the callback function of the software timer. Do not use APIs or perform operations that may cause task suspension or blocking. +>- The software timers use a queue and a task resource of the system. The priority of the software timer tasks is set to **0** and cannot be changed. +>- The number of software timer resources that can be configured in the system is the total number of software timer resources available to the entire system, not the number of software timer resources available to users. For example, if the system software timer occupies one more resource, the number of software timer resources available to users decreases by one. +>- If a one-shot software timer is created, the system automatically deletes the timer and reclaims resources after the timer times out and the callback function is executed. +>- For a one-shot software timer that will not be automatically deleted after expiration, you need to call **LOS\_SwtmrDelete** to delete it and reclaim the timer resource to prevent resource leakage. + +## Development Example + +### Example Description + +The following programming example demonstrates how to: + +1. Create, start, delete, pause, and restart a software timer. +2. Use a one-shot software timer and a periodic software timer + +### Sample Code + +Prerequisites + +- In **los\_config.h**, **LOSCFG\_BASE\_CORE\_SWTMR** is enabled. +- In **los\_config.h**, **LOSCFG\_BASE\_CORE\_SWTMR\_ALIGN** is disabled. The sample code does not involve timer alignment. +- The maximum number of software timers supported by the system \(**LOSCFG\_BASE\_CORE\_SWTMR\_LIMIT**\) is configured. +- The maximum length of the software timer queue \(OS\_SWTMR\_HANDLE\_QUEUE\_SIZE\) is configured. + +The sample code is as follows: + +``` +#include "los_swtmr.h" + +/* Timer count */ +UINT32 g_timerCount1 = 0; +UINT32 g_timerCount2 = 0; + +/* Task ID*/ +UINT32 g_testTaskId01; + +void Timer1_Callback(UINT32 arg) //Callback function 1 +{ + UINT32 tick_last1; + g_timerCount1++; + tick_last1=(UINT32)LOS_TickCountGet(); //Obtain the current number of ticks. + printf("g_timerCount1=%d, tick_last1=%d\n", g_timerCount1, tick_last1); +} + +void Timer2_Callback(UINT32 arg) //Callback function 2 +{ + UINT32 tick_last2; + tick_last2=(UINT32)LOS_TickCountGet(); + g_timerCount2++; + printf("g_timerCount2=%d tick_last2=%d\n", g_timerCount2, tick_last2); +} + +void Timer_example(void) +{ + UINT32 id1; // timer id + UINT32 id2; // timer id + UINT32 uwTick; + + /* Create a one-shot software timer, with the number of ticks set to 1000. When the number of ticks reaches 1000, callback function 1 is executed. */ + LOS_SwtmrCreate (1000, LOS_SWTMR_MODE_ONCE, Timer1_Callback, &id1, 1); + + /* Create a periodic software timer and execute callback function 2 every 100 ticks. */ + LOS_SwtmrCreate(100, LOS_SWTMR_MODE_PERIOD, Timer2_Callback, &id2, 1); + printf("create Timer1 success\n"); + + LOS_SwtmrStart (id1); // Start the one-shot software timer. + printf("start Timer1 sucess\n"); + + LOS_TaskDelay(200); // Delay 200 ticks. + LOS_SwtmrTimeGet(id1, &uwTick); // Obtain the number of remaining ticks of the one-short software timer. + printf("uwTick =%d\n", uwTick); + + LOS_SwtmrStop(id1); // Stop the software timer. + printf("stop Timer1 sucess\n"); + + LOS_SwtmrStart(id1); + LOS_TaskDelay(1000); + + LOS_SwtmrDelete(id1); // Delete the software timer. + printf("delete Timer1 sucess\n"); + + LOS_SwtmrStart(id2); // Start the periodic software timer. + printf("start Timer2\n"); + + LOS_TaskDelay(1000); + LOS_SwtmrStop(id2); + LOS_SwtmrDelete(id2); +} + +UINT32 Example_TaskEntry(VOID) +{ + UINT32 ret; + TSK_INIT_PARAM_S task1; + + /* Lock task scheduling.*/ + LOS_TaskLock(); + + /* Create task 1.*/ + memset(&task1, 0, sizeof(TSK_INIT_PARAM_S)); + task1.pfnTaskEntry = (TSK_ENTRY_FUNC)Timer_example; + task1.pcName = "TimerTsk"; + task1.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE; + task1.usTaskPrio = 5; + ret = LOS_TaskCreate(&g_testTaskId01, &task1); + if (ret != LOS_OK) { + printf("TimerTsk create failed.\n"); + return LOS_NOK; + } + + /* Unlock task scheduling.*/ + LOS_TaskUnlock(); + + return LOS_OK; +} +``` + +### Verification + +The output is as follows: + +``` +create Timer1 success +start Timer1 sucess +uwTick =798 +stop Timer1 sucess +g_timerCount1=1, tick_last1=1208 +delete Timer1 sucess +start Timer2 +g_timerCount2=1 tick_last2=1313 +g_timerCount2=2 tick_last2=1413 +g_timerCount2=3 tick_last2=1513 +g_timerCount2=4 tick_last2=1613 +g_timerCount2=5 tick_last2=1713 +g_timerCount2=6 tick_last2=1813 +g_timerCount2=7 tick_last2=1913 +g_timerCount2=8 tick_last2=2013 +g_timerCount2=9 tick_last2=2113 +g_timerCount2=10 tick_last2=2213 +``` + diff --git a/en/device-dev/kernel/kernel-mini-basic-soft.md b/en/device-dev/kernel/kernel-mini-basic-soft.md new file mode 100644 index 00000000000..73dc746166f --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-soft.md @@ -0,0 +1,7 @@ +# Software Timer + +- **[Basic Concepts](kernel-mini-basic-soft-basic.md)** + +- **[Development Guidelines](kernel-mini-basic-soft-guide.md)** + + diff --git a/en/device-dev/kernel/kernel-mini-basic-task-basic.md b/en/device-dev/kernel/kernel-mini-basic-task-basic.md new file mode 100644 index 00000000000..0f3d463a36c --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-task-basic.md @@ -0,0 +1,96 @@ +# Basic Concepts + +- [Task-related Concepts](#section673132352511) +- [Task Running Mechanism](#section176294469251) + +From the perspective of the operating system, tasks are the minimum running units that compete for system resources. They can use or wait for CPUs, use system resources such as memory, and run independently. + +The task module of the OpenHarmony LiteOS-M provides multiple tasks and supports switching between tasks, helping users manage business process procedures. The task module has the following features: + +- Multiple tasks are supported. +- A task represents a thread. +- The preemptive scheduling mechanism is used for tasks. High-priority tasks can interrupt low-priority tasks. Low-priority tasks can be scheduled only after high-priority tasks are blocked or complete. +- Time slice round-robin is used to schedule tasks with the same priority. +- A total of 32 \(**0** to **31**\) priorities are defined. **0** is the highest priority, and **31** is the lowest. + +## Task-related Concepts + +**Task States** + +A task has multiple states. After the system initialization is complete, the created tasks can compete for certain resources in the system according to the scheduling procedure regulated by the kernel. + +A task can be in any of the following states: + +- Ready: The task is in the ready queue, waiting for execution by a CPU. +- Running: The task is being executed. +- Blocked: The task is not in the ready queue. The task may be suspended, delayed, waiting for a semaphore, waiting to read from or write into a queue, or reading from or writing into an event. +- Dead: The task execution is complete and waiting for the system to reclaim resources. + +**Task State Transition** + +**Figure 1** Task state transition +![](figure/task-state-transition.png "task-state-transition") + +The task transition process is as follows: + +- Ready → Running + + A task enters Ready state once created. When task switching occurs, the task with the highest priority in the Ready queue will be executed. The task being executed enters the Running state and is removed from the Ready queue. + +- Running → Blocked + + When a running task is blocked \(suspended, delayed, or reading semaphores\), it will be deleted from the Ready queue and changes from the Running state to the Blocked state. Then, task switching is triggered to run the task with the highest priority in the Ready queue. + +- Blocked → Ready \(Blocked → Running\) + + When a blocked task is recovered \(for example, the task is resumed, the delay period or semaphore read period times out, or the task successfully reads a semaphore\), the task will be added to the Ready queue and change from the Blocked state to the Ready state. If the priority of the recovered task is higher than that of the running task, task switching will be triggered to run the recovered task. Then, the task changes from the Ready state to the Running state. + +- Ready → Blocked + + When a task in the Ready state is blocked \(suspended\), the task changes to the Blocked state and is deleted from the Ready queue. The blocked task will not be scheduled until it is recovered. + +- Running → Ready + + When a task with a higher priority is created or recovered, tasks will be scheduled. The task with the highest priority in the Ready queue changes to the Running state. The originally running task changes to the Ready state and remains in the Ready queue. + +- Running → Dead + + When a running task is complete, it changes to the Dead state. The Dead state includes normal exit state as the task is complete and the Invalid state. For example, if a task is complete but is not automatically deleted, the task is in the Invalid state. + +- Blocked → Dead + + If an API is called to delete a blocked task, the task state change from Blocked to Dead. + + +**Task ID** + +You will receive a task ID after successfully creating a task. The task IDs are unique in the operating system. You can suspend, restore, or query tasks by task ID. + +**Task Priority** + +Tasks are executed based on their priority. When task switching occurs, the task with the highest priority in the Ready queue will be executed. + +**Task Entry Function** + +Function to be executed when a task is scheduled. This function is implemented by users and set in the task creation structure when a task is created. + +**Task Stack** + +An independent memory space for each task. The stack stores information such as local variables, registers, function parameters, and function return addresses. + +**Task Context** + +Resources, such as registers, used during the running of a task. When a task is suspended, other running tasks might modify the register values of the suspended task. If the original task context is not saved when task switching occurs, an unknown error may occur when the task is recovered. The context information of switched-out tasks is saved into their own task stacks so that the context information can be resumed along with tasks and the system can start from the interrupted code after the tasks are resumed. + +**Task Control Block** + +Each task has a task control block \(TCB\). A TCB contains task information, such as context stack pointer, state, priority, ID, name, and stack size. The TCB reflects the running status of a task. + +**Task Switching** + +Task switching involves actions, such as obtaining the task with the highest priority in the Ready queue, saving the context of the switched-out task, and restoring the context of the switched-in task. + +## Task Running Mechanism + +When a task is created, the system initializes the task stack and presets the context. The system places the task entry function in the corresponding position so that the function will be executed when the task enters the Running state for the first time. + diff --git a/en/device-dev/kernel/kernel-mini-basic-task-guide.md b/en/device-dev/kernel/kernel-mini-basic-task-guide.md new file mode 100644 index 00000000000..3b810a99972 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-task-guide.md @@ -0,0 +1,306 @@ +# Development Guidelines + +- [Available APIs](#section158501652121514) +- [How to Develop](#section783435801510) +- [Development Example](#section460018317164) + - [Verification](#section189023104457) + + +When a task is created, the OpenHarmony LiteOS-M kernel can perform operations, such as locking or unlocking task scheduling, suspending, restoring, and delaying the task, and setting or obtaining the task priority. + +## Available APIs + +The following table describes APIs available for the OpenHarmony LiteOS-M task module. For more details about the APIs, see the API reference. + +**Table 1** APIs of the task management module + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Creating or deleting a task

+

LOS_TaskCreateOnly

+

Creates a task and suspends the task to disable scheduling of the task. To enable scheduling of the task, call LOS_TaskResume to make the task enter the Ready state.

+

LOS_TaskCreate

+

Creates a task and places the task in the Ready state. If there is no task with a higher priority in the Ready queue, the task will be executed.

+

LOS_TaskDelete

+

Deletes the specified task.

+

Controlling task status

+

LOS_TaskResume

+

Resumes a suspended task to place the task in the Ready state.

+

LOS_TaskSuspend

+

Suspends the specified task and performs task switching.

+

LOS_TaskDelay

+

Makes a task wait for a period of time (in ticks) and releases CPU resources. When the delay time expires, the task enters the Ready state again. The input parameter is the number of ticks.

+

LOS_Msleep

+

Converts the input parameter number of milliseconds into number of ticks, and use the result to calls LOS_TaskDelay.

+

LOS_TaskYield

+

Sets the time slice of the current task to 0 to release CPU resources and schedule the task with the highest priority in the Ready queue to run.

+

Control task scheduling

+

LOS_TaskLock

+

Locks task scheduling. However, tasks can still be interrupted.

+

LOS_TaskUnlock

+

Unlocks task scheduling.

+

LOS_Schedule

+

Triggers task scheduling

+

Controlling task priority

+

LOS_CurTaskPriSet

+

Sets the priority for the current task.

+

LOS_TaskPriSet

+

Sets the priority for a specified task.

+

LOS_TaskPriGet

+

Obtains the priority of a specified task.

+

Obtaining task information

+

LOS_CurTaskIDGet

+

Obtains the ID of the current task.

+

LOS_NextTaskIDGet

+

Obtains the ID of the task with the highest priority in the Ready queue.

+

LOS_NewTaskIDGet

+

Same as LOS_NextTaskIDGet.

+

LOS_CurTaskNameGet

+

Obtains the name of the current task.

+

LOS_TaskNameGet

+

Obtains the name of a specified task.

+

LOS_TaskStatusGet

+

Obtains the state of a specified task.

+

LOS_TaskInfoGet

+

Obtains information about a specified task, including the task state, priority, stack size, stack pointer (SP), task entry function, and used stack space.

+

LOS_TaskIsRunning

+

Checks whether the task module has started scheduling.

+

Maintaining and testing task information

+

LOS_TaskSwitchInfoGet

+

Obtains task switching information. The macro LOSCFG_BASE_CORE_EXC_TSK_SWITCH must be enabled.

+
+ +## How to Develop + +The typical development process of the task module is as follows: + +1. Use **LOS\_TaskLock** to lock task scheduling and prevent high-priority tasks from being scheduled. +2. Use **LOS\_TaskCreate** to create a task. +3. Use **LOS\_TaskUnlock** to unlock task scheduling so that tasks can be scheduled by priority. +4. Use **LOS\_TaskDelay** to delay a task. +5. Use **LOS\_TaskSuspend** to suspend a task. +6. Use **LOS\_TaskResume** to resume the suspended task. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- Running idle tasks reclaims the TCBs and stacks in the to-be-recycled linked list. +>- The task name is a pointer without memory space allocated. When setting the task name, do not assign the local variable address to the task name pointer. +>- The task stack size is 8-byte aligned. Follow the "nothing more and nothing less" principle while determining the task stack size. +>- A running task cannot be suspended if task scheduling is locked. +>- Idle tasks and software timer tasks cannot be suspended or deleted. +>- In an interrupt handler or when a task is locked, the operation of calling **LOS\_TaskDelay** fails. +>- Locking task scheduling does not disable interrupts. Tasks can still be interrupted while task scheduling is locked. +>- Locking task scheduling must be used together with unlocking task scheduling. +>- Task scheduling may occur while a task priority is being set. +>- The maximum number of tasks that can be set for the operating system is the total number of tasks of the operating system, not the number of tasks available to users. For example, if the system software timer occupies one more task resource, the number of task resources available to users decreases by one. +>- **LOS\_CurTaskPriSet** and **LOS\_TaskPriSet** cannot be used in interrupts or used to modify the priorities of software timer tasks. +>- If the task corresponding to the task ID sent to **LOS\_TaskPriGet** has not been created or the task ID exceeds the maximum number of tasks, **-1** will be returned. +>- Resources such as a mutex or a semaphore allocated to a task must have been released before the task is deleted. + +## Development Example + +This example describes the priority-based task scheduling and use of task-related APIs, including creating, delaying, suspending, and resuming two tasks with different priorities, and locking/unlocking task scheduling. The sample code is as follows: + +``` +UINT32 g_taskHiId; +UINT32 g_taskLoId; +#define TSK_PRIOR_HI 4 +#define TSK_PRIOR_LO 5 + +UINT32 Example_TaskHi(VOID) +{ + UINT32 ret; + + printf("Enter TaskHi Handler.\n"); + + /* Delay the task for 100 ticks. The task is then suspended, and the remaining task with the highest priority (TaskLo) will be executed.*/ + ret = LOS_TaskDelay(100); + if (ret != LOS_OK) { + printf("Delay TaskHi Failed.\n"); + return LOS_NOK; + } + + /*After 100 ticks elapse, the task is resumed.*/ + printf("TaskHi LOS_TaskDelay Done.\n"); + + /* Suspend the task.*/ + ret = LOS_TaskSuspend(g_taskHiId); + if (ret != LOS_OK) { + printf("Suspend TaskHi Failed.\n"); + return LOS_NOK; + } + printf("TaskHi LOS_TaskResume Success.\n"); + return ret; +} + +/* Entry function of low-priority tasks */ +UINT32 Example_TaskLo(VOID) +{ + UINT32 ret; + + printf("Enter TaskLo Handler.\n"); + + /* Delay the task for 100 ticks. The task is then suspended, and the remaining task with the highest priority will be executed.*/ + ret = LOS_TaskDelay(100); + if (ret != LOS_OK) { + printf("Delay TaskLo Failed.\n"); + return LOS_NOK; + } + + printf("TaskHi LOS_TaskSuspend Success.\n"); + + /* Resume the suspended task g_taskHiId.*/ + ret = LOS_TaskResume(g_taskHiId); + if (ret != LOS_OK) { + printf("Resume TaskHi Failed.\n"); + return LOS_NOK; + } + return ret; +} + +/* Task entry function used to create two tasks with different priorities */ +UINT32 Example_TskCaseEntry(VOID) +{ + UINT32 ret; + TSK_INIT_PARAM_S initParam; + + /* Lock task scheduling to prevent newly created tasks from being scheduled prior to this task due to higher priority.*/ + LOS_TaskLock(); + + printf("LOS_TaskLock() Success!\n"); + + initParam.pfnTaskEntry = (TSK_ENTRY_FUNC)Example_TaskHi; + initParam.usTaskPrio = TSK_PRIOR_HI; + initParam.pcName = "TaskHi"; + initParam.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE; + + /* Create a high-priority task. The task will not be executed immediately after being created, because task scheduling is locked.*/ + ret = LOS_TaskCreate(&g_taskHiId, &initParam); + if (ret != LOS_OK) { + LOS_TaskUnlock(); + + printf("Example_TaskHi create Failed!\n"); + return LOS_NOK; + } + + printf("Example_TaskHi create Success!\n"); + + initParam.pfnTaskEntry = (TSK_ENTRY_FUNC)Example_TaskLo; + initParam.usTaskPrio = TSK_PRIOR_LO; + initParam.pcName = "TaskLo"; + initParam.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE; + + /*Create a low-priority task. The task will not be executed immediately after being created, because task scheduling is locked.*/ + ret = LOS_TaskCreate(&g_taskLoId, &initParam); + if (ret != LOS_OK) { + LOS_TaskUnlock(); + printf("Example_TaskLo create Failed!\n"); + return LOS_NOK; + } + + printf("Example_TaskLo create Success!\n"); + + /* Unlock task scheduling. The task with the highest priority in the Ready queue will be executed.*/ + LOS_TaskUnlock(); + + return LOS_OK; +} +``` + +### Verification + +The development is successful if the return result is as follows: + +``` +LOS_TaskLock() Success! +Example_TaskHi create Success! +Example_TaskLo create Success! +Enter TaskHi Handler. +Enter TaskLo Handler. +TaskHi LOS_TaskDelay Done. +TaskHi LOS_TaskSuspend Success. +TaskHi LOS_TaskResume Success. +``` + diff --git a/en/device-dev/kernel/kernel-mini-basic-task.md b/en/device-dev/kernel/kernel-mini-basic-task.md new file mode 100644 index 00000000000..9c9c0db3304 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-task.md @@ -0,0 +1,7 @@ +# Task Management + +- **[Basic Concepts](kernel-mini-basic-task-basic.md)** + +- **[Development Guidelines](kernel-mini-basic-task-guide.md)** + + diff --git a/en/device-dev/kernel/kernel-mini-basic-time-basic.md b/en/device-dev/kernel/kernel-mini-basic-time-basic.md new file mode 100644 index 00000000000..b8a2b749f8d --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-time-basic.md @@ -0,0 +1,23 @@ +# Basic Concepts + +- [Time Unit](#section97172532397) + +Time management provides all time-related services for applications based on the system clock. + +The system clock is generated by the interrupts triggered by the output pulse of a timer or counter. The system clock is generally defined as an integer or a long integer. The period of an output pulse is a "clock tick". The system clock is also called time scale or tick. + +People use second or millisecond as the time unit, while the operating system uses tick. When operations such as suspending a task or delaying a task are performed, the time management module converts time between ticks and seconds or milliseconds. + +The time management module of the OpenHarmony LiteOS-M kernel provides time conversion and statistics functions. + +## Time Unit + +- Cycle + + Cycle is the minimum time unit in the system. The cycle duration is determined by the system clock frequency, that is, the number of cycles per second. + +- Tick + + Tick is the basic time unit of the operating system and is determined by the number of ticks per second configured by the user. + + diff --git a/en/device-dev/kernel/kernel-mini-basic-time-guide.md b/en/device-dev/kernel/kernel-mini-basic-time-guide.md new file mode 100644 index 00000000000..336ce25a55d --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic-time-guide.md @@ -0,0 +1,157 @@ +# Development Guidelines + +- [Available APIs](#section158501652121514) +- [How to Develop](#section783435801510) +- [Development Example](#section460018317164) + - [Example Description](#section127752801718) + - [Sample Code](#section321653551711) + - [Verification](#section4366193318167) + + +The time management module provides APIs to implement conversion between the system running time, ticks, and seconds/milliseconds. + +## Available APIs + +The following table describes APIs available for the OpenHarmony LiteOS-M time management. For more details about the APIs, see the API reference. + +**Table 1** APIs of the time management module + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Time conversion

+

LOS_MS2Tick

+

Converts milliseconds into ticks.

+

LOS_Tick2MS

+

Converts ticks into milliseconds.

+

OsCpuTick2MS

+

Converts cycles into milliseconds. Two UINT32 values indicate the high-order and low-order 32 bits of the result value, respectively.

+

OsCpuTick2US

+

Converts cycles into microseconds. Two UINT32 values indicate the high-order and low-order 32 bits of the result value, respectively.

+

Time statistics

+

LOS_SysClockGet

+

Obtains the system clock.

+

LOS_TickCountGet

+

Obtains the number of ticks since the system starts.

+

LOS_CyclePerTickGet

+

Obtains the number of cycles for each tick.

+
+ +## How to Develop + +The typical development process of time management is as follows: + +1. Complete board configuration and adaptation as required, and configure the system clock frequency \(**OS\_SYS\_CLOCK** in Hz and **LOSCFG\_BASE\_CORE\_TICK\_PER\_SECOND**\). The default value of **OS\_SYS\_CLOCK** varies with the hardware platform. +2. Call the clock conversion and statistics APIs. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- The time management module depends on **OS\_SYS\_CLOCK** and **LOSCFG\_BASE\_CORE\_TICK\_PER\_SECOND**. +>- The number of system ticks is not counted when the interrupt feature is disabled. Therefore, the number of ticks cannot be used as the accurate time. +>- The configuration options are maintained in the **target\_config.h** file of the development board project. + +## Development Example + +### Example Description + +The following example describes basic time management methods, including: + +1. Time conversion: converts milliseconds to ticks or converts ticks to milliseconds. +2. Time statistics: obtains the number of cycles per tick, number of ticks since system startup, and number of delayed ticks. + +### Sample Code + +Prerequisites + +- The default value of **LOSCFG\_BASE\_CORE\_TICK\_PER\_SECOND** is **100**. +- The system clock frequency **OS\_SYS\_CLOCK** is configured. + +Time conversion: + +``` +VOID Example_TransformTime(VOID) +{ + UINT32 ms; + UINT32 tick; + + tick = LOS_MS2Tick(10000); // Convert 10000 ms into ticks. + dprintf("tick = %d \n", tick); + ms = LOS_Tick2MS(100); // Convert 100 ticks into ms. + dprintf("ms = %d \n", ms); +} +``` + +Time statistics and delay: + +``` +VOID Example_GetTime(VOID) +{ + UINT32 cyclePerTick; + UINT64 tickCount; + + cyclePerTick = LOS_CyclePerTickGet(); + if(0 != cyclePerTick) { + dprintf("LOS_CyclePerTickGet = %d \n", cyclePerTick); + } + + tickCount = LOS_TickCountGet(); + if(0 != tickCount) { + dprintf("LOS_TickCountGet = %d \n", (UINT32)tickCount); + } + + LOS_TaskDelay(200); + tickCount = LOS_TickCountGet(); + if(0 != tickCount) { + dprintf("LOS_TickCountGet after delay = %d \n", (UINT32)tickCount); + } +} +``` + +### Verification + +The development is successful if the return result is as follows: + +Time conversion: + +``` +tick = 1000 +ms = 1000 +``` + +Time statistics and delay: + +``` +LOS_CyclePerTickGet = 495000 +LOS_TickCountGet = 1 +LOS_TickCountGet after delay = 201 +``` + diff --git a/en/device-dev/kernel/kernel-mini-basic.md b/en/device-dev/kernel/kernel-mini-basic.md new file mode 100644 index 00000000000..87b28cd0549 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-basic.md @@ -0,0 +1,15 @@ +# Basic Kernel + +- **[Interrupt Management](kernel-mini-basic-interrupt.md)** + +- **[Task Management](kernel-mini-basic-task.md)** + +- **[Memory Management](kernel-mini-basic-memory.md)** + +- **[Kernel Communication Mechanisms](kernel-mini-basic-ipc.md)** + +- **[Time Management](kernel-basic-mini-time.md)** + +- **[Software Timer](kernel-mini-basic-soft.md)** + + diff --git a/en/device-dev/kernel/kernel-mini-extend-cpup-basic.md b/en/device-dev/kernel/kernel-mini-extend-cpup-basic.md new file mode 100644 index 00000000000..cef5f255655 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-extend-cpup-basic.md @@ -0,0 +1,31 @@ +# Basic Concepts + +- [Working Principles](#section96644177124) + +The central processing unit percent \(CPUP\) includes the system CPUP and task CPUP. + +The system CPUP is the CPU usage of the system within a period of time. It reflects the CPU load and the system running status \(idle or busy\) in the given period of time. The valid range of the system CPUP is 0 to 100 in percentage. The precision can be adjusted through configuration. The value **100** indicates that the system runs with full load. + +Task CPUP refers to the CPU usage of a single task. It reflects the task status, busy or idle, in a period of time. The valid range of task CPUP is 0 to 100 in percentage. The precision can be adjusted through configuration. The value **100** indicates that the task is being executed for the given period of time. + +With the system CPUP, you can determine whether the current system load exceeds the designed specifications. + +With the CPUP of each task, you can determine whether the CPU usage of each task meets expectations of the design. + +## Working Principles + +The OpenHarmony LiteOS-M CPUP records the system CPU usage on a task basis. When task switching occurs, the task start time and task switch-out or exit time are recorded. Each time when a task exits, the system accumulates the CPU time used by the task. + +You can configure this function in **target\_config.h**. + +The OpenHarmony LiteOS-M provides the following types of CPUP information: + +- System CPUP +- Task CPUP + +The CPUP is calculated as follows: + +System CPUP = Total running time of all tasks except idle tasks/Total running time of the system + +Task CPUP = Total running time of the task/Total running time of the system + diff --git a/en/device-dev/kernel/kernel-mini-extend-cpup-guide.md b/en/device-dev/kernel/kernel-mini-extend-cpup-guide.md new file mode 100644 index 00000000000..bbbf020701a --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-extend-cpup-guide.md @@ -0,0 +1,163 @@ +# Development Guidelines + +- [Available APIs](#section158501652121514) +- [How to Develop](#section783435801510) +- [Development Example](#section460018317164) + - [Example Description](#section51413507517) + - [Sample Code](#section17617965523) + - [Verification](#section1968771515188) + + +## Available APIs + +**Table 1** Functions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Obtaining the system CPU usage

+

LOS_SysCpuUsage

+

Obtains the current system CPUP.

+

LOS_HistorySysCpuUsage

+

Obtains the historical CPUP of the system.

+

Obtaining the task CPUP

+

LOS_TaskCpuUsage

+

Obtains the CPUP of a specified task.

+

LOS_HistoryTaskCpuUsage

+

Obtains the historical CPUP of a specified task.

+

LOS_AllCpuUsage

+

Obtains the CPUP of all tasks.

+

Outputting the task CPUP

+

LOS_CpupUsageMonitor

+

Outputs the historical CPUP of a task.

+
+ +## How to Develop + +The typical CPUP development process is as follows. + +1. Call **LOS\_SysCpuUsage** to obtain the system CPUP. +2. Call **LOS\_HistorySysCpuUsage** to obtain the historical CPUP of the system. +3. Call **LOS\_TaskCpuUsage** to obtain the CPUP of a specified task. + - If the task has been created, disable interrupt, obtain the CPUP, and then enable interrupt. + - If the task is not created, return an error code. + +4. Call **LOS\_HistoryTaskCpuUsage** to obtain the historical CPUP of a specified task. + - If the task has been created, disable interrupt, obtain the CPUP in different modes, and then enable interrupt. + - If the task is not created, return an error code. + +5. Call **LOS\_AllCpuUsage** to obtain the CPUP of all tasks. + - If the CPUP is initialized, disable interrupt, obtain the CPUP in different modes, and then enable interrupt. + - If CPUP is not initialized or has invalid input parameters, return an error code. + + +## Development Example + +### Example Description + +This example implements the following: + +1. Create a task for the CPUP test. +2. Obtain the CPUP of the current system. +3. Obtain the historical system CPUP in different modes. +4. Obtain the CPUP of the created test task. +5. Obtain the CPUP of the created test task in different modes. + +### Sample Code + +Prerequisites + +In **target\_config.h**, the **LOSCFG\_BASE\_CORE\_CPUP** parameter is enabled. + +The sample code is as follows: + +``` +#include "los_task.h" +#include "los_cpup.h" +#define MODE 4 +UINT32 g_cpuTestTaskID; +VOID ExampleCpup(VOID) +{ + printf("entry cpup test example\n"); + while(1) { + usleep(100); + } +} +UINT32 ItCpupTest(VOID) +{ + UINT32 ret; + UINT32 cpupUse; + TSK_INIT_PARAM_S cpupTestTask = { 0 }; + memset(&cpupTestTask, 0, sizeof(TSK_INIT_PARAM_S)); + cpupTestTask.pfnTaskEntry = (TSK_ENTRY_FUNC)ExampleCpup; + cpupTestTask.pcName = "TestCpupTsk"; + cpupTestTask.uwStackSize = 0x800; + cpupTestTask.usTaskPrio = 5; + ret = LOS_TaskCreate(&g_cpuTestTaskID, &cpupTestTask); + if(ret != LOS_OK) { + printf("cpupTestTask create failed .\n"); + return LOS_NOK; + } + + usleep(100); + + /* Obtain the current CPUP of the system. */ + cpupUse = LOS_SysCpuUsage(); + printf("the current system cpu usage is: %u.%u\n", + cpupUse / LOS_CPUP_PRECISION_MULT, cpupUse % LOS_CPUP_PRECISION_MULT); + + cpupUse = LOS_HistorySysCpuUsage(CPU_LESS_THAN_1S); + /* Obtain the CPUP of the specified task (cpupTestTask in this example).*/ + printf("the history system CPUP in all time: %u.%u\n", + cpupUse / LOS_CPUP_PRECISION_MULT, cpupUse % LOS_CPUP_PRECISION_MULT); + cpupUse = LOS_TaskCpuUsage(g_cpuTestTaskID); + /* Obtain the CPUP of the specified historical task (cpupTestTask in this example) since the system startup. */ + printf("cpu usage of the cpupTestTask:\n TaskID: %d\n usage: %u.%u\n", + g_cpuTestTaskID, cpupUse / LOS_CPUP_PRECISION_MULT, cpupUse % LOS_CPUP_PRECISION_MULT); + cpupUse = LOS_HistoryTaskCpuUsage(g_cpuTestTaskID, CPU_LESS_THAN_1S); + printf("cpu usage of the cpupTestTask in all time:\n TaskID: %d\n usage: %u.%u\n", + g_cpuTestTaskID, cpupUse / LOS_CPUP_PRECISION_MULT, cpupUse % LOS_CPUP_PRECISION_MULT); + return LOS_OK; +} +``` + +### Verification + +The development is successful if the return result is as follows: + +``` +entry cpup test example +the current system cpu usage is : 1.5 + the history system cpu usage in all time: 3.0 + cpu usage of the cpupTestTask: TaskID:10 usage: 0.0 + cpu usage of the cpupTestTask in all time: TaskID:10 usage: 0.0 +``` + diff --git a/en/device-dev/kernel/kernel-mini-extend-cpup.md b/en/device-dev/kernel/kernel-mini-extend-cpup.md new file mode 100644 index 00000000000..2c0e14e9945 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-extend-cpup.md @@ -0,0 +1,7 @@ +# CPUP + +- **[Basic Concepts](kernel-mini-extend-cpup-basic.md)** + +- **[Development Guidelines](kernel-mini-extend-cpup-guide.md)** + + diff --git a/en/device-dev/kernel/kernel-mini-extend-dynamic-loading-basic.md b/en/device-dev/kernel/kernel-mini-extend-dynamic-loading-basic.md new file mode 100644 index 00000000000..591fb131ef2 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-extend-dynamic-loading-basic.md @@ -0,0 +1,91 @@ +# Basic Concepts + +- [Working Principles](#section139861939219) + - [Exporting the Symbol Table](#section15414650102716) + - [Loading an ELF File](#section5221181562810) + - [ELF File Link](#section68441639182817) + +- [ELF Specifications](#section187315541916) + - [ELF Type](#section1701552268) + - [Options for Linking](#section17292133274) + + +In small devices with limited hardware resources, dynamic algorithm deployment capability is required to solve the problem that multiple algorithms cannot be deployed at the same time. The LiteOS-M kernel uses the Executable and Linkable Format \(ELF\) because it is easy to use and compatible with a wide variety of platforms. The LiteOS-M provides APIs similar to **dlopen** and **dlsym**. Apps can load and unload required algorithm libraries by using the APIs provided by the dynamic loading module. As shown in the following figure, the app obtains the corresponding information output through the API required by the third-party algorithm library. The third-party algorithm library depends on the basic APIs provided by the kernel, such as **malloc**. After the app loads the API and relocates undefined symbols, it can call the API to complete the function. The dynamic loading component supports only the Arm architecture. + +**Figure 1** LiteOS-M kernel dynamic loading architecture +![](figure/liteos-m-kernel-dynamic-loading-architecture.png "liteos-m-kernel-dynamic-loading-architecture") + +## Working Principles + +### Exporting the Symbol Table + +The kernel needs to proactively expose the API required by the dynamic library when the shared library calls a kernel API, as shown in the following figure. This mechanism compiles the symbol information to the specified section and calls the **SYM\_EXPORT** macro to export information of the specified symbol. The symbol information is described in the structure **SymInfo**. Its members include the symbol name and symbol address information. The macro **SYM\_EXPORT** imports the symbol information to the **.sym.\*** section by using the **\_\_attribute\_\_** compilation attribute. + +``` +typedef struct { + CHAR *name; + UINTPTR addr; +} SymInfo; + +#define SYM_EXPORT(func) \ +const SymInfo sym_##func __attribute__((section(".sym."#func))) = { \ + .name = #func, \ + .addr = (UINTPTR)func \ +}; +``` + +**Figure 2** Exported symbol table information +![](figure/exported-symbol-table-information.png "exported-symbol-table-information") + +### Loading an ELF File + +During the loading process, the LOAD section to be loaded to the memory is obtained based on the ELF file handle and the section offset of the program header table. Generally, there are two sections: read-only section and read-write section. You can run the **readelf -l** command to view the LOAD section information of the ELF file. The physical memory is requested according to the related alignment attributes. Then, a code section or a data segment is written into the memory based on the loading base address and an offset of each section. + +``` +$ readelf -l lib.so + +Elf file type is DYN (Shared object file) +Entry point 0x5b4 +There are 4 program headers, starting at offset 52 + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + EXIDX 0x000760 0x00000760 0x00000760 0x00008 0x00008 R 0x4 + LOAD 0x000000 0x00000000 0x00000000 0x0076c 0x0076c R E 0x10000 + LOAD 0x00076c 0x0001076c 0x0001076c 0x0010c 0x00128 RW 0x10000 + DYNAMIC 0x000774 0x00010774 0x00010774 0x000c8 0x000c8 RW 0x4 + + Section to Segment mapping: + Segment Sections... + 00 .ARM.exidx + 01 .hash .dynsym .dynstr .rel.dyn .rel.plt .init .plt .text .fini .ARM.exidx .eh_frame + 02 .init_array .fini_array .dynamic .got .data .bss + 03 .dynamic +``` + +**Figure 3** Process of loading an ELF file +![](figure/process-of-loading-an-elf-file.png "process-of-loading-an-elf-file") + +### ELF File Link + +A relocation table is obtained by using a **.dynamic** section of the ELF file. Each entry that needs to be relocated in the table is traversed. Then, the symbol is searched, based on the symbol name that needs to be relocated, in the shared library and the exported symbol table provided by the kernel. The relocation information is updated based on the symbol found. + +**Figure 4** ELF file linking process +![](figure/elf-file-linking-process.png "elf-file-linking-process") + +## ELF Specifications + +### ELF Type + +When compiling a shared library, you can add **-fPIC** \(a compilation option\) to compile location-independent code. The shared library file type is **ET\_DYN**, which can be loaded to any valid address range. + +Example: **arm-none-eabi-gcc -fPIC –shared –o lib.so lib.c** + +### Options for Linking + +1. **-nostdlib**: Do not use the lib library in the compiler when linking. +2. **-nostartfiles**: Do not use the startup files in the compiler when linking. +3. **-fPIC**: compiles location-independent shared libraries. +4. **-z max-page-size=4**: sets the number of alignment bytes of the loadable sections in the binary file to **4**. This setting saves memory and can be used for a dynamic library. +5. **-mcpu=** specifies the CPU architecture. + diff --git a/en/device-dev/kernel/kernel-mini-extend-dynamic-loading-guide.md b/en/device-dev/kernel/kernel-mini-extend-dynamic-loading-guide.md new file mode 100644 index 00000000000..959cb55dbf7 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-extend-dynamic-loading-guide.md @@ -0,0 +1,187 @@ +# Development Guidelines + +- [Available APIs](#section158501652121514) +- [How to Develop](#section5241132917523) +- [Development Example](#section8708112313531) + +## Available APIs + +**Table 1** Functions + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Dynamic loading

+

LOS_DynlinkInit

+

Initializes the dynamic linker linked list and mutex.

+

LOS_SoLoad

+

Loads the shared library in a specified path.

+

LOS_FindSym

+

Searches for the specified symbol based on the shared library handle.

+

LOS_SoUnload

+

Unloads the shared library handle.

+
+ +## How to Develop + +1. Use the arm-none-eabi-gcc cross compiler to compile the shared library and build a FAT or LittleFS image, and burn the image to the flash memory. +2. In the **target\_config.h** file, set **LOSCFG\_DYNLINK** to **1** to enable the dynamic loading module. +3. Call **LOS\_SoLoad** to load the shared library in the specified path. +4. Call **LOS\_FindSym** to search for the specified symbol and obtain the symbol address. +5. Call **LOS\_SoUnload** to unload the handle of the specified shared library. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>1. For details about the compilation options required for compiling the shared library using the cross compiler, see the ELF specifications. +>2. Before creating a file system image, you need to adapt the FAT or LittleFS to the specific board. +>3. The shared library does not depend on the libc library in the compiler and does not support C++. +>4. The shared library depends only on the APIs provided by the kernel and cannot depend on other shared libraries. + +## Development Example + +The following uses the Arm Cortex-M4 board as an example. + +1. Sample Code and Compilation of the Shared Library + + The sample code is used to test the calling of global symbols and calling of the kernel APIs **malloc**, **free**, and **memset**. + + ``` + #include + #include + + int g_param = 10; + + int callee(int a, int b) + { + char *addr = malloc(g_param); + if (addr == NULL) { + return 0; + } + + memset(addr, '1', g_param); + + free(addr); + return a + b + g_param; + } + + int caller(int a, int b) + { + return callee(a, b); + } + ``` + + ``` + $ arm-none-eabi-gcc -fPIC -shared -mcpu=cortex-m4 -nostdlib -nostartfiles -z max-page-size=4 -o test.so test.c + ``` + +2. Export the malloc, free, and memset symbols used in the shared library. Compile the following code into a .c file and use it for OS compilation. + + ``` + #include "stdlib.h" + #include "string.h" + + SYM_EXPORT(malloc); + SYM_EXPORT(free); + SYM_EXPORT(memset); + ``` + +3. Determine the kernel compilation environment and add the following statement to the linking script of the compiler to ensure that the symbol table information is output to the specified section during compilation and linking. + + Add the following statement to the **.icf** linking script of the IAR compiler: + + ``` + keep {section .TABLE.START}; + keep {section .sym.*}; + keep {section .table.end}; + define block SYMBOL_TABLE with fixed order + { + section .TABLE.START, + section .sym.*, + section .table.end + }; + place in ROM_region {readonly, block SYMBOL_TABLE}; + ``` + + Add the following statement to the **.ld** linking script of the GCC compiler: + + ``` + __sym_table_start = .; + KEEP(*( SORT (.sym.*))); + __sym_table_end = .; + ``` + +4. Load, link, execute, and unload the shared library. + + The sample code is used to test whether the functions of the **LOS\_SoLoad**, **LOS\_FindSym**, and **LOS\_SoUnload** can be implemented normally and whether the symbols located by using **LOS\_FindSym** can be properly called. + + ``` + #include "los_dynlink.h" + + VOID DynlinkTest(VOID) + { + VOID *handle = NULL; + INT32 (*func)(INT32, INT32) = NULL; + CHAR *symbolName = "caller"; + CHAR *dsoName = "/lib/test.so"; + INT32 ret; + + handle = (VOID *)LOS_SoLoad(dsoName, NULL); + if (handle == NULL) { + printf("Failed to load so\n"); + return; + } + + func = (INT32 (*)(INT32, INT32))LOS_FindSym(handle, symbolName); + if (func == NULL) { + printf("Failed to find symbol\n"); + LOS_SoUnload(handle); + return; + } + + ret = func(1, 1); + if (ret != 12) { + printf("Failed to execute function\n"); + LOS_SoUnload(handle); + return; + } + + ret = LOS_SoUnload(handle); + if (ret != 0) { + printf("Failed to unload so\n"); + } + + + printf("Success!\n"); + } + ``` + +5. Verification + + ``` + Success! + ``` + + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>In this example, the file system path is **/lib/test.so**. +>You can create a task and call **DynlinkTest** in the task to perform the test. + diff --git a/en/device-dev/kernel/kernel-mini-extend-dynamic-loading.md b/en/device-dev/kernel/kernel-mini-extend-dynamic-loading.md new file mode 100644 index 00000000000..4e652b4cd89 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-extend-dynamic-loading.md @@ -0,0 +1,7 @@ +# Dynamic Loading + +- **[Basic Concepts](kernel-mini-extend-dynamic-loading-basic.md)** + +- **[Development Guidelines](kernel-mini-extend-dynamic-loading-guide.md)** + + diff --git a/en/device-dev/kernel/kernel-mini-extend-file-fat.md b/en/device-dev/kernel/kernel-mini-extend-file-fat.md new file mode 100644 index 00000000000..2c9e3be0ccd --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-extend-file-fat.md @@ -0,0 +1,177 @@ +# FAT + +- [Basic Concepts](#section1772629121418) +- [Development Guidelines](#section1149072811148) + - [Adaptation of Drivers](#section19174939191414) + - [How to Develop](#section131211626151513) + +- [Development Example](#section1133718619459) + - [Example Description](#section45337345313) + - [Sample Code](#section119813171539) + - [Verification](#section7987101232311) + + +## Basic Concepts + +File Allocation Table \(FAT\) is a file system developed for personal computers. It consists of the DOS Boot Record \(DBR\) region, FAT region, and Data region. Each entry in the FAT region records information about the corresponding cluster in the storage device. The cluster information includes whether the cluster is used, number of the next cluster of the file, whether the file ends with the cluster. The FAT file system supports multiple formats, such as FAT12, FAT16, and FAT32. The numbers 12, 16, and 32 indicate the number of bytes per cluster within the FAT, respectively. The FAT file system supports multiple media, especially removable storage media \(such as USB flash drives, SD cards, and removable hard drives\). The FAT file system ensures good compatibility between embedded devices and desktop systems \(such as Windows and Linux\) and facilitates file management. + +The OpenHarmony kernel supports FAT12, FAT16, and FAT32 file systems. These file systems require a tiny amount of code to implement, use less resources, support a variety of physical media, and are tailorable and compatible with Windows and Linux systems. They also support identification of multiple devices and partitions. The kernel supports multiple partitions on hard drives and allows creation of the FAT file system on the primary partition and logical partition. + +## Development Guidelines + +### Adaptation of Drivers + +The use of the FAT file system requires support from the underlying MultiMediaCard \(MMC\) drivers. To run FatFS on a board with an MMC storage device, you must: + +1. Implement the **disk\_status**, **disk\_initialize**, **disk\_read**, **disk\_write**, and **disk\_ioctl** APIs to adapt to the embedded MMC \(eMMC\) drivers on the board. + +2. Add the **fs\_config.h** file with information such as **FS\_MAX\_SS** \(maximum sector size of the storage device\) and **FF\_VOLUME\_STRS** \(partition names\) configured. The following is an example: + +``` +#define FF_VOLUME_STRS "system", "inner", "update", "user" +#define FS_MAX_SS 512 +#define FAT_MAX_OPEN_FILES 50 +``` + +### How to Develop + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- Note the following when managing FatFS files and directories: +> - A file cannot exceed 4 GB. +> - **FAT\_MAX\_OPEN\_FILES** specifies the maximum number files you can open at a time, and **FAT\_MAX\_OPEN\_DIRS** specifies the maximum number of folders you can open at a time. +> - Root directory management is not supported. File and directory names start with the partition name. For example, **user/testfile** indicates the file or directory **testfile** in the **user** partition. +> - To open a file multiple times, use **O\_RDONLY** \(read-only mode\). **O\_RDWR** or **O\_WRONLY** \(writable mode\) can open a file only once. +> - The read and write pointers are not separated. If a file is open in **O\_APPEND** mode, the read pointer is also at the end of the file. If you want to read the file from the beginning, you must manually set the position of the read pointer. +> - File and directory permission management is not supported. +> - The **stat** and **fstat** APIs do not support query of the modification time, creation time, and last access time. The Microsoft FAT protocol does not support time before A.D. 1980. +>- Note the following when mounting and unmounting FatFS partitions: +> - Partitions can be mounted with the read-only attribute. When the input parameter of the **mount** function is **MS\_RDONLY**, all APIs with the write attribute, such as **write**, **mkdir**, **unlink**, and **open** with **non-O\_RDONLY** attributes, will be rejected. +> - You can use the **MS\_REMOUNT** flag with **mount** to modify the permission for a mounted partition. +> - Before unmounting a partition, ensure that all directories and files in the partition are closed. +> - You can use **umount2** with the **MNT\_FORCE** parameter to forcibly close all files and folders and unmount the partition. However, this may cause data loss. Therefore, exercise caution when running **umount2**. +>- The FAT file system supports re-partitioning and formatting of storage devices using **fatfs\_fdisk** and **fatfs\_format**. +> - If a partition is mounted before being formatted using **fatfs\_format**, you must close all directories and files in the partition and unmount the partition first. +> - Before calling **fatfs\_fdisk**, ensure that all partitions in the device are unmounted. +> - Using **fatfs\_fdisk** and **fatfs\_format** may cause data loss. Exercise caution when using them. + +## Development Example + +### Example Description + +This example implements the following: + +1. Create the **user/test** directory. +2. Create the **file.txt** file in the **user/test** directory. +3. Write "Hello OpenHarmony!" at the beginning of the file. +4. Save the update of the file to the device. +5. Set the offset to the beginning of the file. +6. Read the file. +7. Close the file. +8. Delete the file. +9. Delete the directory. + +### Sample Code + +Prerequisites + +- The MMC device partition is mounted to the **user** directory. + +The sample code is as follows: + +``` +#include +#include +#include "sys/stat.h" +#include "fcntl.h" +#include "unistd.h" + +#define LOS_OK 0 +#define LOS_NOK -1 + +int FatfsTest(void) +{ + int ret; + int fd = -1; + ssize_t len; + off_t off; + char dirName[20] = "user/test"; + char fileName[20] = "user/test/file.txt"; + char writeBuf[20] = "Hello OpenHarmony!"; + char readBuf[20] = {0}; + + /* Create the user/test directory.*/ + ret = mkdir(dirName, 0777); + if (ret != LOS_OK) { + printf("mkdir failed.\n"); + return LOS_NOK; + } + + /* Create the file user/test/file.txt and make it readable and writable.*/ + fd = open(fileName, O_RDWR | O_CREAT, 0777); + if (fd < 0) { + printf("open file failed.\n"); + return LOS_NOK; + } + + /* Write the content from writeBuf to the file. */ + len = write(fd, writeBuf, strlen(writeBuf)); + if (len != strlen(writeBuf)) { + printf("write file failed.\n"); + return LOS_NOK; + } + + /* Save the update of the file to the device.*/ + ret = fsync(fd); + if (ret != LOS_OK) { + printf("fsync failed.\n"); + return LOS_NOK; + } + + /* Move the read/write pointer to the file header. */ + off = lseek(fd, 0, SEEK_SET); + if (off != 0) { + printf("lseek failed.\n"); + return LOS_NOK; + } + + /* Read the file content, with the same size as readBuf, to readBuf.*/ + len = read(fd, readBuf, sizeof(readBuf)); + if (len != strlen(writeBuf)) { + printf("read file failed.\n"); + return LOS_NOK; + } + printf("%s\n", readBuf); + + /* Close the file. */ + ret = close(fd); + if (ret != LOS_OK) { + printf("close failed.\n"); + return LOS_NOK; + } + + /*Delete the file user/test/file.txt.*/ + ret = unlink(fileName); + if (ret != LOS_OK) { + printf("unlink failed.\n"); + return LOS_NOK; + } + + /*Delete the user/test directory.*/ + ret = rmdir(dirName); + if (ret != LOS_OK) { + printf("rmdir failed.\n"); + return LOS_NOK; + } + + return LOS_OK; +} +``` + +### Verification + +The development is successful if the return result is as follows: + +``` +Hello OpenHarmony! +``` + diff --git a/en/device-dev/kernel/kernel-mini-extend-file-lit.md b/en/device-dev/kernel/kernel-mini-extend-file-lit.md new file mode 100644 index 00000000000..ed34604fff4 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-extend-file-lit.md @@ -0,0 +1,7 @@ +# LittleFS + +- **[Basic Concepts](kernel-mini-extend-file-littlefs-basic.md)** + +- **[Development Guidelines](kernel-mini-extend-file-littlefs-guide.md)** + + diff --git a/en/device-dev/kernel/kernel-mini-extend-file-littlefs-basic.md b/en/device-dev/kernel/kernel-mini-extend-file-littlefs-basic.md new file mode 100644 index 00000000000..b794e8bbed5 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-extend-file-littlefs-basic.md @@ -0,0 +1,6 @@ +# Basic Concepts + +LittleFS is a small file system designed for flash. By combining the log-structured file system and the copy-on-write \(COW\) file system, LittleFS stores metadata in log structure and data in the COW structure. This special storage empowers LittleFS high power-loss resilience. LittleFS uses the statistical wear leveling algorithm when allocating COW data blocks, effectively prolonging the service life of flash devices. LittleFS is designed for small-sized devices with limited resources, such as ROM and RAM. All RAM resources are allocated through a buffer with the fixed size \(configurable\). That is, the RAM usage does not grow with the file system. + +LittleFS is a good choice when you look for a flash file system that is power-cut resilient and has wear leveling support on a small device with limited resources. + diff --git a/en/device-dev/kernel/kernel-mini-extend-file-littlefs-guide.md b/en/device-dev/kernel/kernel-mini-extend-file-littlefs-guide.md new file mode 100644 index 00000000000..02df1a0dab7 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-extend-file-littlefs-guide.md @@ -0,0 +1,72 @@ +# Development Guidelines + +- [Sample Code](#section1034515054620) + +When porting LittleFS to a new hardware device, you need to declare **lfs\_config**: + +``` +const struct lfs_config cfg = { + // block device operations + .read = user_provided_block_device_read, + .prog = user_provided_block_device_prog, + .erase = user_provided_block_device_erase, + .sync = user_provided_block_device_sync, + + // block device configuration + .read_size = 16, + .prog_size = 16, + .block_size = 4096, + .block_count = 128, + .cache_size = 16, + .lookahead_size = 16, + .block_cycles = 500, +}; +``` + +**.read**, **.prog**, **.erase**, and **.sync** correspond to the read, write, erase, and synchronization APIs at the bottom layer of the hardware platform, respectively. + +**read\_size** indicates the number of bytes read each time. You can set it to a value greater than the physical read unit to improve performance. This value determines the size of the read cache. However, if the value is too large, more memory is consumed. + +**prog\_size** indicates the number of bytes written each time. You can set it to a value greater than the physical write unit to improve performance. This value determines the size of the write cache and must be an integral multiple of **read\_size**. However, if the value is too large, more memory is consumed. + +**block\_size**: indicates the number of bytes in each erase block. The value can be greater than that of the physical erase unit. However, a smaller value is recommended because each file occupies at least one block. The value must be an integral multiple of **prog\_size**. + +**block\_count** indicates the number of blocks that can be erased, which depends on the capacity of the block device and the size of the block to be erased \(**block\_size**\). + +## Sample Code + +The sample code is as follows: + +``` +int main(void) { + // mount the filesystem + int err = lfs_mount(&lfs, &cfg); + + // reformat if we can't mount the filesystem + // this should only happen on the first boot + if (err) { + lfs_format(&lfs, &cfg); + lfs_mount(&lfs, &cfg); + } + + // read current count + uint32_t boot_count = 0; + lfs_file_open(&lfs, &file, "boot_count", LFS_O_RDWR | LFS_O_CREAT); + lfs_file_read(&lfs, &file, &boot_count, sizeof(boot_count)); + + // update boot count + boot_count += 1; + lfs_file_rewind(&lfs, &file); + lfs_file_write(&lfs, &file, &boot_count, sizeof(boot_count)); + + // remember the storage is not updated until the file is closed successfully + lfs_file_close(&lfs, &file); + + // release any resources we were using + lfs_unmount(&lfs); + + // print the boot count + printf("boot_count: %d\n", boot_count); +} +``` + diff --git a/en/device-dev/kernel/kernel-mini-extend-file.md b/en/device-dev/kernel/kernel-mini-extend-file.md new file mode 100644 index 00000000000..91bac1858ac --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-extend-file.md @@ -0,0 +1,204 @@ +# File System + +The OpenHarmony LiteOS-M kernel supports the FAT file system \(FATFS\) and LittleFS. [Table 1](#table147491853163018) lists the comparison of the functions supported by these two file systems. + +**Table 1** Function list + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

FATFS

+

LittleFS

+

File management

+

open

+

Opens a file.

+

Supported

+

Supported

+

close

+

Closes a file.

+

Supported

+

Supported

+

read

+

Reads a file.

+

Supported

+

Supported

+

write

+

Writes data to a file.

+

Supported

+

Supported

+

lseek

+

Sets the file offset.

+

Supported

+

Supported

+

unlink

+

Deletes a file.

+

Supported

+

Supported

+

rename

+

Renames a file.

+

Supported

+

Supported

+

fstat

+

Obtains file information based on the file handle.

+

Supported

+

Supported

+

stat

+

Obtains file information based on the file path name.

+

Supported

+

Supported

+

fsync

+

Saves file updates to a storage device.

+

Supported

+

Supported

+

Directory management

+

mkdir

+

Creates a directory.

+

Supported

+

Supported

+

opendir

+

Opens a directory.

+

Supported

+

Supported

+

readdir

+

Reads the content of a directory.

+

Supported

+

Supported

+

closedir

+

Closes a directory.

+

Supported

+

Supported

+

rmdir

+

Deletes a directory.

+

Supported

+

Supported

+

Partition management

+

mount

+

Mounts a partition.

+

Supported

+

Supported

+

umount

+

Unmounts a partition.

+

Supported

+

Supported

+

umount2

+

Forcibly unmounts a partition using the MNT_FORCE parameter.

+

Supported

+

Not supported

+

statfs

+

Obtains partition information.

+

Supported

+

Not supported

+
+ +- **[FAT](kernel-mini-extend-file-fat.md)** + +- **[LittleFS](kernel-mini-extend-file-lit.md)** + + diff --git a/en/device-dev/kernel/kernel-mini-extend-support.md b/en/device-dev/kernel/kernel-mini-extend-support.md new file mode 100644 index 00000000000..fd650f391fb --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-extend-support.md @@ -0,0 +1,85 @@ +# C++ Support + +- [Basic Concepts](#section11374125415814) +- [Working Principles](#section189351319134418) +- [Development Guidelines](#section166302407911) + - [Available APIs](#section1881825119919) + - [How to Develop](#section76371145108) + - [Development Example](#section994427141111) + + +## Basic Concepts + +As one of the most widely used programming languages, C++ supports features, such as classes, encapsulation, and overloading. It is an object-oriented programming language developed based on the C language. + +## Working Principles + +The compiler supports C++ code identification. The system calls the constructors of global objects to perform initialization operations. + +## Development Guidelines + +### Available APIs + +**Table 1** APIs supported by C++ + + + + + + + + + + + + +

Category

+

API

+

Description

+

Prerequisites for using C++ features

+

LOS_CppSystemInit

+

Initializes C++ constructors.

+
+ +### How to Develop + +Before using C++ features, you need to call **LOS\_CppSystemInit** to initialize C++ constructors. The initialized constructors are stored in the **init\_array** section, and the section range is passed by the variables **\_\_init\_array\_start\_\_** and **\_\_init\_array\_end\_\_**. + +**Table 2** Parameter description + + + + + + + + + + + + + +

Parameter

+

Description

+

__init_array_start__

+

Start of the init_array section

+

__init_array_end__

+

End of the init_array section

+
+ +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>The **LOS\_CppSystemInit** function must be called before a C++ service. When the C library used by the third-party compiler is not musl libc, some classes or APIs \(such as **std::thread** and **std::mutex**\) that are closely related to system resources have compatibility issues and are not recommended to use. + +### Development Example + +``` +void app_init(void) +{ +...... +/* Initialize C++ in the startup phase. */ +LOS_CppSystemInit((UINTPTR)&__init_array_start__, (UINTPTR)&__init_array_end__); +/* C++ service */ +...... +} +``` + diff --git a/en/device-dev/kernel/kernel-mini-extend.md b/en/device-dev/kernel/kernel-mini-extend.md new file mode 100644 index 00000000000..605a1b425bd --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-extend.md @@ -0,0 +1,11 @@ +# Extension Components + +- **[C++ Support](kernel-mini-extend-support.md)** + +- **[CPUP](kernel-mini-extend-cpup.md)** + +- **[Dynamic Loading](kernel-mini-extend-dynamic-loading.md)** + +- **[File System](kernel-mini-extend-file.md)** + + diff --git a/en/device-dev/kernel/kernel-mini-imemory-debug-det.md b/en/device-dev/kernel/kernel-mini-imemory-debug-det.md new file mode 100644 index 00000000000..404ab37e196 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-imemory-debug-det.md @@ -0,0 +1,128 @@ +# Memory Leak Check + +- [Basic Concepts](#section1026719436293) +- [Function Configuration](#section13991354162914) +- [Development Guidelines](#section95828159308) + - [How to Develop](#section369844416304) + - [Development Example](#section460801313313) + - [Sample Code](#section96539275311) + - [Verification](#section20527343183119) + + +## Basic Concepts + +As an optional function of the kernel, memory leak check is used to locate dynamic memory leak problems. After this function is enabled, the dynamic memory automatically records the link registers \(LRs\) used when memory is allocated. If a memory leak occurs, the recorded information helps locate the memory allocated for further analysis. + +## Function Configuration + +1. **LOSCFG\_MEM\_LEAKCHECK**: specifies the setting of the memory leak check. This function is disabled by default. To enable the function, set this macro to **1** in **target\_config.h**. +2. **LOSCFG\_MEM\_RECORD\_LR\_CNT**: number of LRs recorded. The default value is **3**. Each LR consumes the memory of **sizeof\(void \*\)** bytes. +3. **LOSCFG\_MEM\_OMIT\_LR\_CNT**: number of ignored LRs. The default value is **4**, which indicates that LRs are recorded from the time when **LOS\_MemAlloc** is called. You can change the value based on actual requirements. This macro is configured because: + - **LOS\_MemAlloc** is also called internally. + - **LOS\_MemAlloc** may be encapsulated externally. + - The number of LRs configured by **LOSCFG\_MEM\_RECORD\_LR\_CNT** is limited. + + +Correctly setting this macro can ignore invalid LRs and reduce memory consumption. + +## Development Guidelines + +### How to Develop + +Memory leak check provides a method to check for memory leak in key code logic. If this function is enabled, LR information is recorded each time when memory is allocated. When **LOS\_MemUsedNodeShow** is called before and after the code snippet is checked, information about all nodes that have been used in the specified memory pool is printed. You can compare the node information. The newly added node information indicates the node where the memory leak may occur. You can locate the code based on the LR and further check whether a memory leak occurs. + +The node information output by calling **LOS\_MemUsedNodeShow** is in the following format: Each line contains information about a node. The first column indicates the node address, based on which you can obtain complete node information using a tool such as a GNU Debugger \(GDB\). The second column indicates the node size, which is equal to the node header size plus the data field size. Columns 3 to 5 list the LR addresses. You can determine the specific memory location of the node based on the LR addresses and the assembly file. + +``` +node size LR[0] LR[1] LR[2] +0x10017320: 0x528 0x9b004eba 0x9b004f60 0x9b005002 +0x10017848: 0xe0 0x9b02c24e 0x9b02c246 0x9b008ef0 +0x10017928: 0x50 0x9b008ed0 0x9b068902 0x9b0687c4 +0x10017978: 0x24 0x9b008ed0 0x9b068924 0x9b0687c4 +0x1001799c: 0x30 0x9b02c24e 0x9b02c246 0x9b008ef0 +0x100179cc: 0x5c 0x9b02c24e 0x9b02c246 0x9b008ef0 +``` + +>![](../public_sys-resources/icon-caution.gif) **CAUTION:** +>Enabling memory leak check affects memory application performance. LR addresses will be recorded for each memory node, increasing memory overhead. + +### Development Example + +This example implements the following: + +1. Calls **LOS\_MemUsedNodeShow** to print information about all nodes. +2. Simulates a memory leak by requesting memory without releasing it. +3. Calls **LOS\_MemUsedNodeShow** to print information about all nodes. +4. Compare the logs to obtain information about the node where a memory leak occurred. +5. Locate the code based on the LR address. + +### Sample Code + +The sample code is as follows: + +``` +#include +#include +#include "los_memory.h" +#include "los_config.h" + +void MemLeakTest(void) +{ + LOS_MemUsedNodeShow(LOSCFG_SYS_HEAP_ADDR); + void *ptr1 = LOS_MemAlloc(LOSCFG_SYS_HEAP_ADDR, 8); + void *ptr2 = LOS_MemAlloc(LOSCFG_SYS_HEAP_ADDR, 8); + LOS_MemUsedNodeShow(LOSCFG_SYS_HEAP_ADDR); +} +``` + +### Verification + +The log is as follows: + +``` +node size LR[0] LR[1] LR[2] +0x20001b04: 0x24 0x08001a10 0x080035ce 0x080028fc +0x20002058: 0x40 0x08002fe8 0x08003626 0x080028fc +0x200022ac: 0x40 0x08000e0c 0x08000e56 0x0800359e +0x20002594: 0x120 0x08000e0c 0x08000e56 0x08000c8a +0x20002aac: 0x56 0x08000e0c 0x08000e56 0x08004220 + +node size LR[0] LR[1] LR[2] +0x20001b04: 0x24 0x08001a10 0x080035ce 0x080028fc +0x20002058: 0x40 0x08002fe8 0x08003626 0x080028fc +0x200022ac: 0x40 0x08000e0c 0x08000e56 0x0800359e +0x20002594: 0x120 0x08000e0c 0x08000e56 0x08000c8a +0x20002aac: 0x56 0x08000e0c 0x08000e56 0x08004220 +0x20003ac4: 0x1d 0x08001458 0x080014e0 0x080041e6 +0x20003ae0: 0x1d 0x080041ee 0x08000cc2 0x00000000 +``` + +The difference between the two logs is as follows. The following memory nodes are suspected to have blocks with a memory leak. + +``` +0x20003ac4: 0x1d 0x08001458 0x080014e0 0x080041e6 +0x20003ae0: 0x1d 0x080041ee 0x08000cc2 0x00000000 +``` + +The following is part of the assembly file: + +``` + MemLeakTest: + 0x80041d4: 0xb510 PUSH {R4, LR} + 0x80041d6: 0x4ca8 LDR.N R4, [PC, #0x2a0] ; g_memStart + 0x80041d8: 0x0020 MOVS R0, R4 + 0x80041da: 0xf7fd 0xf93e BL LOS_MemUsedNodeShow ; 0x800145a + 0x80041de: 0x2108 MOVS R1, #8 + 0x80041e0: 0x0020 MOVS R0, R4 + 0x80041e2: 0xf7fd 0xfbd9 BL LOS_MemAlloc ; 0x8001998 + 0x80041e6: 0x2108 MOVS R1, #8 + 0x80041e8: 0x0020 MOVS R0, R4 + 0x80041ea: 0xf7fd 0xfbd5 BL LOS_MemAlloc ; 0x8001998 + 0x80041ee: 0x0020 MOVS R0, R4 + 0x80041f0: 0xf7fd 0xf933 BL LOS_MemUsedNodeShow ; 0x800145a + 0x80041f4: 0xbd10 POP {R4, PC} + 0x80041f6: 0x0000 MOVS R0, R0 +``` + +The memory node addressed by **0x080041ee** is not released after being requested in **MemLeakTest**. + diff --git a/en/device-dev/kernel/kernel-mini-memory-debug-cet.md b/en/device-dev/kernel/kernel-mini-memory-debug-cet.md new file mode 100644 index 00000000000..04948fdabf3 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-memory-debug-cet.md @@ -0,0 +1,85 @@ +# Memory Corruption Check + +- [Basic Concepts](#section17368154517335) +- [Function Configuration](#section4696190123420) +- [Development Guidelines](#section672362973417) + - [How to Develop](#section026014863416) + - [Development Example](#section186311302356) + - [Sample Code](#section12709533354) + - [Verification](#section81214126369) + + +## Basic Concepts + +As an optional function of the kernel, memory corruption check is used to check the integrity of a dynamic memory pool. This mechanism can detect memory corruption errors in the memory pool in a timely manner and provide alerts. It helps reduce problem locating costs and increase troubleshooting efficiency. + +## Function Configuration + +**LOSCFG\_BASE\_MEM\_NODE\_INTEGRITY\_CHECK**: specifies the setting of the memory corruption check. This function is disabled by default. To enable the function, set this macro to **1** in **target\_config.h**. + +1. If this macro is enabled, the memory pool integrity will be checked in real time upon each memory allocation. +2. If this macro is not enabled, you can call **LOS\_MemIntegrityCheck** to check the memory pool integrity when required. Using **LOS\_MemIntegrityCheck** does not affect the system performance. In addition, the check accuracy decreases because the node header does not contain the magic number \(which is available only when **LOSCFG\_BASE\_MEM\_NODE\_INTEGRITY\_CHECK** is enabled\). + +This check only detects the corrupted memory node and provides information about the previous node \(because memory is contiguous, a node is most likely corrupted by the previous node\). To further determine the location where the previous node is requested, you need to enable the memory leak check and use LRs to locate the fault. + +>![](../public_sys-resources/icon-caution.gif) **CAUTION:** +>If memory corruption check is enabled, a magic number is added to the node header, which increases the size of the node header. The real-time integrity check has a great impact on the performance. In performance-sensitive scenarios, you are advised to disable this function and use **LOS\_MemIntegrityCheck** to check the memory pool integrity. + +## Development Guidelines + +### How to Develop + +Check for memory corruption by calling **LOS\_MemIntegrityCheck**. If no memory corruption occurs, **0** is returned and no log is output. If memory corruption occurs, related log is output. For details, see the output of the following example. + +### Development Example + +This example implements the following: + +1. Requests two physically adjacent memory blocks. +2. Calls **memset** to construct an out-of-bounds access and overwrites the first four bytes of the next node. +3. Calls **LOS\_MemIntegrityCheck** to check whether memory corruption occurs. + +### Sample Code + +The sample code is as follows: + +``` +#include +#include +#include "los_memory.h" +#include "los_config.h" + +void MemIntegrityTest(void) +{ + /* Request two physically adjacent memory blocks.*/ + void *ptr1 = LOS_MemAlloc(LOSCFG_SYS_HEAP_ADDR, 8); + void *ptr2 = LOS_MemAlloc(LOSCFG_SYS_HEAP_ADDR, 8); + /* Construct an out-of-bounds access to cause memory corruption. The memory block of the first node is 8 bytes. Clearing 12 bytes overwrites the header of the second memory node. */ + memset(ptr1, 0, 8 + 4); + LOS_MemIntegrityCheck(LOSCFG_SYS_HEAP_ADDR); +} +``` + +### Verification + +The log is as follows: + +``` +[ERR][OsMemMagicCheckPrint], 2028, memory check error! +memory used but magic num wrong, magic num = 0x00000000 /* Error information, indicating that the first four bytes, that is, the magic number, of the next node are corrupted.*/ + + broken node head: 0x20003af0 0x00000000 0x80000020, prev node head: 0x20002ad4 0xabcddcba 0x80000020 +/* Key information about the corrupted node and its previous node, including the address of the previous node, magic number of the node, and sizeAndFlag of the node. In this example, the magic number of the corrupted node is cleared. */ + + broken node head LR info: /* The node LR information can be output only after the memory leak check is enabled.*/ + LR[0]:0x0800414e + LR[1]:0x08000cc2 + LR[2]:0x00000000 + + pre node head LR info: /* Based on the LR information, you can find where the previous node is requested in the assembly file and then perform further analysis.*/ + LR[0]:0x08004144 + LR[1]:0x08000cc2 + LR[2]:0x00000000 +[ERR]Memory interity check error, cur node: 0x20003b10, pre node: 0x20003af0 /* Addresses of the corrupted node and its previous node*/ +``` + diff --git a/en/device-dev/kernel/kernel-mini-memory-debug-mes.md b/en/device-dev/kernel/kernel-mini-memory-debug-mes.md new file mode 100644 index 00000000000..dfb48d54959 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-memory-debug-mes.md @@ -0,0 +1,116 @@ +# Memory Information Statistics + +- [Basic Concepts](#section52691565235) +- [Function Configuration](#section470611682411) +- [Development Guidelines](#section9368374243) + - [How to Develop](#section679912407257) + - [Development Example](#section1025453412611) + - [Sample Code](#section165277971315) + - [Verification](#section3460102414271) + + +## Basic Concepts + +Memory information includes the memory pool size, memory usage, remaining memory size, maximum free memory, memory waterline, number of memory nodes, and fragmentation rate. + +- Memory waterline: indicates the maximum memory used in a memory pool. The waterline value is updated upon each memory allocation and release. The memory pool size can be optimized based on this value. + +- Fragmentation rate: indicates the fragmentation degree of the memory pool. If the fragmentation rate is high, there are a large number of free memory blocks in the memory pool but each block is small. You can use the following formula to calculate the fragmentation rate: + + Fragmentation rate = 100 – 100 x Maximum free memory block size/Remaining memory size + + +- Other parameters: You can call APIs \(described in [Memory Management](kernel-mini-basic-memory-basic.md)\) to scan node information in the memory pool and collect statistics. + +## Function Configuration + +**LOSCFG\_MEM\_WATERLINE**: specifies the setting of the memory information statistics function. This function is enabled by default. To disable the function, set this macro to **0** in **target\_config.h**. If you want to obtain the memory waterline, you must enable this macro. + +## Development Guidelines + +### How to Develop + +Key structure: + +``` +typedef struct { + UINT32 totalUsedSize; // Memory usage of the memory pool + UINT32 totalFreeSize; // Remaining memory in the memory pool + UINT32 maxFreeNodeSize; // Maximum size of the free memory block in the memory pool + UINT32 usedNodeNum; // Number of non-free memory blocks in the memory pool + UINT32 freeNodeNum; // Number of free memory blocks in the memory pool +#if (LOSCFG_MEM_WATERLINE == 1) // This macro is enabled by default. To disable it, set it to 0 in target_config.h. + UINT32 usageWaterLine; // Waterline of the memory pool +#endif +} LOS_MEM_POOL_STATUS; +``` + +- To obtain the memory waterline, call **LOS\_MemInfoGet**. The first parameter in the API is the start address of the memory pool, and the second parameter is the handle of the **LOS\_MEM\_POOL\_STATUS** type. The **usageWaterLine** field indicates the waterline. + +- To calculate the memory fragmentation rate, call **LOS\_MemInfoGet** to obtain the remaining memory size and the maximum free memory block size in the memory pool, and then calculate the fragmentation rate of the dynamic memory pool as follows: + + Fragmentation rate = 100 – 100 x Maximum free memory block size/Remaining memory size + + +### Development Example + +This example implements the following: + +1. Creates a monitoring thread to obtain information about the memory pool. + +2. Calls **LOS\_MemInfoGet** to obtain the basic information about the memory pool. + +3. Calculates the memory usage and fragmentation rate. + +### Sample Code + +The sample code is as follows: + +``` +#include +#include +#include "los_task.h" +#include "los_memory.h" +#include "los_config.h" + +void MemInfoTaskFunc(void) +{ + LOS_MEM_POOL_STATUS poolStatus = {0}; + + /* pool is the memory address of the information to be collected. OS_SYS_MEM_ADDR is used as an example.*/ + void *pool = OS_SYS_MEM_ADDR; + LOS_MemInfoGet(pool, &poolStatus); + /* Calculate the fragmentation rate of the memory pool. */ + unsigned char fragment = 100 - poolStatus.maxFreeNodeSize * 100 / poolStatus.totalFreeSize; + /* Calculate the memory usage of the memory pool. */ + unsigned char usage = LOS_MemTotalUsedGet(pool) * 100 / LOS_MemPoolSizeGet(pool); + printf("usage = %d, fragment = %d, maxFreeSize = %d, totalFreeSize = %d, waterLine = %d\n", usage, fragment, poolStatus.maxFreeNodeSize, + poolStatus.totalFreeSize, poolStatus.usageWaterLine); +} + +int MemTest(void) +{ + unsigned int ret; + unsigned int taskID; + TSK_INIT_PARAM_S taskStatus = {0}; + taskStatus.pfnTaskEntry = (TSK_ENTRY_FUNC)MemInfoTaskFunc; + taskStatus.uwStackSize = 0x1000; + taskStatus.pcName = "memInfo"; + taskStatus.usTaskPrio = 10; + ret = LOS_TaskCreate(&taskID, &taskStatus); + if (ret != LOS_OK) { + printf("task create failed\n"); + return -1; + } + return 0; +} +``` + +### Verification + +The result is as follows: + +``` +usage = 22, fragment = 3, maxFreeSize = 49056, totalFreeSize = 50132, waterLine = 1414 +``` + diff --git a/en/device-dev/kernel/kernel-mini-memory-debug.md b/en/device-dev/kernel/kernel-mini-memory-debug.md new file mode 100644 index 00000000000..23495e1b922 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-memory-debug.md @@ -0,0 +1,11 @@ +# Memory Debugging + +The purpose of memory debugging is to locate problems related to dynamic memory. The kernel provides a variety of memory debugging methods. Dynamic memory pool statistics helps you learn the memory pool waterline and fragmentation rate. Memory leak check helps you accurately locate the code where memory leak occurs and analyze the memory usage of each module. Memory corruption check helps you locate memory corruptions. + +- **[Memory Information Statistics](kernel-mini-memory-debug-mes.md)** + +- **[Memory Leak Check](kernel-mini-imemory-debug-det.md)** + +- **[Memory Corruption Check](kernel-mini-memory-debug-cet.md)** + + diff --git a/en/device-dev/kernel/kernel-mini-memory-exception.md b/en/device-dev/kernel/kernel-mini-memory-exception.md new file mode 100644 index 00000000000..a78a58604d5 --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-memory-exception.md @@ -0,0 +1,329 @@ +# Exception Debugging + +- [Basic Concepts](#section2741911123412) +- [Working Principles](#section16618124317346) +- [Available APIs](#section16111931351) +- [Usage Guidelines](#section16317163520350) + - [How to Develop](#section13457839133618) + - [How to Locate Exceptions](#section197332323815) + + +## Basic Concepts + +The OpenHarmony LiteOS-M provides exception handling and debugging measures to help locate and analyze problems. Exception handling involves a series of actions taken by the OS to respond to exceptions occurred during the OS running, for example, printing the exception type, system status, call stack information of the current function, CPU information, and call stack information of tasks. + +## Working Principles + +A stack frame contains information such as function parameters, variables, and return value in a function call process. When a function is called, a stack frame of the subfunction is created, and the input parameters, local variables, and registers of the function are stored into the stack. Stack frames grow towards lower addresses. The ARM32 CPU architecture is used as an example. Each stack frame stores the historical values of the program counter \(PC\), LR \(link register\), stack pointer \(SP\), and frame pointer \(FP\) registers. The LR points to the return address of a function, and the FP points to the start address of the stack frame of the function's parent function. The FP helps locate the parent function's stack frame, which further helps locate the parent function's FP. The parent function's FP helps locate the grandparent function's stack frame and FP... In this way, the call stack of the program can be traced to obtain the relationship between the functions called. + +When an exception occurs in the system, the system prints the register information in the stack frame of the abnormal function as well as the LRs and FPs in the stack frames of its parent function and grandfather function. The relationships between the functions help you locate the cause of the exception. + +The following figure illustrates the stack analysis mechanism for your reference. The actual stack information varies depending on the CPU architecture. + +**Figure 1** Stack analysis mechanism +![](figure/stack-analysis-mechanism.png "stack-analysis-mechanism") + +In the figure, the registers in different colors indicate different functions. The registers save related data when functions are called. The FP register helps track the stack to the parent function of the abnormal function and further presents the relationships between the functions called. + +## Available APIs + +The following table describes APIs available for the OpenHarmony LiteOS-M stack trace module. For more details about the APIs, see the API reference. + +**Table 1** APIs of the stack trace module + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Stack trace

+

LOS_BackTrace

+

Prints the call stack relationship at the function calling point.

+

LOS_RecordLR

+

Obtains the call stack relationship at the function calling point when print is unavailable.

+
+ +## Usage Guidelines + +### How to Develop + +The typical process for enabling exception debugging is as follows: + +1. Configure the macros related to exception handling. + + Modify the configuration in the **target\_config.h** file. + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

Value

+

LOSCFG_BACKTRACE_DEPTH

+

Depth of the function call stack. The default value is 15.

+

15

+

LOSCFG_BACKTRACE_TYPE

+

Type of the stack trace.

+

0: disabled

+

1: supports function call stack analysis of the Cortex-m series hardware.

+

2: supports function call stack analysis of the RISC-V series hardware.

+

Set this parameter to 1 or 2 based on the toolchain type.

+
+ + +1. Use the error code in the example to build and run a project, and check the error information displayed on the serial port terminal. The sample code simulates error code. During actual product development, use the exception debugging mechanism to locate exceptions. + + The following example demonstrates the exception output through a task. The task entry function simulates calling of multiple functions and finally calls a function that simulates an exception. The sample code is as follows: + + ``` + #include + #include "los_config.h" + #include "los_interrupt.h" + #include "los_task.h" + + UINT32 g_taskExcId; + #define TSK_PRIOR 4 + + /* Simulate an abnormal function. */ + + UINT32 Get_Result_Exception_0(UINT16 dividend){ + UINT32 divisor = 0; + UINT32 result = dividend / divisor; + return result; + } + + UINT32 Get_Result_Exception_1(UINT16 dividend){ + return Get_Result_Exception_0(dividend); + } + + UINT32 Get_Result_Exception_2(UINT16 dividend){ + return Get_Result_Exception_1(dividend); + } + + UINT32 Example_Exc(VOID) + { + UINT32 ret; + + printf("Enter Example_Exc Handler.\r\n"); + + /* Simulate the function calling. */ + ret = Get_Result_Exception_2(TSK_PRIOR); + printf("Divided result =%u.\r\n", ret); + + printf("Exit Example_Exc Handler.\r\n"); + return ret; + } + + + /* Task entry function used to create a task with an exception. */ + UINT32 Example_Exc_Entry(VOID) + { + UINT32 ret; + TSK_INIT_PARAM_S initParam; + + /* Lock task scheduling to prevent newly created tasks from being scheduled prior to this task due to higher priority.*/ + LOS_TaskLock(); + + printf("LOS_TaskLock() Success!\r\n"); + + initParam.pfnTaskEntry = (TSK_ENTRY_FUNC)Example_Exc; + initParam.usTaskPrio = TSK_PRIOR; + initParam.pcName = "Example_Exc"; + initParam.uwStackSize = LOSCFG_SECURE_STACK_DEFAULT_SIZE; + /* Create a task with higher priority. The task will not be executed immediately after being created, because task scheduling is locked.*/ + ret = LOS_TaskCreate(&g_taskExcId, &initParam); + if (ret != LOS_OK) { + LOS_TaskUnlock(); + + printf("Example_Exc create Failed!\r\n"); + return LOS_NOK; + } + + printf("Example_Exc create Success!\r\n"); + + /* Unlock task scheduling. The task with the highest priority in the Ready queue will be executed.*/ + LOS_TaskUnlock(); + + return LOS_OK; + } + ``` + + +1. The error information displayed on the serial port terminal is as follows: + + ``` + entering kernel init... + LOS_TaskLock() Success! + Example_Exc create Success! + Entering scheduler + Enter Example_Exc Handler. + *************Exception Information************** + Type = 10 + ThrdPid = 4 + Phase = exc in task + FaultAddr = 0xabababab + Current task info: + Task name = Example_Exc + Task ID = 4 + Task SP = 0x200051ac + Task ST = 0x20004ff0 + Task SS = 0x200 + Exception reg dump: + PC = 0x80037da + LR = 0x80037fe + SP = 0x20005190 + R0 = 0x4 + R1 = 0x40 + R2 = 0x4 + R3 = 0x0 + R4 = 0x4040404 + R5 = 0x5050505 + R6 = 0x6060606 + R7 = 0x20005190 + R8 = 0x8080808 + R9 = 0x9090909 + R10 = 0x10101010 + R11 = 0x11111111 + R12 = 0x12121212 + PriMask = 0x0 + xPSR = 0x41000000 + ----- backtrace start ----- + backtrace 0 -- lr = 0x800381a + backtrace 1 -- lr = 0x8003836 + backtrace 2 -- lr = 0x8005a4e + backtrace 3 -- lr = 0x8000494 + backtrace 4 -- lr = 0x8008620 + backtrace 5 -- lr = 0x800282c + backtrace 6 -- lr = 0x80008a0 + backtrace 7 -- lr = 0x80099f8 + backtrace 8 -- lr = 0x800a01a + backtrace 9 -- lr = 0x800282c + backtrace 10 -- lr = 0x80008a0 + backtrace 11 -- lr = 0x80099f8 + backtrace 12 -- lr = 0x8009bf0 + backtrace 13 -- lr = 0x8009c52 + backtrace 14 -- lr = 0x80099aa + ----- backtrace end ----- + + TID Priority Status StackSize WaterLine StackPoint TopOfStack EventMask SemID name + --- -------- -------- --------- ---------- ---------- ---------- --------- ----- ---- + 0 0 Pend 0x2d0 0x104 0x200029bc 0x200027f0 0x0 0xffff Swt_Task + 1 31 Ready 0x500 0x44 0x20002f84 0x20002ac8 0x0 0xffff IdleCore000 + 2 6 Ready 0x1000 0x44 0x20003f94 0x20002fd8 0x0 0xffff TaskSampleEntry1 + 3 7 Ready 0x1000 0x44 0x20004f9c 0x20003fe0 0x0 0xffff TaskSampleEntry2 + 4 4 Running 0x200 0xec 0x200051ac 0x20004ff0 0x0 0xffff Example_Exc + + OS exception NVIC dump: + interrupt enable register, base address: 0xe000e100, size: 0x20 + 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 + interrupt pending register, base address: 0xe000e200, size: 0x20 + 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 + interrupt active register, base address: 0xe000e300, size: 0x20 + 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 + interrupt priority register, base address: 0xe000e400, size: 0xf0 + 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 + 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 + 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 + 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 + interrupt exception register, base address: 0xe000ed18, size: 0xc + 0x0 0x0 0xf0f00000 + interrupt shcsr register, base address: 0xe000ed24, size: 0x4 + 0x70008 + interrupt control register, base address: 0xe000ed04, size: 0x4 + 0x400f806 + + memory pools check: + system heap memcheck over, all passed! + memory pool check end! + ``` + + +### How to Locate Exceptions + +The procedure for locating the exception is as follows: + +1. Open the image disassembly file \(.asm\) generated after compilation. If the file is not generated by default, use the objdump tool to generate it. Run the following command: + + ``` + arm-none-eabi-objdump -S -l XXX.elf + ``` + + +1. Search for the PC \(pointing to the instruction being executed\) in the ASM file to locate the abnormal function. + + The PC address directs to the instruction being executed when the exception occurs. In the ASM file corresponding to the currently executed binary file, search for the PC value **0x80037da** and locate the instruction being executed by the CPU. Disassemble the code as follows: + + ``` + UINT32 Get_Result_Exception_0(UINT16 dividend){ + 80037c8: b480 push {r7} + 80037ca: b085 sub sp, #20 + 80037cc: af00 add r7, sp, #0 + 80037ce: 4603 mov r3, r0 + 80037d0: 80fb strh r3, [r7, #6] + kernel_liteos_m\targets\cortex-m7_nucleo_f767zi_gcc/Core/Src/exc_example.c:10 + UINT32 divisor = 0; + 80037d2: 2300 movs r3, #0 + 80037d4: 60fb str r3, [r7, #12] + kernel_liteos_m\targets\cortex-m7_nucleo_f767zi_gcc/Core/Src/exc_example.c:11 + UINT32 result = dividend / divisor; + 80037d6: 88fa ldrh r2, [r7, #6] + 80037d8: 68fb ldr r3, [r7, #12] + 80037da: fbb2 f3f3 udiv r3, r2, r3 + 80037de: 60bb str r3, [r7, #8] + ``` + + +1. As indicated by the code: + 1. When the exception occurs, the CPU is executing **udiv r3, r2, r3**. The value of **r3** is **0**, which causes the divide-by-zero error. + 2. The exception occurs in the **Get\_Result\_Exception\_0** function. + +2. Locate the parent function of the abnormal function based on the LR value. + + The code disassembly of the LR value **0x80037fe** is as follows: + + ``` + 080037ec : + Get_Result_Exception_1(): + kernel_liteos_m\targets\cortex-m7_nucleo_f767zi_gcc/Core/Src/exc_example.c:15 + UINT32 Get_Result_Exception_1(UINT16 dividend){ + 80037ec: b580 push {r7, lr} + 80037ee: b082 sub sp, #8 + 80037f0: af00 add r7, sp, #0 + 80037f2: 4603 mov r3, r0 + 80037f4: 80fb strh r3, [r7, #6] + kernel_liteos_m\targets\cortex-m7_nucleo_f767zi_gcc/Core/Src/exc_example.c:16 + return Get_Result_Exception_0(dividend); + 80037f6: 88fb ldrh r3, [r7, #6] + 80037f8: 4618 mov r0, r3 + 80037fa: f7ff ffe5 bl 80037c8 + 80037fe: 4603 mov r3, r0 + ``` + + +1. The previous line of LR **80037fe** is **bl 80037c8 **, which calls the abnormal function. The parent function that calls the abnormal function is **Get\_Result\_Exception\_1\(\)**. +2. Repeat [3](#li18973161743110) to analyze the LR values between **backtrace start** and **backtrace end** in the exception information to obtain the call stack relationship and find the exception cause. + diff --git a/en/device-dev/kernel/kernel-mini-memory-trace.md b/en/device-dev/kernel/kernel-mini-memory-trace.md new file mode 100644 index 00000000000..d73c715802e --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-memory-trace.md @@ -0,0 +1,196 @@ +# Trace Debugging + +- [Basic Concepts](#section44851752123712) +- [Working Principles](#section5282148123813) +- [Available APIs](#section16304193215387) +- [Development Guidelines](#section498695853819) + - [How to Develop](#section1875652316393) + - [Development Example](#section0403134913395) + - [Sample Code](#section1492711418400) + - [Verification](#section869613984012) + + +## Basic Concepts + +Trace debugging helps you learn about the kernel running process and the execution sequence of modules and tasks. With the information, you can better understand the code running process of the kernel and locate time sequence problems. + +## Working Principles + +The kernel provides a framework to embed hooks in main processes of modules. You can register callback functions at the required hooks. When the kernel runs the corresponding process, the kernel proactively calls the **Hook** function to transfer key data of the current process to you. + +## Available APIs + +The following table describes APIs available for the OpenHarmony trace module. For more details about the APIs, see the API reference. + +**Table 1** Trace module APIs + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Registering a hook

+

LOS_HookReg

+

Registers a callback function at a specified hook.

+

Unregistering a hook

+

LOS_HookUnReg

+

Unregisters the callback function at the current hook.

+
+ +## Development Guidelines + +### How to Develop + +The typical process for enabling trace debugging is as follows: + +1. Configure the macros related to the trace module. + + Modify the configuration in the **target\_config.h** file. + + + + + + + + + + + + +

Parameter

+

Description

+

Value

+

LOSCFG_DEBUG_HOOK

+

Setting of the trace function

+

0: disable; 1: enable

+
+ +2. Select the hooks for registering callback functions. For details about the hook types, see **liteos\_m/utils/internal/los\_hook\_types.h**. +3. Call **LOS\_HookReg** to register functions. + +### Development Example + +This example invokes the malloc and free APIs to allocate and release memory of different sizes and records the malloc and free behavior and time sequence. + +### Sample Code + +The sample code is as follows: + +``` +#include "stdio.h" +#include "stdlib.h" +#include "string.h" +#include "los_hook.h" + +#define SIZE_512 512 +#define SIZE_1K 1024 +#define SIZE_2K 2048 + +/* Print the size of malloc when the callback function is invoked. */ +void MallocRecord(void *pool, unsigned int size) +{ + printf("malloc size = %u\n", size); + return; +} + +/* Print the free pointer address when the callback function is invoked. */ +void FreeRecord(void *pool, void *ptr) +{ + printf("free pool = 0x%x ptr = 0x%x\n", pool, ptr); + return; +} + +void TestTrace(void) +{ + char *pool1 = NULL; + char *pool2 = NULL; + char *pool3 = NULL; + char *retptr = NULL; + /* Allocate memory of different sizes to pool1, pool2, and pool3. */ + pool1 = (char *)malloc(SIZE_512); + if (pool1 == NULL) { + printf("pool1 malloc failed!\n"); + return; + } + retptr = memset(pool1, 'a', SIZE_512); + if (retptr == NULL) { + printf("pool1 memset failed!\n"); + return; + } + printf("pool1 addr = 0x%x *pool1[0] = %c\n", pool1, *pool1); + + pool2 = (char *)malloc(SIZE_1K); + if (pool2 == NULL) { + printf("pool2 malloc failed!\n"); + return; + } + retptr = memset(pool2, 'b', SIZE_1K); + if (retptr == NULL) { + printf("pool2 memset failed!\n"); + return; + } + printf("pool2 addr = 0x%x *pool2[0] = %c\n", pool2, *pool2); + + pool3 = (char *)malloc(SIZE_2K); + if (pool3 == NULL) { + printf("pool3 malloc failed!\n"); + return; + } + retptr = memset(pool3, 'c', SIZE_2K); + if (retptr == NULL) { + printf("pool3 memset failed!\n"); + return; + } + printf("pool3 addr = 0x%x *pool3[0] = %c\n", pool3, *pool3); + + /* Release pool3, pool1, and pool2 in sequence to check the time sequence of the callback functions. */ + free(pool3); + free(pool1); + free(pool2); + + return; +} +/* Before the trace module is used, callback functions are registered. Note that the return value of the callback functions is void. */ +void InitTest(void) +{ + printf("init hook\n"); + /* Register the hook based on the trace information to be obtained. For details about the hook types, see liteos_m/utils/internal/los_hook_types.h. */. + LOS_HookReg(LOS_HOOK_TYPE_MEM_ALLOC, MallocRecord); + LOS_HookReg(LOS_HOOK_TYPE_MEM_FREE, FreeRecord); + return; +} +``` + +### Verification + +The output is as follows: + +``` +init hook +malloc size = 512 +pool1 addr = 0x20002f44 *pool1[0] = a +malloc size = 1024 +pool2 addr = 0x2000314c *pool2[0] = b +malloc size = 2048 +pool3 addr = 0x20003554 *pool3[0] = c +free pool = 0x200002a4 ptr = 0x20003554 +free pool = 0x200002a4 ptr = 0x20002f44 +free pool = 0x200002a4 ptr = 0x2000314c +``` + +According to the address information, the sequence of free is pool3, pool1, and pool2. + diff --git a/en/device-dev/kernel/kernel-mini-overview.md b/en/device-dev/kernel/kernel-mini-overview.md new file mode 100644 index 00000000000..b0b7cb8328f --- /dev/null +++ b/en/device-dev/kernel/kernel-mini-overview.md @@ -0,0 +1,67 @@ +# Kernel Overview + +- [Overview](#section1429342661510) + - [CPU Architecture Support](#section48891456112819) + - [Working Principles](#section4599142312817) + + +## Overview + +The OpenHarmony LiteOS-M kernel is a lightweight operating system \(OS\) kernel designed for the IoT field. It features small size, low power consumption, and high performance. The LiteOS-M kernel has simple code structure, including the minimum function set, kernel abstraction layer, optional components, and project directory. + +The OpenHarmony LiteOS-M kernel architecture consists of the hardware-related layer and the hardware-irrelevant layer, as shown in [Figure 1](#fig17231457191415). + +- The **Kernel arch** module belongs to the hardware-related layer. This module provides unified hardware abstraction layer \(HAL\) interfaces based on the compilation toolchain and chip architecture, improving hardware adaptability and meeting the expansion requirements of diversified AIoT hardware and compilation toolchains. +- **Components** and other modules belong to the hardware-irrelevant layer. Kernel modules, such as the task, provide basic capabilities. **Components** provide component capabilities, such as network and file system capabilities. **Utils** provides error handling and debugging capabilities. The Kernel Abstraction Layer \(**KAL**\) provides unified standard interfaces. + +**Figure 1** Kernel architecture +![](figure/kernel-architecture.png "kernel-architecture") + +### CPU Architecture Support + +The CPU architecture includes two layers: general architecture definition layer and specific architecture definition layer. The former provides interfaces supported and implemented by all architectures. The latter is specific to an architecture. For a new architecture to be added, the general architecture definition layer must be implemented first and the architecture-specific functions can be implemented at the specific architecture definition layer. + +**Table 1** CPU architecture rules + + + + + + + + + + + + + + + + + + + + +

Rule

+

General Architecture Definition Layer

+

Specific Architecture Definition Layer

+

Header file location

+

kernel/arch/include

+

kernel/arch/<arch>/<arch>/<toolchain>/

+

Header file name

+

los_<function>.h

+

los_arch_<function>.h

+

Function name

+

Halxxxx

+

Halxxxx

+
+ +LiteOS-M supports mainstream architectures, such as ARM Cortex-M3, ARM Cortex-M4, ARM Cortex-M7, ARM Cortex-M33, and RISC-V. If you need to expand the CPU architecture, see [Chip Architecture Adaptation](../porting/porting-chip-kernel-overview.md#section137431650339). + +### Working Principles + +Configure the system clock and number of ticks per second in the **target\_config.h** file of the development board. Configure the task, memory, inter-process communication \(IPC\), and exception handling modules based on service requirements. When the system boots, the modules are initialized based on the configuration. The kernel startup process includes peripheral initialization, system clock configuration, kernel initialization, and OS boot. For details, see [Figure 2](#fig19742101817344). + +**Figure 2** Kernel startup process +![](figure/kernel-startup-process.png "kernel-startup-process") + diff --git a/en/device-dev/kernel/kernel-small-apx-bitwise.md b/en/device-dev/kernel/kernel-small-apx-bitwise.md new file mode 100644 index 00000000000..38076b68390 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-apx-bitwise.md @@ -0,0 +1,125 @@ +# Bitwise Operation + +- [Basic Concepts](#section1990715203418) +- [Available APIs](#section848334511411) +- [Development Example](#section67569495514) + - [Example Description](#section33551554391) + - [Verification](#section8931859194) + + +## Basic Concepts + +A bitwise operation operates on a binary number at the level of its individual bits. For example, a variable can be set as a program PSW \(PSW\), and each bit \(flag bit\) in the PSW can have a self-defined meaning. + +## Available APIs + +The system provides operations for setting the flag bit to **1** or **0**, changing the flag bit content, and obtaining the most significant bit and least significant bit of the flag bit 1 in a PSW. You can also perform bitwise operations on system registers. The following table describes the APIs available for the bitwise operation module. For more details about the APIs, see the API reference. + +**Table 1** Bitwise operation module APIs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Setting the flag bit to 1 or 0

+

LOS_BitmapSet

+

Sets a flag bit of a PSW to 1.

+

LOS_BitmapClr

+

Sets a flag bit of a PSW to 0.

+

Obtaining the bit whose flag bit is 1

+

LOS_HighBitGet

+

Obtains the most significant bit of 1 in the PSW.

+

LOS_LowBitGet

+

Obtains the least significant bit of 1 in the PSW.

+

Operating continuous bits

+

LOS_BitmapSetNBits

+

Sets the continuous flag bits of a PSW to 1.

+

LOS_BitmapClrNBits

+

Sets the continuous flag bits of a PSW to 0.

+

LOS_BitmapFfz

+

Obtains the first 0 bit starting from the least significant bit (LSB).

+
+ +## Development Example + +### Example Description + +This example implements the following: + +1. Set a flag bit to **1**. +2. Obtain the most significant bit of flag bit 1. +3. Set a flag bit to **0**. +4. Obtains the least significant bit of the flag bit 1. + +``` +#include "los_bitmap.h" +#include "los_printf.h" + +static UINT32 BitSample(VOID) +{ + UINT32 flag = 0x10101010; + UINT16 pos; + + PRINTK("\nBitmap Sample!\n"); + PRINTK("The flag is 0x%8x\n", flag); + + pos = 8; + LOS_BitmapSet(&flag, pos); + PRINTK("LOS_BitmapSet:\t pos : %d, the flag is 0x%0+8x\n", pos, flag); + + pos = LOS_HighBitGet(flag); + PRINTK("LOS_HighBitGet:\t The highest one bit is %d, the flag is 0x%0+8x\n", pos, flag); + + LOS_BitmapClr(&flag, pos); + PRINTK("LOS_BitmapClr:\t pos : %d, the flag is 0x%0+8x\n", pos, flag); + + pos = LOS_LowBitGet(flag); + PRINTK("LOS_LowBitGet:\t The lowest one bit is %d, the flag is 0x%0+8x\n\n", pos, flag); + + return LOS_OK; +} +``` + +### Verification + +The development is successful if the return result is as follows: + +``` +Bitmap Sample! +The flag is 0x10101010 +LOS_BitmapSet: pos : 8, the flag is 0x10101110 +LOS_HighBitGet:The highest one bit is 28, the flag is 0x10101110 +LOS_BitmapClr: pos : 28, the flag is 0x00101110 +LOS_LowBitGet: The lowest one bit is 4, the flag is 0x00101110 +``` + diff --git a/en/device-dev/kernel/kernel-small-apx-dll.md b/en/device-dev/kernel/kernel-small-apx-dll.md new file mode 100644 index 00000000000..1e4489eb828 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-apx-dll.md @@ -0,0 +1,229 @@ +# Doubly Linked List + +- [Basic Concepts](#section1990715203418) +- [Available APIs](#section848334511411) +- [How to Develop](#section01781261552) + - [Development Example](#section8354175218128) + + +## Basic Concepts + +A doubly linked list is a linked data structure that consists of a set of sequentially linked records called nodes. Each node contains a pointer to the previous node and a pointer to the next node in the sequence of nodes. The pointer head is unique. A doubly linked list allows access from a list node to its next node and also the previous node on the list. This data structure facilitates data search, especially traversal of a large amount of data. The symmetry of the doubly linked list also makes operations, such as insertion and deletion, easy. However, pay attention to the pointer direction when performing operations. + +## Available APIs + +The following table describes APIs available for the doubly linked list. For more details about the APIs, see the API reference. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Initializing a linked list

+

LOS_ListInit

+

Initializes a specified node as a doubly linked list node.

+

LOS_DL_LIST_HEAD

+

Defines a node and initializes it as a doubly linked list node.

+

Adding a node

+

LOS_ListAdd

+

Inserts the specified node to the head of a doubly linked list.

+

LOS_ListHeadInsert

+

Inserts the specified node to the head of a doubly linked list. It is the same as LOS_ListAdd.

+

LOS_ListTailInsert

+

Inserts the specified node to the end of a doubly linked list.

+

Adding a linked list

+

LOS_ListAddList

+

Inserts the head of a specified linked list into the head of a doubly linked list.

+

LOS_ListHeadInsertList

+

Inserts the head of a specified linked list into the head of a doubly linked list. It is the same as LOS_ListAddList.

+

LOS_ListTailInsertList

+

Inserts the end of a specified linked list into the head of a doubly linked list.

+

Deleting a node

+

LOS_ListDelete

+

Deletes the specified node from a doubly linked list.

+

LOS_ListDelInit

+

Deletes the specified node from the linked list and uses the node to initialize the linked list.

+

Determining a doubly linked list

+

LOS_ListEmpty

+

Checks whether a linked list is empty.

+

LOS_DL_LIST_IS_END

+

Checks whether the specified linked list node is at the end of the linked list.

+

LOS_DL_LIST_IS_ON_QUEUE

+

Check whether the linked list node is in a doubly linked list.

+

Obtaining structure information

+

LOS_OFF_SET_OF

+

Obtains the offset of a member in a specified structure relative to the start address of the structure.

+

LOS_DL_LIST_ENTRY

+

Obtains the address of the structure that contains the first node in the linked list. The first input parameter of the API indicates the head node in the list, the second input parameter indicates the name of the structure to be obtained, and the third input parameter indicates the name of the linked list in the structure.

+

LOS_ListPeekHeadType

+

Obtains the address of the structure that contains the first node in the linked list. The first input parameter of the API indicates the head node in the list, the second input parameter indicates the name of the structure to be obtained, and the third input parameter indicates the name of the linked list in the structure. Return Null if the linked list is empty.

+

LOS_ListRemoveHeadType

+

Obtains the address of the structure that contains the first node in the linked list, and deletes the first node from the list. The first input parameter of the API indicates the head node in the list, the second input parameter indicates the name of the structure to be obtained, and the third input parameter indicates the name of the linked list in the structure. Return Null if the linked list is empty.

+

LOS_ListNextType

+

Obtains the address of the structure that contains the next node of the specified node in the linked list. The first input parameter of the API indicates the head node in the list, the second input parameter indicates the specified node, the third parameter indicates the name of the structure to be obtained, and the fourth input parameter indicates the name of the linked list in the structure. If the next node of the linked list node is the head node and is empty, NULL is returned.

+

Traversing a doubly linked list

+

LOS_DL_LIST_FOR_EACH

+

Traverses a doubly linked list.

+

LOS_DL_LIST_FOR_EACH_SAFE

+

Traverses a doubly linked list, and stores the next node of the current node for security verification.

+

Traversing the structure that contains the doubly linked list

+

LOS_DL_LIST_FOR_EACH_ENTRY

+

Traverses the specified doubly linked list and obtains the address of the structure that contains the linked list node.

+

LOS_DL_LIST_FOR_EACH_ENTRY_SAFE

+

Traverses the specified doubly linked list, obtains the structure address of the node that contains the linked list, and stores the structure address that contains the next node of the current node.

+
+ +## How to Develop + +The typical development process of the doubly linked list is as follows: + +1. Call **LOS\_ListInit/LOS\_DL\_LIST\_HEAD** to initialize a doubly linked list. +2. Call **LOS\_ListAdd** to insert a node to the list. +3. Call **LOS\_ListTailInsert** to insert a node to the end of the list. +4. Call **LOS\_ListDelete** to delete the specified node. +5. Call **LOS\_ListEmpty** to check whether a linked list is empty. +6. Call **LOS\_ListDelInit** to delete a specified node, and initialize the linked list based on this node. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- Pay attention to the operations of the front and back pointer of the node. +>- The linked list operation APIs are underlying APIs and do not check whether the input parameters are empty. You must ensure that the input parameters are valid. +>- If the memory of a linked list node is dynamically requested, release the memory after deleting the node. + +### Development Example + +Example Description + +This example implements the following: + +1. Initialize a doubly linked list. +2. Add nodes. +3. Delete a node. +4. Check whether the operation is performed successfully. + +``` +#include "stdio.h" +#include "los_list.h" + +static UINT32 ListSample(VOID) +{ + LOS_DL_LIST listHead = {NULL,NULL}; + LOS_DL_LIST listNode1 = {NULL,NULL}; + LOS_DL_LIST listNode2 = {NULL,NULL}; + + // Initialize the linked list. + PRINTK("Initial head\n"); + LOS_ListInit(&listHead); + + // Add node 1 and node 2 and verify their relationship. + LOS_ListAdd(&listHead, &listNode1); + if (listNode1.pstNext == &listHead && listNode1.pstPrev == &listHead) { + PRINTK("Add listNode1 success\n"); + } + + LOS_ListTailInsert(&listHead, &listNode2); + if (listNode2.pstNext == &listHead && listNode2.pstPrev == &listNode1) { + PRINTK("Tail insert listNode2 success\n"); + } + + // Delete the two nodes. + LOS_ListDelete(&listNode1); + LOS_ListDelete(&listNode2); + + // Check that the linked list is empty. + if (LOS_ListEmpty(&listHead)) { + PRINTK("Delete success\n"); + } + + return LOS_OK; +} +``` + +**Verification** + +The development is successful if the return result is as follows: + +``` +Initial head +Add listNode1 success +Tail insert listNode2 success +Delete success +``` + diff --git a/en/device-dev/kernel/kernel-lite-small-lib-standard.md b/en/device-dev/kernel/kernel-small-apx-library.md similarity index 46% rename from en/device-dev/kernel/kernel-lite-small-lib-standard.md rename to en/device-dev/kernel/kernel-small-apx-library.md index c617ebcef2b..8bd0b23fd5d 100644 --- a/en/device-dev/kernel/kernel-lite-small-lib-standard.md +++ b/en/device-dev/kernel/kernel-small-apx-library.md @@ -1,21 +1,27 @@ -# Standard Library +# Standard Library -- [Framework](#section1247343413257) -- [Development Example](#section4807125622614) -- [FAQs](#section1219455217277) +- [Standard Library API Framework](#section149319478561) +- [Development Example](#section20874620185915) +- [Differences from the Linux Standard Library](#section6555642165713) + - [Process](#section11299104511409) + - [Memory](#section175754484116) + - [File System](#section118191113134220) + - [Signal](#section195939264421) + - [Time](#section20825124304213) -The OpenHarmony kernel uses the **musl libc** library that supports the Portable Operating System Interface \(POSIX\). You can develop components and applications working on the kernel based on the POSIX. -## Framework +The OpenHarmony kernel uses the musl libc library that supports the Portable Operating System Interface \(POSIX\). You can develop components and applications working on the kernel based on the POSIX. -**Figure 1** POSIX framework +## Standard Library API Framework + +**Figure 1** POSIX framework ![](figure/posix-framework.png "posix-framework") -When a system invokes an interface, the OpenHarmony kernel is adapted to provide the interface's external features. +The musl libc library supports POSIX standards. The OpenHarmony kernel adapts the related system call APIs to implement external functions. For details about the APIs supported by the standard library, see the API document of the C library, which also covers the differences between the standard library and the POSIX standard. -## Development Example +## Development Example In this example, the main thread creates **THREAD\_NUM** child threads. Once a child thread is started, it enters the standby state. After the main thread successfully wakes up all child threads, they continue to execute until the lifecycle ends. The main thread uses the **pthread\_join** method to wait until all child threads are executed. @@ -47,17 +53,17 @@ static void *ChildThreadFunc(void *arg) int rc; pthread_t self = pthread_self(); - /* Locks a mutex. */ + /* Acquire a mutex. */ rc = pthread_mutex_lock(&g_td.mutex); if (rc != 0) { printf("ERROR:take mutex lock failed, error code is %d!\n", rc); goto EXIT; } - /* The value of g_startNum is increased by 1. The value indicates the number of child threads that have locked a mutex. */ + /* The value of g_startNum is increased by 1. The value indicates the number of child threads that have acquired a mutex. */ g_startNum++; - /* Wait for the condition variable. */ + /* Wait for the cond variable. */ rc = pthread_cond_wait(&g_td.cond, &g_td.mutex); if (rc != 0) { printf("ERROR: pthread condition wait failed, error code is %d!\n", rc); @@ -65,14 +71,14 @@ static void *ChildThreadFunc(void *arg) goto EXIT; } - /* Attempt to lock a mutex, which is failed in normal cases. */ + /* Attempt to acquire a mutex, which is failed in normal cases. */ rc = pthread_mutex_trylock(&g_td.mutex); if (rc == 0) { printf("ERROR: mutex gets an abnormal lock!\n"); goto EXIT; } - /* The value of g_wakenNum is increased by 1. The value indicates the number of child threads that have been woken up by the condition variable. */ + /* The value of g_wakenNum is increased by 1. The value indicates the number of child threads that have been woken up by the cond variable. */ g_wakenNum++; /* Unlock a mutex. */ @@ -97,7 +103,7 @@ static int testcase(void) goto ERROROUT; } - /* Initialize the condition variable. */ + /* Initialize the cond variable. */ rc = pthread_cond_init(&g_td.cond, NULL); if (rc != 0) { printf("ERROR: pthread condition init failed, error code is %d!\n", rc); @@ -118,14 +124,14 @@ static int testcase(void) usleep(100); } - /* Lock a mutex and block all threads using pthread_cond_wait. */ + /* Acquire a mutex and block all threads using pthread_cond_wait. */ rc = pthread_mutex_lock(&g_td.mutex); if (rc != 0) { printf("ERROR: mutex lock failed, error code is %d\n", rc); goto ERROROUT; } - /* Unlock a mutex. */ + /* Release a mutex. */ rc = pthread_mutex_unlock(&g_td.mutex); if (rc != 0) { printf("ERROR: mutex unlock failed, error code is %d!\n", rc); @@ -133,7 +139,7 @@ static int testcase(void) } for (int j = 0; j < THREAD_NUM; j++) { - /* Broadcast signals on the condition variable. */ + /* Broadcast signals on the cond variable. */ rc = pthread_cond_signal(&g_td.cond); if (rc != 0) { printf("ERROR: pthread condition failed, error code is %d!\n", rc); @@ -158,7 +164,7 @@ static int testcase(void) } } - /* Destroy the condition variable. */ + /* Destroy the cond variable. */ rc = pthread_cond_destroy(&g_td.cond); if (rc != 0) { printf("ERROR: pthread condition destroy failed, error code is %d!\n", rc); @@ -191,7 +197,91 @@ int main(int argc, char *argv[]) #endif /* __cplusplus */ ``` -## FAQs +## Differences from the Linux Standard Library + +This section describes the key differences between the standard library carried by the OpenHarmony kernel and the Linux standard library. For more differences, see the API document of the C library. + +### Process + +1. The OpenHarmony user-space processes support only static priorities, which range from 10 \(highest\) to 31 \(lowest\). +2. The OpenHarmony user-space threads support only static priorities, which range from 0 \(highest\) to 31 \(lowest\). +3. The OpenHarmony process scheduling support **SCHED\_RR** only, and thread scheduling support **SCHED\_RR** or **SCHED\_FIFO**. + +### Memory + +**h2****Difference with Linux mmap** + +mmap prototype: **void \*mmap \(void \*addr, size\_t length, int prot, int flags, int fd, off\_t offset\)** + +The lifecycle implementation of **fd** is different from that of Linux glibc. glibc releases the **fd** handle immediately after successfully invoking **mmap** for mapping. In the OpenHarmony kernel, you are not allowed to close the **fd** immediately after the mapping is successful. You can close the **fd** only after **munmap** is called. If you do not close **fd**, the OS reclaims the **fd** when the process exits. + +**h2****Sample Code** + +Linux OS: + +``` +int main(int argc, char *argv[]) +{ + int fd; + void *addr = NULL; + ... + fd = open(argv[1], O_RDONLY); + if (fd == -1){ + perror("open"); + exit(EXIT_FAILURE); + } + addr = mmap(NULL, length, PROT_READ, MAP_PRIVATE, fd, offset); + if (addr == MAP_FAILED) { + perror("mmap"); + exit(EXIT_FAILURE); + } + close(fd); /* OpenHarmony does not support closing fd immediately after the mapping is successful. */ + ... + exit(EXIT_SUCCESS); +} +``` + +OpenHarmony: + +``` +int main(int argc, char *argv[]) +{ + int fd; + void *addr = NULL; + ... + fd = open(argv[1], O_RDONLY); + if (fd == -1) { + perror("open"); + exit(EXIT_FAILURE); + } + addr = mmap(NULL, length, PROT_READ, MAP_PRIVATE, fd, offset); + if (addr == MAP_FAILED) { + perror("mmap"); + exit(EXIT_FAILURE); + } + ... + munmap(addr, length); + close(fd); /* Close fd after the munmap is canceled. */ + exit(EXIT_SUCCESS); +} +``` + +### File System + +**System directories**: You cannot modify system directories and device mount directories, which include **/dev**, **/proc**, **/app**, **/bin**, **/data**, **/etc**, **/lib**, **/system** and **/usr**. + +**User directory**: The user directory refers to the **/storage** directory. You can create, read, and write files in this directory, but cannot mount devices. + +Except the system and user directories, you can create directories and mount devices. Note that nested mount is not allowed, that is, a mounted folder and its subfolders cannot be mounted repeatedly. A non-empty folder cannot be mounted. + +### Signal + +- The default behavior for signals does not include **STOP**, **CONTINUE**, or **COREDUMP**. +- A sleeping process \(for example, a process enters the sleeping status by calling the sleep function\) cannot be woken up by a signal. The signal mechanism does not support the wakeup function. The behavior for a signal can be processed only when the process is scheduled by the CPU. +- After a process exits, **SIGCHLD** is sent to the parent process. The sending action cannot be canceled. +- Only signals 1 to 30 are supported. The callback is executed only once even if the same signal is received multiple times. + +### Time -None +The OpenHarmony time precision is based on tick. The default value is 10 ms/tick. The time error of the **sleep** and **timeout** functions is less than or equal to 20 ms. diff --git a/en/device-dev/kernel/kernel-small-apx-structure.md b/en/device-dev/kernel/kernel-small-apx-structure.md new file mode 100644 index 00000000000..7e27b4cea1d --- /dev/null +++ b/en/device-dev/kernel/kernel-small-apx-structure.md @@ -0,0 +1,7 @@ +# Basic Data Structure + +- **[Doubly Linked List](kernel-small-apx-dll.md)** + +- **[Bitwise Operation](kernel-small-apx-bitwise.md)** + + diff --git a/en/device-dev/kernel/kernel-small-apx.md b/en/device-dev/kernel/kernel-small-apx.md new file mode 100644 index 00000000000..4855425ba46 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-apx.md @@ -0,0 +1,7 @@ +# Appendix + +- **[Basic Data Structure](kernel-small-apx-structure.md)** + +- **[Standard Library](kernel-small-apx-library.md)** + + diff --git a/en/device-dev/kernel/kernel-small-basic-atomic.md b/en/device-dev/kernel/kernel-small-basic-atomic.md new file mode 100644 index 00000000000..2f480a1d08d --- /dev/null +++ b/en/device-dev/kernel/kernel-small-basic-atomic.md @@ -0,0 +1,288 @@ +# Atomic Operation + +- [Basic Concepts](#section1792118384594) +- [Working Principles](#section1786635117596) +- [Development Guidelines](#section2911115308) + - [Available APIs](#section335914201010) + - [How to Develop](#section12207371304) + - [Development Example](#section8538651511) + + +## Basic Concepts + +In an OS that supports multiple tasks, modifying data in a memory area requires three steps: read data, modify data, and write data. However, data in a same memory area may be simultaneously accessed by multiple tasks. If the data modification is interrupted by another task, the execution result of the operation is unpredictable. + +Although you can enable or disable interrupts to ensure that the multi-task execution results meet expectation, the system performance is affected. + +The ARMv6 architecture has introduced the **LDREX** and **STREX** instructions to support more discreet non-blocking synchronization of the shared memory. The atomic operations implemented thereby can ensure that the "read-modify-write" operations on the same data will not be interrupted, that is, the operation atomicity is ensured. + +## Working Principles + +The OpenHarmony system has encapsulated the **LDREX** and **STREX** in the ARMv6 architecture to provide a set of atomic operation APIs. + +- LDREX Rx, \[Ry\] + + Reads the value in the memory and marks the exclusive access to the memory segment. + + - Reads the 4-byte memory data pointed by the register **Ry** and saves the data to the **Rx** register. + - Adds an exclusive access flag to the memory area pointed by **Ry**. + +- STREX Rf, Rx, \[Ry\] + + Checks whether the memory has an exclusive access flag. If yes, the system updates the memory value and clears the flag. If no, the memory is not updated. + + - If there is an exclusive access flag, the system: + - Updates the **Rx** register value to the memory pointed to by the **Ry** register. + - Sets the **Rf** register to **0**. + + - If there is no exclusive access flag: + - The memory is not updated. + - The system sets the **Rf** register to **1**. + + +- Flag register + - If the flag register is **0**, the system exits the loop and the atomic operation is complete. + - If the flag register is **1**, the system continues the loop and performs the atomic operation again. + + +## Development Guidelines + +### Available APIs + +The following table describes the APIs available for the OpenHarmony LiteOS-A kernel atomic operation module. For more details about the APIs, see the API reference. + +**Table 1** Atomic operation APIs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Read

+

LOS_AtomicRead

+

Reads 32-bit atomic data.

+

LOS_Atomic64Read

+

Reads 64-bit atomic data.

+

Write

+

LOS_AtomicSet

+

Sets 32-bit atomic data.

+

LOS_Atomic64Set

+

Sets 64-bit atomic data.

+

Add

+

LOS_AtomicAdd

+

Adds 32-bit atomic data.

+

LOS_Atomic64Add

+

Adds 64-bit atomic data.

+

LOS_AtomicInc

+

Adds 1 to 32-bit atomic data.

+

LOS_Atomic64Inc

+

Adds 1 to 64-bit atomic data.

+

LOS_AtomicIncRet

+

Adds 1 to 32-bit atomic data and returns the data.

+

LOS_Atomic64IncRet

+

Adds 1 to 64-bit atomic data and returns the data.

+

Subtract

+

LOS_AtomicSub

+

Performs subtraction on 32-bit atomic data.

+

LOS_Atomic64Sub

+

Performs subtraction on 64-bit atomic data.

+

LOS_AtomicDec

+

Subtracts 1 from 32-bit atomic data.

+

LOS_Atomic64Dec

+

Subtracts 1 from 64-bit atomic data.

+

LOS_AtomicDecRet

+

Subtracts 1 from 32-bit atomic data and returns the result.

+

LOS_Atomic64DecRet

+

Subtracts 1 from 64-bit atomic data and returns the result.

+

Swap

+

LOS_AtomicXchgByte

+

Swaps 8-bit memory data.

+

LOS_AtomicXchg16bits

+

Swaps 16-bit memory data.

+

LOS_AtomicXchg32bits

+

Swaps 32-bit memory data.

+

LOS_AtomicXchg64bits

+

Swaps 64-bit memory data.

+

Compare and swap

+

LOS_AtomicCmpXchgByte

+

Compares and swaps 8-bit memory data.

+

LOS_AtomicCmpXchg16bits

+

Compares and swaps 16-bit memory data.

+

LOS_AtomicCmpXchg32bits

+

Compares and swaps 32-bit memory data.

+

LOS_AtomicCmpXchg64bits

+

Compares and swaps 64-bit memory data.

+
+ +### How to Develop + +When multiple tasks perform addition, subtraction, and swap operations on the same memory data, use atomic operations to ensure predictability of results. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>Atomic operation APIs support only integer data. + +### Development Example + +Example Description + +Call the atomic operation APIs and observe the result. + +1. Create two tasks. + - Task 1: Call **LOS\_AtomicInc** to add the global variables 100 times. + - Task 2: Call **LOS\_AtomicDec** to subtract the global variables 100 times. + +2. After the subtasks are complete, print the values of the global variables in the main task. + +**Sample Code** + +The sample code is as follows: + +``` +#include "los_hwi.h" +#include "los_atomic.h" +#include "los_task.h" + +UINT32 g_testTaskId01; +UINT32 g_testTaskId02; +Atomic g_sum; +Atomic g_count; + +UINT32 Example_Atomic01(VOID) +{ + int i = 0; + for(i = 0; i < 100; ++i) { + LOS_AtomicInc(&g_sum); + } + + LOS_AtomicInc(&g_count); + return LOS_OK; +} + +UINT32 Example_Atomic02(VOID) +{ + int i = 0; + for(i = 0; i < 100; ++i) { + LOS_AtomicDec(&g_sum); + } + + LOS_AtomicInc(&g_count); + return LOS_OK; +} + +UINT32 Example_AtomicTaskEntry(VOID) +{ + TSK_INIT_PARAM_S stTask1={0}; + stTask1.pfnTaskEntry = (TSK_ENTRY_FUNC)Example_Atomic01; + stTask1.pcName = "TestAtomicTsk1"; + stTask1.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE; + stTask1.usTaskPrio = 4; + stTask1.uwResved = LOS_TASK_STATUS_DETACHED; + + TSK_INIT_PARAM_S stTask2={0}; + stTask2.pfnTaskEntry = (TSK_ENTRY_FUNC)Example_Atomic02; + stTask2.pcName = "TestAtomicTsk2"; + stTask2.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE; + stTask2.usTaskPrio = 4; + stTask2.uwResved = LOS_TASK_STATUS_DETACHED; + + LOS_TaskLock(); + LOS_TaskCreate(&g_testTaskId01, &stTask1); + LOS_TaskCreate(&g_testTaskId02, &stTask2); + LOS_TaskUnlock(); + + while(LOS_AtomicRead(&g_count) != 2); + PRINTK("g_sum = %d\n", g_sum); + + return LOS_OK; +} +``` + +**Verification** + +``` +g_sum = 0 +``` + diff --git a/en/device-dev/kernel/kernel-small-basic-inner-reflect.md b/en/device-dev/kernel/kernel-small-basic-inner-reflect.md new file mode 100644 index 00000000000..667ccf35e2b --- /dev/null +++ b/en/device-dev/kernel/kernel-small-basic-inner-reflect.md @@ -0,0 +1,88 @@ +# Virtual-to-Physical Mapping + +- [Basic Concepts](#section9108144913615) +- [Working Principles](#section12392621871) +- [Development Guidelines](#section10264102013713) + - [Available APIs](#section195320251578) + - [How to Develop](#section152774210712) + + +## Basic Concepts + +The Memory Management Unit \(MMU\) is used to map the virtual addresses in the process space and the actual physical addresses and specify corresponding access permissions and cache attributes. When a program is executed, the CPU accesses the virtual memory, locates the corresponding physical memory based on the MMU page table entry, and executes the code or performs data read/write operations. The page tables of the MMU store the mappings between virtual and physical addresses and the access permission. A page table is created when each process is created. The page table contains page table entries \(PTEs\), and each PTE describes a mapping between a virtual address region and a physical address region. The MMU has a Translation Lookaside Buffer \(TLB\) to perform address translation. During address translation, the MMU first searches the TLB for the corresponding PTE. If a match is found, the address can be returned directly. The following figure illustrates how the CPU accesses the memory or peripherals. + +**Figure 1** CPU accessing the memory or peripheral +![](figure/cpu-accessing-the-memory-or-peripheral.png "cpu-accessing-the-memory-or-peripheral") + +## Working Principles + +Virtual-to-physical address mapping is a process of establishing page tables. The MMU has multiple levels of page tables. The LiteOS-A kernel uses the level-2 page tables to describe the process space. Each level-1 PTE descriptor occupies 4 bytes, which indicate a mapping record of 1 MiB memory space. The 1 GiB user space of the LiteOS-A kernel has 1024 level-1 PTEs. When a user process is created, a 4 KiB memory block is requested from the memory as the storage area of the level-1 page table. The level-2 page table dynamically request memory based on requirements of the process. + +- When a user program is loaded and started, the code segment and data segment are mapped to the virtual memory space \(for details, see [Dynamic Loading and Linking](kernel-small-bundles-linking.md)\). At that time, no physical page is mapped. +- When the program is executed, as shown by the bold arrow in the following figure, the CPU accesses the virtual address and checks for the corresponding physical memory in the MMU. If the virtual address does not have the corresponding physical address, a page missing fault is triggered. The kernel requests the physical memory, writes the virtual-physical address mapping and the related attributes to the page table, and caches the PTE in the TLB. Then, the CPU can directly access the actual physical memory. +- If the PTE already exists in the TLB, the CPU can access the physical memory without accessing the page table stored in the memory. + +**Figure 2** CPU accessing the memory +![](figure/cpu-accessing-the-memory.png "cpu-accessing-the-memory") + +## Development Guidelines + +### Available APIs + +**Table 1** APIs of the virtual-to-physical address mapping module + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

MMU operations

+

LOS_ArchMmuQuery

+

Obtains the physical address and attributes corresponding to the virtual address of the process space.

+

LOS_ArchMmuMap

+

Maps the virtual address region of the process space and the physical address region.

+

LOS_ArchMmuUnmap

+

Removes the mapping between the virtual address region of the process space and the physical address region.

+

LOS_ArchMmuChangeProt

+

Modifies the mapping attributes of the virtual address region of the process space.

+

LOS_ArchMmuMove

+

Moves a mapping record of a virtual address region in the process space to another unused virtual address region for remapping.

+
+ +### How to Develop + +To use virtual-to-physical address mapping APIs: + +1. Call **LOS\_ArchMmuMap** to map a physical memory block. +2. Perform the following operations on the mapped address region: + - Call **LOS\_ArchMmuQuery** to query the physical address region corresponding to a virtual address region and the mapping attributes. + + - Call **LOS\_ArchMmuChangeProt** to modify the mapping attributes. + - Call **LOS\_ArchMmuMove** to remap the virtual address region. + +3. Call **LOS\_ArchMmuUnmap** to remove the mapping. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>The preceding APIs can be used after the MMU initialization is complete and the page tables of the related process are created. The MMU initialization is complete during system startup. Page tables are created when the processes are created. You do not need to perform any operation. + diff --git a/en/device-dev/kernel/kernel-small-basic-interrupt.md b/en/device-dev/kernel/kernel-small-basic-interrupt.md new file mode 100644 index 00000000000..cde3913599b --- /dev/null +++ b/en/device-dev/kernel/kernel-small-basic-interrupt.md @@ -0,0 +1,147 @@ +# Interrupt and Exception Handling + +- [Basic Concepts](#section439816296117) +- [Working Principles](#section2792838318) +- [Development Guidelines](#section15415165510110) + - [Available APIs](#section57441612024) + - [How to Develop](#section64332181221) + - [Development Example](#section204698276478) + - [Verification](#section1466144215476) + + +## Basic Concepts + +An interrupt is a signal to the processor emitted by hardware or software indicating an event that needs immediate attention. An interrupt alerts the processor to a high-priority condition requiring the interruption of the current code being executed by the processor. In this way, the CPU does not need to spend a lot of time in waiting and querying the peripheral status, which effectively improves the real-time performance and execution efficiency of the system. + +Exception handling involves a series of actions taken by the OS to respond to exceptions \(chip hardware faults\) occurred during the OS running, for example, printing the call stack information of the current function, CPU information, and call stack information of tasks when the virtual memory page is missing. + +## Working Principles + +Peripherals can complete certain work without the intervention of the CPU. In some cases, however, the CPU needs to perform certain work for peripherals. By using the interrupt mechanism, the CPU responds to the interrupt request from a peripheral only when required, and execute other tasks when the peripherals do not require the CPU. The interrupt controller receives the input of other peripheral interrupt pins and sends interrupt signals to the CPU. You can enable or disable the interrupt source and set the priority and trigger mode of the interrupt source by programming the interrupt controller. Common interrupt controllers include vector interrupt controllers \(VICs\) and general interrupt controllers \(GICs\). The ARM Cortex-A7 uses GICs. After receiving an interrupt signal sent by the interrupt controller, the CPU interrupts the current task to respond to the interrupt request. + +Exception handling interrupts the normal running process of the CPU to handle exceptions, such as, undefined instruction exception, an attempt to modify read-only data, and unaligned address access. When an exception occurs, the CPU suspends the current program, handles the exception, and then continues to execute the program interrupted by the exception. + +The following uses the ARMv7-a architecture as an example. The interrupt vector table is the entry for interrupt and exception handling. The interrupt vector table contains the entry function for each interrupt and exception handling. + +**Figure 1** Interrupt vector table + + +![](figure/en-us_image_0000001173449871.png) + +## Development Guidelines + +### Available APIs + +Exception handling is an internal mechanism and does not provide external APIs. The following table describes APIs available for the interrupt module. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Creating or deleting interrupts

+

LOS_HwiCreate

+

Creates an interrupt and registers the interrupt ID, interrupt triggering mode, interrupt priority, and interrupt handler. When an interrupt is triggered, the interrupt handler will be called.

+

LOS_HwiDelete

+

Deletes an interrupt.

+

Enabling and disabling all interrupts

+

LOS_IntUnLock

+

Enables all interrupts of the current processor.

+

LOS_IntLock

+

Disables all interrupts for the current processor.

+

LOS_IntRestore

+

Restores to the status before all interrupts are disabled by using LOS_IntLock.

+

Obtaining the maximum number of interrupts supported

+

LOS_GetSystemHwiMaximum

+

Obtains the maximum number of interrupts supported by the system.

+
+ +### How to Develop + +1. Call **LOS\_HwiCreate** to create an interrupt. +2. Call **LOS\_HwiDelete** to delete the specified interrupt. Use this API based on actual requirements. + +### Development Example + +This example implements the following: + +1. Create an interrupt. +2. Delete an interrupt. + +The following sample code shows how to create and delete an interrupt. When the interrupt **HWI\_NUM\_TEST** is generated, the interrupt handler function will be called. + +``` +#include "los_hwi.h" +/* Interrupt handler function*/ +STATIC VOID HwiUsrIrq(VOID) +{ + printf("in the func HwiUsrIrq \n"); +} + +static UINT32 Example_Interrupt(VOID) +{ + UINT32 ret; + HWI_HANDLE_T hwiNum = 7; + HWI_PRIOR_T hwiPrio = 3; + HWI_MODE_T mode = 0; + HWI_ARG_T arg = 0; + +/* Create an interrupt.*/ + ret = LOS_HwiCreate(hwiNum, hwiPrio, mode, (HWI_PROC_FUNC)HwiUsrIrq, (HwiIrqParam *)arg); + if(ret == LOS_OK){ + printf("Hwi create success!\n"); + } else { + printf("Hwi create failed!\n"); + return LOS_NOK; + } + + /* Delay 50 ticks. When a hardware interrupt occurs, the HwiUsrIrq function will be called.*/ + LOS_TaskDelay(50); + + /* Delete an interrupt./ + ret = LOS_HwiDelete(hwiNum, (HwiIrqParam *)arg); + if(ret == LOS_OK){ + printf("Hwi delete success!\n"); + } else { + printf("Hwi delete failed!\n"); + return LOS_NOK; + } + return LOS_OK; +} +``` + +### Verification + +The development is successful if the return result is as follows: + +``` +Hwi create success! +Hwi delete success! +``` + diff --git a/en/device-dev/kernel/kernel-small-basic-memory-heap.md b/en/device-dev/kernel/kernel-small-basic-memory-heap.md new file mode 100644 index 00000000000..e6960d8dfc0 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-basic-memory-heap.md @@ -0,0 +1,249 @@ +# Heap Memory Management + +- [Basic Concepts](#section449414395916) +- [Working Principles](#section465085575911) +- [Development Guidelines](#section577019272015) + - [When to Use](#section326917198583) + - [Available APIs](#section1032331584) + - [How to Develop](#section07271773592) + - [Development Example](#section84931234145913) + - [Verification](#section165233233917) + + +## Basic Concepts + +Memory management module, one of the core modules of the OS, manages the memory resources of the system. Memory management involves memory initialization, allocation, and release. The heap memory management of the OpenHarmony LiteOS-A provides functions such as memory initialization, allocation, and release. While the OS is running, the heap memory management module manages the memory usage of users and the OS by allocating and releasing memory. This helps achieve the optimal memory usage and usage efficiency and minimize memory fragments. + +## Working Principles + +Heap memory management allows memory blocks of any size to be allocated from a large contiguous memory \(memory pool or heap memory\) configured in the system based on user demands when memory resources are sufficient. The memory block can be released for further use when not required. Heap memory management is a type of dynamic memory management. Compared with static memory management, dynamic memory management allows memory allocation on demand but causes fragmentation of memory. The heap memory of the OpenHarmony LiteOS-A has optimized the memory space partitioning based on the Two-Level Segregate Fit \(TLSF\) algorithm to achieve higher performance and minimize fragmentation. [Figure 1](#fig14558185217397) shows the core algorithm of the heap memory management. + +**Figure 1** Heap memory core algorithm +![](figure/heap-memory-core-algorithm.png "heap-memory-core-algorithm") + +Multiple free lists are used for management based on the size of the free memory block. The free memory blocks are divided into two parts: \[4, 127\] and \[27, 231\], as indicated by the size class in the above figure. + +1. The memory in the range of \[4, 127\] \(lower part in the figure\) is equally divided into 31 parts. The size of the memory block corresponding to each part is a multiple of 4 bytes. Each part corresponds to a free list and a bit that indicates whether the free list is empty. The value **1** indicates that the free list is not empty. There are 31 bits corresponding to the 31 memory parts in the range of \[4, 127\]. +2. The memory greater than 127 bytes is managed in power of two increments. The size of each range is \[2^n, 2^\(n+1\) -1\], where n is an integer in \[7, 30\]. This range is divided into 24 parts, each of which is further divided into 8 second-level \(L2\) ranges, as shown in Size Class and Size SubClass in the upper part of the figure. Each L2 range corresponds to a free list and a bit that indicates whether the free list is empty. There are a total of 192 \(24 x 8\) L2 ranges, corresponding to 192 free lists and 192 bits. + +For example, insert 40-byte free memory to a free list. The 40-byte free memory corresponds to the 10th free list in the range of \[40, 43\], and the 10th bit indicates the use of the free list. The system inserts the 40-byte free memory to the 10th free list and determines whether to update the bitmap flag. When 40-byte memory is requested, the system obtains the free list corresponding to the memory block of the requested size based on the bitmap flag, and then obtains a free memory node from the free list. If the size of the allocated node is greater than the memory requested, the system splits the node and inserts the remaining node to the free list. If 580-byte free memory needs to be inserted to a free list, the 580-byte free memory corresponds to the 47th \(31 + 2 x 8\) free list in L2 range \[2^9, 2^9+2^6\], and the 47th bit indicates the use of the free list. The system inserts the 580-byte free memory to the 47th free list and determines whether to update the bitmap flag. When 580-byte memory is requested, the system obtains the free list corresponding to the memory block of the requested size based on the bitmap flag, and then obtains a free memory node from the free list. If the size of the allocated node is greater than the memory requested, the system splits the node and inserts the remaining node to the free list. If the corresponding free list is empty, the system checks for a free list meeting the requirements in a larger memory range. In actual application, the system can locate the free list that meets the requirements at a time. + +The following figure shows the memory management structure. + +**Figure 2** Dynamic memory management structure +![](figure/dynamic-memory-management-structure-20.png "dynamic-memory-management-structure-20") + +- Memory pool header + + The memory pool header contains the memory pool information, bitmap flag array, and free list array. The memory pool information includes the start address of the memory pool, total size of the heap memory, and attributes of the memory pool. The bitmap flag array consists of seven 32-bit unsigned integers. Each bit indicates whether the free list is inserted with free memory block nodes. The free list contains information about 223 free memory head nodes. The free memory head node information contains a memory node header and information about the previous and next nodes in the free list. + +- Memory pool nodes + + There are three types of nodes: free node, used node, and end node. Each memory node maintains the size and use flag of the memory node and a pointer to the previous memory node in the memory pool. The free nodes and used nodes have a data area, but the end node has no data area. + + +## Development Guidelines + +### When to Use + +Heap memory management is mainly used to dynamically allocate and manage memory ranges requested by users. Heap memory management is mainly used in scenarios where users need to use memory blocks of different sizes. You can obtain a memory block of a specified size by using a dynamic memory application function of the operating system. Once the memory is used up, the memory release function is used to release the occupied memory so that the memory can be reused. + +### Available APIs + +The following table describes APIs available for OpenHarmony LiteOS-A heap memory management. For more details about the APIs, see the API reference. + +**Table 1** Heap memory management APIs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Initializing or deleting a memory pool

+

LOS_MemInit

+

Initializes a dynamic memory pool of the specified size.

+

LOS_MemDeInit

+

Deletes a memory pool. It is valid only when LOSCFG_MEM_MUL_POOL is enabled.

+

Allocating or releasing dynamic memory

+

LOS_MemAlloc

+

Allocates memory of the specified size from the dynamic memory pool.

+

LOS_MemFree

+

Releases the memory allocated from the specified dynamic memory.

+

LOS_MemRealloc

+

Re-allocates a memory block of the required size and copies data from the original block to the newly allocated bock. If the new memory block is successfully allocated, the original memory block will be released.

+

LOS_MemAllocAlign

+

Allocates the memory of the specified size and aligned based on the specified bytes from a dynamic memory pool.

+

Obtaining memory pool information

+

LOS_MemPoolSizeGet

+

Obtains the total size of the specified dynamic memory pool.

+

LOS_MemTotalUsedGet

+

Obtains the total memory usage of the specified dynamic memory pool.

+

LOS_MemInfoGet

+

Obtains the memory structure information of the specified memory pool, including the free memory, used memory, number of free memory blocks, number of used memory blocks, and maximum size of the free memory block.

+

LOS_MemPoolList

+

Prints information about all initialized memory pools in the system, including the start address, size, total free memory, used memory, maximum size of the free memory block, number of free memory blocks, and number of used memory blocks of each memory pool. It is valid only when LOSCFG_MEM_MUL_POOL is enabled.

+

Obtaining memory block information

+

LOS_MemFreeNodeShow

+

Prints the size and number of free memory blocks in the specified memory pool.

+

Checking memory pool integrity

+

LOS_MemIntegrityCheck

+

Checks the integrity of the specified memory pool. It is valid only when LOSCFG_BASE_MEM_NODE_INTEGRITY_CHECK is enabled.

+
+ +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- The dynamic memory module manages memory through control block structures, which consume extra memory. Therefore, the actual memory space available to users is less than the value of **OS\_SYS\_MEM\_SIZE**. +>- The **LOS\_MemAllocAlign** and **LOS\_MemMallocAlign** APIs consume extra memory for memory alignment, which may cause memory loss. When the memory used for alignment is freed up, the lost memory will be reclaimed. + +### How to Develop + +The typical development process of dynamic memory is as follows: + +1. Call the **LOS\_MemInit** API to initialize a memory pool. + + After a memory pool is initialized, a memory pool control header and end node will be generated, and the remaining memory is marked as free nodes. The end node is the last node in the memory pool, and its size is **0**. + + +1. Call the **LOS\_MemAlloc** API to allocate dynamic memory of any size. + + The system checks whether the dynamic memory pool has free memory blocks greater than the requested size. If yes, the system allocates a memory block and returns the pointer to the memory block. If no, the system returns NULL. If the memory block allocated is greater than the requested size, the system splits the memory block and inserts the remaining memory block to the free list. + + +1. Call the **LOS\_MemFree** API to release dynamic memory. + + The released memory block can be reused. When **LOS\_MemFree** is called, the memory block will be reclaimed and marked as free nodes. When memory blocks are reclaimed, adjacent free nodes are automatically merged. + + +### Development Example + +The example below implements the following: + +1. Initialize a dynamic memory pool. +2. Allocate a memory block from the dynamic memory pool. +3. Store a piece of data in the memory block. +4. Print the data in the memory block. +5. Release the memory block. + +The sample code is as follows: + +``` +#include "los_memory.h" + +#define TEST_POOL_SIZE (2*1024*1024) +__attribute__((aligned(4))) UINT8 g_testPool[TEST_POOL_SIZE]; + +VOID Example_DynMem(VOID) +{ + UINT32 *mem = NULL; + UINT32 ret; + + /* Initialize the memory pool. */ + ret = LOS_MemInit(g_testPool, TEST_POOL_SIZE); + if (LOS_OK == ret) { + printf("Mem init success!\n"); + } else { + printf("Mem init failed!\n"); + return; + } + + /* Allocate memory.*/ + mem = (UINT32 *)LOS_MemAlloc(g_testPool, 4); + if (NULL == mem) { + printf("Mem alloc failed!\n"); + return; + } + printf("Mem alloc success!\n"); + + /* Assign a value.*/ + *mem = 828; + printf("*mem = %d\n", *mem); + + /* Release memory.*/ + ret = LOS_MemFree(g_testPool, mem); + if (LOS_OK == ret) { + printf("Mem free success!\n"); + } else { + printf("Mem free failed!\n"); + } + + return; +} +UINT32 ExampleDynMemEntry(VOID) +{ + UINT32 ret; + TSK_INIT_PARAM_S initParam = {0}; + initParam.pfnTaskEntry = (TSK_ENTRY_FUNC)Example_DynMem; + initParam.usTaskPrio = 10; + initParam.pcName = "Example_DynMem"; + initParam.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE; + initParam.uwResved = LOS_TASK_STATUS_DETACHED; + + /* Create a task with a higher priority. The task will not be executed immediately after being created, because task scheduling is locked.*/ + ret = LOS_TaskCreate(&g_taskHiID, &initParam); + if (ret != LOS_OK) { + LOS_TaskUnlock(); + PRINTK("Example_DynMem create Failed! ret=%d\n", ret); + return LOS_NOK; + } + PRINTK("Example_DynMem create Success!\n"); + while(1){}; + return LOS_OK; +} +``` + +### Verification + +The output is as follows: + +``` +Mem init success! +Mem alloc success! +*mem = 828 +Mem free success! +``` + diff --git a/en/device-dev/kernel/kernel-small-basic-memory-physical.md b/en/device-dev/kernel/kernel-small-basic-memory-physical.md new file mode 100644 index 00000000000..f5a33d885b3 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-basic-memory-physical.md @@ -0,0 +1,228 @@ +# Physical Memory Management + +- [Basic Concepts](#section210891719217) +- [Working Principles](#section111355315213) +- [Development Guidelines](#section393116496217) + - [Available APIs](#section13210155619214) + - [How to Develop](#section178441091231) + - [Development Example](#section1258174015319) + - [Verification](#section515091342819) + + +## Basic Concepts + +Physical memory is one of the most important resources on a computer. It is the memory space that is provided by the physical memory devices and can be directly addressed through the CPU bus. The physical memory provides temporary storage space for the OS and programs. The LiteOS-A kernel manages the physical memory by memory paging. Except the memory occupied by the kernel heap, other available memory is divided into page frames in the unit of 4 KiB. Memory is allocated and reclaimed by page frame. The kernel uses the buddy algorithm to manage free pages to reduce the fragmentation rate and improve the memory allocation and release efficiency. However, a small block may block the merge of a large block, causing a failure in allocating a large memory block. + +## Working Principles + +As shown in the following figure, the physical memory distribution of the LiteOS-A kernel consists of the kernel image, kernel heap, and physical pages. For details about the kernel heap, see "Heap Memory Management." + +**Figure 1** Physical memory usage distribution +![](figure/physical-memory-usage-distribution.png "physical-memory-usage-distribution") + +The buddy algorithm divides all free page frames into 9 memory block groups, each of which contains 2N page frames. For example, the memory block in group 0 has 20, that is, 1 page frame. The memory block in the eighth group has 28, that is, 256 page frames. Memory blocks of the same size are added to the same linked list for management. + +- Requesting memory + + When 12 KiB memory \(3 page frames\) is requested, the list in group 3 \(with 8 page frames\) meets the requirement. After 12 KiB memory is allocated, 20 KiB memory \(5 page frames\) is left. The 5 page frames can be divided into 4 \(22\) page frames and 1 \(20\) page frame. The 4 page frames have no buddy in the list, and therefore are inserted into list 2. The 1 page frame has a buddy in list 0. If the addresses of the two \(20\) memory blocks are contiguous, the memory blocks are merged as 2 page frames \(21\) and inserted to list 2. If the addresses are not contiguous, the two \(20\) page frames are left in list 0. + + **Figure 2** Requesting memory + ![](figure/requesting-memory.png "requesting-memory") + + +- Releasing memory + + When 12 KiB memory \(3 page frames\) is released, the 3 page frames can be divided into 2 \(21\) page frames and 1 \(20\) page frame. The 2 page frames can be merged with the memory in linked list 1 if their addresses are contiguous and inserted to list 2. The one page frame can be merged with the memory in linked list 0 if their addresses are contiguous and inserted to list 1. In this way, the memory is released based on the buddy mechanism. + + **Figure 3** Releasing memory + ![](figure/releasing-memory.png "releasing-memory") + + +## Development Guidelines + +### Available APIs + +**Table 1** Physical memory management module APIs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Requesting physical memory

+

LOS_PhysPageAlloc

+

Requests a physical page.

+

LOS_PhysPagesAlloc

+

Requests a physical page and adds it to the corresponding linked list.

+

LOS_PhysPagesAllocContiguous

+

Requests memory of contiguous pages.

+

Releasing physical memory

+

LOS_PhysPageFree

+

Releases a physical page.

+

LOS_PhysPagesFree

+

Releases the physical pages added to a linked list.

+

LOS_PhysPagesFreeContiguous

+

Releases memory of contiguous pages.

+

Querying memory address

+

LOS_VmPageGet

+

Obtains the physical page structure pointer based on the physical address.

+

LOS_PaddrToKVaddr

+

Obtains the kernel virtual address based on the physical address.

+
+ +### How to Develop + +APIs need to be called to request memory. Heap management APIs are recommended for requesting small amount of memory. Physical memory management APIs are recommended for requesting 4 KiB or larger memory. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- APIs used for requesting physical memory can be used only after memory initialization is complete by calling **OsSysMemInit**. +>- The basic unit for memory allocation is page frame, that is, 4 KiB. +>- To leave contiguous memory blocks for the modules that demand them, use **LOS\_PhysPagesAllocContiguous** to request contiguous memory blocks and use **LOS\_PhysPagesAlloc** to request memory blocks that are not contiguous. + +### Development Example + +This example calls APIs to request and release memory, including requesting one and multiple memory pages. + +``` +#include "los_vm_phys.h" + +#define PHYS_PAGE_SIZE 0x4000 + +// Request a page. +VOID OsPhysPagesAllocTest3(VOID) +{ + PADDR_T newPaddr; + VOID *kvaddr = NULL; + LosVmPage *newPage = NULL; + + newPage = LOS_PhysPageAlloc(); + if (newPage == NULL) { + printf("LOS_PhysPageAlloc fail\n"); + return; + } + printf("LOS_PhysPageAlloc success\n"); + + newPaddr = VM_PAGE_TO_PHYS(newPage); + kvaddr = OsVmPageToVaddr(newPage); + + // Handle the physical memory + + // Free the physical memory + LOS_PhysPageFree(newPage); +} + +// Request multiple pages that do not need to be contiguous. +VOID OsPhysPagesAllocTest2(VOID) +{ + UINT32 sizeCount; + UINT32 count; + UINT32 size = PHYS_PAGE_SIZE; + LosVmPage *vmPageArray[PHYS_PAGE_SIZE >> PAGE_SHIFT] = { NULL }; + UINT32 i = 0; + LosVmPage *vmPage = NULL; + PADDR_T pa; + + size = LOS_Align(size, PAGE_SIZE); + if (size == 0) { + return; + } + sizeCount = size >> PAGE_SHIFT; + + LOS_DL_LIST_HEAD(pageList); + + count = LOS_PhysPagesAlloc(sizeCount, &pageList); + if (count < sizeCount) { + printf("failed to allocate enough pages (ask %zu, got %zu)\n", sizeCount, count); + goto ERROR; + } + printf("LOS_PhysPagesAlloc success\n"); + while ((vmPage = LOS_ListRemoveHeadType(&pageList, LosVmPage, node))) { + pa = vmPage->physAddr; + vmPageArray[i++] = vmPage; + // Handle the physical memory + } + + // Free the physical memory + for (i = 0; i < sizeCount; ++i) { + LOS_PhysPageFree(vmPageArray[i]); + } + + return; + +ERROR: + (VOID)LOS_PhysPagesFree(&pageList); +} + +// Request multiple contiguous memory pages. +VOID OsPhysPagesAllocTest1(VOID) +{ + VOID *ptr = NULL; + LosVmPage *page = NULL; + UINT32 size = PHYS_PAGE_SIZE; + + ptr = LOS_PhysPagesAllocContiguous(ROUNDUP(size, PAGE_SIZE) >> PAGE_SHIFT); + if (ptr == NULL) { + printf("LOS_PhysPagesAllocContiguous fail\n"); + return; + } + + printf("LOS_PhysPagesAllocContiguous success\n"); + + // Handle the physical memory + + // Free the physical memory + page = OsVmVaddrToPage((VOID *)ptr); + LOS_PhysPagesFreeContiguous((VOID *)ptr, size >> PAGE_SHIFT); +} + +UINT32 ExamplePhyMemCaseEntry(VOID) +{ + OsPhysPagesAllocTest1(); + OsPhysPagesAllocTest2(); + OsPhysPagesAllocTest3(); + return LOS_OK; +} +``` + +### Verification + +The development is successful if the return result is as follows: + +``` +LOS_PhysPagesAllocContiguous success +LOS_PhysPagesAlloc success +LOS_PhysPageAlloc success +``` + diff --git a/en/device-dev/kernel/kernel-small-basic-memory-virtual.md b/en/device-dev/kernel/kernel-small-basic-memory-virtual.md new file mode 100644 index 00000000000..8f6e6389e4f --- /dev/null +++ b/en/device-dev/kernel/kernel-small-basic-memory-virtual.md @@ -0,0 +1,333 @@ +# Virtual Memory Management + +- [Basic Concepts](#section650193717411) +- [Working Principles](#section072885512412) +- [Development Guidelines](#section20956116050) + - [Available APIs](#section166137221657) + - [How to Develop](#section8752103914513) + + +## Basic Concepts + +Virtual memory management is a technology used by computer systems to manage memory. Each process has a continuous virtual address space. The size of the virtual address space is determined by the number of CPU bits. The maximum addressing space for a 32-bit hardware platform ranges from 0 GiB to 4 GiB. The 4 GiB space is divided into two parts: 3 GiB higher-address space for the LiteOS-A kernel and 1 GiB lower-address space for processes. The virtual address space of each process space is independent, and the code and data do not affect each other. + +The system divides the virtual memory into memory blocks called virtual pages. The size of a virtual page is generally 4 KiB or 64 KiB. The virtual page of the LiteOS-A kernel is 4 KiB by default. You can configure memory management units \(MMUs\) as required. The minimum unit of the virtual memory management is a page. A virtual address region in the LiteOS-A kernel can contain one virtual page or multiple virtual pages with contiguous addresses. Similarly, the physical memory is also divided by page, and each memory block is called page frame. The virtual address space is divided as follows: 3 GiB \(**0x40000000** to **0xFFFFFFFF**\) for the kernel space and 1 GiB \(**0x01000000** to **0x3F000000**\) for the user space. The following tables describe the virtual address plan. You can view or configure virtual addresses in **los\_vm\_zone.h**. + +**Table 1** Kernel-space addresses + + + + + + + + + + + + + + + + + + + + +

Zone

+

Description

+

Property

+

DMA zone

+

Addresses for direct memory access (DMA) of I/O devices.

+

Uncache

+

Normal zone

+

Addresses for loading the kernel code segment, data segment, heap, and stack.

+

Cache

+

high mem zone

+

Addresses for allocating contiguous virtual memory. The mapped physical memory blocks may not be contiguous.

+

Cache

+
+ +**Table 2** User-space virtual addresses + + + + + + + + + + + + + + + + + + + + + + + + +

Zone

+

Description

+

Property

+

Code segment

+

User-space code segment address range

+

Cache

+

Heap

+

User-space heap address range

+

Cache

+

Stack

+

User-space stack address range

+

Cache

+

Shared library

+

Address range for loading the user-space shared library, including the address range mapped by mmap.

+

Cache

+
+ +## Working Principles + +In virtual memory management, the virtual address space is contiguous, but the mapped physical memory is not necessarily contiguous, as shown in the following figure. When an executable program is loaded and runs, the CPU accesses the code or data in the virtual address space in the following two cases: + +- If the page \(for example, V0\) containing the virtual address accessed by the CPU is mapped to a physical page \(for example, P0\), the CPU locates the page table entry corresponding to the process \(for details, see [Virtual-to-Physical Mapping](kernel-small-basic-inner-reflect.md)"\), accesses the physical memory based on the physical address information in the page table entry, and returns the content. +- If the page \(for example, V2\) containing the virtual address accessed by the CPU is not mapped to a physical page, the system triggers a page missing fault, requests a physical page, copies the corresponding information to the physical page, and updates the start address of the physical page to the page table entry. Then, the CPU can access specific code or data by executing the instruction for accessing the virtual memory again. + +**Figure 1** Mapping between the virtual and physical memory addresses +![](figure/mapping-between-the-virtual-and-physical-memory-addresses.png "mapping-between-the-virtual-and-physical-memory-addresses") + +## Development Guidelines + +### Available APIs + +**Table 3** Virtual memory management module APIs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Obtaining process memory space

+

LOS_CurrSpaceGet

+

Obtains the pointer to the current process space structure.

+

LOS_SpaceGet

+

Obtains the pointer to the process space structure corresponding to the virtual address.

+

LOS_GetKVmSpace

+

Obtains the pointer to the kernel process space structure.

+

LOS_GetVmallocSpace

+

Obtains the pointer to the vmalloc space structure.

+

LOS_GetVmSpaceList

+

Obtains the pointer to the process space linked list.

+

Operations related to the virtual address region

+

LOS_RegionFind

+

Checks whether a virtual address region exists in the process space based on the start address.

+

LOS_RegionRangeFind

+

Checks whether a virtual address region exists in the process space based on the address region.

+

LOS_IsRegionFileValid

+

Checks whether the virtual address region is mapped to a file.

+

LOS_RegionAlloc

+

Requests a free virtual address region.

+

LOS_RegionFree

+

Releases a specific region in the process space.

+

LOS_RegionEndAddr

+

Obtains the end address of the specified address region.

+

LOS_RegionSize

+

Obtains the size of a region.

+

LOS_IsRegionTypeFile

+

Checks whether it is a file memory mapping.

+

LOS_IsRegionPermUserReadOnly

+

Checks whether the address region is read-only in the user space.

+

LOS_IsRegionFlagPrivateOnly

+

Checks whether the address region has private attributes.

+

LOS_SetRegionTypeFile

+

Sets the file memory mapping attribute.

+

LOS_IsRegionTypeDev

+

Checks whether it is device memory mapping.

+

LOS_SetRegionTypeDev

+

Sets the device memory mapping attribute.

+

LOS_IsRegionTypeAnon

+

Checks whether it is an anonymous mapping.

+

LOS_SetRegionTypeAnon

+

Sets the anonymous mapping attribute.

+

Verifying address

+

LOS_IsUserAddress

+

Checks whether the address is in the user space.

+

LOS_IsUserAddressRange

+

Checks whether the address region is in the user space.

+

LOS_IsKernelAddress

+

Checks whether the address is in the kernel space.

+

LOS_IsKernelAddressRange

+

Checks whether the address region is in the kernel space.

+

LOS_IsRangeInSpace

+

Checks whether the address region is in the process space.

+

vmalloc operations

+

LOS_VMalloc

+

Requests memory using vmalloc.

+

LOS_VFree

+

Releases memory using vmalloc.

+

LOS_IsVmallocAddress

+

Checks whether the address is requested by using vmalloc.

+

Requesting memory

+

LOS_KernelMalloc

+

Requests memory less than 16 KiB from the heap memory pool; otherwise, requests multiple contiguous physical memory pages.

+

LOS_KernelMallocAlign

+

Requests memory with alignment attributes according to the following rules: obtain memory less than 16 KiB from the heap memory pool; otherwise, request multiple contiguous physical memory pages.

+

LOS_KernelFree

+

Releases kernel heap memory.

+

LOS_KernelRealloc

+

Reallocates the kernel memory space.

+

Others

+

LOS_PaddrQuery

+

Obtains the physical IP address based on the virtual address.

+

LOS_VmSpaceFree

+

Releases the process space, including the virtual memory region and page table.

+

LOS_VmSpaceReserve

+

Reserves a memory space in the process space.

+

LOS_VaddrToPaddrMmap

+

Maps the physical address region with the specified length to a virtual address region. You need to request the physical address region before the operation.

+

LOS_UserSpaceVmAlloc

+

Requests an address region in the user process space based on information such as the address, size, and permission.

+
+ +### How to Develop + +To use APIs related to virtual memory: + +1. Obtain the process space structure using the APIs for obtaining the process space, and access the structure information. +2. Perform the following operations on the virtual address region: + - Call **LOS\_RegionAlloc** to request a virtual address region. + + - Call **LOS\_RegionFind** and **LOS\_RegionRangeFind** to check whether the corresponding address region exists. + - Call **LOS\_RegionFree** to release a virtual address region. + +3. Call **vmalloc** and memory requesting APIs to apply for memory in the kernel as required. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>The physical memory requested by using the memory requesting APIs must be contiguous. If the system cannot provide a large number of contiguous memory blocks, the request fails. Therefore, the memory requesting APIs are recommended for requesting small memory blocks. Non-contiguous physical memory can be obtained by using **vmalloc**. However, the memory is allocated in the unit of pages \(4096 bytes/page in the current system\). If you want memory that is an integer multiple of a page, you can use **vmalloc**. For example, you can use **vmalloc** to request memory for file reading in a file system, which demands a large cache. + diff --git a/en/device-dev/kernel/kernel-small-basic-memory.md b/en/device-dev/kernel/kernel-small-basic-memory.md new file mode 100644 index 00000000000..ebe667d5bc9 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-basic-memory.md @@ -0,0 +1,11 @@ +# Memory Management + +- **[Heap Memory Management](kernel-small-basic-memory-heap.md)** + +- **[Physical Memory Management](kernel-small-basic-memory-physical.md)** + +- **[Virtual Memory Management](kernel-small-basic-memory-virtual.md)** + +- **[Virtual-to-Physical Mapping](kernel-small-basic-inner-reflect.md)** + + diff --git a/en/device-dev/kernel/kernel-small-basic-process-process.md b/en/device-dev/kernel/kernel-small-basic-process-process.md new file mode 100644 index 00000000000..1486a3e1e86 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-basic-process-process.md @@ -0,0 +1,178 @@ +# Process + +- [Basic Concepts](#section89346055119) +- [Working Principles](#section174514474512) +- [Development Guidelines](#section159637182521) + - [Available APIs](#section1153124135212) + - [How to Develop](#section1533674618526) + + +## Basic Concepts + +A process is the minimum unit for system resource management. The process module provided by the OpenHarmony LiteOS-A kernel is used to isolate user-space processes. The kernel space is considered as a process space and does not have other processes except KIdle, which is an idle process provided by the system and shares the same process space with KProcess. + +- The OpenHarmony process module allows multiple processes to run simultaneously, switch, and communicate, facilitating your management over service programs. +- The OpenHarmony processes use the preemption scheduling mechanism. The process with a higher priority is scheduled over the process with a lower priority. Time slice round-robin is used to schedule processes with the same priority. +- The OpenHarmony processes are assigned 32 priorities \(**0** to **31**\). Among them, user processes can be configured with 22 priorities from **10** \(highest\) to **31** \(lowest\). +- A higher-priority process can preempt the resources of a lower-priority process. The lower-priority process can be scheduled only after the higher-priority process is blocked or terminated. +- Each user-space process has its own memory space, which is invisible to other processes. In this way, processes are isolated from each other. +- The user-space root process **init** is created by the kernel. Other user-space processes are created by the **init** process via the **fork** call. + +**Process States:** + +- Init: The process is being created. + +- Ready: The process is in the Ready queue and waits for being scheduled by the CPU. +- Running: The process is running. +- Pending: The process is blocked and suspended. When all threads in a process are blocked, the process is blocked and suspended. +- Zombies: The process stops running and waits for the parent process to reclaim its control block resources. + +**Figure 1** Process state transition +![](figure/process-state-transition.png "process-state-transition") + +**Process State Transition:** + +- Init→Ready: + + When a process is created, the process enters the Init state to start initialization after obtaining the process control block. After the process is initialized, the process is inserted into the scheduling queue and therefore enters the Ready state. + +- Ready→Running: + + When a process switchover is triggered, the process with the highest priority in the Ready queue is executed and enters the Running state. If this process has no thread in the Ready state, the process is deleted from the Ready queue and resides only in the Running state. However, if it has threads in the Ready state, the process still stays in the Ready queue. In this case, the process is in both the Ready and Running states, but presented as the Running state. + +- Running→Pending: + + When the last thread of a process enters the Pending state, all threads in the process are in the Pending state. Then, the process enters the Pending state, and process switching occurs. + +- Pending→Ready: + + When any thread in a Pending process restores to the Ready state, the process is added to the Ready queue and changes to the Ready state. + +- Ready→Pending: + + When the last ready thread in a process enters the Pending state, the process is deleted from the Ready queue, and the process changes from the Ready state to the Pending state. + +- Running→Ready: + + A process may change from the Running state to the Ready state in either of the following scenarios: + + 1. After a process with a higher priority is created or restored, processes will be scheduled. The process with the highest priority in the Ready queue will change to the Running state, and the originally running process will change from the Running state to the Ready state. + 2. If a process has the **LOS\_SCHED\_RR** scheduling policy and shares the same priority with another process in the Ready state, this process will change from the Running state to the Ready state after its time slices are used up, and the other process with the same priority will change from the Ready state to the Running state. + +- Running→Zombies: + + After the main thread or all threads of a process are stopped, the process changes from the **Running** state to the **Zombies** state and waits for the parent process to reclaim resources. + + +## Working Principles + +The OpenHarmony process module is used to isolate user-space processes and supports the following functions: creating and exiting user-space processes, reclaiming process resources, setting and obtaining scheduling parameters and process group IDs, and obtaining process IDs. + +A user-space process is created by forking a parent process. During forking, the virtual memory space of the parent process is cloned to the child process. When the child process is running, the content of the parent process is copied to the virtual memory space of the child process as required through the copy-on-write mechanism. + +A process is only a resource management unit, and the actual running is executed by threads in the process. When threads in different processes switch with each other, the process space is switched. + +**Figure 2** Process management + + +![](figure/en-us_image_0000001127519136.png) + +## Development Guidelines + +### Available APIs + +**Table 1** Process management module APIs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Process scheduling parameter control

+

LOS_GetProcessScheduler

+

Obtains the scheduling policy of the specified process.

+

LOS_SetProcessScheduler

+

Sets the scheduling parameters, including the priority and scheduling policy, for the specified process.

+

LOS_GetProcessPriority

+

Obtains the priority of the specified process.

+

LOS_SetProcessPriority

+

Sets the priority of the specified process.

+

Waiting for reclaiming child processes

+

LOS_Wait

+

Waits for the specified child process to terminate and reclaims its resources.

+

Process group

+

LOS_GetProcessGroupID

+

Obtains the process group ID of the specified process.

+

LOS_GetCurrProcessGroupID

+

Obtains the process group ID of the current process.

+

Obtaining the process ID.

+

LOS_GetCurrProcessID

+

Obtains the ID of the current process.

+

User and user group

+

LOS_GetUserID

+

Obtains the user ID of the current process.

+

LOS_GetGroupID

+

Obtains the user group ID of the current process.

+

LOS_CheckInGroups

+

Checks whether the specified user group ID is in the user group of the current process.

+

Maximum number of processes supported

+

LOS_GetSystemProcessMaximum

+

Obtains the maximum number of processes supported by the system.

+
+ +### How to Develop + +Kernel-space processes cannot be created. Therefore, kernel-space process development is not involved. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- The number of idle threads depends on the number of CPU cores. Each CPU has a corresponding idle thread. +>- Except KProcess and KIdle, other kernel-space processes cannot be created. +>- The thread created by calling a user-space process in the kernel space is a KProcess, not a user-space process. + diff --git a/en/device-dev/kernel/kernel-small-basic-process-scheduler.md b/en/device-dev/kernel/kernel-small-basic-process-scheduler.md new file mode 100644 index 00000000000..d1110b40339 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-basic-process-scheduler.md @@ -0,0 +1,63 @@ +# Scheduler + +- [Basic Concepts](#section123882355719) +- [Working Principles](#section143015396572) +- [Development Guidelines](#section10604192145816) + - [Available APIs](#section207985910582) + - [How to Develop](#section1015110331584) + + +## Basic Concepts + +The OpenHarmony LiteOS-A kernel uses the preemptive scheduling mechanism for tasks. The task with a higher priority is scheduled over the task with a lower priority. Time slice round-robin is used to schedule tasks with the same priority. The system runs based on the real-time timeline from the startup, which ensures good real-time performance of the scheduling algorithm. + +The OpenHarmony scheduling algorithm is embedded with the tickless mechanism, which ensures lower power consumption and on-demand response to tick interrupts. This minimizes useless tick interrupt response time and further improves the real-time performance of the system. + +The OpenHarmony process scheduling policy is **SCHED\_RR**, and the thread scheduling policy can be **SCHED\_RR** or **SCHED\_FIFO**. + +Threads are the minimum scheduling units in the OpenHarmony. + +## Working Principles + +The OpenHarmony uses process priority queue and thread priority queue for scheduling. The process priority ranges from 0 to 31, and there are 32 process priority bucket queues. Each bucket queue corresponds to a thread priority bucket queue. The thread priority ranges from 0 to 31, and a thread priority bucket queue also has 32 priority queues. + +**Figure 1** Schematic diagram of scheduling priority bucket queues + + +![](figure/en-us_image_0000001127520662.png) + +The OpenHarmony system starts scheduling after the kernel initialization is complete. The processes or threads created during running are added to the scheduling queues. The system selects the optimal thread for scheduling based on the priorities of the processes and threads and the time slice consumption of the threads. Once a thread is scheduled, it is deleted from the scheduling queue. If a thread is blocked during running, the thread is added to the corresponding blocking queue and triggers scheduling of another thread. If no thread in the scheduling queue can be scheduled, the system selects the thread of the KIdle process for scheduling. + +**Figure 2** Scheduling process + + +![](figure/en-us_image_0000001176974089.png) + +## Development Guidelines + +### Available APIs + + + + + + + + + + + + +

Category

+

API

+

Description

+

System scheduling

+

LOS_Schedule

+

Triggers system scheduling.

+
+ +### How to Develop + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>Scheduling cannot be triggered during the system initialization process. + diff --git a/en/device-dev/kernel/kernel-small-basic-process-thread.md b/en/device-dev/kernel/kernel-small-basic-process-thread.md new file mode 100644 index 00000000000..4f255f922e8 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-basic-process-thread.md @@ -0,0 +1,331 @@ +# Thread + +- [Basic Concepts](#section138411646175417) +- [Working Principles](#section1381918945512) +- [Development Guidelines](#section10649727135519) + - [Available APIs](#section78333315555) + - [How to Develop](#section16229657115514) + - [Development Example](#section2809723165612) + + +## Basic Concepts + +Threads are the minimum running units that compete for system resources. They can use or wait to use CPUs and use system resources such as memory. They run independently from one another. + +Threads in the processes of the same priority in the OpenHarmony kernel are scheduled and run in a unified manner. + +Threads in the OpenHarmony kernel use the preemptive scheduling mechanism, either round-robin \(RR\) scheduling or First In First Out \(FIFO\) scheduling. + +Threads in the OpenHarmony kernel are assigned 32 priorities, ranging from **0** \(highest\) to **31** \(lowest\). + +In the same process, a higher-priority process can preempt resources of a lower-priority process. The lower-priority process can be scheduled only after the higher-priority process is blocked or terminated. + +**Thread States:** + +- Init: The thread is being created. + +- Ready: The thread is in the Ready queue and waits for being scheduled by the CPU. +- Running: The thread is running. +- Blocked: The thread is blocked and suspended. The Blocked states include pending \(blocked due to lock, event, or semaphore issues\), suspended \(active pending\), delay \(blocked due to delays\), and pendtime \(blocked by waiting timeout of locks, events, or semaphores\). +- Exit: The thread stops running and waits for the parent thread to reclaim its control block resources. + +**Figure 1** Thread state transition +![](figure/thread-state-transition.png "thread-state-transition") + +**Thread State Transition:** + +- Init→Ready: + + When a thread is created, the thread obtains the control block and enters the Init state \(initialization\). After the initialization is complete, the thread is inserted into the scheduling queue and enters the Ready state. + +- Ready→Running: + + When a thread switching is triggered, the thread with the highest priority in the Ready queue is executed and enters the Running state. Then, this thread is deleted from the Ready queue. + +- Running→Blocked: + + When a running thread is blocked \(for example, is pended, delayed, or reading semaphores\), its state changes from Running to Blocked. Then, a thread switching is triggered to run the thread with the highest priority in the Ready queue. + +- Blocked→Ready: + + After the blocked thread is restored \(the thread is restored, the delay times out, the semaphore reading times out, or the semaphore is read\), the thread is added to the Ready queue and changes from the Blocked state to the Ready state. + +- Ready→Blocked: + + A thread may also be blocked \(suspended\) in the Ready state. The blocked thread will change from the Ready state to the Blocked state and is deleted from the Ready queue. The thread will not be scheduled until it is restored. + +- Running→Ready: + + After a thread with a higher priority is created or restored, threads will be scheduled. The thread with the highest priority in the Ready queue will change to the Running state. The originally running thread will change from the Running state to the Ready state and be added to the Ready queue. + +- Running→Exit: + + When a running thread is terminated, its state changes from Running to Exit. If the thread is set with a detach attribute \(**LOS\_TASK\_STATUS\_DETACHED**\), it will be directly destroyed after the running is complete. + + +## Working Principles + +The OpenHarmony thread management module provides the following functions: creating, delaying, suspending, and restoring threads, locking and unlocking thread scheduling, and querying thread control block information by ID. + +When a thread is created, the system initializes the thread stack and presets the context. The system places the thread entry function in the corresponding position so that the function will be executed when the thread enters the Running state for the first time. + +## Development Guidelines + +### Available APIs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Thread creation and deletion

+

LOS_TaskCreateOnly

+

Creates a thread and places the thread in the Init state but not be scheduled.

+

LOS_TaskCreate

+

Creates a thread and places the thread in the Init state and be scheduled.

+

LOS_TaskDelete

+

Deletes the specified thread.

+

Thread status control

+

LOS_TaskResume

+

Resumes a suspended thread.

+

LOS_TaskSuspend

+

Suspends the specified thread.

+

LOS_TaskDelay

+

Delays a thread.

+

LOS_TaskYield

+

Adjusts the scheduling sequence of threads that call the thread priority.

+

Thread scheduling control

+

LOS_TaskLock

+

Locks thread scheduling.

+

LOS_TaskUnlock

+

Unlocks thread scheduling.

+

Thread priority control

+

LOS_CurTaskPriSet

+

Sets the priority for the current thread.

+

LOS_TaskPriSet

+

Sets the priority of the specified thread.

+

LOS_TaskPriGet

+

Obtains the priority of the specified thread.

+

Obtaining thread information

+

LOS_CurTaskIDGet

+

Obtains the ID of the current thread.

+

LOS_TaskInfoGet

+

Obtains information about the specific thread.

+

Binding threads to CPU cores

+

LOS_TaskCpuAffiSet

+

Binds a specified thread to a specified CPU. It is used only in multi-core scenarios.

+

LOS_TaskCpuAffiGet

+

Obtains the core binding information of a specified thread. It is used only in multi-core scenarios.

+

Thread scheduling parameter control

+

LOS_GetTaskScheduler

+

Obtains the scheduling policy of the specified thread.

+

LOS_SetTaskScheduler

+

Sets the scheduling parameters, including the priority and scheduling policy, for the specified thread.

+

Maximum number of threads supported

+

LOS_GetSystemTaskMaximum

+

Obtains the maximum number of threads supported by the system.

+
+ +### How to Develop + +The typical thread development process is as follows: + +1. Call **LOS\_TaskCreate** to create a thread. + - Specify the execution entry function for the thread. + + - Specify the thread name. + - Specify the thread stack size. + - Specify the priority of the thread. + - Specify the thread attribute, that is, whether to support the **LOS\_TASK\_STATUS\_DETACHED** attribute. + - Specify the thread-core binding attribute for multi-core environment. + +2. Run the service code to implement thread scheduling. +3. After the thread execution is complete, the thread resources are automatically reclaimed if the **LOS\_TASK\_STATUS\_DETACHED** attribute is set. If the **LOS\_TASK\_STATUS\_DETACHED** attribute is not set, call the **LOS\_TaskDelete** API to reclaim the thread resources. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- The kernel space has the highest permission and can operate threads in any process. +>- The thread created by calling a user-space process in the kernel space is a KProcess, not a user-space process. + +### Development Example + +The sample code is as follows: + +``` +UINT32 g_taskLoID; +UINT32 g_taskHiID; +#define TSK_PRIOR_HI 4 +#define TSK_PRIOR_LO 5 +UINT32 ExampleTaskHi(VOID) +{ + UINT32 ret; + PRINTK("Enter TaskHi Handler.\n"); + /* Delay the thread for 2 ticks. The task is then suspended, and the remaining task with the highest priority (g_taskLoID) will be executed.*/ + ret = LOS_TaskDelay(2); + if (ret != LOS_OK) { + PRINTK("Delay Task Failed.\n"); + return LOS_NOK; + } + /*After 2 ticks elapse, the task is resumed and executed.*/ + PRINTK("TaskHi LOS_TaskDelay Done.\n"); + /* Suspend the task.*/ + ret = LOS_TaskSuspend(g_taskHiID); + if (ret != LOS_OK) { + PRINTK("Suspend TaskHi Failed.\n"); + return LOS_NOK; + } + PRINTK("TaskHi LOS_TaskResume Success.\n"); + return LOS_OK; +} + +/* Entry function of the lower-priority task */ +UINT32 ExampleTaskLo(VOID) +{ + UINT32 ret; + PRINTK("Enter TaskLo Handler.\n"); + /* Delay the thread for 2 ticks. The task is then suspended, and the remaining task with the highest priority (background task) will be executed.*/ + ret = LOS_TaskDelay(2); + if (ret != LOS_OK) { + PRINTK("Delay TaskLo Failed.\n"); + return LOS_NOK; + } + PRINTK("TaskHi LOS_TaskSuspend Success.\n"); + /* Resume the suspended task g_taskHiID.*/ + ret = LOS_TaskResume(g_taskHiID); + if (ret != LOS_OK) { + PRINTK("Resume TaskHi Failed.\n"); + return LOS_NOK; + } + PRINTK("TaskHi LOS_TaskDelete Success.\n"); + return LOS_OK; +} +/* Task test entry function, which is used to create two tasks with different priorities.*/ +UINT32 ExampleTaskCaseEntry(VOID) +{ + UINT32 ret; + TSK_INIT_PARAM_S initParam = {0}; + + /* Lock task scheduling.*/ + LOS_TaskLock(); + PRINTK("LOS_TaskLock() Success!\n"); + initParam.pfnTaskEntry = (TSK_ENTRY_FUNC)ExampleTaskHi; + initParam.usTaskPrio = TSK_PRIOR_HI; + initParam.pcName = "HIGH_NAME"; + initParam.uwStackSize = LOS_TASK_MIN_STACK_SIZE; + initParam.uwResved = LOS_TASK_STATUS_DETACHED; + + /* Create a task with a higher priority. The task will not be executed immediately after being created, because task scheduling is locked.*/ + ret = LOS_TaskCreate(&g_taskHiID, &initParam); + if (ret != LOS_OK) { + LOS_TaskUnlock(); + PRINTK("ExampleTaskHi create Failed! ret=%d\n", ret); + return LOS_NOK; + } + PRINTK("ExampleTaskHi create Success!\n"); + + initParam.pfnTaskEntry = (TSK_ENTRY_FUNC)ExampleTaskLo; + initParam.usTaskPrio = TSK_PRIOR_LO; + initParam.pcName = "LOW_NAME"; + initParam.uwStackSize = LOS_TASK_MIN_STACK_SIZE; + initParam.uwResved = LOS_TASK_STATUS_DETACHED; + + /*Create a task with a lower priority. The task will not be executed immediately after being created, because task scheduling is locked.*/ + ret = LOS_TaskCreate(&g_taskLoID, &initParam); + if (ret!= LOS_OK) { + LOS_TaskUnlock(); + PRINTK("ExampleTaskLo create Failed!\n"); + return LOS_NOK; + } + PRINTK("ExampleTaskLo create Success!\n"); + + /* Unlock task scheduling. The task with the highest priority in the Ready queue will be executed.*/ + LOS_TaskUnlock(); + + while(1){}; + return LOS_OK; +} +``` + +The development is successful if the return result is as follows: + +``` +LOS_TaskLock() Success! +ExampleTaskHi create Success! +ExampleTaskLo create Success! +Enter TaskHi Handler. +Enter TaskLo Handler. +TaskHi LOS_TaskDelay Done. +TaskHi LOS_TaskSuspend Success. +TaskHi LOS_TaskResume Success. +TaskHi LOS_TaskDelete Success. +``` + diff --git a/en/device-dev/kernel/kernel-small-basic-process.md b/en/device-dev/kernel/kernel-small-basic-process.md new file mode 100644 index 00000000000..5bd51676cfa --- /dev/null +++ b/en/device-dev/kernel/kernel-small-basic-process.md @@ -0,0 +1,9 @@ +# Process Management + +- **[Process](kernel-small-basic-process-process.md)** + +- **[Thread](kernel-small-basic-process-thread.md)** + +- **[Scheduler](kernel-small-basic-process-scheduler.md)** + + diff --git a/en/device-dev/kernel/kernel-small-basic-softtimer.md b/en/device-dev/kernel/kernel-small-basic-softtimer.md new file mode 100644 index 00000000000..84a1fe8ccf2 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-basic-softtimer.md @@ -0,0 +1,236 @@ +# Software Timer + +- [Basic Concepts](#section4118241563) +- [Working Principles](#section31079397569) +- [Development Guidelines](#section18576131520577) + - [Available APIs](#section3138019145719) + - [How to Develop](#section1344817403575) + - [Development Example](#section114416313585) + + +## Basic Concepts + +The software timer is a software-simulated timer based on system tick interrupts. When the preset tick counter value has elapsed, the user-defined callback will be invoked. The timing precision is related to the cycle of the system tick clock. Due to the limitation in hardware, the number of hardware timers cannot meet users' requirements. Therefore, the Huawei LiteOS provides the software timer function. The software timer allows more timing services to be created, increasing the number of timers. + +The software timer supports the following functions: + +- Disabling the software timer using a macro +- Creating a software timer +- Starting a software timer +- Stopping a software timer +- Deleting a software timer +- Obtaining the number of remaining ticks of a software timer + +## Working Principles + +The software timer is a system resource. When modules are initialized, a contiguous section of memory is allocated for software timers. The maximum number of timers supported by the system is configured by the **LOSCFG\_BASE\_CORE\_SWTMR\_LIMIT** macro in **los\_config.h**. Software timers use a queue and a task resource of the system. The software timers are triggered based on the First In First Out \(FIFO\) rule. For the timers set at the same time, the timer with a shorter value is always closer to the queue head than the timer with a longer value, and is preferentially triggered. The software timer counts time in ticks. When a software timer is created and started, the OpenHarmony system determines the timer expiry time based on the current system time \(in ticks\) and the timing interval set by the user, and adds the timer control structure to the global timing list. + +When a tick interrupt occurs, the tick interrupt handler scans the global timing list for expired timers. If such timers are found, the timers are recorded. + +When the tick interrupt handling function is complete, the software timer task \(with the highest priority\) is woken up. In this task, the timeout callback function for the recorded timer is called. + +Timer States + +- OS\_SWTMR\_STATUS\_UNUSED + + The timer is not in use. When the timer module is initialized, all timer resources in the system are set to this state. + +- OS\_SWTMR\_STATUS\_CREATED + + The timer is created but not started or the timer is stopped. When **LOS\_SwtmrCreate** is called for a timer that is not in use or **LOS\_SwtmrStop** is called for a newly started timer, the timer changes to this state. + +- OS\_SWTMR\_STATUS\_TICKING + + The timer is running \(counting\). When **LOS\_SwtmrStart** is called for a newly created timer, the timer enters this state. + + +Timer Modes + +The OpenHarmony provides three types of software timers: + +- One-shot timer: Once started, the timer is automatically deleted after triggering only one timer event. +- Periodic timer: This type of timer periodically triggers timer events until it is manually stopped. +- One-shot timer deleted by calling an API + +## Development Guidelines + +### Available APIs + +The following table describes APIs available for the OpenHarmony LiteOS-A software timer module. For more details about the APIs, see the API reference. + +**Table 1** Software timer APIs + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Creating or deleting timers

+

LOS_SwtmrCreate

+

Creates a software timer.

+

LOS_SwtmrDelete

+

Deletes a software timer.

+

Starting or stopping timers

+

LOS_SwtmrStart

+

Starts a software timer.

+

LOS_SwtmrStop

+

Stops a software timer.

+

Obtaining remaining ticks of a software timer

+

LOS_SwtmrTimeGet

+

Obtains the number of remaining ticks of a software timer.

+
+ +### How to Develop + +The typical development process of software timers is as follows: + +1. Configure the software timer. + - Check that **LOSCFG\_BASE\_CORE\_SWTMR** and **LOSCFG\_BASE\_IPC\_QUEUE** are enabled. + - Configure **LOSCFG\_BASE\_CORE\_SWTMR\_LIMIT** \(maximum number of software timers supported by the system\). + - Configure **OS\_SWTMR\_HANDLE\_QUEUE\_SIZE** \(maximum length of the software timer queue\). + +2. Call **LOS\_SwtmrCreate** to create a software timer. + - Create a software timer with the specified timing duration, timeout handling function, and triggering mode. + - Return the function execution result \(success or failure\). + +3. Call **LOS\_SwtmrStart** to start the software timer. +4. Call **LOS\_SwtmrTimeGet** to obtain the remaining number of ticks of the software timer. +5. Call **LOS\_SwtmrStop** to stop the software timer. +6. Call **LOS\_SwtmrDelete** to delete the software timer. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- Avoid too many operations in the callback function of the software timer. Do not use APIs or perform operations that may cause task suspension or blocking. +>- The software timers use a queue and a task resource of the system. The priority of the software timer tasks is set to **0** and cannot be changed. +>- The number of software timer resources that can be configured in the system is the total number of software timer resources available to the entire system, not the number of software timer resources available to users. For example, if the system software timer occupies one more resource, the number of software timer resources available to users decreases by one. +>- If a one-shot software timer is created, the system automatically deletes the timer and reclaims resources after the timer times out and the callback function is executed. +>- For a one-shot software timer that will not be automatically deleted after expiration, you need to call **LOS\_SwtmrDelete** to delete it and reclaim the timer resource to prevent resource leakage. + +### Development Example + +Prerequisites: + +- In **los\_config.h**, **LOSCFG\_BASE\_CORE\_SWTMR** is enabled. +- The maximum number of software timers supported by the system \(**LOSCFG\_BASE\_CORE\_SWTMR\_LIMIT**\) is configured. +- The maximum length of the software timer queue \(OS\_SWTMR\_HANDLE\_QUEUE\_SIZE\) is configured. + +**Sample Code** + +``` +#include "los_swtmr.h" + +void Timer1_Callback(uint32_t arg); +void Timer2_Callback(uint32_t arg); + +UINT32 g_timercount1 = 0; +UINT32 g_timercount2 = 0; + +void Timer1_Callback(uint32_t arg) // Callback function 1 +{ + unsigned long tick_last1; + g_timercount1++; + tick_last1=(UINT32)LOS_TickCountGet(); // Obtain the current number of ticks. + PRINTK("g_timercount1=%d\n",g_timercount1); + PRINTK("tick_last1=%d\n",tick_last1); +} + +void Timer2_Callback(uint32_t arg) // Callback function 2 +{ + unsigned long tick_last2; + tick_last2=(UINT32)LOS_TickCountGet(); + g_timercount2 ++; + PRINTK("g_timercount2=%d\n",g_timercount2); + PRINTK("tick_last2=%d\n",tick_last2); +} + +void Timer_example(void) +{ + UINT16 id1; + UINT16 id2; // timer id + UINT32 uwTick; + + /* Create a one-shot software timer, with the number of ticks set to 1000. When the number of ticks reaches 1000, callback function 1 is executed. */ + LOS_SwtmrCreate (1000, LOS_SWTMR_MODE_ONCE, Timer1_Callback, &id1, 1); + + /* Create a periodic software timer and execute callback function 2 every 100 ticks. */ + LOS_SwtmrCreate(100, LOS_SWTMR_MODE_PERIOD, Timer2_Callback, &id2, 1); + PRINTK("create Timer1 success\n"); + + LOS_SwtmrStart (id1); // Start the one-shot software timer. + dprintf("start Timer1 success\n"); + LOS_TaskDelay(200); // Delay 200 ticks. + LOS_SwtmrTimeGet(id1, &uwTick); // Obtain the number of remaining ticks of the one-short software timer. + PRINTK("uwTick =%d\n", uwTick); + + LOS_SwtmrStop(id1); // Stop the software timer. + PRINTK("stop Timer1 success\n"); + + LOS_SwtmrStart(id1); + LOS_TaskDelay(1000); + LOS_SwtmrDelete(id1); // Delete the software timer. + PRINTK("delete Timer1 success\n"); + + LOS_SwtmrStart(id2); // Start the periodic software timer. + PRINTK("start Timer2\n"); + + LOS_TaskDelay(1000); + LOS_SwtmrStop(id2); + LOS_SwtmrDelete(id2); +} +``` + +**Output** + +``` +create Timer1 success +start Timer1 success +uwTick =800 +stop Timer1 success +g_timercount1=1 +tick_last1=1201 +delete Timer1 success +start Timer2 +g_timercount2 =1 +tick_last1=1301 +g_timercount2 =2 +tick_last1=1401 +g_timercount2 =3 +tick_last1=1501 +g_timercount2 =4 +tick_last1=1601 +g_timercount2 =5 +tick_last1=1701 +g_timercount2 =6 +tick_last1=1801 +g_timercount2 =7 +tick_last1=1901 +g_timercount2 =8 +tick_last1=2001 +g_timercount2 =9 +tick_last1=2101 +g_timercount2 =10 +tick_last1=2201 +``` + diff --git a/en/device-dev/kernel/kernel-small-basic-time.md b/en/device-dev/kernel/kernel-small-basic-time.md new file mode 100644 index 00000000000..d83df28cd43 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-basic-time.md @@ -0,0 +1,153 @@ +# Time Management + +- [Basic Concepts](#section12903185785119) +- [Development Guidelines](#section430981720522) + - [Available APIs](#section1040142705214) + - [How to Develop](#section1381224710522) + - [Development Example](#section1344610245416) + + +## Basic Concepts + +Time management provides all time-related services for applications based on the system clock. The system clock is generated by the interrupts triggered by the output pulse of a timer or counter. The system clock is generally defined as an integer or a long integer. The period of an output pulse is a "clock tick". The system clock is also called time scale or tick. The duration of a tick can be configured statically. People use second or millisecond as the time unit, while the operating system uses tick. When operations such as suspending a task or delaying a task are performed, the time management module converts time between ticks and seconds or milliseconds. + +The mapping between ticks and seconds can be configured. + +- **Cycle** + + Cycle is the minimum time unit in the system. The cycle duration is determined by the system clock frequency, that is, the number of cycles per second. + + +- **Tick** + + Tick is the basic time unit of the operating system and is determined by the number of ticks per second configured by the user. + + +The OpenHarmony time management module provides time conversion, statistics, and delay functions to meet users' time requirements. + +## Development Guidelines + +The time management module provides APIs to implement conversion between the system running time, ticks, and seconds/milliseconds. + +### Available APIs + +The following table describes APIs available for the OpenHarmony LiteOS-A time management. For more details about the APIs, see the API reference. + +**Table 1** APIs of the time management module + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Time conversion

+

LOS_MS2Tick

+

Converts milliseconds into ticks.

+

LOS_Tick2MS

+

Converts ticks into milliseconds.

+

Time statistics

+

LOS_TickCountGet

+

Obtains the current number of ticks.

+

LOS_CyclePerTickGet

+

Obtains the number of cycles per tick.

+
+ +### How to Develop + +1. Call APIs to convert time. +2. Call APIs to perform time statistics. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- The system tick count can be obtained only after the system clock is enabled. +>- The time management module depends on **OS\_SYS\_CLOCK** and **LOSCFG\_BASE\_CORE\_TICK\_PER\_SECOND** in **los\_config.h**. +>- The number of system ticks is not counted when the interrupt feature is disabled. Therefore, the number of ticks cannot be used as the accurate time. + +### Development Example + +Prerequisites: + +- **LOSCFG\_BASE\_CORE\_TICK\_PER\_SECOND**, that is, the number of ticks per second in the system is configured. +- **OS\_SYS\_CLOCK**, that is, system clock \(in Hz\), is configured. + +**Sample Code** + +Time conversion: + +``` +VOID Example_TransformTime(VOID) +{ + UINT32 uwMs; + UINT32 uwTick; + uwTick = LOS_MS2Tick(10000);// Convert 10000 ms into ticks. + PRINTK("uwTick = %d \n",uwTick); + uwMs= LOS_Tick2MS(100); // Convert 100 ticks into ms. + PRINTK("uwMs = %d \n",uwMs); +} +``` + +Time statistics and delay: + +``` +VOID Example_GetTime(VOID) +{ + UINT32 uwcyclePerTick; + UINT64 uwTickCount; + + uwcyclePerTick = LOS_CyclePerTickGet(); // Obtain the number of cycles per tick. + if(0 != uwcyclePerTick) + { + PRINTK("LOS_CyclePerTickGet = %d \n", uwcyclePerTick); + } + + uwTickCount = LOS_TickCountGet(); // Obtain the number of ticks. + if(0 != uwTickCount) + { + PRINTK("LOS_TickCountGet = %d \n", (UINT32)uwTickCount); + } + LOS_TaskDelay(200);// Delay 200 ticks. + uwTickCount = LOS_TickCountGet(); + if(0 != uwTickCount) + { + PRINTK("LOS_TickCountGet after delay = %d \n", (UINT32)uwTickCount); + } +} +``` + +**Verification** + +The result is as follows: + +Time conversion: + +``` +uwTick = 10000 +uwMs = 100 +``` + +Time statistics and delay: + +``` +LOS_CyclePerTickGet = 49500 +LOS_TickCountGet = 5042 +LOS_TickCountGet after delay = 5242 +``` + diff --git a/en/device-dev/kernel/kernel-small-basic-trans-event.md b/en/device-dev/kernel/kernel-small-basic-trans-event.md new file mode 100644 index 00000000000..0978b1fed62 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-basic-trans-event.md @@ -0,0 +1,251 @@ +# Event + +- [Basic Concepts](#section122115620816) +- [Working Principles](#section94611116593) + - [Event Control Block](#section1161415384467) + - [Working Principles](#section187761153144617) + +- [Development Guidelines](#section44744471891) + - [Available APIs](#section172373513919) + - [How to Develop](#section1118215161013) + - [Development Example](#section19986143311020) + - [Example Description](#section128221510145718) + - [Sample Code](#section71507479577) + - [Verification](#section16570171645813) + + +## Basic Concepts + +An event is a mechanism for communication between tasks. It can be used to synchronize tasks. + +In multi-task environment, synchronization is required between tasks. Events implement the following types of synchronization: + +- One-to-many synchronization: A task waits for the triggering of multiple events. A task is woken up by one or multiple events. +- Many-to-many synchronization: Multiple tasks wait for the triggering of multiple events. + +The events provided by the OpenHarmony LiteOS-A event module have the following features: + +- A task triggers or waits for an event by creating an event control block. +- Events are independent of each other. The internal implementation is a 32-bit unsigned integer, and each bit indicates an event type. The 25th bit is unavailable. Therefore, a maximum of 31 event types are supported. +- Events are used only for synchronization between tasks, but not for data transmission. +- Writing the same event type to the event control block for multiple times is equivalent to writing the event type only once before the event control block is cleared. +- Multiple tasks can read and write the same event. +- The event read/write timeout mechanism is supported. + +## Working Principles + +### Event Control Block + +``` +/** +* Event control block data structure + */ +typedef struct tagEvent { + UINT32 uwEventID; /* Event set, which is a collection of events processed (written and cleared).*/ + LOS_DL_LIST stEventList; /* List of tasks waiting for specific events*/ +} EVENT_CB_S, *PEVENT_CB_S; +``` + +### Working Principles + +**Initializing an event**: An event control block is created to maintain a collection of processed events and a linked list of tasks waiting for specific events. + +**Writing an event**: When a specified event is written to the event control block, the event control block updates the event set, traverses the task linked list, and determines whether to wake up related task based on the task conditions. + +**Reading an event**: If the read event already exists, it is returned synchronously. In other cases, the return time is determined based on the timeout period and event triggering status. If the wait event condition is met before the timeout period expires, the blocked task will be directly woken up. Otherwise, the blocked task will be woken up only after the timeout period has expired. + +The input parameters **eventMask** and **mode** determine whether the condition for reading an event is met. **eventMask** indicates the mask of the event. **mode** indicates the handling mode, which can be any of the following: + +- **LOS\_WAITMODE\_AND**: Event reading is successful only when all the events corresponding to **eventMask** occur. Otherwise, the task will be blocked, or an error code will be returned. +- **LOS\_WAITMODE\_OR**: Event reading is successful when any of the events corresponding to **eventMask** occur. Otherwise, the task will be blocked, or an error code will be returned. +- **LOS\_WAITMODE\_CLR**: This mode must be used with **LOS\_WAITMODE\_AND** or **LOS\_WAITMODE\_OR** \(LOS\_WAITMODE\_AND | LOS\_WAITMODE\_CLR or LOS\_WAITMODE\_OR | LOS\_WAITMODE\_CLR\). In this mode, if **LOS\_WAITMODE\_AND** or **LOS\_WAITMODE\_OR** is successful, the corresponding event type bit in the event control block will be automatically cleared. + +**Clearing event**: Clear the event set of the event control block based on the specified mask. If the mask is **0**, the event set will be cleared. If the mask is **0xffff**, no event will be cleared, and the event set remains unchanged. + +**Destroying an event**: Destroy the specified event control block. + +**Figure 1** Event working mechanism +![](figure/event-working-mechanism-21.png "event-working-mechanism-21") + +## Development Guidelines + +### Available APIs + +The following table describes APIs available for the OpenHarmony LiteOS-A event module. + +**Table 1** Event module APIs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Initializing events

+

LOS_EventInit

+

Initialize an event control block.

+

Reading/Writing events

+

LOS_EventRead

+

Reads a specified type of event, with the timeout period of a relative time period in ticks.

+

LOS_EventWrite

+

Writes a specified type of event.

+

Clearing events

+

LOS_EventClear

+

Clears a specified type of event.

+

Checking the event mask

+

LOS_EventPoll

+

Returns whether the event input by the user meets the expectation based on the event ID, event mask, and read mode passed by the user.

+

Destroying events

+

LOS_EventDestroy

+

Destroys a specified event control block.

+
+ +### How to Develop + +The typical event development process is as follows: + +1. Initialize an event control block. +2. Block a read event control block. +3. Write related events. +4. Wake up a blocked task, read the event, and check whether the event meets conditions. +5. Handle the event control block. +6. Destroy an event control block. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- When an event is read or written, the 25th bit of the event is reserved and cannot be set. +>- Repeated writes of the same event are treated as one write. + +### Development Example + +### Example Description + +In this example, run the **Example\_TaskEntry** task to create the **Example\_Event** task. Run the **Example\_Event** task to read an event to trigger task switching. Run the **Example\_TaskEntry** task to write an event. You can understand the task switching during event operations based on the sequence in which logs are recorded. + +1. Create the **Example\_Event** task in the **Example\_TaskEntry** task with a higher priority than the **Example\_TaskEntry** task. +2. Run the **Example\_Event** task to read event **0x00000001**. Task switching occurs to execute the **Example\_TaskEntry** task. +3. Run the **Example\_TaskEntry** task to write event **0x00000001**. Task switching occurs to execute the **Example\_Event** task. +4. The **Example\_Event** task is executed. +5. The **Example\_TaskEntry** task is executed. + +### Sample Code + +The sample code is as follows: + +``` +#include "los_event.h" +#include "los_task.h" +#include "securec.h" + +/* Task ID*/ +UINT32 g_testTaskId; + +/* Event control structure*/ +EVENT_CB_S g_exampleEvent; + +/* Type of the wait event*/ +#define EVENT_WAIT 0x00000001 + +/* Example task entry function*/ +VOID Example_Event(VOID) +{ + UINT32 event; + + /* Set a timeout period for event reading to 100 ticks. If the specified event is not read within 100 ticks, the read operation times out and the task is woken up.*/ + printf("Example_Event wait event 0x%x \n", EVENT_WAIT); + + event = LOS_EventRead(&g_exampleEvent, EVENT_WAIT, LOS_WAITMODE_AND, 100); + if (event == EVENT_WAIT) { + printf("Example_Event,read event :0x%x\n", event); + } else { + printf("Example_Event,read event timeout\n"); + } +} + +UINT32 Example_EventEntry(VOID) +{ + UINT32 ret; + TSK_INIT_PARAM_S task1; + + /* Initialize the event.*/ + ret = LOS_EventInit(&g_exampleEvent); + if (ret != LOS_OK) { + printf("init event failed .\n"); + return -1; + } + + /* Create a task.*/ + (VOID)memset_s(&task1, sizeof(TSK_INIT_PARAM_S), 0, sizeof(TSK_INIT_PARAM_S)); + task1.pfnTaskEntry = (TSK_ENTRY_FUNC)Example_Event; + task1.pcName = "EventTsk1"; + task1.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE; + task1.usTaskPrio = 5; + ret = LOS_TaskCreate(&g_testTaskId, &task1); + if (ret != LOS_OK) { + printf("task create failed.\n"); + return LOS_NOK; + } + + /* Write the task wait event (g_testTaskId). */ + printf("Example_TaskEntry write event.\n"); + + ret = LOS_EventWrite(&g_exampleEvent, EVENT_WAIT); + if (ret != LOS_OK) { + printf("event write failed.\n"); + return LOS_NOK; + } + + /* Clear the flag.*/ + printf("EventMask:%d\n", g_exampleEvent.uwEventID); + LOS_EventClear(&g_exampleEvent, ~g_exampleEvent.uwEventID); + printf("EventMask:%d\n", g_exampleEvent.uwEventID); + + /* Delete the task.*/ + ret = LOS_TaskDelete(g_testTaskId); + if (ret != LOS_OK) { + printf("task delete failed.\n"); + return LOS_NOK; + } + + return LOS_OK; +} +``` + +### Verification + +The development is successful if the return result is as follows: + +``` +Example_Event wait event 0x1 +Example_TaskEntry write event. +Example_Event,read event :0x1 +EventMask:1 +EventMask:0 +``` + diff --git a/en/device-dev/kernel/kernel-small-basic-trans-mutex.md b/en/device-dev/kernel/kernel-small-basic-trans-mutex.md new file mode 100644 index 00000000000..202ee9ee9d5 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-basic-trans-mutex.md @@ -0,0 +1,317 @@ +# Mutex + +- [Basic Concepts](#section85865329185) +- [Working Principles](#section8547454201819) +- [Development Guidelines](#section2038861117194) + - [Available APIs](#section11168318131917) + - [How to Develop](#section4201191122116) + - [Development Example](#section10679328202117) + + +## Basic Concepts + +A mutual exclusion \(mutex\) is a special binary semaphore used for exclusive access to shared resources. When a task holds the mutex, the task obtains the ownership of the mutex. When the task releases the mutex, the task will lose the ownership of the mutex. When a task holds a mutex, other tasks cannot hold the mutex. In an environment where multiple tasks compete for shared resources, the mutex can protect the shared resources via exclusive access. + +A mutex has three attributes: protocol attribute, priority upper limit attribute, and type attribute. The protocol attribute is used to handle a mutex requested by tasks of different priorities. The protocol attribute can be any of the following: + +- LOS\_MUX\_PRIO\_NONE + + Do not inherit or protect the priority of the task requesting the mutex. + +- LOS\_MUX\_PRIO\_INHERIT + + Inherits the priority of the task that requests the mutex. This is the default protocol attribute. When the mutex protocol attribute is set to this value: If a task with a higher priority is blocked because the mutex is already held by a task, the priority of the task holding the mutex will be copied to the priority bitmap of the task control block, and then set to be the same as that of the task of a higher priority. When the task holding the mutex releases the mutex, the task priority is restored to its original value. + +- LOS\_MUX\_PRIO\_PROTECT + + Protects the priority of the task that requests the mutex. When the mutex protocol attribute is set to this value: If the priority of the task that requests the mutex is lower than the upper limit of the mutex priority, the task priority will be backed up to the priority bitmap of the task control block, and then set to the upper limit value of the mutex priority. When the mutex is released, the task priority is restored to its original value. + + +The type attribute of a mutex specifies whether to check for deadlocks and whether to support recursive holding of the mutex. The type attribute can be any of the following: + +- LOS\_MUX\_NORMAL + + Common mutex, which does not check for deadlocks. If a task repeatedly attempts to hold a mutex, the thread will be deadlocked. If the mutex type attribute is set to this value, a task cannot release a mutex held by another task or repeatedly release a mutex. Otherwise, unexpected results will be caused. + +- LOS\_MUX\_RECURSIVE + + Recursive mutex, which is the default attribute. If the type attribute of a mutex is set to this value, a task can hold the mutex for multiple times. Another task can hold this mutex only when the number of lock holding times is the same as the number of lock release times. However, any attempt to hold a mutex held by another task or attempt to release a mutex that has been released will cause an error code. + +- LOS\_MUX\_ERRORCHECK + + Allows automatic check for deadlocks. When a mutex is set to this type, an error code will be returned if a task attempts to repeatedly hold the mutex, attempts to release the mutex held by another task, or attempts to release the mutex that has been released. + + +## Working Principles + +In a multi-task environment, multiple tasks may access the same shared resource. However, certain shared resources are not shared, and can only be accessed exclusively by tasks. A mutex can be used to address this issue. + +When non-shared resources are accessed by a task, the mutex is locked. Other tasks will be blocked until the mutex is released by the task. The mutex allows only one task to access the shared resources at a time, ensuring integrity of operations on the shared resources. + +**Figure 1** Mutex working mechanism +![](figure/mutex-working-mechanism-23.png "mutex-working-mechanism-23") + +## Development Guidelines + +### Available APIs + +**Table 1** Mutex module APIs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Initializing or destroying a mutex

+

LOS_MuxInit

+

Initializes a mutex.

+

LOS_MuxDestroy

+

Destroys the specified mutex.

+

Requesting or releasing a mutex

+

LOS_MuxLock

+

Requests the specified mutex.

+

LOS_MuxTrylock

+

Attempts to request the specified mutex without blocking.

+

LOS_MuxUnlock

+

Releases the specified mutex.

+

Verifying a mutex

+

LOS_MuxIsValid

+

Checks whether the mutex release is valid.

+

Initializing or destroying mutex attributes

+

LOS_MuxAttrInit

+

Initializes mutex attributes.

+

LOS_MuxAttrDestroy

+

Destroys the specified mutex attributes.

+

Setting and obtaining mutex attributes

+

LOS_MuxAttrGetType

+

Obtains the type attribute of a specified mutex.

+

LOS_MuxAttrSetType

+

Sets the type attribute of a specified mutex.

+

LOS_MuxAttrGetProtocol

+

Obtains the protocol attribute of a specified mutex.

+

LOS_MuxAttrSetProtocol

+

Sets the protocol attribute of a specified mutex.

+

LOS_MuxAttrGetPrioceiling

+

Obtains the priority upper limit attribute of a specified mutex.

+

LOS_MuxAttrSetPrioceiling

+

Sets the priority upper limit attribute of a specified mutex.

+

LOS_MuxGetPrioceiling

+

Obtains the mutex priority upper limit attribute.

+

LOS_MuxSetPrioceiling

+

Sets the mutex priority upper limit attribute.

+
+ +### How to Develop + +The typical mutex development process is as follows: + +1. Call **LOS\_MuxInit** to initialize a mutex. + +2. Call **LOS\_MuxLock** to request a mutex. + +The following modes are available: + +- Non-block mode: A task acquires the mutex if the requested mutex is not held by any task or the task holding the mutex is the same as the task requesting the mutex. +- Permanent block mode: A task acquires the mutex if the requested mutex is not occupied. If the mutex is occupied, the task will be blocked and the task with the highest priority in the ready queue will be executed. The blocked task can be unlocked and executed only when the mutex is released. +- Scheduled block mode: A task acquires the mutex if the requested mutex is not occupied. If the mutex is occupied, the task will be blocked and the task with the highest priority in the ready queue will be executed. The blocked task can be executed only when the mutex is released within the specified timeout period or when the specified timeout period expires. + +3. Call **LOS\_MuxUnlock** to release a mutex. + +- If tasks are blocked by the specified mutex, the task with a higher priority will be unblocked when the mutex is released. The unblocked task changes to the Ready state and is scheduled. +- If no task is blocked by the specified mutex, the mutex is released successfully. + +4. Call **LOS\_MuxDestroy** to destroy a mutex. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- Two tasks cannot lock the same mutex. If a task attempts to lock a mutex held by another task, the task will be blocked until the mutex is unlocked. +>- Mutexes cannot be used in the interrupt service program. +>- When using the LiteOS-A kernel, the OpenHarmony must ensure real-time task scheduling and avoid long-time task blocking. Therefore, a mutex must be released as soon as possible after use. + +### Development Example + +Example Description + +This example implements the following: + +1. Create a mutex in the **Example\_TaskEntry** task, and lock task scheduling. Create two tasks **Example\_MutexTask1** and **Example\_MutexTask2**. and unlock task scheduling. +2. When being scheduled, **Example\_MutexTask2** requests a mutex in permanent block mode. After acquiring the mutex, **Example\_MutexTask2** enters the sleep mode for 100 ticks. **Example\_MutexTask2** is suspended, and **Example\_MutexTask1** is woken up. +3. **Example\_MutexTask1** requests a mutex in scheduled block mode, and waits for 10 ticks. Because the mutex is still held by **Example\_MutexTask2**, **Example\_MutexTask1** is suspended. After 10 ticks, **Example\_MutexTask1** is woken up and attempts to request a mutex in permanent block mode. **Example\_MutexTask1** is suspended because the mutex is still held by **Example\_MutexTask2**. +4. After 100 ticks, **Example\_MutexTask2** is woken up and releases the mutex, and then **Example\_MutexTask1** is woken up. **Example\_MutexTask1** acquires the mutex and then releases the mutex. At last, the mutex is deleted. + +**Sample Code** + +The sample code is as follows: + +``` +#include +#include "los_mux.h" + +/* Mutex */ +LosMux g_testMux; +/* Task ID*/ +UINT32 g_testTaskId01; +UINT32 g_testTaskId02; + +VOID Example_MutexTask1(VOID) +{ + UINT32 ret; + + printf("task1 try to get mutex, wait 10 ticks.\n"); + /* Request a mutex.*/ + ret = LOS_MuxLock(&g_testMux, 10); + + if (ret == LOS_OK) { + printf("task1 get mutex g_testMux.\n"); + /* Release the mutex.*/ + LOS_MuxUnlock(&g_testMux); + return; + } + if (ret == LOS_ETIMEDOUT ) { + printf("task1 timeout and try to get mutex, wait forever.\n"); + /* Request a mutex.*/ + ret = LOS_MuxLock(&g_testMux, LOS_WAIT_FOREVER); + if (ret == LOS_OK) { + printf("task1 wait forever, get mutex g_testMux.\n"); + /*Release the mutex.*/ + LOS_MuxUnlock(&g_testMux); + /* Delete the mutex. */ + LOS_MuxDestroy(&g_testMux); + printf("task1 post and delete mutex g_testMux.\n"); + return; + } + } + return; +} + +VOID Example_MutexTask2(VOID) +{ + printf("task2 try to get mutex, wait forever.\n"); + /* Request a mutex.*/ + (VOID)LOS_MuxLock(&g_testMux, LOS_WAIT_FOREVER); + + printf("task2 get mutex g_testMux and suspend 100 ticks.\n"); + + /* Enable the task to enter sleep mode for 100 ticks.*/ + LOS_TaskDelay(100); + + printf("task2 resumed and post the g_testMux\n"); + /* Release the mutex.*/ + LOS_MuxUnlock(&g_testMux); + return; +} + +UINT32 Example_MutexEntry(VOID) +{ + UINT32 ret; + TSK_INIT_PARAM_S task1; + TSK_INIT_PARAM_S task2; + + /* Initializes the mutex./ + LOS_MuxInit(&g_testMux, NULL); + + /* Lock task scheduling.*/ + LOS_TaskLock(); + + /* Create task 1.*/ + memset(&task1, 0, sizeof(TSK_INIT_PARAM_S)); + task1.pfnTaskEntry = (TSK_ENTRY_FUNC)Example_MutexTask1; + task1.pcName = "MutexTsk1"; + task1.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE; + task1.usTaskPrio = 5; + ret = LOS_TaskCreate(&g_testTaskId01, &task1); + if (ret != LOS_OK) { + printf("task1 create failed.\n"); + return LOS_NOK; + } + + /* Create task 2.*/ + memset(&task2, 0, sizeof(TSK_INIT_PARAM_S)); + task2.pfnTaskEntry = (TSK_ENTRY_FUNC)Example_MutexTask2; + task2.pcName = "MutexTsk2"; + task2.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE; + task2.usTaskPrio = 4; + ret = LOS_TaskCreate(&g_testTaskId02, &task2); + if (ret != LOS_OK) { + printf("task2 create failed.\n"); + return LOS_NOK; + } + + /* Unlock task scheduling.*/ + LOS_TaskUnlock(); + + return LOS_OK; +} +``` + +**Verification** + +The development is successful if the return result is as follows: + +``` +task1 try to get mutex, wait 10 ticks. +task2 try to get mutex, wait forever. +task2 get mutex g_testMux and suspend 100 ticks. +task1 timeout and try to get mutex, wait forever. +task2 resumed and post the g_testMux +task1 wait forever, get mutex g_testMux. +task1 post and delete mutex g_testMux. +``` + diff --git a/en/device-dev/kernel/kernel-small-basic-trans-queue.md b/en/device-dev/kernel/kernel-small-basic-trans-queue.md new file mode 100644 index 00000000000..96ad5f86e8b --- /dev/null +++ b/en/device-dev/kernel/kernel-small-basic-trans-queue.md @@ -0,0 +1,266 @@ +# Queue + +- [Basic Concepts](#section81171363232) +- [Working Principles](#section1074515132316) + - [Queue Control Block](#section194431851201315) + - [Working Principles](#section89875741418) + +- [Development Guidelines](#section827981242419) + - [Available APIs](#section19327151642413) + - [How to Develop](#section1390154210243) + +- [Development Example](#section27132341285) + - [Example Description](#section197311443141017) + - [Sample Code](#section972214490107) + - [Verification](#section19287165416106) + + +## Basic Concepts + +A queue, also called a message queue, is a data structure used for communication between tasks. The queue receives messages of unfixed length from tasks or interrupts, and determines whether to store the transferred messages in the queue based on different APIs. + +Tasks can read messages from a queue. When the queue has no messages, the tasks are suspended. When the queue has a new message, the suspended tasks are woken up and process the new message. Tasks can also write messages to the queue. When the queue is full, the write task is suspended. When there is an available message node in the queue, the suspended write task is woken up and writes a message. + +You can adjust the timeout period of the read queue and write queue to adjust the block mode of the read and write APIs. If the timeout period is set to **0** for the read queue and write queue, tasks will not be suspended and the API directly returns. This is the non-block mode. If the timeout period is greater than **0**, block mode is used. + +An asynchronous processing mechanism is provided to allow messages in a queue not to be processed immediately. In addition, queues can be used to buffer messages and implement asynchronous task communication. Queues have the following features: + +- Messages are queued in first-in-first-out \(FIFO\) mode and can be read and written asynchronously. +- Both the read queue and write queue support the timeout mechanism. +- Each time a message is read, the message node becomes available. +- The types of messages to be sent are determined by the parties involved in communication. Messages of different lengths \(not exceeding the message node size of the queue\) are allowed. +- A task can receive messages from and send messages to any message queue. +- Multiple tasks can receive messages from and send messages to the same queue. +- When a queue is created, the required dynamic memory space is automatically allocated in the queue API. + +## Working Principles + +### Queue Control Block + +``` +/** + * Data structure of the queue control block + */ +typedef struct { + UINT8 *queueHandle; /**< Pointer to a queue handle */ + UINT16 queueState; /**< Queue state */ + UINT16 queueLen; /**< Queue length */ + UINT16 queueSize; /**< Node size */ + UINT32 queueID; /**< queueID */ + UINT16 queueHead; /**< Node head */ + UINT16 queueTail; /**< Node tail */ + UINT16 readWriteableCnt[OS_QUEUE_N_RW]; /**< Count of readable or writable resources, 0:readable, 1:writable */ + LOS_DL_LIST readWriteList[OS_QUEUE_N_RW]; /**< the linked list to be read or written, 0:readlist, 1:writelist */ + LOS_DL_LIST memList; /**< Pointer to the memory linked list */ +} LosQueueCB; +``` + +Each queue control block contains information about the queue status. + +- **OS\_QUEUE\_UNUSED**: The queue is not in use. +- **OS\_QUEUE\_INUSED**: The queue is in use. + +### Working Principles + +- The queue ID is returned if a queue is created successfully. +- The queue control block contains **Head** and **Tail**, which indicate the storage status of messages in a queue. **Head** indicates the start position of occupied message nodes in the queue. **Tail** indicates the end position of the occupied message nodes and the start position of idle message nodes. When a queue is created, **Head** and **Tail** point to the start position of the queue. +- When data is to be written to a queue, **readWriteableCnt\[1\]** is used to determine whether data can be written to the queue. If **readWriteableCnt\[1\]** is **0**, the queue is full and data cannot be written to it. Data can be written to the head node or tail node of a queue. To write data to the tail node, locate the start idle message node based on **Tail** and write data to it. If **Tail** is pointing to the tail of the queue, the rewind mode is used. To write data to the head node, locate previous node based on **Head** and write data to it. If **Head** is pointing to the start position of the queue, the rewind mode is used. +- When a queue is to be read, **readWriteableCnt\[0\]** is used to determine whether the queue has messages to read. Reading an idle queue \(**readWriteableCnt\[0\]** is** 0**\) will cause task suspension. If the queue has messages to read, the system locates the first node to which data is written based on **Head** and read the message from the node. If **Head** is pointing to the tail of the queue, the rewind mode is used. +- When a queue is to be deleted, the system locates the queue based on the queue ID, sets the queue status to **OS\_QUEUE\_UNUSED**, sets the queue control block to the initial state, and releases the memory occupied by the queue. + +**Figure 1** Reading and writing data in a queue +![](figure/reading-and-writing-data-in-a-queue.png "reading-and-writing-data-in-a-queue") + +The preceding figure illustrates how to write data to the tail node only. Writing data to the head node is similar. + +## Development Guidelines + +### Available APIs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Creating or deleting a message queue

+

LOS_QueueCreate

+

Creates a message queue. The system dynamically allocates the queue space.

+

LOS_QueueDelete

+

Deletes the specified queue based on the queue ID.

+

Reading or writing data in a queue (without the content contained in the address)

+

LOS_QueueRead

+

Reads data in the head node of the specified queue. The data in the queue node is an address.

+

LOS_QueueWrite

+

Writes the value of the input parameter bufferAddr (buffer address) to the tail node of the specified queue.

+

LOS_QueueWriteHead

+

Writes the value of the input parameter bufferAddr (buffer address) to the head node of the specified queue.

+

Reading or writing in a queue (with the content contained in the address)

+

LOS_QueueReadCopy

+

Reads data from the head node of the specified queue.

+

LOS_QueueWriteCopy

+

Writes the data saved in the input parameter bufferAddr to the tail node of the specified queue.

+

LOS_QueueWriteHeadCopy

+

Writes the data saved in the input parameter bufferAddr to the head node of the specified queue.

+

Obtaining queue information

+

LOS_QueueInfoGet

+

Obtains information about the specified queue, including the queue ID, queue length, message node size, head node, tail node, number of readable nodes, number of writable nodes, tasks waiting for read operations, and tasks waiting for write operations.

+
+ +### How to Develop + +1. Call **LOS\_QueueCreate** to create a queue. The queue ID is returned when the queue is created. +2. Call **LOS\_QueueWrite** or **LOS\_QueueWriteCopy** to write messages to the queue. +3. Call **LOS\_QueueRead** or **LOS\_QueueReadCopy** to read messages from the queue. +4. Call **LOS\_QueueInfoGet** to obtain queue information. +5. Call **LOS\_QueueDelete** to delete a queue. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- The maximum number of queues supported by the system is the total number of queue resources of the system, not the number of queue resources available to users. For example, if the system software timer occupies one more queue resource, the number of queue resources available to users decreases by one. +>- The input parameters queue name and flags passed when a queue is created are reserved for future use. +>- The input parameter **timeOut** in the queue interface function is relative time. +>- **LOS\_QueueReadCopy**, **LOS\_QueueWriteCopy**, and **LOS\_QueueWriteHeadCopy** are a group of APIs that must be used together. **LOS\_QueueRead**, **LOS\_QueueWrite**, and **LOS\_QueueWriteHead** are a group of APIs that must be used together. +>- As **LOS\_QueueWrite**, **LOS\_QueueWriteHead**, and **LOS\_QueueRead** are used to manage data addresses, you must ensure that the memory directed by the pointer obtained by calling **LOS\_QueueRead** is not modified or released abnormally when the queue is being read. Otherwise, unpredictable results may occur. +>- **LOS\_QueueWrite**, **LOS\_QueueWriteHead**, and **LOS\_QueueRead** are called to manage data addresses, which means that the actual data read or written is pointer data. Therefore, before using these APIs, ensure that the message node size is the pointer length during queue creation, to avoid waste and read failures. + +## Development Example + +### Example Description + +Create a queue and two tasks. Enable task 1 to call the queue write API to send messages, and enable task 2 to receive messages by calling the queue read API. + +1. Create task 1 and task 2 by calling **LOS\_TaskCreate**. +2. Create a message queue by calling **LOS\_QueueCreate**. +3. Enable messages to be sent in task 1 by calling **SendEntry**. +4. Enable messages to be received in task 2 by calling **RecvEntry**. +5. Call **LOS\_QueueDelete** to delete a queue. + +### Sample Code + +The sample code is as follows: + +``` +#include "los_task.h" +#include "los_queue.h" +static UINT32 g_queue; +#define BUFFER_LEN 50 + +VOID SendEntry(VOID) +{ + UINT32 ret = 0; + CHAR abuf[] = "test message"; + UINT32 len = sizeof(abuf); + + ret = LOS_QueueWriteCopy(g_queue, abuf, len, 0); + if(ret != LOS_OK) { + printf("send message failure, error: %x\n", ret); + } +} + +VOID RecvEntry(VOID) +{ + UINT32 ret = 0; + CHAR readBuf[BUFFER_LEN] = {0}; + UINT32 readLen = BUFFER_LEN; + + // Sleep for 1s. + usleep(1000000); + ret = LOS_QueueReadCopy(g_queue, readBuf, &readLen, 0); + if(ret != LOS_OK) { + printf("recv message failure, error: %x\n", ret); + } + + printf("recv message: %s\n", readBuf); + + ret = LOS_QueueDelete(g_queue); + if(ret != LOS_OK) { + printf("delete the queue failure, error: %x\n", ret); + } + + printf("delete the queue success!\n"); +} + +UINT32 ExampleQueue(VOID) +{ + printf("start queue example\n"); + UINT32 ret = 0; + UINT32 task1, task2; + TSK_INIT_PARAM_S initParam = {0}; + + initParam.pfnTaskEntry = (TSK_ENTRY_FUNC)SendEntry; + initParam.usTaskPrio = 9; + initParam.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE; + initParam.pcName = "SendQueue"; + + LOS_TaskLock(); + ret = LOS_TaskCreate(&task1, &initParam); + if(ret != LOS_OK) { + printf("create task1 failed, error: %x\n", ret); + return ret; + } + + initParam.pcName = "RecvQueue"; + initParam.pfnTaskEntry = (TSK_ENTRY_FUNC)RecvEntry; + ret = LOS_TaskCreate(&task2, &initParam); + if(ret != LOS_OK) { + printf("create task2 failed, error: %x\n", ret); + return ret; + } + + ret = LOS_QueueCreate("queue", 5, &g_queue, 0, 50); + if(ret != LOS_OK) { + printf("create queue failure, error: %x\n", ret); + } + + printf("create the queue success!\n"); + LOS_TaskUnlock(); + return ret; +} +``` + +### Verification + +The development is successful if the return result is as follows: + +``` +start test example +create the queue success! +recv message: test message +delete the queue success! +``` + diff --git a/en/device-dev/kernel/kernel-small-basic-trans-rwlock.md b/en/device-dev/kernel/kernel-small-basic-trans-rwlock.md new file mode 100644 index 00000000000..c6e7edc003d --- /dev/null +++ b/en/device-dev/kernel/kernel-small-basic-trans-rwlock.md @@ -0,0 +1,134 @@ +# RW Lock + +- [Basic Concepts](#section4692105214260) +- [Working Principles](#section1239111562720) +- [Development Guidelines](#section11643194275) + - [Available APIs](#section15335332122717) + - [How to Develop](#section14774114882714) + + +## Basic Concepts + +Similar to a mutex, a read-write lock \(RW lock\) can be used to synchronize tasks in the same process. Different from a mutex, an RW lock allows concurrent access for read operations, while write operations require exclusive access. + +An RW lock has three states: locked in read mode, locked in write mode, and unlocked. + +Observe the following rules when using RW locks: + +- If there is no lock in write mode in the protected area, any task can add a lock in read mode. +- A lock in write mode can be added only when the protected area is in the unlocked state. + +In a multi-task environment, multiple tasks may access the same shared resource. A lock in read mode allows access to a protected area in shared mode, and a lock in a write mode allows exclusive access to the shared resource. + +This sharing-exclusive manner is suitable for a multi-task environment where the data read operations are far more than data write operations. It can improve multi-task concurrency of the application. + +## Working Principles + +How does an RW lock implement lock in read mode and lock in write mode to control read/write access of multiple tasks? + +- If task A acquires the lock in write mode for the first time, other tasks cannot acquire or attempt to acquire the lock in read mode. + +- If task A acquires the lock in read mode, the RW lock count increments by 1 when a task acquires or attempts to acquire the lock in read mode. + +## Development Guidelines + +### Available APIs + +**Table 1** Read/write lock module APIs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Creating and deleting an RW lock

+

LOS_RwlockInit

+

Creates an RW lock.

+

LOS_RwlockDestroy

+

Deletes the specified RW lock.

+

Requesting a lock in read mode

+

LOS_RwlockRdLock

+

Requests the specified lock in read mode.

+

LOS_RwlockTryRdLock

+

Attempts to request the specified lock in read mode.

+

Requesting a lock in write mode

+

LOS_RwlockWrLock

+

Requests the specified lock in write mode.

+

LOS_RwlockTryWrLock

+

Attempts to request the specified lock in write mode.

+

Releasing an RW lock

+

LOS_RwlockUnLock

+

Releases the specified RW lock.

+

Verifying RW lock validity

+

LOS_RwlockIsValid

+

Checks the validity of an RW lock.

+
+ +### How to Develop + +The typical development process is as follows: + +1. Call **LOS\_RwlockInit** to create an RW lock. + +2. Call **LOS\_RwlockRdLock** to request a lock in read mode or call **LOS\_RwlockWrLock** to request a lock in write mode. + +If a lock in read mode is requested: + +- If the lock is not held, the read task can acquire the lock. +- If the lock is held, the read task acquires the lock and is executed based on the task priority. +- If the lock in write mode is held by another task, the task cannot acquire the lock until the lock in write mode is released. + +If a lock in write mode is requested: + +- If the lock is not held or if the task that holds the lock in read mode is the same as the task that requests the lock in write mode, the task acquires the lock in write mode immediately. +- If the lock already has a lock in read mode and the read task has a higher priority, the current task is suspended until the lock in read mode is released. + +3. There are three types of locks in read mode and write mode: non-block mode, permanent block mode, and scheduled block mode. The difference lies in the task suspension time. + +4. Call **LOS\_RwlockUnLock** to release an RW lock. + +- If tasks are blocked by the specified RW lock, the task with the highest priority is woken up, enters the Ready state, and is scheduled. + +- If no task is blocked by the specified RW lock, the RW lock is released. + +5. Call **LOS\_RwlockDestroy** to delete an RW lock. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- The RW lock cannot be used in the interrupt service program. +>- When using the LiteOS-A kernel, the OpenHarmony must ensure real-time task scheduling and avoid long-time task blocking. Therefore, an RW lock must be released as soon as possible after use. +>- When an RW lock is held by a task, the task priority cannot be changed by using APIs such as **LOS\_TaskPriSet**. + diff --git a/en/device-dev/kernel/kernel-small-basic-trans-semaphore.md b/en/device-dev/kernel/kernel-small-basic-trans-semaphore.md new file mode 100644 index 00000000000..2a3c04fb264 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-basic-trans-semaphore.md @@ -0,0 +1,273 @@ +# Semaphore + +- [Basic Concepts](#section1577111168131) +- [Working Principles](#section118423019134) +- [Development Guidelines](#section01419503131) + - [Available APIs](#section1232345431312) + - [How to Develop](#section154261711141419) + - [Development Example](#section658135571417) + - [Example Description](#section125244411653) + - [Sample Code](#section1742105514512) + - [Verification](#section11297301617) + + +## Basic Concepts + +Semaphore is a mechanism for implementing inter-task communication. It implements synchronization between tasks or exclusive access to shared resources. + +In the data structure of a semaphore, there is a value indicating the number of shared resources available. The value can be: + +- **0**: The semaphore is unavailable. Tasks waiting for the semaphore may exist. +- Positive number: The semaphore is available. + +The semaphore for synchronization is different from the semaphore for mutex: + +- Semaphore used for exclusive access: The initial semaphore counter value is not 0, indicating the number of shared resources available. The semaphore counter value must be acquired before a shared resource is used, and released after the resource is used. When all shared resources are used, the semaphore counter is reduced to 0 and the tasks that need to obtain the semaphores will be blocked. This ensures exclusive access to shared resources. In addition, when the number of shared resources is 1, a binary semaphore \(similar to the mutex mechanism\) is recommended. +- Semaphore used for synchronization: The initial semaphore counter value is 0. Task 1 cannot acquire the semaphore and is blocked. Task 1 enters Ready or Running state only when the semaphore is released by task 2. In this way, task synchronization is implemented. + +## Working Principles + +Semaphore control block + +``` +/** + * Data structure of the semaphore control block + */ +typedef struct { + UINT16 semStat; /* Semaphore status */ + UINT16 semType; /* Semaphore type*/ + UINT16 semCount; /* Semaphore count*/ + UINT16 semId; /* Semaphore index*/ + LOS_DL_LIST semList; /* Mount the task blocked by the semaphore.*/ +} LosSemCB; +``` + +Working Principles + +Semaphore allows only a specified number of tasks to access a shared resource at a time. When the number of tasks accessing the resource reaches the limit, other tasks will be blocked until the semaphore is released. + +- Semaphore initialization + + The system allocates memory for the semaphores configured \(you can configure the number of semaphores using the **LOSCFG\_BASE\_IPC\_SEM\_LIMIT** macro\), initializes all semaphores to be unused semaphores, and adds them to a linked list for the system to use. + +- Semaphore creation + + The system obtains a semaphore from the linked list of unused semaphores and assigns an initial value to the semaphore. + +- Semaphore request + + If the counter value is greater than 0, the system allocates a semaphore, decreases the value by 1, and returns a success message. Otherwise, the system blocks the task and adds the task to the end of a task queue waiting for semaphores. The wait timeout period can be set. + +- Semaphore release + + When a semaphore is released, if there is no task waiting for it, the counter is increased by 1. Otherwise, the first task in the wait queue is woken up. + +- Semaphore deletion + + The system sets a semaphore in use to unused state and inserts it to the linked list of unused semaphores. + + +The following figure illustrates the semaphore working mechanism. + +**Figure 1** Semaphore working mechanism +![](figure/semaphore-working-mechanism-22.png "semaphore-working-mechanism-22") + +## Development Guidelines + +### Available APIs + +**Table 1** Semaphore module APIs + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Creating or deleting a semaphore

+

LOS_SemCreate

+

Creates a semaphore and returns the semaphore ID.

+

LOS_BinarySemCreate

+

Creates a binary semaphore. The maximum counter value is 1.

+

LOS_SemDelete

+

Deletes a semaphore.

+

Requesting or releasing a semaphore

+

LOS_SemPend

+

Requests a specified semaphore and sets the timeout period.

+

LOS_SemPost

+

Posts (releases) a semaphore.

+
+ +### How to Develop + +1. Call **LOS\_SemCreate** to create a semaphore. To create a binary semaphore, call **LOS\_BinarySemCreate**. +2. Call **LOS\_SemPend** to request a semaphore. +3. Call **LOS\_SemPost** to release a semaphore. +4. Call **LOS\_SemDelete** to delete a semaphore. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>As interrupts cannot be blocked, semaphores cannot be requested in block mode for interrupts. + +### Development Example + +### Example Description + +This example implements the following: + +1. Create a semaphore in task **ExampleSem** and lock task scheduling. Create two tasks **ExampleSemTask1** and **ExampleSemTask2** \(with higher priority\). Enable the two tasks to request the same semaphore. Unlock task scheduling. Enable task **ExampleSem** to enter sleep mode for 400 ticks. Release the semaphore in task **ExampleSem**. +2. Enable** ExampleSemTask2** to enter sleep mode for 20 ticks after acquiring the semaphore. \(When **ExampleSemTask2** is delayed, **ExampleSemTask1** is woken up.\) +3. Enable **ExampleSemTask1** to request the semaphore in scheduled block mode, with a wait timeout period of 10 ticks. \(Because the semaphore is still held by **ExampleSemTask2**, **ExampleSemTask1** is suspended. **ExampleSemTask1** is woken up after 10 ticks.\) Enable **ExampleSemTask1** to request the semaphore in permanent block mode after it is woken up 10 ticks later. \(Because the semaphore is still held by **ExampleSemTask2**, **ExampleSemTask1** is suspended.\) +4. After 20 ticks, **ExampleSemTask2** is woken up and releases the semaphore. **ExampleSemTask1** acquires the semaphore and is scheduled to run. When **ExampleSemTask1** is complete, it releases the semaphore. +5. Task **ExampleSem** is woken up after 400 ticks and deletes the semaphore. + +### Sample Code + +The sample code is as follows: + +``` +#include "los_sem.h" +#include "securec.h" + +/* Task ID*/ +static UINT32 g_testTaskId01; +static UINT32 g_testTaskId02; + +/* Task priority */ +#define TASK_PRIO_TEST 5 + +/* Semaphore structure ID*/ +static UINT32 g_semId; + +VOID ExampleSemTask1(VOID) +{ + UINT32 ret; + + printf("ExampleSemTask1 try get sem g_semId, timeout 10 ticks.\n"); + + /* Request the semaphore in scheduled block mode, with a wait timeout period of 10 ticks.*/ + ret = LOS_SemPend(g_semId, 10); + + /* The semaphore is acquired.*/ + if (ret == LOS_OK) { + LOS_SemPost(g_semId); + return; + } + /* The semaphore is not acquired when the timeout period has expired.*/ + if (ret == LOS_ERRNO_SEM_TIMEOUT) { + printf("ExampleSemTask1 timeout and try get sem g_semId wait forever.\n"); + + /* Request the semaphore in permanent block mode.*/ + ret = LOS_SemPend(g_semId, LOS_WAIT_FOREVER); + printf("ExampleSemTask1 wait_forever and get sem g_semId.\n"); + if (ret == LOS_OK) { + LOS_SemPost(g_semId); + return; + } + } +} + +VOID ExampleSemTask2(VOID) +{ + UINT32 ret; + printf("ExampleSemTask2 try get sem g_semId wait forever.\n"); + + /* Request the semaphore in permanent block mode.*/ + ret = LOS_SemPend(g_semId, LOS_WAIT_FOREVER); + + if (ret == LOS_OK) { + printf("ExampleSemTask2 get sem g_semId and then delay 20 ticks.\n"); + } + + /* Enable the task to enter sleep mode for 20 ticks.*/ + LOS_TaskDelay(20); + + printf("ExampleSemTask2 post sem g_semId.\n"); + /* Release the semaphore.*/ + LOS_SemPost(g_semId); + return; +} + +UINT32 ExampleSem(VOID) +{ + UINT32 ret; + TSK_INIT_PARAM_S task1; + TSK_INIT_PARAM_S task2; + + /* Create a semaphore.*/ + LOS_SemCreate(0, &g_semId); + + /* Lock task scheduling.*/ + LOS_TaskLock(); + + /* Create task 1.*/ + (VOID)memset_s(&task1, sizeof(TSK_INIT_PARAM_S), 0, sizeof(TSK_INIT_PARAM_S)); + task1.pfnTaskEntry = (TSK_ENTRY_FUNC)ExampleSemTask1; + task1.pcName = "TestTask1"; + task1.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE; + task1.usTaskPrio = TASK_PRIO_TEST; + ret = LOS_TaskCreate(&g_testTaskId01, &task1); + if (ret != LOS_OK) { + printf("task1 create failed .\n"); + return LOS_NOK; + } + + /* Create task 2.*/ + (VOID)memset_s(&task2, sizeof(TSK_INIT_PARAM_S), 0, sizeof(TSK_INIT_PARAM_S)); + task2.pfnTaskEntry = (TSK_ENTRY_FUNC)ExampleSemTask2; + task2.pcName = "TestTask2"; + task2.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE; + task2.usTaskPrio = (TASK_PRIO_TEST - 1); + ret = LOS_TaskCreate(&g_testTaskId02, &task2); + if (ret != LOS_OK) { + printf("task2 create failed.\n"); + return LOS_NOK; + } + + /* Unlock task scheduling.*/ + LOS_TaskUnlock(); + + ret = LOS_SemPost(g_semId); + + /* Enable the task to enter sleep mode for 400 ticks.*/ + LOS_TaskDelay(400); + + /* Delete the semaphore. */ + LOS_SemDelete(g_semId); + return LOS_OK; +} +``` + +### Verification + +The development is successful if the return result is as follows: + +``` +ExampleSemTask2 try get sem g_semId wait forever. +ExampleSemTask2 get sem g_semId and then delay 20 ticks. +ExampleSemTask1 try get sem g_semId, timeout 10 ticks. +ExampleSemTask1 timeout and try get sem g_semId wait forever. +ExampleSemTask2 post sem g_semId. +ExampleSemTask1 wait_forever and get sem g_semId. +``` + diff --git a/en/device-dev/kernel/kernel-small-basic-trans-user-mutex.md b/en/device-dev/kernel/kernel-small-basic-trans-user-mutex.md new file mode 100644 index 00000000000..acf3c95a4b8 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-basic-trans-user-mutex.md @@ -0,0 +1,64 @@ +# Futex + +- [Basic Concepts](#section643519912920) +- [Working Principles](#section16834132502910) + +## Basic Concepts + +Fast userspace mutex \(futex\) is a system call capability provided by the kernel. It is a user-space lock that combines basic components and user-space lock logic. It is a lock used by both user space and kernel space, for example, userspace mutex, barrier and cond synchronization lock, and RW lock. The user-space part implements lock logic, and the kernel-space part implements lock scheduling. + +When a user-space thread requests a lock, the lock status is first checked in user space. If no lock contention occurs, the user-space thread acquires the lock directly. If lock contention occurs, the futex system call is invoked to request the kernel to suspend the thread and maintain the blocking queue. + +When a user-space thread releases a lock, the lock status is first checked in user space. If no other thread is blocked by the lock, the lock is directly released in user space. If there are threads blocked by the lock, the futex system call is invoked to request the kernel to wake up the threads in the blocking queue. + +## Working Principles + +When thread scheduling is required to resolve lock contention or lock release in user space, the futex system call is triggered to pass the user-space lock address to the kernel. The user-space locks are distinguished by lock address in the futex of the kernel. The available virtual address space in user space is 1 GiB. To facilitate search and management of lock addresses, the kernel futex uses hash buckets to store the user-space locks. + +There are 80 hash buckets. Buckets 0 to 63 are used to store private locks \(hashed based on virtual addresses\), and buckets 64 to 79 are used to store shared locks \(hashed based on physical addresses\). The private/shared attributes are determined by initialization of user-space locks and the input parameters in the futex system call. + +**Figure 1** Futex design +![](figure/futex-design.jpg "futex-design") + +As shown in above figure, each futex hash bucket stores the futex nodes with the same hash value linked in a futex\_list. Each futex node corresponds to a suspended task. The key value of a node uniquely identifies a user-space lock. The nodes with the same key value added to a queue\_list indicate a queue of tasks blocked by the same lock. + +The following table describes the APIs available for the futex module. + +**Table 1** Futex module APIs + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Putting a thread to wait

+

OsFutexWait

+

Inserts a node representing a blocked thread into the futex list.

+

Waking up a thread

+

OsFutexWake

+

Wakes up a thread that is blocked by a specified lock.

+

Modifying the lock address

+

OsFutexRequeue

+

Adjusts the position of a specified lock in the futex list.

+
+ +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>The futex system call and user-space logic form a user-space lock. Therefore, you are advised to use the locks via the user-space POSIX APIs. + diff --git a/en/device-dev/kernel/kernel-small-basic-trans-user-signal.md b/en/device-dev/kernel/kernel-small-basic-trans-user-signal.md new file mode 100644 index 00000000000..ddfb38afa0a --- /dev/null +++ b/en/device-dev/kernel/kernel-small-basic-trans-user-signal.md @@ -0,0 +1,86 @@ +# Signal + +- [Basic Concepts](#section172788254307) +- [Working Principles](#section1249693812301) + +## Basic Concepts + +Signal is a common inter-process asynchronous communication mechanism. It uses software-simulated interrupt signals. When a process needs to communicate with another process, it sends a signal to the kernel. The kernel then transfers the signal to the destination process. The destination process does not need to wait for the signal. + +## Working Principles + +The following table describes the APIs available for signal operations. + +**Table 1** Signal operation process and APIs \(user-space APIs\) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Registering the signal callback

+

signal

+

Registers the main signal entry, and registers and unregisters the callback function of a signal.

+

sigaction

+

Same as signal. This API is added with configuration options related to signal transmission. Currently, only some parameters in the SIGINFO structure are supported.

+

Sending signals

+

kill

+

Sends a signal to a process or sends messages to a thread in a process, and sets signal flags for threads in a process.

+

pthread_kill

+

raise

+

alarm

+

abort

+

Triggering a callback

+

None

+

Triggered by a system call or an interrupt. Before the switching between the kernel space and user space, the specified function in user space is entered, and the corresponding callbacks are processed. After that, the original user-space program continues to run.

+
+ +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>The signal mechanism enables communication between user-space programs. The user-space POSIX APIs listed in the above table are recommended. +>Register a callback function. +>``` +>void *signal(int sig, void (*func)(int))(int); +>``` +>a. Signal 31 is used to register the handling entry of the process callback. Repeated registration is not allowed. +>b. Signals 0 to 30 are used to register and unregister callbacks. +>Register a callback. +>``` +>int sigaction(int, const struct sigaction *__restrict, struct sigaction *__restrict); +>``` +>You can obtain and modify the configuration of signal registration. Currently, only the **SIGINFO** options are supported. For details, see the description of the **sigtimedwait** API. +>Transmit a signal. +>a. Among the default signal-receiving behaviors, the process does not support **STOP**, **COTINUE**, and **COREDUMP** defined in the POSIX standard. +>b. The SIGSTOP, SIGKILL, and SIGCONT signals cannot be shielded. +>c. If a process killed is not reclaimed by its parent process, the process becomes a zombie process. +>d. A process will not call back the signal received until the process is scheduled. +>e. When a process is killed, **SIGCHLD** is sent to its parent process. The signal sending action cannot be canceled. +>f. A process in the DELAY state cannot be woken up by a signal. + diff --git a/en/device-dev/kernel/kernel-small-basic-trans.md b/en/device-dev/kernel/kernel-small-basic-trans.md new file mode 100644 index 00000000000..bc7fe50a1f4 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-basic-trans.md @@ -0,0 +1,17 @@ +# Kernel Communication Mechanisms + +- **[Event](kernel-small-basic-trans-event.md)** + +- **[Semaphore](kernel-small-basic-trans-semaphore.md)** + +- **[Mutex](kernel-small-basic-trans-mutex.md)** + +- **[Queue](kernel-small-basic-trans-queue.md)** + +- **[RW Lock](kernel-small-basic-trans-rwlock.md)** + +- **[Futex](kernel-small-basic-trans-user-mutex.md)** + +- **[Signal](kernel-small-basic-trans-user-signal.md)** + + diff --git a/en/device-dev/kernel/kernel-small-basics.md b/en/device-dev/kernel/kernel-small-basics.md new file mode 100644 index 00000000000..68ba677548d --- /dev/null +++ b/en/device-dev/kernel/kernel-small-basics.md @@ -0,0 +1,17 @@ +# Basic Kernel + +- **[Interrupt and Exception Handling](kernel-small-basic-interrupt.md)** + +- **[Process Management](kernel-small-basic-process.md)** + +- **[Memory Management](kernel-small-basic-memory.md)** + +- **[Kernel Communication Mechanisms](kernel-small-basic-trans.md)** + +- **[Time Management](kernel-small-basic-time.md)** + +- **[Software Timer](kernel-small-basic-softtimer.md)** + +- **[Atomic Operation](kernel-small-basic-atomic.md)** + + diff --git a/en/device-dev/kernel/kernel-small-bundles-fs-new.md b/en/device-dev/kernel/kernel-small-bundles-fs-new.md new file mode 100644 index 00000000000..2211a971a05 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-bundles-fs-new.md @@ -0,0 +1,223 @@ +# File System Adaptation + +- [Basic Concepts](#section19480121811422) +- [Adapting the Mount API](#section147051940104212) +- [Adapting the Lookup API](#section11930181394317) +- [Summary and Precautions](#section5617183014319) + +## Basic Concepts + +The purpose of interconnecting with the VFS layer is to implement API functions defined by the VFS layer. You can adapt some APIs based on the file system features and service requirements. Basically, file read and write must be supported. The minimum file system adaptation is as follows: + +``` +struct MountOps g_yourFsMountOps = { + .Mount = YourMountMethod, +}; + +struct file_operations_vfs g_yourFsFileOps = { + .read = YourReadMethod, + .write = YourWriteMethod, +} + +struct VnodeOps g_yourFsVnodeOps = { + .Create = YourCreateMethod; + .Lookup = YourLookupMethod; + .Reclaim = YourReclaimMethod; +}; + +FSMAP_ENTRY(yourfs_fsmap, "your fs name", g_yourFsMountOps, TRUE, TRUE); // Register the file system. +``` + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>1. The **open** and **close** APIs are not necessarily implemented because they are used to operate files and are imperceptible to the underlying file system. You need to implement these APIs only when special operations need to be performed during the open and close operations on the file system. +>2. Basic file system knowledge is required for file system adaptation. You need to have a deep understanding of the principles and implementation of the target file system. This section does not include the file system basics in detail. If you have any questions during the adaptation process, refer to the code in the **kernel/liteos\_a/fs** directory. + +## Adapting the Mount API + +**Mount** is the first API called by the file system. This API reads the driver parameters, initializes the file system based on the configuration, and generates the root node of the file system. The **Mount** API is defined as follows: + +``` +int (*Mount)(struct Mount *mount, struct Vnode *blkDriver, const void *data); +``` + +The parameter **struct Mount \*mount** specifies information about the mount point. The following variables need to be set during adaptation: + +``` +struct Mount { + const struct MountOps *ops; /* Mount-related function hooks */ + struct Vnode *vnodeCovered; /* root node of the file system generated after the mount*/ + void *data; /* Private data of the mount point*/ +}; +``` + +The parameter **struct Vnode \*blkDriver** specifies the driver node, which can be used to access the driver. + +The parameter **const void \*data** specifies the data passed by the **mount** command and can be processed according to the requirements of the file system. + +The following uses JFFS2 as an example to describe how the adapt the **mount** API: + +``` +int VfsJffs2Bind(struct Mount *mnt, struct Vnode *blkDriver, const void *data) +{ + int ret; + int partNo; + mtd_partition *p = NULL; + struct MtdDev *mtd = NULL; + struct Vnode *pv = NULL; + struct jffs2_inode *rootNode = NULL; + + LOS_MuxLock(&g_jffs2FsLock, (uint32_t)JFFS2_WAITING_FOREVER); + + /* Obtain information required by the file system from the driver node, for example, the partition ID for the JFFS2. */ + p = (mtd_partition *)((struct drv_data *)blkDriver->data)->priv; + mtd = (struct MtdDev *)(p->mtd_info); + + if (mtd == NULL || mtd->type != MTD_NORFLASH) { + LOS_MuxUnlock(&g_jffs2FsLock); + return -EINVAL; + } + + partNo = p->patitionnum; + + /* Generate a root Vnode for the file system. Do not mix rootNode and root Vnode. The rootNode type is inode, which is the private data maintained in JFFS2. Vnode is a common file node of VFS. + This step saves the private information in the file system to the Vnode. As a result, you can directly find the corresponding file in the file system through the Vnode. + */ + ret = jffs2_mount(partNo, &rootNode); + if (ret != 0) { + LOS_MuxUnlock(&g_jffs2FsLock); + return ret; + } + + ret = VnodeAlloc(&g_jffs2Vops, &pv); + if (ret != 0) { + LOS_MuxUnlock(&g_jffs2FsLock); + goto ERROR_WITH_VNODE; + } + + /* The following enters information about the file corresponding to the Vnode. Some file systems may not support uid, gid, and mode, which can be skipped.*/ + pv->type = VNODE_TYPE_DIR; + pv->data = (void *)rootNode; + pv->originMount = mnt; + pv->fop = &g_jffs2Fops; + mnt->data = p; + mnt->vnodeCovered = pv; + pv->uid = rootNode->i_uid; + pv->gid = rootNode->i_gid; + pv->mode = rootNode->i_mode; + + /* HashInsert is used to prevent repeated generation of Vnodes. The second parameter is generally set to the unique file identifier in the file system, for example, the inode address in JFFS2. */ + (void)VfsHashInsert(pv, rootNode->i_ino); + + g_jffs2PartList[partNo] = blkDriver; + + LOS_MuxUnlock(&g_jffs2FsLock); + + return 0; +ERROR_WITH_VNODE: + return ret; +} +... +... +const struct MountOps jffs_operations = { + .Mount = VfsJffs2Bind, + ... + ... +}; +``` + +Summary: + +1. Obtain the required private information from the driver node. +2. Generate the root node of the file system based on the private information. + +## Adapting the **Lookup** API + +**Lookup** is used to search for files. The function prototype of **Lookup** is: + +``` +int (*Lookup)(struct Vnode *parent, const char *name, int len, struct Vnode **vnode); +``` + +This function searches for the Vnode from the parent node based on the file name \(**name**\) and file name length \(**len**\) and returns the Vnode to the upper layer. + +You need to specify the parent node information and file name to implement search for the file of the specified name under the parent directory. The following uses JFFS2 as an example: + +``` +int VfsJffs2Lookup(struct Vnode *parentVnode, const char *path, int len, struct Vnode **ppVnode) +{ + int ret; + struct Vnode *newVnode = NULL; + struct jffs2_inode *node = NULL; + struct jffs2_inode *parentNode = NULL; + + LOS_MuxLock(&g_jffs2FsLock, (uint32_t)JFFS2_WAITING_FOREVER); + + /* Obtain information about the parent node from the private data.*/ + parentNode = (struct jffs2_inode *)parentVnode->data; + + /* Obtain information about the target node. Note that the jffs2_lookup function called is a function of JFFS2. */ + node = jffs2_lookup(parentNode, (const unsigned char *)path, len); + if (!node) { + LOS_MuxUnlock(&g_jffs2FsLock); + return -ENOENT; + } + + /* Check whether the located target has an existing vnode, which corresponds to VfsHashInsert mentioned earlier. */ + (void)VfsHashGet(parentVnode->originMount, node->i_ino, &newVnode, NULL, NULL); + LOS_MuxUnlock(&g_jffs2FsLock); + if (newVnode) { + newVnode->parent = parentVnode; + *ppVnode = newVnode; + return 0; + } + + /* If the Vnode does not exist, create a Vnode and enter related information. */ + ret = VnodeAlloc(&g_jffs2Vops, &newVnode); + if (ret != 0) { + PRINT_ERR("%s-%d, ret: %x\n", __FUNCTION__, __LINE__, ret); + (void)jffs2_iput(node); + LOS_MuxUnlock(&g_jffs2FsLock); + return ret; + } + + Jffs2SetVtype(node, newVnode); + newVnode->fop = parentVnode->fop; + newVnode->data = node; + newVnode->parent = parentVnode; + newVnode->originMount = parentVnode->originMount; + newVnode->uid = node->i_uid; + newVnode->gid = node->i_gid; + newVnode->mode = node->i_mode; + + /* Insert the newly created Vnode into the hashtable.*/ + (void)VfsHashInsert(newVnode, node->i_ino); + + *ppVnode = newVnode; + + LOS_MuxUnlock(&g_jffs2FsLock); + return 0; +} +``` + +Summary: + +1. Obtain private data from the parent node. +2. Obtain the private data of the target file based on the private data. +3. Create the target Vnode based on the private data of the target file. + +## Summary and Precautions + +The general adaptation procedure is as follows: + +1. Obtain the private data required by the file system based on the Vnode input parameters. +2. Implement the API based on the private data. +3. Encapsulate the result in the format required by the Vnode or other APIs and return the result to the upper layer. + +The core logic is how to use the private data to implement API functions. These APIs implement common functions of the file systems and are generally implemented before the files systems are ported. Therefore, the key is to determine the private data required by the file system and store the data in Vnode for later use. Generally, the private data is information that can uniquely locate a file on a storage medium. Most file systems have similar data structures, for example, the inode data structure in JFFS2. + +>![](../public_sys-resources/icon-caution.gif) **CAUTION:** +>1. When a file is accessed, the **Lookup** API of the file system is not necessrily called. The **Lookup** API is called only when the path cache is invalid. +>2. Do not directly return the Vnode located by using **VfsHashGet** as the result. The information stored in the Vnode may be invalid. Update the fields and return it. +>3. Vnodes are automatically released in the background based on memory usage. If data needs to be stored persistently, do not save it only in Vnodes. +>4. The **Reclaim** API is automatically called when a Vnode is released. Release the resources used by the private data in this API. + diff --git a/en/device-dev/kernel/kernel-small-bundles-fs-support-fat.md b/en/device-dev/kernel/kernel-small-bundles-fs-support-fat.md new file mode 100644 index 00000000000..a6c26ea8b3f --- /dev/null +++ b/en/device-dev/kernel/kernel-small-bundles-fs-support-fat.md @@ -0,0 +1,45 @@ +# FAT + +- [Basic Concepts](#section621393911385) +- [Working Principles](#section10796155213381) +- [Development Guidelines](#section144094483919) + - [How to Develop](#section139086116394) + + +## Basic Concepts + +File Allocation Table \(FAT\) is a file system developed for personal computers. It consists of the Dos Boot Record \(DBR\) region, FAT region, and Data region. Each entry in the FAT region records information about the corresponding cluster in the storage device. The cluster information includes whether the cluster is used, number of the next cluster of the file, whether the file ends. The FAT file system supports multiple formats, such as FAT12, FAT16, and FAT32. The numbers 12, 16, and 32 indicate the number of bytes of the FAT table entries, respectively, and also restrict the maximum file size in the system. The FAT file system supports multiple media, especially removable storage media \(such as USB flash drives, SD cards, and removable hard drives\). The FAT file system ensures good compatibility between embedded devices and desktop systems \(such as Windows and Linux\) and facilitates file management. + +The OpenHarmony kernel supports FAT12, FAT16, and FAT32 file systems. These file systems have a small amount of code, feature small code volume and resource usage, support a variety of physical media, and are tailorable and compatible with Windows and Linux systems. They also support identification of multiple devices and partitions. The kernel supports multiple partitions on hard drives and allows creation of the FAT file system on the primary partition and logical partition. + +## Working Principles + +This document does not include the FAT design and physical layout. You can find a lot of reference on the Internet. + +The OpenHarmony LiteOS-A kernel uses block cache \(Bcache\) to improve the FAT performance. When read and write operations are performed, Bcache caches the sectors close to the read and write sectors to reduce the number of I/Os and improve performance. The basic cache unit of Bcache is block. The size of each block is the same. By default, there are 28 blocks, and each block caches data of 64 sectors. When the Bcache dirty block rate \(number of dirty sectors/total number of sectors\) reaches the threshold, writeback is triggered. If the dirty block rate does not reach the threshold, cached data is not written back to disks. You can call **sync** and **fsync** to write data to disks if you want. Some FAT APIs \(such as **close** and **umount**\) may also trigger writeback operations. However, you are advised not to use these APIs to trigger writeback. + +## Development Guidelines + +### How to Develop + +The development process involves mounting partitions, managing files and directories, and unmounting partitions. + +The device name of the SD card or MMC is **mmcblk\[x\]p\[y\]**, and the file system type is **vfat**. + +Example: + +``` +mount("/dev/mmcblk0p0", "/mnt", "vfat", 0, NULL); +``` + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- The size of a single FAT file cannot be greater than 4 GiB. +>- When there are two SD card slots, the first card inserted is card 0, and that inserted later is card 1. +>- When multi-partition is enabled and there are multiple partitions, the device node **/dev/mmcblk0** \(primary device\) registered by card 0 and **/dev/mmcblk0p0** \(secondary device\) are the same device. In this case, you cannot perform operations on the primary device. +>- Before removing an SD card, close the open files and directories and unmount the related nodes. Otherwise, SD card exceptions or memory leaks may occur. +>- Before performing the **format** operation, unmount the mount point. +>- After the Bcache function takes effect, note the following: +> - When **MS\_NOSYNC** is carried in the **mount** function, FAT does not proactively write the content in the cache back to the storage device. The FAT-related APIs **open**, **close**, **unlink**, **rename**, **mkdir**, **rmdir**, and **truncate** do not automatically perform the **sync** operation, which improves the operation speed. However, the upper layer must actively invoke the **sync** operation to synchronize data. Otherwise, data loss may occur. +> - Bcache provides scheduled write-back. After **LOSCFG\_FS\_FAT\_CACHE\_SYNC\_THREAD** is enabled in **menuconfig**, the OpenHarmony kernel creates a scheduled task to write the Bcache data back to disks. By default, the kernel checks the dirty block rate in the Bcache every 5 seconds. If the dirty block rate exceeds 80%, the **sync** operation will be performed to write all dirty data in the Bcache to disks. You can call **LOS\_SetSyncThreadPrio**, **LOS\_SetSyncThreadInterval**, and **LOS\_SetDirtyRatioThreshold** to set the task priority, flush interval, and dirty block rate threshold, respectively. +> - The cache has 28 blocks by default, and each block has 64 sectors. + diff --git a/en/device-dev/kernel/kernel-small-bundles-fs-support-jffs2.md b/en/device-dev/kernel/kernel-small-bundles-fs-support-jffs2.md new file mode 100644 index 00000000000..cee59071e89 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-bundles-fs-support-jffs2.md @@ -0,0 +1,121 @@ +# JFFS2 + +- [Basic Concepts](#section11411110155919) +- [Working Principles](#section23911025195913) +- [Development Guidelines](#section179711119014) + +## Basic Concepts + +Journalling Flash File System Version 2 \(JFFS2\) is a log-structured file system designed for Memory Technology Devices \(MTDs\). + +JFFS2 is used on the NOR flash memory of the OpenHarmony. JFFS2 is readable and writable, supports data compression, provides crash/power failure protection, and supports wear leveling. There are many differences between flash memory and disk media. Running a disk file system on a flash memory device will lead to performance and security problems. JFFS2 is a file system optimized for flash memory. + +## Working Principles + +This document does not include the physical layout of JFFS2 on storage devices and JFFS2 specifications. For details, see the [official JFFS2 specification document](https://sourceware.org/jffs2/). + +The following describes several important mechanisms and features of JFFS2 that developers may concern. + +1. Mount mechanism and speed: According to the JFFS2 design, all files are divided into nodes of different sizes based on certain rules and stored on the flash memory device in sequence. In the mount process, all node information needs to be obtained and cached in the memory. Therefore, the mount speed is in linear proportion to the flash device capacity and the number of files. This is a native design issue of JFFS2. To increase the mount speed, you can select **Enable JFFS2 SUMMARY** during kernel compilation. If this option is selected, information required by the mount operation will be stored to the flash memory in advance. When the mount operation is performed, this information can be read and parsed quickly, ensuring relatively constant mount speed. However, this space-for-time practice consumes about 8% extra space. +2. Wear leveling: Due to the physical attributes of flash memory devices, read and write operations can be performed only on blocks of a specific size. To prevent certain blocks from being severely worn, wear leveling is used on written blocks in JFFS2 to ensure relatively balanced writes on all blocks. This prolongs the overall service life of the flash memory devices. +3. Garbage collection \(GC\) mechanism: When a deletion operation is performed in JFFS2, the physical memory is not released immediately. An independent GC thread performs GC operations such as space defragmentation and migration. However, GC in JFFS2 affects instantaneous read/write performance, like all GC mechanisms. In addition, JFFS2 reserves about three blocks in each partition for space defragmentation. The reserved space is invisible to users. +4. Compression mechanism: The underlying layer automatically decompresses or compresses the data read or written each time in JFFS2. The actual I/O size is different from the read or write size requested by the user. You cannot estimate whether the write operation will succeed or not based on the size of the written data and the remaining space of the flash memory. +5. Hard link mechanism: JFFS2 supports hard links. Multiple hard links of the same file occupy physical memory space of only one hard link. The physical space is released only when all hard links are deleted. + +## Development Guidelines + +The development based on JFFS2 and NOR flash memory is similar to the development based on other file systems because the VFS shields the differences of specific file systems and the standard POSIX APIs are used as external APIs. + +The raw NOR flash device has no place to centrally manage and record partition information. Therefore, you need to transfer the partition information by using other configuration methods \(using the **bootargs** parameter during image burning\), call the corresponding API in the code to add partitions, and then mount the partitions. + +**Creating a JFFS2 Image** + +Use the **mkfs.jffs2** tool to create an image. The default page size is 4 KiB, and the default **eraseblock** size is 64 KiB. Modify the parameter values to match your development. + +``` +./mkfs.jffs2 -d rootfs/ -o rootfs.jffs2 +``` + +**Table 1** Command description \(run **mkfs.jffs2 --help** to view more details\) + + + + + + + + + + + + + + + + + + + + + + +

Command

+

Description

+

-s

+

Specifies the page size. If this parameter is not specified, the default value 4KiB is used.

+

-e

+

Specifies the eraseblock size. If this parameter is not specified, the default value 64KiB is used.

+

-p

+

Specifies the image size. 0xFF is filled at the end of the image file to make the file to the specified size. If the size is not specified, 0xFF is filled to a value aligned with eraseblock.

+

-d

+

Specifies the source directory of the file system image.

+

-o

+

Specifies the image name.

+
+ +**Mounting a JFFS2 Partition** + +Call **int mount\(const char \*source, const char \*target, const char \*filesystemtype, unsigned long mountflags, const void \*data\)** to mount the device node and mount point. + +This function has the following parameters: + +- **const char \*source** specifies the device node. +- **const char \*target** specifies the mount point. +- **const char \*filesystemtype** specifies the file system type. +- **unsigned long mountflags** specifies the mount flag, which is **0** by default. +- **const void \*data** specifies the data, which is **NULL** by default. + +You can also run the **mount** command in **shell** to mount a JFFS2 partition. You do not need to specify the last two parameters. + +Run the following command: + +``` +OHOS # mount /dev/spinorblk1 /jffs1 jffs2 +``` + +If the following information is displayed, the JFFS2 partition is mounted: + +``` +OHOS # mount /dev/spinorblk1 /jffs1 jffs2 +mount OK +``` + +Now, you can perform read and write operations on the NOR flash memory. + +**Unmounting a JFFS2 Partition** + +Call **int umount\(const char \*target\)** to unmount a partition. You only need to specify the correct mount point. + +Run the following command: + +``` +OHOS # umount /jffs1 +``` + +If the following information is displayed, the JFFS2 partition is unmounted: + +``` +OHOS # umount /jffs1 +umount ok +``` + diff --git a/en/device-dev/kernel/kernel-small-bundles-fs-support-nfs.md b/en/device-dev/kernel/kernel-small-bundles-fs-support-nfs.md new file mode 100644 index 00000000000..fc24e1bcb17 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-bundles-fs-support-nfs.md @@ -0,0 +1,138 @@ +# NFS + +- [Basic Concepts](#section195414101464) +- [Working Principles](#section165621321194618) +- [Development Guidelines](#section7454935184611) + +## Basic Concepts + +NFS allows you to share files across hosts and OSs over a network. You can treat NFS as a file system service, which is equivalent to folder sharing in the Windows OS to some extent. + +## Working Principles + +The NFS of the OpenHarmony LiteOS-A kernel acts as an NFS client. The NFS client can mount the directory shared by a remote NFS server to the local machine and run the programs and shared files without occupying the storage space of the current system. To the local machine, the directory on the remote server is like its disk. + +## Development Guidelines + +1. Create an NFS server. + +The following uses the Ubuntu OS as an example to describe how to configure an NFS server. + +- Install the NFS server software. + +Set the download source of the Ubuntu OS when the network connection is normal. + +``` +sudo apt-get install nfs-kernel-server +``` + +- Create a directory for mounting and assign full permissions for the directory. + +``` +mkdir -p /home/sqbin/nfs +sudo chmod 777 /home/sqbin/nfs +``` + +- Configure and start the NFS server. + +Append the following line in the **/etc/exports** file: + +``` +/home/sqbin/nfs *(rw,no_root_squash,async) +``` + +**/home/sqbin/nfs** is the root directory shared by the NFS server. + +Start the NFS server. + +``` +sudo /etc/init.d/nfs-kernel-server start +``` + +Restart the NFS server. + +``` +sudo /etc/init.d/nfs-kernel-server restart +``` + +1. Configure the board as an NFS client. + +In this section, the NFS client is a device running the OpenHarmony kernel. + +- Set the hardware connection. + +Connect the OpenHarmony kernel device to the NFS server. Set their IP addresses in the same network segment. For example, set the IP address of the NFS server to **10.67.212.178/24** and set the IP address of the OpenHarmony kernel device to **10.67.212.3/24**. Note that the preceding IP addresses are private IP addresses used as examples. You need to use your actual IP addresses. + +You can run the **ifconfig** command to check the OpenHarmony kernel device's IP address. + +- Start the network and ensure that the network between the board and NFS server is normal. + +Start the Ethernet or another type of network, and then run **ping** to check whether the network connection to the server is normal. + +``` +OHOS # ping 10.67.212.178 +[0]Reply from 10.67.212.178: time=1ms TTL=63 +[1]Reply from 10.67.212.178: time=0ms TTL=63 +[2]Reply from 10.67.212.178: time=1ms TTL=63 +[3]Reply from 10.67.212.178: time=1ms TTL=63 +--- 10.67.212.178 ping statistics --- +4 packets transmitted, 4 received, 0 loss +``` + +Initialize the NFS client. + +``` +OHOS # mkdir /nfs +OHOS # mount 10.67.212.178:/home/sqbin/nfs /nfs nfs 1011 1000 +``` + +If the following information is displayed, the NFS client is initialized. + +``` +OHOS # mount 10.67.212.178:/home/sqbin/nfs /nfs nfs 1011 1000 +Mount nfs on 10.67.212.178:/home/sqbin/nfs, uid:1011, gid:1000 +Mount nfs finished. +``` + +This command mounts the **/home/sqbin/nfs** directory on the NFS server whose IP address is 10.67.212.178 to the **/nfs** directory on the OpenHarmony kernel device. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>This section assumes that the NFS server is available, that is, the **/home/sqbin/nfs** directory on the NFS server 10.67.212.178 is accessible. +>The **mount** command format is as follows: +>``` +>mount nfs +>``` +>- **SERVER\_IP** indicates the IP address of the server. +>- **SERVER\_PATH** indicates the path of the shared directory on the NFS server. +>- **CLIENT\_PATH** indicates the NFS path on the local device. +>- **nfs** indicates the path to which the remote shared directory is mounted on the local device. +>Replace the parameters as required. +>If you do not want to restrict the NFS access permission, set the permission of the NFS root directory to **777** on the Linux CLI. +>``` +>chmod -R 777 /home/sqbin/nfs +>``` +>The NFS client setting is complete, and the NFS file system has been mounted. + +1. Share files using NFS. + +Create the **dir** directory on the NFS server and save the directory. Run the **ls** command in the OpenHarmony kernel. + +``` +OHOS # ls /nfs +``` + +The following information is returned from the serial port: + +``` +OHOS # ls /nfs +Directory /nfs: +drwxr-xr-x 0 u:0 g:0 dir +``` + +The **dir** directory created on the NFS server has been synchronized to the **/nfs** directory on the client \(OpenHarmony kernel system\). + +Similarly, you can create files and directories on the client \(OpenHarmony kernel system\) and access them from the NFS server. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>Currently, the NFS client supports some NFS v3 specifications. Therefore, the NFS client is not fully compatible with all types of NFS servers. You are advised to use the Linux NFS server to perform the development. + diff --git a/en/device-dev/kernel/kernel-small-bundles-fs-support-procfs.md b/en/device-dev/kernel/kernel-small-bundles-fs-support-procfs.md new file mode 100644 index 00000000000..3b0451434d0 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-bundles-fs-support-procfs.md @@ -0,0 +1,85 @@ +# procfs + +- [Basic Concepts](#section146801917174017) +- [Working Principles](#section479762916408) +- [Development Guidelines](#section1221174524014) + - [Development Example](#section52016575401) + + +## Basic Concepts + +The proc filesystem \(procfs\) is a virtual file system that displays process or other system information in a file-like structure. It is more convenient to obtain system information in file operation mode compared with API calling mode. + +## Working Principles + +In the OpenHarmony kernel, procfs is automatically mounted to the **/proc** directory during startup. Only the kernel module can create file nodes to provide the query service. + +## Development Guidelines + +To create a procfs file, you need to use **ProcMkdir** to create a directory and use **CreateProcEntry** to create a file. The development of the file node function is to hook the read and write functions to the file created by **CreateProcEntry**. When the procfs file is read or written, the hooked functions will be called to implement customized functions. + +### Development Example + +The following describes how to create the **/proc/hello/world** file to implement the following functions: + +1. Create a file in **/proc/hello/world**. + +2. Read the file. When the file is read, "HelloWorld!" is returned. + +3. Write the file and print the data written in the file. + +``` +#include "proc_fs.h" + +static int TestRead(struct SeqBuf *buf, void *arg) +{ + LosBufPrintf(buf, "Hello World! \n"); /* Print "Hello World!" to the buffer. The data in the buffer will be returned to the read result. */ + return 0; +} + +static int TestWrite(struct ProcFile *pf, const char *buffer, size_t buflen, loff_t *ppos) +{ + if ((buffer == NULL) || (buflen <= 0)) { + return -EINVAL; + } + + PRINTK("your input is: %s\n", buffer); /* Different from the read API, the write API prints the data only to the console. */ + return buflen; +} +static const struct ProcFileOperations HELLO_WORLD_OPS = { + .read = TestRead, + .write = TestWrite, +}; + +void HelloWorldInit(void) +{ + /* Create the hello directory.*/ + struct ProcDirEntry *dir = ProcMkdir("hello", NULL); + if (dir == NULL) { + PRINT_ERR("create dir failed!\n"); + return; + } + + /*Create the world file. */ + struct ProcDirEntry *entry = CreateProcEntry("world", 0, dir); + if (entry == NULL) { + PRINT_ERR("create entry failed!\n"); + return; + } + + /* Hook the customized read and write APIs to the file. */ + entry->procFileOps = &HELLO_WORLD_OPS; +} +``` + +**Verification** + +After the OS startup, run the following command in the shell: + +``` +OHOS # cat /proc/hello/world +OHOS # Hello World! +OHOS # echo "yo" > /proc/hello/world +OHOS # your input is: yo +``` + diff --git a/en/device-dev/kernel/kernel-small-bundles-fs-support-ramfs.md b/en/device-dev/kernel/kernel-small-bundles-fs-support-ramfs.md new file mode 100644 index 00000000000..20a4931031a --- /dev/null +++ b/en/device-dev/kernel/kernel-small-bundles-fs-support-ramfs.md @@ -0,0 +1,64 @@ +# Ramfs + +- [Basic Concepts](#section9507151014420) +- [Working Principles](#section1859711263447) +- [Development Guidelines](#section163554380448) + +## Basic Concepts + +Ramfs is a RAM-based file system whose size can be dynamically adjusted. Ramfs does not have a backing store. Directory entries and page caches are allocated when files are written into ramfs. However, data is not written back to any other storage medium, and data is lost after a power outage. + +## Working Principles + +Ramfs stores all files in RAM, and read/write operations are performed in RAM. Ramfs is generally used to store temporary data or data that needs to be frequently modified, such as the **/tmp** and **/var** directories. Using ramfs reduces the read/write loss of the memory and improves the data read/write speed. + +## Development Guidelines + +Mount: + +``` +mount(NULL, "/dev/shm", "ramfs", 0, NULL) +``` + +Create a directory: + +``` +mkdir(pathname, mode) +``` + +Create a file: + +``` +open(pathname, O_NONBLOCK | O_CREAT | O_RDWR, mode) +``` + +Read a directory: + +``` +dir = opendir(pathname) +ptr = readdir(dir) +closedir(dir) +``` + +Delete a file: + +``` +unlink(pathname) +``` + +Deletes a directory: + +``` +rmdir(pathname) +``` + +Unmount: + +``` +umount("/dev/shm") +``` + +>![](../public_sys-resources/icon-caution.gif) **CAUTION:** +>- A ramfs file system can be mounted only once. Once mounted to a directory, it cannot be mounted to other directories. +>- Ramfs is under debugging and disabled by default. Do not use it in formal products. + diff --git a/en/device-dev/kernel/kernel-small-bundles-fs-support.md b/en/device-dev/kernel/kernel-small-bundles-fs-support.md new file mode 100644 index 00000000000..ee0741ca974 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-bundles-fs-support.md @@ -0,0 +1,13 @@ +# Supported File Systems + +- **[FAT](kernel-small-bundles-fs-support-fat.md)** + +- **[JFFS2](kernel-small-bundles-fs-support-jffs2.md)** + +- **[NFS](kernel-small-bundles-fs-support-nfs.md)** + +- **[Ramfs](kernel-small-bundles-fs-support-ramfs.md)** + +- **[procfs](kernel-small-bundles-fs-support-procfs.md)** + + diff --git a/en/device-dev/kernel/kernel-small-bundles-fs-virtual.md b/en/device-dev/kernel/kernel-small-bundles-fs-virtual.md new file mode 100644 index 00000000000..f8fc8e5e1c7 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-bundles-fs-virtual.md @@ -0,0 +1,794 @@ +# Virtual File System + +- [Basic Concepts](#section1253851143520) +- [Working Principles](#section14915913123510) +- [Development Guidelines](#section1759563620358) + - [Available APIs](#section17865142133511) + - [How to Develop](#section64113023616) + - [Development Example](#section236041883618) + + +## Basic Concepts + +The Virtual File System \(VFS\) is not a real file system. It is an abstract layer on top of a heterogeneous file system and provides you with a unified Unix-like file operation interface. Different types of file systems provide different interfaces. If there are multiple types of file systems in the system, different and non-standard interfaces are required for accessing these file systems. The VFS can be introduced as an abstract layer in the system to harmonize the differences between these heterogeneous file systems. In this way, the system does not need to care about the storage medium and file system type at the bottom layer when accessing a file system. + +In the OpenHarmony kernel, the VFS framework is implemented through the tree structure in the memory. Each node of the tree is a **Vnode** structure, and the relationship between the parent and child nodes is stored in the **PathCache** structure. The VFS provides the following functions: + +- Node query +- Unified file system invoking \(standard\) + +## Working Principles + +The VFS layer uses function pointers to call different interfaces for different types of file systems to implement standard APIs. It uses the Vnode and PathCache mechanisms to improve path search and file access performance, manages partitions through mount point management, and isolates File Descriptors \(FDs\) between processes through FD management. These mechanisms are briefly described below. + +1. File system function pointer: The VFS uses function pointers to distribute calls to different file systems for underlying operations based on the file system type. Each file system implements a set of Vnode operation, mount point operation, and file operation APIs, and stores them in the corresponding Vnode, mount point, and file structures in the form of function pointer structures, so that the VFS layer can access the Vnode, mount point, and file structures. +2. Vnode: A Vnode is an abstract encapsulation of a specific file or directory at the VFS layer. It shields the differences between different file systems and implements unified resource management. Vnodes include the following types: + + - Mount point: used to mount a specific file system, for example, **/** and **/storage**. + - Device node: mapping to a device in the **/dev** directory, for example, **/dev/mmcblk0** + - File/Directory node: corresponds to a file or directory in a file system, for example, **/bin/init**. + + Vnodes are managed using the hash and least recently used \(LRU\) mechanisms. After a system is started, the Vnode cache is preferentially searched in the hash linked list for an access request for a file or directory. If the cache is not hit, the target file or directory is searched in the corresponding file system, and the corresponding Vnode is created and cached. When the number of cached Vnodes reaches the upper limit, the Vnodes that are not accessed for a long time will be deleted. The mount point Vnodes and device node Vnodes are not deleted. The default number of Vnodes in the system is 512. You can configure the value in **LOSCFG\_MAX\_VNODE\_SIZE**. Increasing the value can improve search performance but cause high memory usage. The following figure shows the process of creating a Vnode. + + **Figure 1** Process of creating a Vnode + ![](figure/process-of-creating-a-vnode.png "process-of-creating-a-vnode") + + +1. PathCache: The PathCache is a path cache. It is stored in a hash table. Based on the address of the parent Vnode and the file name of the child node in the PathCache, the Vnode corresponding to the child node can be quickly found. The following figure shows how a file or directory is located. + + **Figure 2** Process of locating a file + ![](figure/process-of-locating-a-file.png "process-of-locating-a-file") + + +1. PageCache: The PageCache is a cache of files in the kernel. Currently, the PageCache can cache only binary files. When a file is accessed for the first time, the file is mapped to the memory using **mmap**. When the file is accessed the next time, the file can be directly read from the PageCache, accelerating the read and write speed of the file. In addition, page cache helps implement IPC based on files. +2. FD management: A FD uniquely identifies an open file or directory in an OS. The OpenHarmony has 896 FDs, which include the following: + + - 512 file descriptors + - 128 socket descriptors + - 256 message queue descriptors + + In the OpenHarmony kernel, the FDs of different processes are isolated. That is, a process can access only its own FD. The FDs of all processes are mapped to a global FD table for unified allocation and management. The maximum number of process file descriptors is 256. + +3. Mount point management: The OpenHarmony kernel manages all mount points in a linked list. The mount point structure records all Vnodes in the mounted partition. When a partition is unmounted, all Vnodes in the partition are released. + +## Development Guidelines + +### Available APIs + +In the following table, "×" indicates that the corresponding file system does not support the API. + +**Table 1** File system APIs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

FAT

+

JFFS2

+

NFS

+

TMPFS

+

PROCFS

+

File management

+

open

+

Opens a file.

+

+

+

+

+

+

read/pread/readv/preadv

+

Reads a file.

+

+

+

+

+

+

write/pwrite/writev/pwritev

+

Writes a file.

+

+

+

+

+

+

lseek

+

Sets the file offset.

+

+

+

+

+

×

+

close

+

Closes a file.

+

+

+

+

+

+

unlink

+

Deletes a file.

+

+

+

+

+

×

+

fstat

+

Queries file information.

+

+

+

+

+

+

fallocate

+

Pre-allocates a file.

+

+

×

+

×

+

×

+

×

+

truncate

+

Truncates a file.

+

+

+

×

+

+

×

+

link

+

Creates a hard link.

+

×

+

+

×

+

×

+

×

+

symlink

+

Creates a soft link.

+

+

+

×

+

×

+

×

+

readlink

+

Reads a soft link.

+

+

+

×

+

×

+

×

+

dup

+

Copies a file handle.

+

+

+

+

+

+

fsync

+

Saves the update of a file to a device.

+

+

×

+

×

+

×

+

×

+

ioctl

+

Controls a device.

+

×

+

×

+

×

+

+

×

+

fcntl

+

Performs file control operations.

+

+

+

+

+

+

Directory management

+

mkdir

+

Creates a directory.

+

+

+

+

+

×

+

opendir

+

Opens a directory.

+

+

+

+

+

+

readdir

+

Reads a directory.

+

+

+

+

+

+

closedir

+

Closes a directory.

+

+

+

+

+

+

telldir

+

Obtains the directory offset.

+

+

+

+

+

+

seekdir

+

Sets the directory offset.

+

+

+

+

+

+

rewinddir

+

Resets the directory offset.

+

+

+

+

+

×

+

scandir

+

Reads directory data.

+

+

+

+

+

+

rmdir

+

Deletes a directory.

+

+

+

+

+

×

+

chdir

+

Changes the current directory.

+

+

+

+

+

+

getcwd

+

Obtains the current directory.

+

+

+

+

+

+

realpath

+

Converts between the relative and absolute paths.

+

+

+

+

+

+

rename

+

Renames a file or directory.

+

+

+

+

+

×

+

chmod

+

Modifies the file or directory property.

+

+

+

×

+

×

+

×

+

chown

+

Changes the file or directory owner.

+

+

+

×

+

×

+

×

+

stat/lstat

+

Queries file or directory information.

+

+

+

+

+

+

access

+

Queries the access permission on a file or directory.

+

+

+

+

+

+

Partition management

+

mount

+

Mounts a partition.

+

+

+

+

+

+

umount

+

Unmounts a partition.

+

+

+

+

+

×

+

statfs

+

Queries information about a mounted partition.

+

+

+

+

+

+

format

+

Formats a partition.

+

+

×

+

×

+

×

+

×

+

sync

+

Saves the partition information to a device.

+

+

×

+

×

+

×

+

×

+
+ +### How to Develop + +The file system development process involves mounting and unmounting partitions and managing directories and files. + +### Development Example + +The sample code is as follows: + +``` +#include +#include +#include "sys/stat.h" +#include "fcntl.h" +#include "unistd.h" + +#define LOS_OK 0 +#define LOS_NOK -1 + +int main(void) +{ + int ret; + int fd = -1; + ssize_t len; + off_t off; + char mntName[20] = "/storage"; + char devName[20] = "/dev/mmcblk0p0"; + char dirName[20] = "/storage/test"; + char fileName[20] = "/storage/test/file.txt"; + char writeBuf[20] = "Hello OpenHarmony!"; + char readBuf[20] = {0}; + + /* Create the directory /storage. + ret = mkdir(mntName, 0777); + if (ret != LOS_OK) { + printf("mkdir failed.\n"); + return LOS_NOK; + } + + /* Mount the /dev/mmcblk0p0 device to the /storage directory.*/ + ret = mount(devName, mntName, "vfat", 0, 0); + if (ret != LOS_OK) { + printf("mount failed.\n"); + return LOS_NOK; + } + + /* Create the directory /storage/test. + ret = mkdir(dirName, 0777); + if (ret != LOS_OK) { + printf("mkdir failed.\n"); + return LOS_NOK; + } + + /* Create the file /storage/test/file.txt and make it readable and writable.*/ + fd = open(fileName, O_RDWR | O_CREAT, 0777); + if (fd < 0) { + printf("open file failed.\n"); + return LOS_NOK; + } + + /* Write the content from writeBuf to the file. */ + len = write(fd, writeBuf, strlen(writeBuf)); + if (len != strlen(writeBuf)) { + printf("write file failed.\n"); + return LOS_NOK; + } + + /* Save the update of the file to the storage device.*/ + ret = fsync(fd); + if (ret != LOS_OK) { + printf("fsync failed.\n"); + return LOS_NOK; + } + + /* Move the read/write pointer to the file header. */ + off = lseek(fd, 0, SEEK_SET); + if (off != 0) { + printf("lseek failed.\n"); + return LOS_NOK; + } + + /* Read the file content, with the same size as readBuf, to readBuf.*/ + len = read(fd, readBuf, sizeof(readBuf)); + if (len != strlen(readBuf)) { + printf("read file failed.\n"); + return LOS_NOK; + } + printf("%s\n", readBuf); + + /* Close the file. */ + ret = close(fd); + if (ret != LOS_OK) { + printf("close failed.\n"); + return LOS_NOK; + } + + /*Delete the file /storage/test/file.txt.*/ + ret = unlink(fileName); + if (ret != LOS_OK) { + printf("unlink failed.\n"); + return LOS_NOK; + } + + /*Delete the /storage/test directory.*/ + ret = rmdir(dirName); + if (ret != LOS_OK) { + printf("rmdir failed.\n"); + return LOS_NOK; + } + + /* Unmount the /storage partition.*/ + ret = umount(mntName); + if (ret != LOS_OK) { + printf("umount failed.\n"); + return LOS_NOK; + } + + /*Delete the /storage/ directory.*/ + ret = rmdir(mntName); + if (ret != LOS_OK) { + printf("rmdir failed.\n"); + return LOS_NOK; + } + + return LOS_OK; +} +``` + +**Verification** + +The development is successful if the return result is as follows: + +``` +Hello OpenHarmony! +``` + diff --git a/en/device-dev/kernel/kernel-small-bundles-fs.md b/en/device-dev/kernel/kernel-small-bundles-fs.md new file mode 100644 index 00000000000..f052b6075d8 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-bundles-fs.md @@ -0,0 +1,16 @@ +# File Systems + +A file system \(often abbreviated to FS\) provides an input and output manner for an OS. It implements the interaction with internal and external storage devices. + +The file system provides standard POSIX operation APIs for the upper-layer system through the C library. For details, see the API reference of the C library. The VFS virtual layer in kernel space shields the differences between file systems. The basic architecture is as follows: + +**Figure 1** Overall file system architecture +![](figure/overall-file-system-architecture.png "overall-file-system-architecture") + +- **[Virtual File System](kernel-small-bundles-fs-virtual.md)** + +- **[Supported File Systems](kernel-small-bundles-fs-support.md)** + +- **[File System Adaptation](kernel-small-bundles-fs-new.md)** + + diff --git a/en/device-dev/kernel/kernel-small-bundles-ipc.md b/en/device-dev/kernel/kernel-small-bundles-ipc.md new file mode 100644 index 00000000000..d4d71078427 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-bundles-ipc.md @@ -0,0 +1,70 @@ +# LiteIPC + +- [Basic Concepts](#section1980994712918) +- [Working Principles](#section849811592918) +- [Development Guidelines](#section17571315171017) + - [Available APIs](#section725022011103) + + +## Basic Concepts + +LiteIPC is a new inter-process communication \(IPC\) mechanism provided by the OpenHarmony LiteOS-A kernel. Different from the traditional System V IPC, LiteIPC is designed for Remote Procedure Call \(RPC\). In addition, it provides APIs for the upper layer through device files, not through traditional API functions. + +LiteIPC has two important concepts: ServiceManager and Service. The entire system can have one ServiceManager and multiple Services. ServiceManager is responsible for registering and unregistering services, and managing Service access permission \(only authorized tasks can send IPC messages to corresponding Services\). + +## Working Principles + +ServiceManager registers the task that needs to receive IPC messages as a Service, and sets the access permission for the Service task \(specifies the tasks that can send IPC messages to the Service\). LiteIPC maintains an IPC message queue for each Service task in kernel space. The message queue provides the upper-layer user-space programs with the read operation \(receiving IPC messages\) and the write operations \(sending IPC messages\) through LiteIPC device files. + +## Development Guidelines + +### Available APIs + +**Table 1** LiteIPC module APIs \(for LiteOS-A internal use only\) + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Module initialization

+

OsLiteIpcInit

+

Initializes the LiteIPC module.

+

IPC message memory pool

+

LiteIpcPoolInit

+

Initializes the IPC message memory pool of processes.

+

LiteIpcPoolReInit

+

Re-initializes the IPC message memory pool of processes.

+

LiteIpcPoolDelete

+

Releases the IPC message memory pool of processes.

+

Service management

+

LiteIpcRemoveServiceHandle

+

Deletes the specified Service.

+
+ +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>LiteIPC module APIs are used for LiteOS-A internal use only. + diff --git a/en/device-dev/kernel/kernel-small-bundles-linking.md b/en/device-dev/kernel/kernel-small-bundles-linking.md new file mode 100644 index 00000000000..dcca834b580 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-bundles-linking.md @@ -0,0 +1,82 @@ +# Dynamic Loading and Linking + +- [Basic Concepts](#section208951139453) +- [Working Principles](#section14140155320511) +- [Development Guidelines](#section133501496612) + - [Available APIs](#section874113201669) + - [How to Develop](#section196712561563) + + +## Basic Concepts + +The OpenHarmony dynamic loading and linking mechanism includes a kernel loader and a dynamic linker. The kernel loader loads application programs and the dynamic linker. The dynamic linker loads the shared library on which the application programs depend, and performs symbol relocation for the application programs and shared libraries. Compared with static linking, dynamic linking is a mechanism for delaying the linking of applications and dynamic libraries to run time. + +**Advantages of Dynamic Linking** + +1. Dynamic linking allows multiple applications to share code. The minimum loading unit is page. It saves disk and memory space than static linking. +2. When a shared library is upgraded, the new shared library overwrites the earlier version \(the APIs of the shared library are downward compatible\). You do not need to re-link the shared library. +3. The loading address can be randomized to prevent attacks and ensure security. + +## Working Principles + +**Figure 1** Dynamic loading process +![](figure/dynamic-loading-process.png "dynamic-loading-process") + +1. The kernel maps the **PT\_LOAD** section in the ELF file of the application to the process space. For files of the ET\_EXEC type, fixed address mapping is performed based on **p\_vaddr** in the **PT\_LOAD** section. For files of the ET\_DYN type \(position-independent executable programs, obtained through the compile option **-fPIE**\), the kernel selects the **base** address via **mmap** for mapping \(load\_addr = base + p\_vaddr\). +2. If the application is statically linked \(static linking does not support the compile option **-fPIE**\), after the stack information is set, the system redirects to the address specified by **e\_entry** in the ELF file of the application and runs the application. If the program is dynamically linked, the application ELF file contains the **PT\_INTERP** section, which stores the dynamic linker path information \(ET\_DYN type\). The dynamic linker of musl is a part of the **libc-musl.so**. The entry of **libc-musl.so** is the entry of the dynamic linker. The kernel selects the **base** address for mapping via the **mmap** API, sets the stack information, redirects to the **base + e\_entry** \(entry of the dynamic linker\) address, and runs the dynamic linker. +3. The dynamic linker bootstraps and searches for all shared libraries on which the application depends, relocates the imported symbols, and finally redirects to the **e\_entry** \(or **base + e\_entry**\) of the application to run the application. + +**Figure 2** Program execution process +![](figure/program-execution-process.png "program-execution-process") + +1. The loader and linker call **mmap** to map the **PT\_LOAD** section. +2. The kernel calls **map\_pages** to search for and map the existing page cache. +3. If the memory does not have the required code or data when the program is executed, a page missing interrupt is triggered to read the content of the ELF file into the memory and add the memory block to the page cache. +4. Map the memory blocks of the file read to the virtual address region. +5. The program continues to run. + +The program is executed with continuous page missing interrupts. + +## Development Guidelines + +### Available APIs + +LOS\_DoExecveFile + +**Function prototype:** + +INT32 LOS\_DoExecveFile\(const CHAR \*fileName, CHAR \* const \*argv, CHAR \* const \*envp\); + +**Function**: Executes a new user program based on **fileName**. + +**Parameter Description** + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

fileName

+

Name of a binary executable file. It can be a path name.

+

argv

+

Parameters, ended with NULL, required for program execution. If no parameter is required, set this parameter to NULL.

+

envp

+

New environment variables, ended with NULL, required for program execution. If no new environment variable is required, set this parameter to NULL.

+
+ +### How to Develop + +The kernel cannot directly call the **LOS\_DoExecveFile** API to start a new process. This API is generally called through the **execve** API to create a new process using the system call mechanism. + diff --git a/en/device-dev/kernel/kernel-small-bundles-share.md b/en/device-dev/kernel/kernel-small-bundles-share.md new file mode 100644 index 00000000000..fc519c07e15 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-bundles-share.md @@ -0,0 +1,47 @@ +# Virtual Dynamic Shared Object + +- [Basic Concepts](#section174577181688) +- [Working Principles](#section546363114810) + +## Basic Concepts + +Different from a common dynamic shared library, which stores its so files in the file system, the virtual dynamic shared object \(VDSO\) has its so files stored in the system image. The kernel determines the so files and provides them to the application program. That is why the VDSO is called a virtual dynamic shared library. + +The VDSO mechanism allows OpenHarmony user-space programs to quickly obtain kernel-related data. It can accelerate certain system calls and implement quick read of non-sensitive data \(hardware and software configuration\). + +## Working Principles + +The VDSO can be regarded as a section of memory \(read-only\) maintained by the kernel and mapped to the address space of the user-space applications. By linking **vdso.so**, the applications can directly access this mapped memory instead of invoking system calls, accelerating application execution. + +VDSO can be divided into: + +- Data page: provides the kernel-time data mapped to the user process. +- Code page: provides the logic for shielding system calls. + +**Figure 1** VDSO system design +![](figure/vdso-system-design.jpg "vdso-system-design") + +The VDSO mechanism involves the following steps: + +1. Creates the VDSO data page during kernel initialization. + +2. Creates the VDSO code page during kernel initialization. + +3. Updates kernel data to the VDSO data page based on the system clock interrupts. + +4. Maps the code page to the user space when a user process is created. + +5. Binds the VDSO symbols when the user program creates dynamic linking. + +6. The VDSO code page intercepts specific system calls \(for example, **clock\_gettime\(CLOCK\_REALTIME\_COARSE, &ts\)**\). + +7. The VDSO code page allows direct read of the mapped VDSO data page rather than invoking a system call. + +8. Returns data from the VDSO data page to the VDSO code page. + +9. Returns the data obtained from the VDSO data page to the user program. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- The VDSO mechanism supports the **CLOCK\_REALTIME\_COARSE** and **CLOCK\_MONOTONIC\_COARSE** functions of the **clock\_gettime** API in the LibC library. For details about how to use the **clock\_gettime** API, see the POSIX standard. You can call **clock\_gettime\(CLOCK\_REALTIME\_COARSE, &ts\)** or **clock\_gettime\(CLOCK\_MONOTONIC\_COARSE, &ts\)** of the LibC library to use the VDSO. +>- When VDSO is used, the time precision is the same as that of the tick interrupt of the system. The VDSO mechanism is applicable to the scenario where there is no demand for high time precision and **clock\_gettime** or **gettimeofday** is frequently triggered in a short period of time. The VDSO mechanism is not recommended for the system demanding high time precision. + diff --git a/en/device-dev/kernel/kernel-small-bundles-system.md b/en/device-dev/kernel/kernel-small-bundles-system.md new file mode 100644 index 00000000000..12d304f4f63 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-bundles-system.md @@ -0,0 +1,176 @@ +# System Call + +- [Basic Concepts](#section889710401734) +- [Working Principles](#section195177541314) +- [Development Guidelines](#section193492047135419) + - [How to Develop](#section7165741122210) + - [Development Example](#section107131418224) + + +## Basic Concepts + +The OpenHarmony LiteOS-A isolates the user space and kernel space. User-space programs cannot directly access kernel resources. System calls provide a channel for user-space programs to access kernel resources and interact with the kernel. + +## Working Principles + +As shown in the following figure, a user program calls the System API \(a POSIX interface provided by the system\) to access kernel resources and interacts with the kernel. An SVC/SWI exception is triggered inside the POSIX interface to complete switching of the system from the user space to the kernel space. Then, the kernel Syscall Handler \(unified system call interface\) parses parameters received and distributes the parameters to the specific kernel functions for processing. + +**Figure 1** System call +![](figure/system-call.png "system-call") + +The Syscall Handler is implemented by the **OsArmA32SyscallHandle** function in **kernel/liteos\_a/syscall/los\_syscall.c**. This function is called when a system software interrupt occurs. The input parameters of system calls are parsed according to the list in **kernel/liteos\_a/syscall/syscall\_lookup.h** so that the specific kernel functions are executed. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- System calls implement basic interaction between user-space programs and the kernel. You are advised to use the POSIX APIs provided by the kernel instead of system call APIs. If you want to add system call APIs, see the development guide. +>- For details about the system call APIs provided by the kernel for the user space, see **kernel/liteos\_a/syscall/syscall\_lookup.h**. For details about the system call functions provided by the kernel, see **kernel/liteos\_a/syscall/los\_syscall.h**. + +## Development Guidelines + +### How to Develop + +The typical development process of adding a system call API is as follows: + +1. Determine and add the new system call number to the LibC library. +2. Add the declaration and implementation of the new user-space function API to the LibC library. +3. Add the new system call number and the declaration of the corresponding kernel processing function to the kernel system call header file. +4. Add the kernel processing function corresponding to the system call to the kernel. + +### Development Example + +**Sample Code** + +1. Add the system call number to **syscall.h.in** in the LibC library. + + In the following example, **\_\_NR\_new\_syscall\_sample** specifies the system call number added. + + ``` + ... + /* Current system call list */ + /* OHOS customized syscalls, not compatible with ARM EABI */ + #define __NR_OHOS_BEGIN 500 + #define __NR_pthread_set_detach (__NR_OHOS_BEGIN + 0) + #define __NR_pthread_join (__NR_OHOS_BEGIN + 1) + #define __NR_pthread_deatch (__NR_OHOS_BEGIN + 2) + #define __NR_creat_user_thread (__NR_OHOS_BEGIN + 3) + #define __NR_processcreat (__NR_OHOS_BEGIN + 4) + #define __NR_processtart (__NR_OHOS_BEGIN + 5) + #define __NR_printf (__NR_OHOS_BEGIN + 6) + #define __NR_dumpmemory (__NR_OHOS_BEGIN + 13) + #define __NR_mkfifo (__NR_OHOS_BEGIN + 14) + #define __NR_mqclose (__NR_OHOS_BEGIN + 15) + #define __NR_realpath (__NR_OHOS_BEGIN + 16) + #define __NR_format (__NR_OHOS_BEGIN + 17) + #define __NR_shellexec (__NR_OHOS_BEGIN + 18) + #define __NR_ohoscapget (__NR_OHOS_BEGIN + 19) + #define __NR_ohoscapset (__NR_OHOS_BEGIN + 20) + + #define __NR_new_syscall_sample (__NR_OHOS_BEGIN + 21) /* Add the new system call number: __NR_new_syscall_sample:521 */ + + #define __NR_syscallend (__NR_OHOS_BEGIN + 22) + ... + ``` + +2. Add the declaration and implementation of the new user-space API to the LibC library. + + ``` + #include "stdio_impl.h" + #include "syscall.h" + ... + /* Add the implementation of the new user-space system call API.*/ + void newSyscallSample(int num) + { + printf("user mode: num = %d\n", num); + __syscall(SYS_new_syscall_sample, num); + return; + } + ``` + +3. Add the system call number to the kernel system call header file. + + In the **third\_party/musl/porting/liteos\_a/kernel/include/bits/syscall.h** file, **\_\_NR\_new\_syscall\_sample** specifies the new system call number . + + ``` + ... + /* Current system call list */ + /* OHOS customized syscalls, not compatible with ARM EABI */ + #define __NR_OHOS_BEGIN 500 + #define __NR_pthread_set_detach (__NR_OHOS_BEGIN + 0) + #define __NR_pthread_join (__NR_OHOS_BEGIN + 1) + #define __NR_pthread_deatch (__NR_OHOS_BEGIN + 2) + #define __NR_creat_user_thread (__NR_OHOS_BEGIN + 3) + #define __NR_processcreat (__NR_OHOS_BEGIN + 4) + #define __NR_processtart (__NR_OHOS_BEGIN + 5) + #define __NR_printf (__NR_OHOS_BEGIN + 6) + #define __NR_dumpmemory (__NR_OHOS_BEGIN + 13) + #define __NR_mkfifo (__NR_OHOS_BEGIN + 14) + #define __NR_mqclose (__NR_OHOS_BEGIN + 15) + #define __NR_realpath (__NR_OHOS_BEGIN + 16) + #define __NR_format (__NR_OHOS_BEGIN + 17) + #define __NR_shellexec (__NR_OHOS_BEGIN + 18) + #define __NR_ohoscapget (__NR_OHOS_BEGIN + 19) + #define __NR_ohoscapset (__NR_OHOS_BEGIN + 20) + + #define __NR_new_syscall_sample (__NR_OHOS_BEGIN + 21) /* Add the new system call number: __NR_new_syscall_sample:521 */ + + #define __NR_syscallend (__NR_OHOS_BEGIN + 22) + ... + ``` + + In **kernel/liteos\_a/syscall/syscall\_lookup.h**, add the line **SYSCALL\_HAND\_DEF\(\_\_NR\_new\_syscall\_sample, SysNewSyscallSample, void, ARG\_NUM\_1\)**. + + ``` + ... + /* Current system call list */ + SYSCALL_HAND_DEF(__NR_chown, SysChown, int, ARG_NUM_3) + SYSCALL_HAND_DEF(__NR_chown32, SysChown, int, ARG_NUM_3) + #ifdef LOSCFG_SECURITY_CAPABILITY + SYSCALL_HAND_DEF(__NR_ohoscapget, SysCapGet, UINT32, ARG_NUM_2) + SYSCALL_HAND_DEF(__NR_ohoscapset, SysCapSet, UINT32, ARG_NUM_1) + #endif + /* Add a system call. */ + SYSCALL_HAND_DEF(__NR_new_syscall_sample, SysNewSyscallSample, void, ARG_NUM_1) + ... + ``` + +4. Add a function corresponding to the new system call to the kernel. + + In **kernel/liteos\_a/syscall/los\_syscall.h**, **SysNewSyscallSample** is the declaration of the kernel processing function corresponding to the new system call. + + ``` + ... + /* List of the declaration of the current kernel processing functions for system calls. */ + extern int SysClockSettime64(clockid_t clockID, const struct timespec64 *tp); + extern int SysClockGettime64(clockid_t clockID, struct timespec64 *tp); + extern int SysClockGetres64(clockid_t clockID, struct timespec64 *tp); + extern int SysClockNanoSleep64(clockid_t clk, int flags, const struct timespec64 *req, struct timespec64 *rem); + extern int SysTimerGettime64(timer_t timerID, struct itimerspec64 *value); + extern int SysTimerSettime64(timer_t timerID, int flags, const struct itimerspec64 *value, struct itimerspec64 *oldValue); + /* Declaration of the kernel processing function for the new system call*/ + extern void SysNewSyscallSample(int num); + ... + ``` + + The newly added kernel processing function is implemented as follows: + + ``` + include "los_printf.h" + ... + /* Add the implementation of the kernel processing function for the new system call. */ + void SysNewSyscallSample(int num) + { + PRINTK("kernel mode: num = %d\n", num); + return; + } + ``` + + +**Verification** + +The user-space program calls the **newSyscallSample\(10\)** API. The output is as follows: + +``` +/* The output in both user-space and kernel-space APIs indicates that the new system call is enabled. */ +user mode: num = 10 +kernel mode: num = 10 +``` + diff --git a/en/device-dev/kernel/kernel-small-bundles.md b/en/device-dev/kernel/kernel-small-bundles.md new file mode 100644 index 00000000000..1d1e7ad20ee --- /dev/null +++ b/en/device-dev/kernel/kernel-small-bundles.md @@ -0,0 +1,13 @@ +# Extension Components + +- **[System Call](kernel-small-bundles-system.md)** + +- **[Dynamic Loading and Linking](kernel-small-bundles-linking.md)** + +- **[Virtual Dynamic Shared Object](kernel-small-bundles-share.md)** + +- **[LiteIPC](kernel-small-bundles-ipc.md)** + +- **[File Systems](kernel-small-bundles-fs.md)** + + diff --git a/en/device-dev/kernel/kernel-small-debug-memory-corrupt.md b/en/device-dev/kernel/kernel-small-debug-memory-corrupt.md new file mode 100644 index 00000000000..1196dd3ce22 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-debug-memory-corrupt.md @@ -0,0 +1,84 @@ +# Memory Corruption Check + +- [Basic Concepts](#section17368154517335) +- [Function Configuration](#section4696190123420) +- [Development Guidelines](#section672362973417) + - [How to Develop](#section026014863416) + - [Development Example](#section186311302356) + + +## Basic Concepts + +As an optional function of the kernel, memory corruption check is used to check the integrity of a dynamic memory pool. This mechanism can detect memory corruption errors in the memory pool in a timely manner and provide alerts. It helps reduce problem locating costs and increase troubleshooting efficiency. + +## Function Configuration + +**LOSCFG\_BASE\_MEM\_NODE\_INTEGRITY\_CHECK**: specifies the setting of the memory corruption check. This function is disabled by default. To enable this function, configure it in **Debug-\> Enable integrity check or not**. + +If this macro is enabled, the memory pool integrity will be checked in real time upon each memory allocation. + +If this macro is not enabled, you can call **LOS\_MemIntegrityCheck** to check the memory pool integrity when required. Using **LOS\_MemIntegrityCheck** does not affect the system performance. In addition, the check accuracy decreases because the node header does not contain the magic number \(which is available only when **LOSCFG\_BASE\_MEM\_NODE\_INTEGRITY\_CHECK** is enabled\). + +This check only detects the corrupted memory node and provides information about the previous node \(because memory is contiguous, a node is most likely corrupted by the previous node\). To further determine the location where the previous node is requested, you need to enable the memory leak check and use LRs to locate the fault. + +>![](../public_sys-resources/icon-caution.gif) **CAUTION:** +>If memory corruption check is enabled, a magic number is added to the node header, which increases the size of the node header. The real-time integrity check has a great impact on the performance. In performance-sensitive scenarios, you are advised to disable this function and use **LOS\_MemIntegrityCheck** to check the memory pool integrity. + +## Development Guidelines + +### How to Develop + +Check for memory corruption by calling **LOS\_MemIntegrityCheck**. If no memory corruption occurs, **0** is returned and no log is output. If memory corruption occurs, related log is output. For details, see the output of the following example. + +### Development Example + +This example implements the following: + +1. Requests two physically adjacent memory blocks. +2. Calls **memset** to construct an out-of-bounds access and overwrites the first four bytes of the next node. +3. Calls **LOS\_MemIntegrityCheck** to check whether memory corruption occurs. + +**Sample Code** + +The sample code is as follows: + +``` +#include +#include +#include "los_memory.h" +#include "los_config.h" + +void MemIntegrityTest(void) +{ + /* Request two physically adjacent memory blocks.*/ + void *ptr1 = LOS_MemAlloc(LOSCFG_SYS_HEAP_ADDR, 8); + void *ptr2 = LOS_MemAlloc(LOSCFG_SYS_HEAP_ADDR, 8); + /* Construct an out-of-bounds access to cause memory corruption. The memory block of the first node is 8 bytes. Clearing 12 bytes overwrites the header of the second memory node. */ + memset(ptr1, 0, 8 + 4); + LOS_MemIntegrityCheck(LOSCFG_SYS_HEAP_ADDR); +} +``` + +**Verification** + +The log is as follows: + +``` +[ERR][OsMemMagicCheckPrint], 2028, memory check error! +memory used but magic num wrong, magic num = 0x00000000 /* Error information, indicating that the first four bytes, that is, the magic number, of the next node are corrupted.*/ + + broken node head: 0x20003af0 0x00000000 0x80000020, prev node head: 0x20002ad4 0xabcddcba 0x80000020 +/* Key information about the corrupted node and its previous node, including the address of the previous node, magic number of the node, and sizeAndFlag of the node. In this example, the magic number of the corrupted node is cleared. */ + + broken node head LR info: /* The node LR information can be output only after the memory leak check is enabled.*/ + LR[0]:0x0800414e + LR[1]:0x08000cc2 + LR[2]:0x00000000 + + pre node head LR info: /* Based on the LR information, you can find where the previous node is requested in the assembly file and then perform further analysis.*/ + LR[0]:0x08004144 + LR[1]:0x08000cc2 + LR[2]:0x00000000 +[ERR]Memory interity check error, cur node: 0x20003b10, pre node: 0x20003af0 /* Addresses of the corrupted node and its previous node*/ +``` + diff --git a/en/device-dev/kernel/kernel-small-debug-memory-info.md b/en/device-dev/kernel/kernel-small-debug-memory-info.md new file mode 100644 index 00000000000..f2be31a222f --- /dev/null +++ b/en/device-dev/kernel/kernel-small-debug-memory-info.md @@ -0,0 +1,112 @@ +# Memory Information Statistics + +- [Basic Concepts](#section52691565235) +- [Function Configuration](#section470611682411) +- [Development Guidelines](#section9368374243) + - [How to Develop](#section679912407257) + - [Development Example](#section1025453412611) + + +## Basic Concepts + +Memory information includes the memory pool size, memory usage, remaining memory size, maximum free memory, memory waterline, number of memory nodes, and fragmentation rate. + +- Memory waterline: indicates the maximum memory used in a memory pool. The waterline value is updated upon each memory allocation and release. The memory pool size can be optimized based on this value. + +- Fragmentation rate: indicates the fragmentation degree of the memory pool. If the fragmentation rate is high, there are a large number of free memory blocks in the memory pool but each block is small. You can use the following formula to calculate the fragmentation rate: + + Fragmentation rate = 100 – 100 x Maximum free memory block size/Remaining memory size + + +- Other statistics: When **LOS\_MemInfoGet** is called, the node information in the memory pool is scanned and related statistics are collected. + +## Function Configuration + +**LOSCFG\_MEM\_WATERLINE**: specifies the setting of the memory information statistics function. This function is disabled by default. To enable this function, configure it in **Debug-\> Enable memory pool waterline or not in the configuration item**. If you want to obtain the memory waterline, you must enable this macro. + +## Development Guidelines + +### How to Develop + +Key structure: + +``` +typedef struct { + UINT32 totalUsedSize; // Memory usage of the memory pool + UINT32 totalFreeSize; // Remaining memory in the memory pool + UINT32 maxFreeNodeSize; // Maximum size of the free memory block in the memory pool + UINT32 usedNodeNum; // Number of non-free memory blocks in the memory pool + UINT32 freeNodeNum; // Number of free memory blocks in the memory pool +#if (LOSCFG_MEM_WATERLINE == 1) // This function is disabled by default and can be enabled using the menuconfig tool. + UINT32 usageWaterLine; // Waterline of the memory pool +#endif +} LOS_MEM_POOL_STATUS; +``` + +- To obtain the memory waterline, call **LOS\_MemInfoGet**. The first parameter in the API is the start address of the memory pool, and the second parameter is the handle of the **LOS\_MEM\_POOL\_STATUS** type. The **usageWaterLine** field indicates the waterline. + +- To calculate the memory fragmentation rate, call **LOS\_MemInfoGet** to obtain the remaining memory size and the maximum free memory block size in the memory pool, and then calculate the fragmentation rate of the dynamic memory pool as follows: + + Fragmentation rate = 100 – 100 x Maximum free memory block size/Remaining memory size + + +### Development Example + +This example implements the following: + +1. Creates a monitoring thread to obtain information about the memory pool. +2. Calls **LOS\_MemInfoGet** to obtain the basic information about the memory pool. +3. Calculates the memory usage and fragmentation rate. + +**Sample Code** + +The sample code is as follows: + +``` +#include +#include +#include "los_task.h" +#include "los_memory.h" +#include "los_config.h" + +void MemInfoTaskFunc(void) +{ + LOS_MEM_POOL_STATUS poolStatus = {0}; + + /* pool is the memory address of the information to be collected. OS_SYS_MEM_ADDR is used as an example.*/ + void *pool = OS_SYS_MEM_ADDR; + LOS_MemInfoGet(pool, &poolStatus); + /* Calculate the fragmentation rate of the memory pool. */ + unsigned char fragment = 100 - poolStatus.maxFreeNodeSize * 100 / poolStatus.totalFreeSize; + /* Calculate the memory usage of the memory pool. */ + unsigned char usage = LOS_MemTotalUsedGet(pool) * 100 / LOS_MemPoolSizeGet(pool); + printf("usage = %d, fragment = %d, maxFreeSize = %d, totalFreeSize = %d, waterLine = %d\n", usage, fragment, poolStatus.maxFreeNodeSize, + poolStatus.totalFreeSize, poolStatus.usageWaterLine); +} + +int MemTest(void) +{ + unsigned int ret; + unsigned int taskID; + TSK_INIT_PARAM_S taskStatus = {0}; + taskStatus.pfnTaskEntry = (TSK_ENTRY_FUNC)MemInfoTaskFunc; + taskStatus.uwStackSize = 0x1000; + taskStatus.pcName = "memInfo"; + taskStatus.usTaskPrio = 10; + ret = LOS_TaskCreate(&taskID, &taskStatus); + if (ret != LOS_OK) { + printf("task create failed\n"); + return -1; + } + return 0; +} +``` + +**Verification** + +The result is as follows: + +``` +usage = 22, fragment = 3, maxFreeSize = 49056, totalFreeSize = 50132, waterLine = 1414 +``` + diff --git a/en/device-dev/kernel/kernel-small-debug-memory-leak.md b/en/device-dev/kernel/kernel-small-debug-memory-leak.md new file mode 100644 index 00000000000..9034ad920ac --- /dev/null +++ b/en/device-dev/kernel/kernel-small-debug-memory-leak.md @@ -0,0 +1,126 @@ +# Memory Leak Check + +- [Basic Concepts](#section1026719436293) +- [Function Configuration](#section13991354162914) +- [Development Guidelines](#section95828159308) + - [How to Develop](#section369844416304) + - [Development Example](#section460801313313) + + +## Basic Concepts + +As an optional function of the kernel, memory leak check is used to locate dynamic memory leak problems. After this function is enabled, the dynamic memory automatically records the link registers \(LRs\) used when memory is allocated. If a memory leak occurs, the recorded information helps locate the memory allocated for further analysis. + +## Function Configuration + +1. **LOSCFG\_MEM\_LEAKCHECK**: specifies the setting of the memory leak check. This function is disabled by default. To enable this function, configure it in **Debug-\> Enable Function call stack of Mem operation recorded**. +2. **LOS\_RECORD\_LR\_CNT**: number of LRs recorded. The default value is **3**. Each LR consumes the memory of **sizeof\(void \*\)** bytes. +3. **LOS\_OMIT\_LR\_CNT**: number of ignored LRs. The default value is **2**, which indicates that LRs are recorded from the time when **LOS\_MemAlloc** is called. You can change the value based on actual requirements. This macro is configured because: + - **LOS\_MemAlloc** is also called internally. + - **LOS\_MemAlloc** may be encapsulated externally. + - The number of LRs configured by **LOS\_RECORD\_LR\_CNT** is limited. + + +Correctly setting this macro can ignore invalid LRs and reduce memory consumption. + +## Development Guidelines + +### How to Develop + +Memory leak check provides a method to check for memory leak in key code logic. If this function is enabled, LR information is recorded each time when memory is allocated. When **LOS\_MemUsedNodeShow** is called before and after the code snippet is checked, information about all nodes that have been used in the specified memory pool is printed. You can compare the node information. The newly added node information indicates the node where the memory leak may occur. You can locate the code based on the LR and further check whether a memory leak occurs. + +The node information output by calling **LOS\_MemUsedNodeShow** is in the following format: Each line contains information about a node. The first column indicates the node address, based on which you can obtain complete node information using a tool such as a GNU Debugger \(GDB\). The second column indicates the node size, which is equal to the node header size plus the data field size. Columns 3 to 5 list the LR addresses. You can determine the specific memory location of the node based on the LR addresses and the assembly file. + +``` +node size LR[0] LR[1] LR[2] +0x10017320: 0x528 0x9b004eba 0x9b004f60 0x9b005002 +0x10017848: 0xe0 0x9b02c24e 0x9b02c246 0x9b008ef0 +0x10017928: 0x50 0x9b008ed0 0x9b068902 0x9b0687c4 +0x10017978: 0x24 0x9b008ed0 0x9b068924 0x9b0687c4 +0x1001799c: 0x30 0x9b02c24e 0x9b02c246 0x9b008ef0 +0x100179cc: 0x5c 0x9b02c24e 0x9b02c246 0x9b008ef0 +``` + +>![](../public_sys-resources/icon-caution.gif) **CAUTION:** +>Enabling memory leak check affects memory application performance. LR addresses will be recorded for each memory node, increasing memory overhead. + +### Development Example + +This example implements the following: + +1. Calls **OsMemUsedNodeShow** to print information about all nodes. +2. Simulates a memory leak by requesting memory without releasing it. +3. Calls **OsMemUsedNodeShow** to print information about all nodes. +4. Compare the logs to obtain information about the node where a memory leak occurred. +5. Locate the code based on the LR address. + +**Sample Code** + +The sample code is as follows: + +``` +#include +#include +#include "los_memory.h" +#include "los_config.h" + +void MemLeakTest(void) +{ + OsMemUsedNodeShow(LOSCFG_SYS_HEAP_ADDR); + void *ptr1 = LOS_MemAlloc(LOSCFG_SYS_HEAP_ADDR, 8); + void *ptr2 = LOS_MemAlloc(LOSCFG_SYS_HEAP_ADDR, 8); + OsMemUsedNodeShow(LOSCFG_SYS_HEAP_ADDR); +} +``` + +**Verification** + +The log is as follows: + +``` +node size LR[0] LR[1] LR[2] +0x20001b04: 0x24 0x08001a10 0x080035ce 0x080028fc +0x20002058: 0x40 0x08002fe8 0x08003626 0x080028fc +0x200022ac: 0x40 0x08000e0c 0x08000e56 0x0800359e +0x20002594: 0x120 0x08000e0c 0x08000e56 0x08000c8a +0x20002aac: 0x56 0x08000e0c 0x08000e56 0x08004220 + +node size LR[0] LR[1] LR[2] +0x20001b04: 0x24 0x08001a10 0x080035ce 0x080028fc +0x20002058: 0x40 0x08002fe8 0x08003626 0x080028fc +0x200022ac: 0x40 0x08000e0c 0x08000e56 0x0800359e +0x20002594: 0x120 0x08000e0c 0x08000e56 0x08000c8a +0x20002aac: 0x56 0x08000e0c 0x08000e56 0x08004220 +0x20003ac4: 0x1d 0x08001458 0x080014e0 0x080041e6 +0x20003ae0: 0x1d 0x080041ee 0x08000cc2 0x00000000 +``` + +The difference between the two logs is as follows. The following memory nodes are suspected to have blocks with a memory leak. + +``` +0x20003ac4: 0x1d 0x08001458 0x080014e0 0x080041e6 +0x20003ae0: 0x1d 0x080041ee 0x08000cc2 0x00000000 +``` + +The following is part of the assembly file: + +``` + MemLeakTest: + 0x80041d4: 0xb510 PUSH {R4, LR} + 0x80041d6: 0x4ca8 LDR.N R4, [PC, #0x2a0] ; g_memStart + 0x80041d8: 0x0020 MOVS R0, R4 + 0x80041da: 0xf7fd 0xf93e BL LOS_MemUsedNodeShow ; 0x800145a + 0x80041de: 0x2108 MOVS R1, #8 + 0x80041e0: 0x0020 MOVS R0, R4 + 0x80041e2: 0xf7fd 0xfbd9 BL LOS_MemAlloc ; 0x8001998 + 0x80041e6: 0x2108 MOVS R1, #8 + 0x80041e8: 0x0020 MOVS R0, R4 + 0x80041ea: 0xf7fd 0xfbd5 BL LOS_MemAlloc ; 0x8001998 + 0x80041ee: 0x0020 MOVS R0, R4 + 0x80041f0: 0xf7fd 0xf933 BL LOS_MemUsedNodeShow ; 0x800145a + 0x80041f4: 0xbd10 POP {R4, PC} + 0x80041f6: 0x0000 MOVS R0, R0 +``` + +The memory node addressed by **0x080041ee** is not released after being requested in **MemLeakTest**. + diff --git a/en/device-dev/kernel/kernel-small-debug-memory.md b/en/device-dev/kernel/kernel-small-debug-memory.md new file mode 100644 index 00000000000..ad6093e6fa3 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-debug-memory.md @@ -0,0 +1,9 @@ +# Memory Debugging + +- **[Memory Information Statistics](kernel-small-debug-memory-info.md)** + +- **[Memory Leak Check](kernel-small-debug-memory-leak.md)** + +- **[Memory Corruption Check](kernel-small-debug-memory-corrupt.md)** + + diff --git a/en/device-dev/kernel/kernel-small-debug-other.md b/en/device-dev/kernel/kernel-small-debug-other.md new file mode 100644 index 00000000000..b4a19694532 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-debug-other.md @@ -0,0 +1,7 @@ +# Other Kernel Debugging Methods + +- **[Dying Gasp](kernel-small-debug-trace-other-lastwords.md)** + +- **[Common Fault Locating Methods](kernel-small-debug-trace-other-faqs.md)** + + diff --git a/en/device-dev/kernel/kernel-small-debug-process-cpu.md b/en/device-dev/kernel/kernel-small-debug-process-cpu.md new file mode 100644 index 00000000000..2a5249e7fb1 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-debug-process-cpu.md @@ -0,0 +1,195 @@ +# CPUP + +- [Basic Concepts](#section17683419227) +- [Working Principles](#section593718536227) +- [Development Guidelines](#section11284210152311) + - [Available APIs](#section3745151592312) + - [How to Develop](#section122901429182316) + - [Development Example](#section1765785212310) + + +## Basic Concepts + +The central processing unit percent \(CPUP\) includes the system CPUP, process CPUP, task CPUP, and interrupt CPUP. With the system CPUP, you can determine whether the current system load exceeds the designed specifications. With the CPUP of each task/process/interrupt, you can determine whether the CPU usage of each task/process/interrupt meets expectations of the design. + +- System CPUP + + The system CPUP is the CPU usage of the system within a period of time. It reflects the CPU load and the system running status \(idle or busy\) in a period of time. The valid range of the system CPUP is 0 to 100 in percentage. The precision can be adjusted through configuration. The value **100** indicates that the system runs with full load. + +- Process CPUP + + Process CPUP refers to the CPU usage of a single process. It reflects the process status, busy or idle, in a period of time. The valid range of the process CPUP is 0 to 100 in percentage. The precision can be adjusted through configuration. The value **100** indicates that the process is being executed for a period of time. + +- Task CPUP + + Task CPUP refers to the CPU usage of a single task. It reflects the task status, busy or idle, in a period of time. The valid range of task CPUP is 0 to 100 in percentage. The precision can be adjusted through configuration. The value **100** indicates that the task is being executed for a period of time. + +- Interrupt CPUP + + Task CPUP refers to the CPU usage of a single interrupt. It reflects the interrupt status, busy or idle, in a period of time. The valid range of the interrupt CPUP is 0 to 100 in percentage. The precision can be adjusted through configuration. The value **100** indicates that the interrupt is being executed for a period of time. + + +## Working Principles + +The OpenHarmony LiteOS-A kernel CPUP module records the CPU usage by process, task, and interrupt. When a process or task is switched, the start time of the process or task is recorded. When the process or task is switched out or exits, the system accumulates the CPU time of the entire process or task. When an interrupt is executed, the system accumulates and records the execution time of each interrupt. + +The OpenHarmony provides the following types of CPUP information: + +- System CPUP +- Process CPUP +- Task CPUP +- Interrupt CPUP + +You can calculate the CPUP as follows: + +System CPUP = Total running time of all tasks except idle tasks/Total running time of the system + +Process CPUP = Total running time of the process/Total running time of the system + +Task CPUP = Total running time of the task/Total running time of the system + +Interrupt CPUP = Total running time of the interrupt/Total running time of the system + +## Development Guidelines + +### Available APIs + +**Table 1** CPUP module APIs + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

System CPUP

+

LOS_HistorySysCpuUsage

+

Obtains the historical CPUP of the system.

+

Process CPUP

+

LOS_HistoryProcessCpuUsage

+

Obtains the historical CPUP of a specified process.

+

LOS_GetAllProcessCpuUsage

+

Obtains the historical CPUP of all processes in the system.

+

Task CPUP

+

LOS_HistoryTaskCpuUsage

+

Obtains the historical CPUP of a specified task.

+

Interrupt CPUP

+

LOS_GetAllIrqCpuUsage

+

Obtains the historical CPUP of all interrupts in the system.

+
+ +### How to Develop + +The typical CPUP development process is as follows. + +1. Call **LOS\_HistorySysCpuUsage** to obtain the historical CPUP of the system. +2. Call **LOS\_HistoryProcessCpuUsage** to obtain the historical CPUP of a specified process. + - If the process has been created, disable interrupt, obtain the CPUP in different modes, and then enable interrupt. + - If the process is not created, return an error code. + +3. Call **LOS\_GetAllProcessCpuUsage** to obtain the CPUP of all processes. + - If the CPUP is initialized, disable interrupt, obtain the CPUP in different modes, and then enable interrupt. + - If CPUP is not initialized or has invalid input parameters, return an error code. + +4. Call **LOS\_HistoryTaskCpuUsage** to obtain the historical CPUP of a specified task. + - If the task has been created, disable interrupt, obtain the CPUP in different modes, and then enable interrupt. + - If the task is not created, return an error code. + +5. Call **LOS\_GetAllIrqCpuUsage** to obtain the CPUP of all interrupts. + - If the CPUP is initialized, disable interrupt, obtain the CPUP in different modes, and then enable interrupt. + - If CPUP is not initialized or has invalid input parameters, return an error code. + + +### Development Example + +This example implements the following: + +1. Create a task for the CPUP test. +2. Obtain the CPUP of the current system. +3. Obtain the historical system CPUP in different modes. +4. Obtain the CPUP of the created test task. +5. Obtains the CPUP of the created test task in different modes. + +Prerequisites + +Enable the cpup control switch in the **menuconfig** configuration. + +**Sample Code** + +The sample code is as follows: + +``` +#include "los_task.h" +#include "los_cpup.h" +#define MODE 4 +UINT32 g_cpuTestTaskID; +VOID ExampleCpup(VOID) +{ + printf("entry cpup test example\n"); + while(1) { + usleep(100); + } +} +UINT32 ItCpupTest(VOID) +{ + UINT32 ret; + UINT32 cpupUse; + TSK_INIT_PARAM_S cpupTestTask = { 0 }; + memset(&cpupTestTask, 0, sizeof(TSK_INIT_PARAM_S)); + cpupTestTask.pfnTaskEntry = (TSK_ENTRY_FUNC)ExampleCpup; + cpupTestTask.pcName = "TestCpupTsk"; + cpupTestTask.uwStackSize = 0x800; + cpupTestTask.usTaskPrio = 5; + ret = LOS_TaskCreate(&g_cpuTestTaskID, &cpupTestTask); + if(ret != LOS_OK) { + printf("cpupTestTask create failed .\n"); + return LOS_NOK; + } + + usleep(100); + + /* Obtain the historical CPUP of the system. */ + cpupUse = LOS_HistorySysCpuUsage(CPU_LESS_THAN_1S); + printf("the history system cpu usage in all time: %u.%u\n", + cpupUse / LOS_CPUP_PRECISION_MULT, cpupUse % LOS_CPUP_PRECISION_MULT); + /* Obtain the CPUP of the specified task (cpupTestTask in this example).*/ + cpupUse = LOS_HistoryTaskCpuUsage(g_cpuTestTaskID, CPU_LESS_THAN_1S); + printf("cpu usage of the cpupTestTask in all time:\n TaskID: %d\n usage: %u.%u\n", + g_cpuTestTaskID, cpupUse / LOS_CPUP_PRECISION_MULT, cpupUse % LOS_CPUP_PRECISION_MULT); + return LOS_OK; +} +``` + +**Verification** + +The development is successful if the return result is as follows: + +``` +entry cpup test example +the history system cpu usage in all time: 3.0 +cpu usage of the cpupTestTask in all time: TaskID:10 usage: 0.0 +``` + diff --git a/en/device-dev/kernel/kernel-small-debug-process.md b/en/device-dev/kernel/kernel-small-debug-process.md new file mode 100644 index 00000000000..a57488bf665 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-debug-process.md @@ -0,0 +1,5 @@ +# Process Commissioning + +- **[CPUP](kernel-small-debug-process-cpu.md)** + + diff --git a/en/device-dev/kernel/kernel-lite-small-shell-sample.md b/en/device-dev/kernel/kernel-small-debug-shell-build.md similarity index 74% rename from en/device-dev/kernel/kernel-lite-small-shell-sample.md rename to en/device-dev/kernel/kernel-small-debug-shell-build.md index 07ee08e7c72..b8aabd6dbba 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-sample.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-build.md @@ -1,20 +1,20 @@ -# Shell Command Programming Example +# Shell Command Programming Example - [Example Description](#section87143612316) - [Static Registration](#section1660495712314) -- [Static Registration Programming Example](#section0410326242) +- [Static Registration Programming Example](#section1233411684113) - [Dynamic Registration](#section6804126192412) -- [Dynamic Registration Programming Example](#section17474410102419) +- [Dynamic Registration Programming Example](#section2335121613418) ## Example Description -This section provides examples of how to add a shell command **test** using static registration and dynamic registration, respectively. +This section describes how to add a shell command **test** using static registration and dynamic registration, respectively. ## Static Registration Development process: -1. Define the **cmd\_test** execution function to be called to add a command. +1. Define the **cmd\_test** function to be called to add a command. 2. Use the **SHELLCMD\_ENTRY** function to add the new command. @@ -23,9 +23,9 @@ Development process: 4. Recompile the code and run it. -## Static Registration Programming Example +## Static Registration Programming Example -1. Define the **cmd\_test** execution function to be called to add a command. +1. Define the **cmd\_test** function to be called to add a command. ``` #include "shell.h" @@ -53,7 +53,9 @@ Development process: make clean;make ``` -5. Run the **help** command to view all the commands registered in the system. The command output shows that the **test** command has been registered. \(The following command output is for reference only.\) +5. Run the **help** command to view all the commands registered in the system. + + The command output contains the **test** command \(the following command output is for reference only.\) ``` OHOS # help @@ -64,7 +66,7 @@ Development process: ifconfig ipdebug kill log ls lsfd memcheck mkdir mount netstat oom partinfo partition ping ping6 pwd reset rm rmdir sem statfs su swtmr sync - systeminfo task telnet test tftp touch umount uname + tftp touch umount uname test systeminfo task telnet watch writeproc ``` @@ -78,7 +80,7 @@ Development process: 2. Recompile the code and run it. -## Dynamic Registration Programming Example +## Dynamic Registration Programming Example 1. Call the **osCmdReg** function from the **app\_init** function to dynamically register the command. @@ -105,7 +107,9 @@ Development process: make clean;make ``` -3. Run the **help** command to view all the commands registered in the system. The command output shows that the **test** command has been registered. +3. Run the **help** command to view all the commands registered in the system. + + The command output contains the **test** command. ``` OHOS # help @@ -116,7 +120,7 @@ Development process: ifconfig ipdebug kill log ls lsfd memcheck mkdir mount netstat oom partinfo partition ping ping6 pwd reset rm rmdir sem statfs su swtmr sync - systeminfo task telnet test tftp touch umount uname + tftp touch umount uname test systeminfo task telnet watch writeproc ``` diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-cpup.md b/en/device-dev/kernel/kernel-small-debug-shell-cmd-cpup.md similarity index 59% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-cpup.md rename to en/device-dev/kernel/kernel-small-debug-shell-cmd-cpup.md index fc8d3579880..5dc651761a7 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-cpup.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-cmd-cpup.md @@ -1,46 +1,45 @@ -# cpup +# cpup - [Command Function](#section1842161614217) - [Syntax](#section5629527427) -- [Parameter Description](#section133651361023) +- [Parameters](#section133651361023) - [Usage](#section156611948521) - [Example](#section68501605319) - [Output](#section19871522144219) ## Command Function -This command is used to query the CPU usage of the system. +This command is used to query the CPU usage \(CPU percent\) of the system. ## Syntax cpup \[_mode_\] \[_taskID_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description -

Parameter

+ - - - - - - @@ -54,7 +53,7 @@ cpup \[_mode_\] \[_taskID_\] ## Example -Enter **cpup 1 5**. +Run **cpup 1 5**. ## Output diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-date.md b/en/device-dev/kernel/kernel-small-debug-shell-cmd-date.md similarity index 84% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-date.md rename to en/device-dev/kernel/kernel-small-debug-shell-cmd-date.md index ebd63e75d05..81699efec83 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-date.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-cmd-date.md @@ -1,8 +1,8 @@ -# date +# date - [Command Function](#section56472016338) - [Syntax](#section16635112512316) -- [Parameter Description](#section15896030039) +- [Parameters](#section15896030039) - [Usage](#section116361036636) - [Example](#section021711411237) - [Output](#section17950184414312) @@ -25,22 +25,22 @@ date_ _-s_ _\[_hh:mm:ss_\]__ date -r \[_Filename_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description -

Parameter

Description

+

Description

Value Range

+

Value Range

mode

Indicates the period in which the CPU usage is to be queried. By default, the CPU usage within the last 10 seconds is displayed.

-
  • 0: displays the CPU usage of the system within the last 10 seconds.
  • 1: displays the CPU usage of the system within the last 1 second.
  • Other value: displays the total CPU usage since the system is started.
+
  • Default: displays the CPU usage of the system within the last 10 seconds.
  • 0: displays the CPU usage within the last 10 seconds.
  • 1: displays the CPU usage of the system within the last 1 second.
  • Other value: displays the total CPU usage since the system is started.

[0, 0xFFFFFFFF]

+

[0,0xFFFFFFFF]

taskID

Indicates the task ID.

+

Task ID

[0, 0xFFFFFFFF]

+

[0,0xFFFFFFFF]

Parameter

+ - - - @@ -49,7 +49,7 @@ date -r \[_Filename_\] - - @@ -83,7 +83,9 @@ date -r \[_Filename_\] ## Example -Enter **date +%Y--%m--%d**. +Example: + +Run **date +%Y--%m--%d**. ## Output diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-demsg.md b/en/device-dev/kernel/kernel-small-debug-shell-cmd-dmesg.md similarity index 88% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-demsg.md rename to en/device-dev/kernel/kernel-small-debug-shell-cmd-dmesg.md index d1227877956..73a0f21a668 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-demsg.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-cmd-dmesg.md @@ -1,8 +1,8 @@ -# dmesg +# dmesg - [Command Function](#section4643204919313) - [Syntax](#section6553153635) -- [Parameter Description](#section208971157532) +- [Parameters](#section208971157532) - [Usage](#section213115219413) - [Example](#section13736564418) - [Output](#section194005101413) @@ -23,16 +23,16 @@ dmesg -l \[_level_\] dmesg \> \[_fileA_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description -

Parameter

Description

+

Description

Value Range

+

Value Range

--help

Uses the help.

+

Displays the help information.

N/A

Prints the date and time based on Format.

Placeholders listed in --help.

+

Placeholders listed in --help.

-s YY/MM/DD

@@ -68,7 +68,7 @@ date -r \[_Filename_\]

-r Filename

Queries the modification time of the Filename file.

+

Queries the modification time of the Filename file.

N/A

Parameter

+ - - @@ -90,7 +90,7 @@ dmesg \> \[_fileA_\] ## Usage -- This command depends on **LOSCFG\_SHELL\_DMESG**. Before running this command, enable the **Enable Shell dmesg** configuration item using **menuconfig**. +- This command depends on **LOSCFG\_SHELL\_DMESG**. Before using this command, select **Enable Shell dmesg** on **menuconfig**. Debug ---\> Enable a Debug Version ---\> Enable Shell ---\> Enable Shell dmesg @@ -102,7 +102,9 @@ dmesg \> \[_fileA_\] ## Example -Enter **dmesg \> /usr/dmesg.log**. +Example: + +Run **dmesg \> /usr/dmesg.log**. ## Output diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-exec.md b/en/device-dev/kernel/kernel-small-debug-shell-cmd-exec.md similarity index 72% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-exec.md rename to en/device-dev/kernel/kernel-small-debug-shell-cmd-exec.md index e68a27f893b..c9a7a4b03df 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-exec.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-cmd-exec.md @@ -1,8 +1,8 @@ -# exec +# exec - [Command Function](#section4643204919313) - [Syntax](#section6553153635) -- [Parameter Description](#section208971157532) +- [Parameters](#section208971157532) - [Usage](#section213115219413) - [Example](#section13736564418) - [Output](#section194005101413) @@ -15,16 +15,16 @@ This command is a built-in shell command used to execute user-space programs. exec <_executable-file_\> -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description -

Parameter

Description

+

Description

Value Range

+

Value Range

Parameter

+ - - @@ -44,7 +44,9 @@ Currently, this command supports only valid binary programs. The programs are su ## Example -Enter **exec helloworld**. +Example: + +Run **exec helloworld**. ## Output @@ -54,5 +56,5 @@ OHOS # hello world! ``` >![](../public_sys-resources/icon-note.gif) **NOTE:** ->After the executable file is executed, prompt **OHOS \#** is printed first. The shell **exec** command is executed in the background, causing the prompt to be printed in advance. +>After the executable file is executed, the prompt **OHOS \#** is printed first. The shell **exec** command is executed in the background, causing the prompt to be printed in advance. diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-free.md b/en/device-dev/kernel/kernel-small-debug-shell-cmd-free.md similarity index 80% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-free.md rename to en/device-dev/kernel/kernel-small-debug-shell-cmd-free.md index 09e281e9f49..72ccebde071 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-free.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-cmd-free.md @@ -1,8 +1,8 @@ -# free +# free - [Command Function](#section175151514841) - [Syntax](#section8488721749) -- [Parameter Description](#section27272181949) +- [Parameters](#section27272181949) - [Usage](#section148661259410) - [Example](#section68081530242) - [Output](#section171235517543) @@ -15,36 +15,36 @@ This command is used to display the system memory usage and the sizes of the ** free \[_-k | -m_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description -

Parameter

Description

+

Description

Value Range

+

Value Range

Parameter

+ - - - - - @@ -58,17 +58,17 @@ None ## Example -Enter **free**, **free -k**, and **free -m**, respectively. +Run **free**, **free -k**, and **free -m**, respectively. ## Output **Figure 1** Displaying the memory usage in three units ![](figure/displaying-the-memory-usage-in-three-units.png "displaying-the-memory-usage-in-three-units") -**Table 2** Output description +**Table 2** Output -

Parameter

Description

+

Description

Value Range

+

Value Range

No parameter

Displays the size in the unit of byte.

+

Displays the size in bytes.

N/A

-k

Displays the size in the unit of KB.

+

Displays the size in KiB.

N/A

-m

Displays the size in the unit of MB.

+

Displays the size in MiB.

N/A

Parameter

+ @@ -76,42 +76,42 @@ Enter **free**, **free -k**, and **free -m**, respectively. - - - - - - - - diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-help.md b/en/device-dev/kernel/kernel-small-debug-shell-cmd-help.md similarity index 84% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-help.md rename to en/device-dev/kernel/kernel-small-debug-shell-cmd-help.md index 3687be7868e..3dfed6fdfdb 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-help.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-cmd-help.md @@ -1,21 +1,21 @@ -# help +# help - [Command Function](#section991211345413) - [Syntax](#section19103204016410) -- [Parameter Description](#section1533416233432) +- [Parameters](#section1533416233432) - [Usage](#section4156445417) - [Example](#section12776124712417) - [Output](#section092662412544) ## Command Function -This command is used to display all commands in the current OS. +This command is used to display all commands in the OS. ## Syntax help -## Parameter Description +## Parameters None @@ -25,7 +25,7 @@ You can run **help** to display all commands in the current OS. ## Example -Enter **help**. +Run **help**. ## Output diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-hwi.md b/en/device-dev/kernel/kernel-small-debug-shell-cmd-hwi.md similarity index 72% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-hwi.md rename to en/device-dev/kernel/kernel-small-debug-shell-cmd-hwi.md index 90027ac456a..5617700d4a9 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-hwi.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-cmd-hwi.md @@ -1,27 +1,27 @@ -# hwi +# hwi - [Command Function](#section445335110416) - [Syntax](#section1795712553416) -- [Parameter Description](#section92544592410) +- [Parameters](#section92544592410) - [Usage](#section104151141252) - [Example](#section11545171957) - [Output](#section075617368542) ## Command Function -This command is used to query information about the current interrupts. +This command is used to query information about the interrupts. ## Syntax hwi -## Parameter Description +## Parameters None ## Usage -- Enter **hwi** to display the current interrupt ID, count of interrupts, and registered interrupt name. +- Run **hwi** to display the current interrupt ID, count of interrupts, and registered interrupt name. - If **LOSCFG\_CPUP\_INCLUDE\_IRQ** is enabled, the processing time \(cycles\), CPU usage, and interrupt type of each interrupt are displayed. ## Example @@ -30,18 +30,18 @@ Enter **hwi**. ## Output -1. Interrupt information \(with **LOSCFG\_CPUP\_INCLUDE\_IRQ** disabled\) +1. Interrupt information \(**LOSCFG\_CPUP\_INCLUDE\_IRQ** disabled\) - ![](figure/en-us_image_0000001053826366.png) + ![](figure/en-us_image_0000001179967527.png) -2. Interrupt information \(with **LOSCFG\_CPUP\_INCLUDE\_IRQ** enabled\) +2. Interrupt information \(**LOSCFG\_CPUP\_INCLUDE\_IRQ** enabled\) - ![](figure/en-us_image_0000001052810304.png) + ![](figure/en-us_image_0000001133848164.png) - **Table 1** Output description + **Table 1** Output -

Output

Description

total

Indicates the total size of the dynamic memory pool.

+

Total size of the dynamic memory pool

used

Indicates the size of the used memory.

+

Size of the used memory

free

Indicates the size of the unallocated memory.

+

Size of the unallocated memory

heap

Indicates the size of the allocated heap.

+

Size of the allocated heap

text

Indicates the size of a code segment.

+

Size of a code segment

data

Indicates the size of a data segment.

+

Size of a data segment

rodata

Indicates the size of a read-only data segment.

+

Size of a read-only data segment

bss

Indicates the size of the memory occupied by uninitialized global variables.

+

Size of the memory occupied by uninitialized global variables

Parameter

+ @@ -49,43 +49,43 @@ Enter **hwi**. - - - - - - - - diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-kill.md b/en/device-dev/kernel/kernel-small-debug-shell-cmd-kill.md similarity index 77% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-kill.md rename to en/device-dev/kernel/kernel-small-debug-shell-cmd-kill.md index 3b69b6c8da7..e1f20cf890b 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-kill.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-cmd-kill.md @@ -1,8 +1,8 @@ -# kill +# kill - [Command Function](#section366714216619) - [Syntax](#section8833164614615) -- [Parameter Description](#section12809111019453) +- [Parameters](#section12809111019453) - [Usage](#section15935131220717) - [Example](#section79281818476) - [Output](#section12742311179) @@ -15,31 +15,31 @@ This command is used to send a specific signal to a specified process. kill \[_signo_ | _-signo_\] \[_pid_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description -

Output

Description

InterruptNo

Indicates the interrupt ID.

+

Interrupt ID

Count

Indicates the count of interrupts.

+

Count of interrupts

Name

Indicates the registered interrupt name.

+

Registered interrupt name

CYCLECOST

Indicates the interrupt processing time (cycles).

+

Interrupt processing time (in cycles)

CPUUSE

Indicates the CPU usage.

+

CPU usage

CPUUSE10s

Indicates CPU usage within the last 10 seconds.

+

CPU usage within the last 10 seconds

CPUUSE1s

Indicates CPU usage within the last 1 second.

+

CPU usage within the last 1 second

mode

Indicates the interrupt mode.

-
  • normal: non-shared interrupt.
  • shared: shared interrupt.
+

Interrupt mode, which can be any of the following:

+
  • normal: non-shared interrupt.
  • shared: shared interrupt.

Parameter

+ - - - - - - @@ -56,7 +56,7 @@ The **pid** value range varies depending on the system configuration. For exam ## Example -1. Query the current process list and determine the PID \(7\) of the process to be killed. +1. Query the process list and determine the PID \(7\) of the process to be killed. **Figure 1** Querying PIDs ![](figure/querying-pids.png "querying-pids") @@ -78,5 +78,5 @@ The signal is successfully sent if no error is reported. **Figure 4** Signal sending failure ![](figure/signal-sending-failure.png "signal-sending-failure") -The preceding figure shows a signal sending failure caused by invalid parameters. In this case, check that the signal ID and PID are valid. +The signal fails to send due to invalid parameters. Check the signal ID and PID for fault. diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-log.md b/en/device-dev/kernel/kernel-small-debug-shell-cmd-log.md similarity index 80% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-log.md rename to en/device-dev/kernel/kernel-small-debug-shell-cmd-log.md index ae7b0cde098..509983f1971 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-log.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-cmd-log.md @@ -1,8 +1,8 @@ -# log +# log - [Command Function](#section128219131856) - [Syntax](#section3894181710519) -- [Parameter Description](#section7693122310515) +- [Parameters](#section7693122310515) - [Usage](#section1982111281512) - [Example](#section176301333259) - [Output](#section14354765415) @@ -15,9 +15,9 @@ This command is used to modify and query log configurations. log level \[_levelNum_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description

Parameter

Description

+

Description

Value Range

+

Value Range

signo

Indicates the signal ID.

+

Specifies the signal ID.

[1, 30]

+

[1,30]

pid

Indicates the process ID.

+

Specifies the process ID.

[1, MAX_INT]

+

[1,MAX_INT]

- @@ -40,7 +40,7 @@ log level \[_levelNum_\] ## Usage -- This command depends on **LOSCFG\_SHELL\_LK**. Before running this command, enable the **Enable Shell lk** configuration item using **menuconfig**. +- This command depends on **LOSCFG\_SHELL\_LK**. Before using this command, select **Enable Shell lk** on **menuconfig**. Debug ---\> Enable a Debug Version ---\> Enable Shell ---\> Enable Shell lK @@ -58,15 +58,17 @@ log level \[_levelNum_\] TRACE\_DEBUG = 5 - If the level is not within the valid range, a message is printed. + If the level is not within the valid range, a message will be displayed. - If the **\[levelNum\]** parameter is not specified, the current log level and its usage are printed by default. ## Example -Enter **log level 4**. +Example: + +Run **log level 4**. ## Output -![](figure/en-us_image_0000001052530298.png) +![](figure/en-us_image_0000001179847649.png) diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-mem.md b/en/device-dev/kernel/kernel-small-debug-shell-cmd-memcheck.md similarity index 82% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-mem.md rename to en/device-dev/kernel/kernel-small-debug-shell-cmd-memcheck.md index 965a6eb1704..c635c4b16fa 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-mem.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-cmd-memcheck.md @@ -1,8 +1,8 @@ -# memcheck +# memcheck - [Command Function](#section191633812516) - [Syntax](#section428816435510) -- [Parameter Description](#section1939943304411) +- [Parameters](#section1939943304411) - [Usage](#section228914491951) - [Example](#section17373205314515) - [Output](#section13406205385413) @@ -15,18 +15,18 @@ This command is used to check whether the dynamically requested memory block is memcheck -## Parameter Description +## Parameters None ## Usage - If all nodes in the memory pool are complete, "system memcheck over, all passed!" is displayed. -- If a node in the memory pool is incomplete, information about the memory block of the damaged node is displayed. +- If a node in the memory pool is incomplete, information about the memory block of the corrupted node is displayed. ## Example -Enter **memcheck**. +Run **memcheck**. ## Output diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-oom.md b/en/device-dev/kernel/kernel-small-debug-shell-cmd-oom.md similarity index 70% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-oom.md rename to en/device-dev/kernel/kernel-small-debug-shell-cmd-oom.md index 7748844b3fc..026dbd948c5 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-oom.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-cmd-oom.md @@ -1,10 +1,9 @@ -# oom +# oom - [Command Function](#section366714216619) - [Syntax](#section8833164614615) -- [Parameter Description](#section12809111019453) +- [Parameters](#section12809111019453) - [Usage](#section15935131220717) -- [Example](#section79281818476) - [Output](#section12742311179) ## Command Function @@ -23,31 +22,31 @@ oom -r \[_mem byte_\] oom -h | --help -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description -

Parameter

@@ -30,7 +30,7 @@ log level \[_levelNum_\]

levelNum

Indicates the print level of configuration logs.

+

Specifies the print level of logs.

[0x0, 0x5]

Parameter

+ - - - - - - - @@ -69,20 +68,20 @@ oom -h | --help ## Usage -- If no parameter is specified, the current configurations of the OOM function are displayed. +- If no parameter is specified, the current OOM configurations are displayed. -## Example + >![](../public_sys-resources/icon-note.gif) **NOTE:** + >When the system memory is insufficient, the system displays a message indicating the insufficiency. -When the system memory is insufficient, the system displays a message indicating the insufficiency. ## Output -![](figure/en-us_image_0000001053710680.png) +![](figure/en-us_image_0000001134008030.png) -**Table 2** Output description +**Table 2** Output -

Parameter

Description

+

Description

Value Range

+

Value Range

-i [interval]

Sets the interval for checking the Out Of Memory (OOM) thread task.

+

Sets the interval (in ms) for checking the Out Of Memory (OOM) thread task.

100 ms – 10000 ms

+

100 to 10000

-m [mem byte]

Sets the low memory threshold.

+

Sets the low memory threshold (in MB).

0 MB (does not check for low memory) – 1 MB

+

0 (disables the low memory check) to 1

-r [mem byte]

@@ -59,7 +58,7 @@ oom -h | --help

-h | --help

Uses the help.

+

Displays help information.

N/A

Parameter

+ @@ -92,27 +91,27 @@ When the system memory is insufficient, the system displays a message indicating

total physical memory: 0x1bcf000(byte), used: 0x1b50000(byte), free: 0x7f000(byte), low memory threshold: 0x80000(byte)

- - - - diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-pmm.md b/en/device-dev/kernel/kernel-small-debug-shell-cmd-pmm.md similarity index 73% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-pmm.md rename to en/device-dev/kernel/kernel-small-debug-shell-cmd-pmm.md index 34e2594d5d6..73afe960539 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-pmm.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-cmd-pmm.md @@ -1,8 +1,8 @@ -# pmm +# pmm - [Command Function](#section445335110416) - [Syntax](#section1795712553416) -- [Parameter Description](#section92544592410) +- [Parameters](#section92544592410) - [Usage](#section104151141252) - [Example](#section11545171957) - [Output](#section075617368542) @@ -15,7 +15,7 @@ This command is used to check the usage of the physical pages and page cache of pmm -## Parameter Description +## Parameters None @@ -25,17 +25,17 @@ This command is available only in the **Debug** version. ## Example -Enter **pmm**. +Run **pmm**. ## Output **Figure 1** Viewing the usage of physical pages ![](figure/viewing-the-usage-of-physical-pages.png "viewing-the-usage-of-physical-pages") -**Table 1** Output description +**Table 1** Output -

Output

Description

The memory usage of the OS is low.

-

The available physical memory in the entire OS is 0x1bcf000 bytes, 0x1b50000 bytes have been used, and 0x7f000 bytes are available. The current low memory threshold is 0x80000 bytes.

+

The available physical memory in the entire OS is 0x1bcf000 bytes, 0x1b50000 bytes have been used, and 0x7f000 bytes are available. The current low memory threshold is 0x80000 bytes.

[oom] candidate victim process init pid: 1, actual phy mem byte: 82602

The memory usage of each process is printed. The init process actually uses 82602 bytes, and the shared memory is calculated based on the proportion.

+

The memory usage of each process is printed. The init process uses 82602 bytes, and the shared memory is calculated based on the proportion.

[oom] candidate victim process UserProcess12 pid: 12, actual phy mem byte: 25951558

The actual memory used by the UserProcess12 process is 25951558 bytes.

+

The actual memory used by the UserProcess12 process is 25951558 bytes.

[oom] max phy mem used process UserProcess12 pid: 12, actual phy mem: 25951558

The process that uses the most memory currently is UserProcess12.

+

The process that uses the most memory currently is UserProcess12.

excFrom: User!

When the system memory is low, the UserProcess12 process fails to apply for memory and exits as a result.

+

The system memory is low, and the UserProcess12 process fails to apply for memory and exits.

Parameter

+ @@ -43,47 +43,49 @@ Enter **pmm**. - - - - - - - - - diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-reset.md b/en/device-dev/kernel/kernel-small-debug-shell-cmd-reset.md similarity index 75% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-reset.md rename to en/device-dev/kernel/kernel-small-debug-shell-cmd-reset.md index 95d3ef994dd..dc99159f9c8 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-reset.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-cmd-reset.md @@ -1,8 +1,8 @@ -# reset +# reset - [Command Function](#section366714216619) - [Syntax](#section8833164614615) -- [Parameter Description](#section12809111019453) +- [Parameters](#section12809111019453) - [Usage](#section15935131220717) - [Example](#section79281818476) - [Output](#section12742311179) @@ -15,7 +15,7 @@ This command is used to restart a device. reset -## Parameter Description +## Parameters None @@ -25,7 +25,7 @@ After the **reset** command is executed, the device restarts immediately. ## Example -Enter **reset**. +reset ## Output diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-sem.md b/en/device-dev/kernel/kernel-small-debug-shell-cmd-sem.md similarity index 67% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-sem.md rename to en/device-dev/kernel/kernel-small-debug-shell-cmd-sem.md index 1941131dd0f..1c45bf5e7d5 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-sem.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-cmd-sem.md @@ -1,8 +1,8 @@ -# sem +# sem - [Command Function](#section366714216619) - [Syntax](#section8833164614615) -- [Parameter Description](#section12809111019453) +- [Parameters](#section12809111019453) - [Usage](#section15935131220717) - [Example](#section79281818476) - [Output](#section1975118519456) @@ -15,29 +15,29 @@ This command is used to query information about kernel semaphores. sem \[_ID__ / fulldata_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description -

Output

Description

phys_seg

Indicates the address of the physical page control block.

+

Address of the physical page control block

base

Indicates the first physical page address, that is, start address of the physical page memory.

+

First physical page address, that is, start address of the physical page memory

size

Indicates the size of the physical page memory.

+

Size of the physical page memory

free_pages

Indicates the number of idle physical pages.

+

Number of free physical pages

active anon

Indicates the number of active anonymous pages in the page cache.

+

Number of active anonymous pages in the page cache

inactive anon

Indicates the number of inactive anonymous pages in the page cache.

+

Number of inactive anonymous pages in the page cache

active file

Indicates the number of active file pages in the page cache.

+

Number of active file pages in the page cache

inactive file

Indicates the number of inactive file pages in the page cache.

+

Number of inactive file pages in the page cache

pmm pages

  • total: indicates the total number of physical pages.
  • used: indicates the number of used physical pages.
  • free: indicates the number of idle physical pages.
+

total: indicates the total number of physical pages.

+

used: indicates the number of used physical pages.

+

free: indicates the number of free physical pages.

Parameter

+ - - - - @@ -49,21 +49,21 @@ sem \[_ID__ / fulldata_\] - If the parameters are not specified, this command displays the number of used semaphores and the total number of semaphores. - If the **ID** parameter is specified, semaphores of the specified ID are displayed. -- The **fulldata** parameter depends on **LOSCFG\_DEBUG\_SEMAPHORE**. Before specifying the **fulldata** parameter, enable the **Enable Semaphore Debugging** configuration item using **menuconfig**. +- The **fulldata** parameter depends on **LOSCFG\_DEBUG\_SEMAPHORE**. Before using this parameter, select **Enable Semaphore Debugging** on **menuconfig**. Debug ---\> Enable a Debug Version ---\> Enable Debug LiteOS Kernel Resource ---\> Enable Semaphore Debugging ## Example -Example 1: Enter **sem fulldata**. +Run **sem fulldata**. ## Output **Figure 1** Querying information about all semaphores in use ![](figure/querying-information-about-all-semaphores-in-use.png "querying-information-about-all-semaphores-in-use") -**Table 2** Output description +**Table 2** Output

Parameter

Description

+

Parameters

Value Range

+

Value Range

ID

Indicates the semaphore ID.

+

Specifies the semaphore ID.

[0, 0xFFFFFFFF]

fulldata

Queries information about all the semaphores in use. The information to be printed includes SemID, Count, OriginalCount, Creater(TaskEntry), and LastAccessTime.

+

Queries information about all the semaphores in use. The information to be printed includes SemID, Count, OriginalCount, Creater(TaskEntry), and LastAccessTime.

N/A

- -

Parameter

@@ -74,18 +74,18 @@ Example 1: Enter **sem fulldata**.

SemID

Indicates the semaphore ID.

+

Semaphore ID

Count

Indicates the number of used semaphores.

+

Number of used semaphores

>![](../public_sys-resources/icon-note.gif) **NOTE:** ->- The **ID** value can be in decimal or hexadecimal format. ->- When the **ID** value is within the range of \[0, 1023\], semaphore information of the specified ID is displayed. If the semaphore ID is not used, a message is displayed to inform you of this case. For other values, a message is displayed indicating that the input parameter is incorrect. +>The **ID** value can be in decimal or hexadecimal format. +>When the **ID** value is within the range of \[0, 1023\], semaphore information of the specified ID is displayed. If the semaphore ID is not used, a message is displayed to inform you of this case. For other values, a message is displayed indicating that the parameter is incorrect. diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-stack.md b/en/device-dev/kernel/kernel-small-debug-shell-cmd-stack.md similarity index 83% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-stack.md rename to en/device-dev/kernel/kernel-small-debug-shell-cmd-stack.md index e9d5ab785c3..9a85dcfd07b 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-stack.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-cmd-stack.md @@ -1,8 +1,8 @@ -# stack +# stack - [Command Function](#section445335110416) - [Syntax](#section1795712553416) -- [Parameter Description](#section92544592410) +- [Parameters](#section92544592410) - [Usage](#section104151141252) - [Example](#section11545171957) - [Output](#section075617368542) @@ -15,7 +15,7 @@ This command is used to check the usage of each stack in the system. stack -## Parameter Description +## Parameters None @@ -25,19 +25,19 @@ None ## Example -Enter **stack**. +Run **stack**. ## Output **Figure 1** System stack usage -![](figure/en-us_image_0000001054624363.png) +![](figure/en-us_image_0000001133848370.png) -**Table 1** Output description +**Table 1** Output -

Parameter

+ @@ -45,27 +45,27 @@ Enter **stack**. - - - - - diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-su.md b/en/device-dev/kernel/kernel-small-debug-shell-cmd-su.md similarity index 76% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-su.md rename to en/device-dev/kernel/kernel-small-debug-shell-cmd-su.md index 44f370e0186..7886594c611 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-su.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-cmd-su.md @@ -1,8 +1,8 @@ -# su +# su - [Command Function](#section297810431676) - [Syntax](#section157131147876) -- [Parameter Description](#section04145521671) +- [Parameters](#section04145521671) - [Usage](#section14615155610719) - [Example](#section13338150985) - [Output](#section125021924194613) @@ -15,31 +15,31 @@ This command is used to switch the user. su \[_uid_\] \[_gid_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description -

Output

Description

stack name

Indicates the system stack name.

+

Name of the stack

cpu id

Indicates the CPU ID.

+

CPU ID

stack addr

Indicates the stack address.

+

Stack address

total size

Indicates the stack size.

+

Total stack size

used size

Indicates the used size of the stack.

+

Size of the stack used

Parameter

+ - - - - - - @@ -49,11 +49,11 @@ su \[_uid_\] \[_gid_\] - The **su** command is used to switch to user **root** by default. The default value for both **uid** and **gid** is **0**. - If the **uid** and **gid** parameters are specified, this command can switch to the user with the specified **uid** and **gid**. -- If the input parameter is out of the range, an error message is printed. +- If the input parameter is out of the range, an error message will be printed. ## Example -Enter **su 1000 1000**. +Run **su 1000 1000**. ## Output diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-swymr.md b/en/device-dev/kernel/kernel-small-debug-shell-cmd-swtmr.md similarity index 68% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-swymr.md rename to en/device-dev/kernel/kernel-small-debug-shell-cmd-swtmr.md index c69f0d3c071..8c0579172f7 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-swymr.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-cmd-swtmr.md @@ -1,8 +1,8 @@ -# swtmr +# swtmr - [Command Function](#section166171064814) - [Syntax](#section424011111682) -- [Parameter Description](#section1268410459465) +- [Parameters](#section1268410459465) - [Usage](#section169806213815) - [Example](#section16676026389) - [Output](#section1541991614710) @@ -15,24 +15,24 @@ This command is used to query information about system software timers. swtmr \[_ID_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description -

Parameter

Description

+

Description

Value Range

+

Value Range

uid

Indicates the ID of the target user.

+

Specifies the ID of the target user.

  • Left blank
  • [0, 60000]
+
  • Left blank
  • [0,60000]

gid

Indicates the ID of the target user group.

+

Specifies the ID of the target user group.

  • Left blank
  • [0, 60000]
+
  • Left blank
  • [0,60000]

Parameter

+ - - - - @@ -40,22 +40,22 @@ swtmr \[_ID_\] ## Usage -- If the parameter is not specified, information about all software timers is displayed. +- If no parameter is specified, information about all software timers is displayed. - If the **ID** parameter is specified, information about the specified software timer is displayed. ## Example -Enter **swtmr** and **swtmr 1**. +Run **swtmr** and **swtmr 1**. ## Output **Figure 1** Querying information about all software timers ![](figure/querying-information-about-all-software-timers.png "querying-information-about-all-software-timers") -**Figure 2** Querying information about a specified software timer -![](figure/querying-information-about-a-specified-software-timer.png "querying-information-about-a-specified-software-timer") +**Figure 2** Querying information about software timer 1 +![](figure/querying-information-about-software-timer-1.png "querying-information-about-software-timer-1") -**Table 2** Output description +**Table 2** Output

Parameter

Description

+

Description

Value Range

+

Value Range

ID

Indicates the ID of a software timer.

+

Specifies the ID of a software timer.

[0, 0xFFFFFFFF]

+

[0,0xFFFFFFFF]

- - - - - - - diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-sys.md b/en/device-dev/kernel/kernel-small-debug-shell-cmd-sysinfo.md similarity index 84% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-sys.md rename to en/device-dev/kernel/kernel-small-debug-shell-cmd-sysinfo.md index 8868225020e..d5f65ba9ee6 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-sys.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-cmd-sysinfo.md @@ -1,8 +1,8 @@ -# systeminfo +# systeminfo - [Command Function](#section863016434820) - [Syntax](#section139791817795) -- [Parameter](#section19472339164813) +- [Parameters](#section19472339164813) - [Usage](#section285522592) - [Example](#section9471171015105) - [Output](#section1657011114915) @@ -15,7 +15,7 @@ This command is used to display the resource usage of the current OS, including systeminfo -## Parameter +## Parameters None @@ -25,17 +25,17 @@ None ## Example -Enter **systeminfo**. +Run **systeminfo**. ## Output **Figure 1** Usage of system resources ![](figure/usage-of-system-resources.png "usage-of-system-resources") -**Table 1** Output description +**Table 1** Output -

Parameter

@@ -66,39 +66,39 @@ Enter **swtmr** and **swtmr 1**.

SwTmrID

Indicates the ID of the software timer.

+

ID of the software timer

State

Indicates the status of the software timer.

-

The value can be UnUsed, Created, or Ticking.

+

Status of the software timer

+

The value can be UnUsed, Created, or Ticking.

Mode

Indicates the mode of the software timer.

-

The value can be Once, Period, or NSD (one-time timer that will not be automatically deleted after the timer expires).

+

Mode of the software timer

+

The value can be Once, Period, or NSD (one-shot timer that will not be automatically deleted after the timer has expired).

Interval

Indicates the number of ticks used by the software timer.

+

Number of ticks used by the software timer

Count

Indicates the number of times that the software timer has been working.

+

Number of times that the software timer has been used

Arg

Indicates the input parameter.

+

Input parameter passed

handlerAddr

Indicates the callback address.

+

Callback address

Parameter

+ @@ -43,47 +43,47 @@ Enter **systeminfo**. - - - - - - - - - diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-task.md b/en/device-dev/kernel/kernel-small-debug-shell-cmd-task.md similarity index 81% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-task.md rename to en/device-dev/kernel/kernel-small-debug-shell-cmd-task.md index bcef76f8b87..c5ed3e1dbe1 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-task.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-cmd-task.md @@ -1,8 +1,8 @@ -# task +# task - [Command Function](#section0533181714106) - [Syntax](#section1014412308101) -- [Parameter Description](#section116057158506) +- [Parameters](#section116057158506) - [Usage](#section2053502951112) - [Example](#section12629113381116) - [Output](#section19299103465015) @@ -15,16 +15,16 @@ This command is used to query information about processes and threads. task/task -a -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description -

Output

Description

Module

Indicates the module name.

+

Module name

Used

Indicates the quantity of currently used resources.

+

Used resources

Total

Indicates the total quantity of available resources.

+

Total resources

Enabled

Indicates whether the module is enabled.

+

Whether the module is enabled

Task

Indicates the task.

+

Task

Sem

Indicates the semaphore.

+

Semaphore

Mutex

Indicates the mutex.

+

Mutex

Queue

Indicates the queue.

+

Message queue

SwTmr

Indicates the timer.

+

Software timer

Parameter

+ - - @@ -40,18 +40,18 @@ task/task -a ## Usage -If the parameter is not specified, partial task information is printed by default. +- If the parameter is not specified, partial task information is printed by default. ## Example -Enter **task**. +Run **task**. ## Output **Figure 1** Querying partial task information ![](figure/querying-partial-task-information.png "querying-partial-task-information") -**Table 2** Output description +**Table 2** Output

Parameter

Description

+

Description

Value Range

+

Value Range

- - - - - - - - - - - - diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-uname.md b/en/device-dev/kernel/kernel-small-debug-shell-cmd-uname.md similarity index 37% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-uname.md rename to en/device-dev/kernel/kernel-small-debug-shell-cmd-uname.md index 7a9a7965824..615b8d46bdc 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-uname.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-cmd-uname.md @@ -1,4 +1,4 @@ -# uname +# uname - [Command Function](#section107697383115) - [Syntax](#section162824341116) @@ -17,40 +17,40 @@ uname \[_-a | -s | -t | -v | --help_\] **Table 1** Parameters -

Parameter

@@ -62,62 +62,62 @@ Enter **task**.

PID

Indicates the process ID.

+

Process ID

PPID

Indicates the parent process ID.

+

Parent process ID

PGID

Indicates the process group ID.

+

Process group ID

UID

Indicates the user ID.

+

User ID

Status

Indicates the current task status.

+

Current task status

CPUUSE10s

Indicates the CPU usage within 10 seconds.

+

CPU usage within last 10 seconds

PName

Indicates the process name.

+

Process name

TID

Indicates the task ID.

+

Task ID

StackSize

Indicates the size of the task stack.

+

Size of the task stack

WaterLine

Indicates the peak value used by the stack.

+

Peak value of the stack used

MEMUSE

Indicates the memory usage.

+

Memory usage

TaskName

Indicates the task name.

+

Task name

Parameter

+ - - - - - - - - - - - - - @@ -62,11 +62,11 @@ The **uname** command displays the name of the current OS by default. The **u ## Example -Enter **uname -a**. +Run **uname -a**. ## Output Querying system information -![](figure/en-us_image_0000001052370305.png) +![](figure/en-us_image_0000001179967909.png) diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-vmm.md b/en/device-dev/kernel/kernel-small-debug-shell-cmd-vmm.md similarity index 81% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-vmm.md rename to en/device-dev/kernel/kernel-small-debug-shell-cmd-vmm.md index 920498ee8af..621cefee4f4 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-vmm.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-cmd-vmm.md @@ -1,8 +1,8 @@ -# vmm +# vmm - [Command Function](#section445335110416) - [Syntax](#section1795712553416) -- [Parameter Description](#section92544592410) +- [Parameters](#section92544592410) - [Usage](#section104151141252) - [Example](#section11545171957) - [Output](#section075617368542) @@ -17,16 +17,16 @@ vmm \[_-a / -h / --help_\] vmm \[_pid_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description -

Parameter

Description

+

Parameters

No parameter

+

No parameter

Displays the OS name by default.

+

Displays the OS name by default.

-a

+

-a

Displays all information.

+

Displays all information.

-t

+

-t

Displays the time when the version is created.

+

Displays the time when the version was created.

-s

+

-s

Displays the OS name.

+

Displays the OS name.

-v

+

-v

Displays the version information.

+

Displays the version information.

--help

+

--help

Displays the help information.

+

Displays the help information.

Parameter

+ - - @@ -39,16 +39,16 @@ vmm \[_pid_\] - - - @@ -60,7 +60,7 @@ By default, the virtual memory usage of all processes is displayed. ## Example -Enter **vmm 3**. +Run **vmm 3**. ## Output @@ -78,32 +78,32 @@ Enter **vmm 3**. - - - - - - @@ -112,7 +112,7 @@ Enter **vmm 3**. **Table 3** Virtual memory region information -

Parameter

Description

+

Description

Value Range

+

Value Range

-h | --help

Displays the help information.

+

Displays help information.

N/A

pid

Indicates the ID of the process to query.

+

Specifies the ID of the process to query.

[0, 63]

+

[0,63]

PID

Indicates the process ID.

+

Process ID

aspace

Indicates the address of the virtual memory control block.

+

Address of the virtual memory control block

name

Indicates the process name.

+

Process name

base

Indicates the start address of the virtual memory.

+

Start address of the virtual memory

size

Indicates the size of virtual memory.

+

Size of virtual memory

pages

Indicates the number of used physical pages.

+

Number of used physical pages

Parameter

+ @@ -120,37 +120,37 @@ Enter **vmm 3**. - - - - - - - diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-watch.md b/en/device-dev/kernel/kernel-small-debug-shell-cmd-watch.md similarity index 62% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-watch.md rename to en/device-dev/kernel/kernel-small-debug-shell-cmd-watch.md index 99eb40aabfe..48ac0ba4138 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-sys-watch.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-cmd-watch.md @@ -1,11 +1,11 @@ -# watch +# watch - [Command Function](#section20643141481314) - [Syntax](#section1075441721316) -- [Parameter Description](#section1472810220135) +- [Parameters](#section1472810220135) - [Usage](#section186772414131) - [Example](#section4764192791314) -- [Output](#section5791253155517) +- [Output Description](#section5791253155517) ## Command Function @@ -17,62 +17,62 @@ watch watch \[_-c/-n/-t/--count/--interval/-no-title/--over_\] \[_command_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description -

Output

Description

region

Indicates the address of the control block in the virtual memory region.

+

Address of the control block in the virtual memory region

name

Indicates the name of the virtual memory region.

+

Name of the virtual memory region

base

Indicates the start address of the virtual memory region.

+

Start address of the virtual memory region

size

Indicates the size of the virtual memory region.

+

Size of the virtual memory region

mmu_flags

Indicates the MMU mapping attribute of the virtual memory region.

+

MMU mapping attribute of the virtual memory region

pages

Indicates the number of used physical pages (including the shared memory).

+

Number of used physical pages, including that of the shared memory

pg/ref

Indicates the number of used physical pages.

+

Number of used physical pages

Parameter

+ - - - - - - - - - - - - - @@ -86,9 +86,11 @@ You can run the **watch --over** command to stop the currently running command ## Example -Enter **watch -n 2 -c 6 task**. +Example: -## Output +watch -n 2 -c 6 task + +## Output Description **Figure 1** **task** command monitoring result ![](figure/task-command-monitoring-result.png "task-command-monitoring-result") diff --git a/en/device-dev/kernel/kernel-small-debug-shell-cmd.md b/en/device-dev/kernel/kernel-small-debug-shell-cmd.md new file mode 100644 index 00000000000..3de879965b1 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-debug-shell-cmd.md @@ -0,0 +1,47 @@ +# System Commands + +- **[cpup](kernel-small-debug-shell-cmd-cpup.md)** + +- **[date](kernel-small-debug-shell-cmd-date.md)** + +- **[dmesg](kernel-small-debug-shell-cmd-dmesg.md)** + +- **[exec](kernel-small-debug-shell-cmd-exec.md)** + +- **[free](kernel-small-debug-shell-cmd-free.md)** + +- **[help](kernel-small-debug-shell-cmd-help.md)** + +- **[hwi](kernel-small-debug-shell-cmd-hwi.md)** + +- **[kill](kernel-small-debug-shell-cmd-kill.md)** + +- **[log](kernel-small-debug-shell-cmd-log.md)** + +- **[memcheck](kernel-small-debug-shell-cmd-memcheck.md)** + +- **[oom](kernel-small-debug-shell-cmd-oom.md)** + +- **[pmm](kernel-small-debug-shell-cmd-pmm.md)** + +- **[reset](kernel-small-debug-shell-cmd-reset.md)** + +- **[sem](kernel-small-debug-shell-cmd-sem.md)** + +- **[stack](kernel-small-debug-shell-cmd-stack.md)** + +- **[su](kernel-small-debug-shell-cmd-su.md)** + +- **[swtmr](kernel-small-debug-shell-cmd-swtmr.md)** + +- **[systeminfo](kernel-small-debug-shell-cmd-sysinfo.md)** + +- **[task](kernel-small-debug-shell-cmd-task.md)** + +- **[uname](kernel-small-debug-shell-cmd-uname.md)** + +- **[vmm](kernel-small-debug-shell-cmd-vmm.md)** + +- **[watch](kernel-small-debug-shell-cmd-watch.md)** + + diff --git a/en/device-dev/kernel/kernel-small-debug-shell-details.md b/en/device-dev/kernel/kernel-small-debug-shell-details.md new file mode 100644 index 00000000000..177f26cb93d --- /dev/null +++ b/en/device-dev/kernel/kernel-small-debug-shell-details.md @@ -0,0 +1,13 @@ +# Shell Command Reference + +This chapter describes the functions, syntax, parameter ranges, usage, and examples of key system commands. + +For details about the commands that are not described in this document, see the output of the [help](kernel-small-debug-shell-cmd-help.md) command. You can also use the **-h | --help** option of a command to view the help information about the command. + +- **[System Commands](kernel-small-debug-shell-cmd.md)** + +- **[File Commands](kernel-small-debug-shell-file.md)** + +- **[Network Commands](kernel-small-debug-shell-net.md)** + + diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-abn.md b/en/device-dev/kernel/kernel-small-debug-shell-error.md similarity index 98% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-abn.md rename to en/device-dev/kernel/kernel-small-debug-shell-error.md index 231acdbf804..617269e698d 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-abn.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-error.md @@ -1,4 +1,4 @@ -# User-Space Exception Information +# User-Space Exception Information During the running of the user space, the following system exception may occur: diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-cat.md b/en/device-dev/kernel/kernel-small-debug-shell-file-cat.md similarity index 80% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-file-cat.md rename to en/device-dev/kernel/kernel-small-debug-shell-file-cat.md index db3798fee68..cf3cd02b305 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-cat.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-file-cat.md @@ -1,8 +1,8 @@ -# cat +# cat - [Command Function](#section16710153391315) - [Syntax](#section1699392313158) -- [Parameter Description](#section1677217374136) +- [Parameters](#section1677217374136) - [Usage](#section186772414131) - [Example](#section12158131814561) - [Output](#section183926225561) @@ -15,9 +15,9 @@ This command is used to display the content of a text file. cat \[_pathname_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description

Parameter

Description

+

Description

Default Value

+

Default Value

Value Range

+

Value Range

-c / --count

Indicates the number of times that the command is executed.

+

Specifies the number of times that the command is executed.

0xFFFFFF

+

0xFFFFFF

(0, 0xFFFFFF]

-n / --interval

Indicates the interval for periodically running the command, in seconds.

+

Specifies the interval for periodically running the command, in seconds.

1s

+

1s

(0, 0xFFFFFF]

-t / -no-title

Disables time display on the top.

+

Disables time display on the top.

N/A

+

N/A

N/A

command

Indicates the command to be monitored.

+

Specifies the command to be monitored.

N/A

+

N/A

N/A

--over

Stops the current command monitoring.

+

Stops the current command monitoring.

N/A

+

N/A

N/A

- @@ -44,10 +44,10 @@ Run the **cat** \[_pathname_\] command to display the content of a text file. ## Example -Enter **cat hello-harmony.txt**. +Run **cat hello-harmony.txt**. ## Output -**Figure 1** Viewing content of the **hello-harmony.txt** file -![](figure/viewing-content-of-the-hello-harmony-txt-file.png "viewing-content-of-the-hello-harmony-txt-file") +**Figure 1** Displaying the content of **hello-harmony.txt** +![](figure/displaying-the-content-of-hello-harmony-txt.png "displaying-the-content-of-hello-harmony-txt") diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-cd.md b/en/device-dev/kernel/kernel-small-debug-shell-file-cd.md similarity index 81% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-file-cd.md rename to en/device-dev/kernel/kernel-small-debug-shell-file-cd.md index e901db1567e..a976797aef1 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-cd.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-file-cd.md @@ -1,8 +1,8 @@ -# cd +# cd - [Command Function](#section11690184921316) - [Syntax](#section75695409569) -- [Parameter Description](#section71961353181311) +- [Parameters](#section71961353181311) - [Usage](#section3629759111317) - [Example](#section211620301412) - [Output](#section1968117214577) @@ -15,9 +15,9 @@ This command is used to change the current working directory. cd \[_path_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description

Parameter

@@ -30,7 +30,7 @@ cat \[_pathname_\]

pathname

Indicates the file path.

+

Specifies the file path.

An existing file

- - @@ -48,10 +48,10 @@ cd \[_path_\] ## Example -Enter **cd ..**. +Run **cd**. ## Output -**Figure 1** Directory switching result -![](figure/directory-switching-result.png "directory-switching-result") +**Figure 1** Changing the directory +![](figure/changing-the-directory.png "changing-the-directory") diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-chgrp.md b/en/device-dev/kernel/kernel-small-debug-shell-file-chgrp.md similarity index 89% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-file-chgrp.md rename to en/device-dev/kernel/kernel-small-debug-shell-file-chgrp.md index b9fdfe09c32..ab9601350d0 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-chgrp.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-file-chgrp.md @@ -1,4 +1,4 @@ -# chgrp +# chgrp - [Command Function](#section6103119161418) - [Syntax](#section186958132141) @@ -30,14 +30,14 @@ chgrp \[_group_\] \[_pathname_\] - - @@ -47,11 +47,11 @@ chgrp \[_group_\] \[_pathname_\] ## Usage -By specifying a file group before the file name in this command, you can change the group to which the file belongs. +Specify \[_group_\] to change the file group. ## Example -Enter **chgrp 100 hello-harmony.txt**. +Run **chgrp 100 hello-harmony.txt**. ## Output diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-chmod.md b/en/device-dev/kernel/kernel-small-debug-shell-file-chmod.md similarity index 84% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-file-chmod.md rename to en/device-dev/kernel/kernel-small-debug-shell-file-chmod.md index 734b648c4f3..b8c6d7e2a5d 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-chmod.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-file-chmod.md @@ -1,4 +1,4 @@ -# chmod +# chmod - [Command Function](#section13992936121418) - [Syntax](#section63342439147) @@ -30,14 +30,14 @@ chmod \[_mode_\] \[_pathname_\] - - @@ -47,14 +47,14 @@ chmod \[_mode_\] \[_pathname_\] ## Usage -By specifying the **mode** parameter before the file name, you can change the permission for this file. +Specify \[_mode_\] to change the file permission. ## Example -Enter **chmod 666 hello-harmony.txt**. +Run **chmod 666 hello-harmony.txt**. ## Output -**Figure 1** Changing the permission on the **hello-harmony.txt** file to **666** -![](figure/changing-the-permission-on-the-hello-harmony-txt-file-to-666.png "changing-the-permission-on-the-hello-harmony-txt-file-to-666") +**Figure 1** Changing the permission for the **hello-harmony.txt** file to **666** +![](figure/changing-the-permission-for-the-hello-harmony-txt-file-to-666.png "changing-the-permission-for-the-hello-harmony-txt-file-to-666") diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-chown.md b/en/device-dev/kernel/kernel-small-debug-shell-file-chown.md similarity index 83% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-file-chown.md rename to en/device-dev/kernel/kernel-small-debug-shell-file-chown.md index 62683b53615..a4832359c40 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-chown.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-file-chown.md @@ -1,8 +1,8 @@ -# chown +# chown - [Command Function](#section247414691513) - [Syntax](#section14773151018159) -- [Parameter Description](#section598731391517) +- [Parameters](#section598731391517) - [Usage](#section16524152071510) - [Example](#section17901152561510) - [Output](#section15513163115816) @@ -15,9 +15,9 @@ This command is used to change the owner and group of a specified file. chown \[_owner_\] \[_group_\] \[_pathname_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description

Parameter

@@ -30,9 +30,9 @@ cd \[_path_\]

path

Indicates the file path.

+

Specifies the file path.

The user must have the execution (search) permission for the specified directory.

+

You must have the execution (search) permission for the specified directory.

group

Indicates the file group.

+

Specifies the file group.

[0, 0xFFFFFFFF]

pathname

Indicates the file path.

+

Specifies the file path.

An existing file

mode

Indicates the permission for a file or directory. The value is an octal number, representing the permission of User (owner), Group (group), or Other (other groups).

+

Specifies the permission for a file or directory. The value is an octal number, representing the permission of User (owner), Group (group), or Other (other groups).

[0, 777]

pathname

Indicates the file path.

+

Specifies the file path.

An existing file

- - - - @@ -55,12 +56,12 @@ chown \[_owner_\] \[_group_\] \[_pathname_\] ## Usage - By specifying the **owner** and **group** parameters in this command, you can change the owner and group of the file. -- If the **owner** or **group** value is **-1**, the owner or group of the file will not be changed. +- If **owner** or **group** is **-1**, the owner or group of the file will not be changed. - The **group** parameter can be left blank. ## Example -Enter **chown 100 200 hello-harmony.txt**. +Run **chown 100 200 hello-harmony.txt**. ## Output diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-cp.md b/en/device-dev/kernel/kernel-small-debug-shell-file-cp.md similarity index 83% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-file-cp.md rename to en/device-dev/kernel/kernel-small-debug-shell-file-cp.md index d654bd86f5d..f3409fe9760 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-cp.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-file-cp.md @@ -1,8 +1,8 @@ -# cp +# cp - [Command Function](#section6841203041513) - [Syntax](#section24286359150) -- [Parameter Description](#section558617385152) +- [Parameters](#section558617385152) - [Usage](#section16128156162) - [Example](#section19354171211618) - [Output](#section16754183195914) @@ -15,9 +15,9 @@ This command is used to create a copy for a file. cp \[_SOURCEFILE_\] \[_DESTFILE_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description

Parameter

@@ -30,21 +30,22 @@ chown \[_owner_\] \[_group_\] \[_pathname_\]

owner

Indicates the file owner.

+

Specifies the file owner.

[0, 0xFFFFFFFF]

group

Indicates the file group.

+

Specifies the file group.

  • Left blank
  • [0, 0xFFFFFFFF]
+

Left blank

+

[0, 0xFFFFFFFF]

pathname

Indicates the file path.

+

Specifies the file path.

An existing file

- - @@ -49,7 +49,7 @@ cp \[_SOURCEFILE_\] \[_DESTFILE_\] - The name of the source file cannot be the same as that of the destination file in the same path. - The source file must exist and cannot be a directory. -- The source file path supports wildcards: asterisks \(\*\) and question marks \(?\). The asterisk \(\*\) indicates any number of characters, and the question mark \(?\) represents a single character. The destination file path does not support wildcards. If the specified source file path matches multiple files, the destination file path must be a directory. +- The source file path supports wildcards asterisk \(\*\) and question mark\(?\). The asterisk \(\*\) indicates any number of characters, and the question mark \(?\) indicates any single character. The destination path does not support wildcards. If the source path matches multiple files, the destination path must be a directory. - If the destination file path is a directory, this directory must exist. In this case, the destination file is named after the source file. - If the destination file path is a file, the directory for this file must exist. In this case, the file copy is renamed. - Currently, this command can be used to copy only one file. If more than two parameters are specified, only the first two parameters take effect. @@ -59,7 +59,7 @@ When important system resources are copied, unexpected results such as a system ## Example -Enter **cp hello-harmony.txt ./tmp/**. +Run **cp hello-harmony.txt ./tmp/**. ## Output diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-format.md b/en/device-dev/kernel/kernel-small-debug-shell-file-format.md similarity index 90% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-file-format.md rename to en/device-dev/kernel/kernel-small-debug-shell-file-format.md index 06ff11d299a..19ea6af44cb 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-format.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-file-format.md @@ -1,8 +1,8 @@ -# format +# format - [Command Function](#section1922331919169) - [Syntax](#section249226169) -- [Parameter Description](#section985173416177) +- [Parameters](#section985173416177) - [Usage](#section1510162714162) - [Example](#section25691431161611) - [Output](#section17368112365920) @@ -15,9 +15,9 @@ This command is used to format a disk. format <_dev\_inodename_\> <_sectors_\> <_option_\> \[_label_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description

Parameter

@@ -30,14 +30,14 @@ cp \[_SOURCEFILE_\] \[_DESTFILE_\]

SOURCEFILE

Indicates the path to the source file.

+

Specifies the path to the source file.

Currently, only files are supported. Directories are not supported.

DESTFILE

Indicates the path to the destination file.

+

Specifies the path to the destination file.

Both directories and files are supported.

- - - - @@ -59,11 +59,11 @@ format <_dev\_inodename_\> <_sectors_\> <_option_\> \[_label_\] ## Example -Enter **format /dev/mmcblk0 128 2**. +Run **format /dev/mmcblk0 128 2**. ## Output Formatting result -![](figure/en-us_image_0000001052370307.png) +![](figure/en-us_image_0000001134008686.png) diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-is.md b/en/device-dev/kernel/kernel-small-debug-shell-file-ls.md similarity index 81% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-file-is.md rename to en/device-dev/kernel/kernel-small-debug-shell-file-ls.md index 20a95c9dcf2..868a7c887d1 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-is.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-file-ls.md @@ -1,8 +1,8 @@ -# ls +# ls - [Command Function](#section6538163771614) - [Syntax](#section45881743111616) -- [Parameter Description](#section17528148171617) +- [Parameters](#section17528148171617) - [Usage](#section041212533166) - [Example](#section986105716167) - [Output](#section2036124918592) @@ -15,9 +15,9 @@ This command is used to display the content of a specified directory. ls \[_path_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description

Parameter

@@ -28,24 +28,24 @@ format <_dev\_inodename_\> <_sectors_\> <_option_\> \[_label_\]

dev_inodename

Indicates the device name.

+

Specifies the device name.

sectors

Indicates the size of the allocated memory unit or sector. The value 0 indicates that the parameter is null. (The value must be 0 or a power of 2. For FAT32, the maximum value is 128. If the parameter is set to 0, a proper cluster size is automatically selected. The available cluster size range varies depending on the partition size. If the cluster size is incorrectly specified, the formatting may fail.)

+

Specifies the size of the allocated memory unit or sector. The value 0 indicates that the parameter is null. (The value must be 0 or a power of 2. For FAT32, the maximum value is 128. If the parameter is set to 0, a proper cluster size is automatically selected. The available cluster size range varies depending on the partition size. If the cluster size is incorrectly specified, the formatting may fail.)

option

Indicates the formatting option for selecting the file system type. The options are as follows:
  • 0x01: FMT_FAT
  • 0x02: FMT_FAT32
  • 0x07: FMT_ANY
  • 0x08: FMT_ERASE (not supported by the USB flash drive)
+
Specifies the formatting option for selecting the file system type. The options are as follows:
  • 0x01: FMT_FAT
  • 0x02: FMT_FAT32
  • 0x07: FMT_ANY
  • 0x08: FMT_ERASE (not supported by the USB flash drive)

Other values are invalid. The system will automatically select the formatting mode. If the low-level formatting bit is 1 during the formatting of a USB flash drive, an error message is printed.

label

Indicates the volume label name. This parameter is optional, and the value is a string. If null is specified for this parameter, the previously set volume label name is cleared.

+

Specifies the volume label name. This parameter is optional, and the value is a string. If null is specified for this parameter, the previously set volume label name is cleared.

@@ -45,14 +46,14 @@ ls \[_path_\] - This command can be used to display the content of the current directory. - This command can also display the size of a file. -- The **ls** command with the **proc** directory passed cannot calculate the file size and **0** is displayed in the command output. +- The **ls** command with the **proc** directory passed cannot calculate the file size, and **0** is displayed in the command output. ## Example -Enter **ls**. +Run **ls**. ## Output -**Figure 1** Viewing content of the current directory -![](figure/viewing-content-of-the-current-directory.png "viewing-content-of-the-current-directory") +**Figure 1** Displaying content of the current directory +![](figure/displaying-content-of-the-current-directory.png "displaying-content-of-the-current-directory") diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-isfd.md b/en/device-dev/kernel/kernel-small-debug-shell-file-lsfd.md similarity index 71% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-file-isfd.md rename to en/device-dev/kernel/kernel-small-debug-shell-file-lsfd.md index 02962165e1e..0c9219d4705 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-isfd.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-file-lsfd.md @@ -1,4 +1,4 @@ -# lsfd +# lsfd - [Command Function](#section2053406181716) - [Syntax](#section523771017172) @@ -8,7 +8,7 @@ ## Command Function -This command is used to display the file descriptors and names of currently opened files. +This command is used to display the file descriptors and names of the files that are open. ## Syntax @@ -16,14 +16,14 @@ lsfd ## Usage -Run the **lsfd** command to view file descriptors and names of the opened files. +Run the **lsfd** command to display file descriptors and names of the opened files. ## Example -Enter **lsfd**. +Run **lsfd**. ## Output **Figure 1** Command output -![](figure/command-output-19.png "command-output-19") +![](figure/command-output-24.png "command-output-24") diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-mkdir.md b/en/device-dev/kernel/kernel-small-debug-shell-file-mkdir.md similarity index 89% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-file-mkdir.md rename to en/device-dev/kernel/kernel-small-debug-shell-file-mkdir.md index 77106a85f0f..7273ce06945 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-mkdir.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-file-mkdir.md @@ -1,8 +1,8 @@ -# mkdir +# mkdir - [Command Function](#section1083613274175) - [Syntax](#section820913118178) -- [Parameter Description](#section1256834121718) +- [Parameters](#section1256834121718) - [Usage](#section1294234115172) - [Example](#section1113345211713) - [Output](#section10142201012) @@ -15,9 +15,9 @@ This command is used to create a directory. mkdir \[_directory_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description

Parameter

@@ -35,7 +35,8 @@ ls \[_path_\]

ls error: No such directory

If the path value is a valid directory, the content of this directory is displayed.

-
  • Left blank
  • A valid directory
+

Left blank

+

A valid directory

- @@ -45,7 +45,7 @@ mkdir \[_directory_\] ## Example -Enter **mkdir share**. +Run **mkdir share**. ## Output diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-mount.md b/en/device-dev/kernel/kernel-small-debug-shell-file-mount.md similarity index 88% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-file-mount.md rename to en/device-dev/kernel/kernel-small-debug-shell-file-mount.md index 37feb309a27..ac758b7aaa5 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-mount.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-file-mount.md @@ -1,8 +1,8 @@ -# mount +# mount - [Command Function](#section11631837182) - [Syntax](#section1697638111820) -- [Parameter Description](#section1650151221819) +- [Parameters](#section1650151221819) - [Usage](#section124541520171912) - [Example](#section7424625171917) - [Output](#section14757018116) @@ -15,9 +15,9 @@ This command is used to mount a device to a specified directory. mount <_device_\> <_path_\> <_name_\> \[_uid gid_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description

Parameter

@@ -30,7 +30,7 @@ mkdir \[_directory_\]

directory

Indicates the directory to be created.

+

Specifies the directory to create.

N/A

- - - @@ -68,11 +68,11 @@ By specifying the device to be mounted, directory, and file system format in the ## Example -Enter **mount /dev/mmcblk0p0 /bin1/vs/sd vfat**. +Run **mount /dev/mmcblk0p0 /bin1/vs/sd vfat**. ## Output Mounting **/dev/mmcblk0p0** to the **/bin1/vs/sd** directory -![](figure/en-us_image_0000001051690323.png) +![](figure/en-us_image_0000001134008688.png) diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-part.md b/en/device-dev/kernel/kernel-small-debug-shell-file-partinfo.md similarity index 80% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-file-part.md rename to en/device-dev/kernel/kernel-small-debug-shell-file-partinfo.md index da5b18b5bdd..fc78146d8fd 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-part.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-file-partinfo.md @@ -1,23 +1,23 @@ -# partinfo +# partinfo - [Command Function](#section1777503617199) - [Syntax](#section185501447132114) -- [Parameter Description](#section1304151212252) +- [Parameters](#section1304151212252) - [Usage](#section4566131982520) - [Example](#section4351134942514) - [Output](#section66689331412) ## Command Function -This command is used to query information about multiple partitions of a hard disk or SD card identified by the system. +This command is used to query information about the partitions of a hard disk or SD card identified by the system. ## Syntax partinfo <_dev\_inodename_\> -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description

Parameter

@@ -30,22 +30,22 @@ mount <_device_\> <_path_\> <_name_\> \[_uid gid_\]

device

Indicates the path of the device to be mounted. The format is the path of the device.

+

Specifies the path of the device to be mounted. The format is the path of the device.

A device in the system

path

Indicates the directory of the device.

-

The user must have the execution (search) permission for the specified directory.

+

Specifies the directory of the device.

+

You must have the execution (search) permission for the specified directory.

N/A

name

Indicates the file system type.

+

Specifies the file system type.

vfat, yaffs, jffs, ramfs, nfs, procfs, romfs

- @@ -44,9 +44,9 @@ None ## Example -Enter **partinfo /dev/mmcblk0p0**. +Run **partinfo /dev/mmcblk0p0**. ## Output -![](figure/en-us_image_0000001052370303.png) +![](figure/en-us_image_0000001133848906.png) diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-partion.md b/en/device-dev/kernel/kernel-small-debug-shell-file-partition.md similarity index 91% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-file-partion.md rename to en/device-dev/kernel/kernel-small-debug-shell-file-partition.md index 837e05d6089..92e07a867ff 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-partion.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-file-partition.md @@ -1,8 +1,8 @@ -# partition +# partition - [Command Function](#section255095212257) - [Syntax](#section10258056122515) -- [Parameter Description](#section177200581256) +- [Parameters](#section177200581256) - [Usage](#section17866411262) - [Example](#section1927174202610) - [Output](#section11321011223) @@ -15,9 +15,9 @@ This command is used to query flash partition information. partition \[_nand / spinor_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description

Parameter

@@ -30,7 +30,7 @@ partinfo <_dev\_inodename_\>

dev_inodename

Indicates the name of the partition to be queried.

+

Specifies the name of the partition to be queried.

A valid partition name

- - - -

Parameter

@@ -52,11 +52,11 @@ partition \[_nand / spinor_\] ## Example -Enter **partition spinor**. +Run **partition spinor**. ## Output Viewing spinor flash partition information -![](figure/en-us_image_0000001052810300.png) +![](figure/en-us_image_0000001179848349.png) diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-pwd.md b/en/device-dev/kernel/kernel-small-debug-shell-file-pwd.md similarity index 71% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-file-pwd.md rename to en/device-dev/kernel/kernel-small-debug-shell-file-pwd.md index 9f7182efd73..53c5c94080b 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-pwd.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-file-pwd.md @@ -1,8 +1,8 @@ -# pwd +# pwd - [Command Function](#section197737712267) - [Syntax](#section1544061016267) -- [Parameter Description](#section599112120262) +- [Parameters](#section599112120262) - [Usage](#section66901116152615) - [Example](#section7427181922612) - [Output](#section116313389418) @@ -15,7 +15,7 @@ This command is used to display the current path. pwd -## Parameter Description +## Parameters None @@ -25,10 +25,10 @@ The **pwd** command writes the full path name of the current directory \(from ## Example -Enter **pwd**. +Run **pwd**. ## Output -**Figure 1** Querying the current path -![](figure/querying-the-current-path.png "querying-the-current-path") +**Figure 1** Displaying the current path +![](figure/displaying-the-current-path.png "displaying-the-current-path") diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-rm.md b/en/device-dev/kernel/kernel-small-debug-shell-file-rm.md similarity index 91% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-file-rm.md rename to en/device-dev/kernel/kernel-small-debug-shell-file-rm.md index 072bb443e54..90b52286a7c 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-rm.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-file-rm.md @@ -1,8 +1,8 @@ -# rm +# rm - [Command Function](#section181141523142613) - [Syntax](#section8800926132619) -- [Parameter Description](#section15476229152617) +- [Parameters](#section15476229152617) - [Usage](#section10578163215262) - [Example](#section18548133511263) - [Output](#section1565323814265) @@ -15,9 +15,9 @@ This command is used to delete a file or folder. rm \[_-r_\] \[_dirname / filename_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description - @@ -54,8 +54,8 @@ rm \[_-r_\] \[_dirname / filename_\] Example: -1. Enter **rm log1.txt**. -2. Enter **rm -r sd**. +1. Run **rm log1.txt**. +2. Run **rm -r sd**. ## Output diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-rmdir.md b/en/device-dev/kernel/kernel-small-debug-shell-file-rmdir.md similarity index 89% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-file-rmdir.md rename to en/device-dev/kernel/kernel-small-debug-shell-file-rmdir.md index 78b7459cd91..bdc4ecf057a 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-rmdir.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-file-rmdir.md @@ -1,8 +1,8 @@ -# rmdir +# rmdir - [Command Function](#section1839611420266) - [Syntax](#section329574512266) -- [Parameter Description](#section15865747102620) +- [Parameters](#section15865747102620) - [Usage](#section107857508261) - [Example](#section11196165315262) - [Output](#section1073811415613) @@ -15,9 +15,9 @@ This command is used to delete a directory. rmdir \[_dir_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description

Parameter

@@ -37,7 +37,7 @@ rm \[_-r_\] \[_dirname / filename_\]

dirname/filename

Indicates the name of the file or directory to be deleted. The value can be a path.

+

Specifies the name of the file or directory to be deleted. The value can be a path.

N/A

- @@ -46,7 +46,7 @@ rmdir \[_dir_\] ## Example -Enter **rmdir dir**. +Run **rmdir dir**. ## Output diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-sta.md b/en/device-dev/kernel/kernel-small-debug-shell-file-statfs.md similarity index 85% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-file-sta.md rename to en/device-dev/kernel/kernel-small-debug-shell-file-statfs.md index d2dc901d2cd..59a073c1c6e 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-sta.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-file-statfs.md @@ -1,8 +1,8 @@ -# statfs +# statfs - [Command Function](#section153921657152613) - [Syntax](#section135391102717) -- [Parameter Description](#section074312314279) +- [Parameters](#section074312314279) - [Usage](#section133816772712) - [Example](#section526149182717) @@ -14,9 +14,9 @@ This command is used to print information about a file system, such as the type, statfs \[_directory_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description

Parameter

@@ -30,7 +30,7 @@ rmdir \[_dir_\]

dir

Indicates the name of the directory to be deleted. The directory must be empty. You can enter a path for this parameter.

+

Specifies the name of the directory to be deleted. The directory must be empty. You can enter a path for this parameter.

N/A

- - @@ -43,9 +43,9 @@ The printed information varies depending on the file system. ## Example -The following uses the NFS file system as an example: +The following uses the NFS as an example: -Enter **statfs /nfs**. +Run **statfs /nfs**. **Figure 1** Output of the statfs command ![](figure/output-of-the-statfs-command.png "output-of-the-statfs-command") diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-sync.md b/en/device-dev/kernel/kernel-small-debug-shell-file-sync.md similarity index 69% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-file-sync.md rename to en/device-dev/kernel/kernel-small-debug-shell-file-sync.md index 6c82f8aa6a3..6e8c72e2860 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-sync.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-file-sync.md @@ -1,21 +1,21 @@ -# sync +# sync - [Command Function](#section1285017122274) - [Syntax](#section4731516162712) -- [Parameter Description](#section9352418122714) +- [Parameters](#section9352418122714) - [Usage](#section10725192142717) - [Example](#section414434814354) - [Output](#section19618121710317) ## Command Function -This command is used to synchronize cached data \(data in the file system\) to the SD card. +This command is used to synchronize cached data \(data in the file system\) to an SD card. ## Syntax sync -## Parameter Description +## Parameters None @@ -26,7 +26,7 @@ None ## Example -Enter **sync**. Data will be synchronized to the SD card when an SD card is available, and no operation will be performed if no SD card is available. +Run **sync**. Data will be synchronized to the SD card if an SD card is available, and no operation will be performed if no SD card is available. ## Output diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-touch.md b/en/device-dev/kernel/kernel-small-debug-shell-file-touch.md similarity index 88% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-file-touch.md rename to en/device-dev/kernel/kernel-small-debug-shell-file-touch.md index eef1d51cfac..444be360786 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-touch.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-file-touch.md @@ -1,8 +1,8 @@ -# touch +# touch - [Command Function](#section17541924112716) - [Syntax](#section866182711274) -- [Parameter Description](#section268912296270) +- [Parameters](#section268912296270) - [Usage](#section412093332714) - [Example](#section414434814354) - [Output](#section1028419515711) @@ -16,9 +16,9 @@ touch \[_filename_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description

Parameter

@@ -29,9 +29,9 @@ statfs \[_directory_\]

directory

Indicates the file system directory.

+

Specifies the file system directory.

The file system must exist and support the statfs command. Currently, the following file systems are supported: JFFS2, FAT, and NFS.

+

The file system must exist and support the statfs command. Currently, the file systems JFFS2, FAT, and NFS are supported.

- @@ -41,7 +41,7 @@ touch \[_filename_\] ## Usage -- The **touch** command creates a read-write empty file. +- The **touch** command creates an empty file that is readable and writeable. - The **touch** command creates only one file at a time. >![](../public_sys-resources/icon-notice.gif) **NOTICE:** @@ -50,7 +50,7 @@ touch \[_filename_\] ## Example -Enter **touch file.c**. +Run **touch file.c**. ## Output diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-umount.md b/en/device-dev/kernel/kernel-small-debug-shell-file-umount.md similarity index 85% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-file-umount.md rename to en/device-dev/kernel/kernel-small-debug-shell-file-umount.md index ad2e4575a2e..d0dfb1adf25 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-umount.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-file-umount.md @@ -1,8 +1,8 @@ -# umount +# umount - [Command Function](#section365125133520) - [Syntax](#section9615254123512) -- [Parameter Description](#section63446577355) +- [Parameters](#section63446577355) - [Usage](#section92931509368) - [Example](#section144311323616) - [Output](#section360525113611) @@ -15,9 +15,9 @@ This command is used to unmount a specified file system. umount \[_dir_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description

Parameter

@@ -31,7 +31,7 @@ touch \[_filename_\]

filename

Indicates the name of the file to be created.

+

Specifies the name of the file to be created.

N/A

- - @@ -44,7 +44,7 @@ By specifying the **dir** parameter in the **unmount** command, you can unmo ## Example -Enter **umount /bin1/vs/sd**. +Run **umount /bin1/vs/sd**. ## Output diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-write.md b/en/device-dev/kernel/kernel-small-debug-shell-file-write.md similarity index 85% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-file-write.md rename to en/device-dev/kernel/kernel-small-debug-shell-file-write.md index 5bffaf6a19a..4a9dd52448c 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-file-write.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-file-write.md @@ -1,8 +1,8 @@ -# writeproc +# writeproc - [Command Function](#section366714216619) - [Syntax](#section8833164614615) -- [Parameter Description](#section12809111019453) +- [Parameters](#section12809111019453) - [Usage](#section15935131220717) - [Example](#section79281818476) - [Output](#section12742311179) @@ -15,9 +15,9 @@ This command is used to write data to a specified proc file system. The proc fil writeproc <_data_\> \>\> /proc/<_filename_\> -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description

Parameter

@@ -30,9 +30,9 @@ umount \[_dir_\]

dir

Indicates the directory from which the file system is to be unmounted.

+

Specifies the directory from which the file system is to be unmounted.

Directory to which the file system has been mounted

+

Directory to which the file system is mounted

- - @@ -47,14 +47,14 @@ writeproc <_data_\> \>\> /proc/<_filename_\> ## Usage -The proc file implements its own **write** command. After the **writeproc** command is called, the input parameter will be passed to the **write** command. +The proc file implements its own **write** command. Calling the **writeproc** command will pass the input parameter to the **write** command. >![](../public_sys-resources/icon-note.gif) **NOTE:** ->The proc file system does not support multi-thread access. +>The procfs file system does not support multi-thread access. ## Example -Enter **writeproc test \>\> /proc/uptime**. +Run **writeproc test \>\> /proc/uptime**. ## Output diff --git a/en/device-dev/kernel/kernel-small-debug-shell-file.md b/en/device-dev/kernel/kernel-small-debug-shell-file.md new file mode 100644 index 00000000000..93d1834422f --- /dev/null +++ b/en/device-dev/kernel/kernel-small-debug-shell-file.md @@ -0,0 +1,45 @@ +# File Commands + +- **[cat](kernel-small-debug-shell-file-cat.md)** + +- **[cd](kernel-small-debug-shell-file-cd.md)** + +- **[chgrp](kernel-small-debug-shell-file-chgrp.md)** + +- **[chmod](kernel-small-debug-shell-file-chmod.md)** + +- **[chown](kernel-small-debug-shell-file-chown.md)** + +- **[cp](kernel-small-debug-shell-file-cp.md)** + +- **[format](kernel-small-debug-shell-file-format.md)** + +- **[ls](kernel-small-debug-shell-file-ls.md)** + +- **[lsfd](kernel-small-debug-shell-file-lsfd.md)** + +- **[mkdir](kernel-small-debug-shell-file-mkdir.md)** + +- **[mount](kernel-small-debug-shell-file-mount.md)** + +- **[partinfo](kernel-small-debug-shell-file-partinfo.md)** + +- **[partition](kernel-small-debug-shell-file-partition.md)** + +- **[pwd](kernel-small-debug-shell-file-pwd.md)** + +- **[rm](kernel-small-debug-shell-file-rm.md)** + +- **[rmdir](kernel-small-debug-shell-file-rmdir.md)** + +- **[statfs](kernel-small-debug-shell-file-statfs.md)** + +- **[sync](kernel-small-debug-shell-file-sync.md)** + +- **[touch](kernel-small-debug-shell-file-touch.md)** + +- **[writeproc](kernel-small-debug-shell-file-write.md)** + +- **[umount](kernel-small-debug-shell-file-umount.md)** + + diff --git a/en/device-dev/kernel/kernel-lite-small-shell-guide.md b/en/device-dev/kernel/kernel-small-debug-shell-guide.md similarity index 67% rename from en/device-dev/kernel/kernel-lite-small-shell-guide.md rename to en/device-dev/kernel/kernel-small-debug-shell-guide.md index 9c984d76ba2..588af244e9b 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-guide.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-guide.md @@ -1,8 +1,8 @@ -# Shell Command Development Guidelines +# Shell Command Development Guidelines -- [Development Guidelines](#section22071515161018) +- [Development Guidelines](#section13408945163812) -## Development Guidelines +## Development Guidelines You can perform the following operations to add shell commands: @@ -36,46 +36,45 @@ You can perform the following operations to add shell commands: - - - - -

Parameter

@@ -30,14 +30,14 @@ writeproc <_data_\> \>\> /proc/<_filename_\>

data

Indicates the string to be entered, which ends with a space. If you need to enter a space, use "" to enclose the space.

+

Specifies the string to be entered, which ends with a space. If you need to enter a space, use "" to enclose the space.

N/A

filename

Indicates the proc file to which data is to be passed.

+

Specifies the proc file to which data is to be passed.

N/A

l

Indicates the global variable name to be passed during the static registration. Note that the name cannot be the same as other symbol names in the system.

+

Specifies the global variable name passed in static registration. Note that the name cannot be the same as other symbol names in the system.

cmdType

Indicates the command type.

-
  • CMD_TYPE_EX: does not support standard command parameters and will mask the command keywords you entered. For example, if you enter ls /ramfs, only /ramfs will be passed to the registration function, and the ls command keyword will be masked.

    +

Specifies the command type, which can be any of the following:

+
  • CMD_TYPE_EX: does not support standard command parameters and will mask the command keywords you entered. For example, if you enter ls /ramfs, only /ramfs will be passed to the registration function, and ls will be masked.

  • CMD_TYPE_STD: supports standard command parameters. All the characters you entered will be passed to the registration function after being parsed.

cmdKey

Indicates the command keyword, which is the name used to access a shell function.

+

Specifies the command keyword, which is the name used to access a shell function.

paraNum

Indicates the maximum number of input parameters in the execution function to be invoked. This parameter is not supported currently.

+

Specifies the maximum number of input parameters in the execution function to be called. This parameter is not supported currently.

cmdHook

Indicates the address of the execution function, that is, the function that is actually executed by the command.

+

Specifies the address of the execution function, that is, the function executed by the command.

- For example: + Example: ``` SHELLCMD_ENTRY(ls_shellcmd, CMD_TYPE_EX, "ls", XARGS, (CMD_CBK_FUNC)osShellCmdLs) ``` - 2. Add the required options to the **build/mk/liteos\_tables\_ldflags.mk** file. + 2. Add options to the **build/mk/liteos\_tables\_ldflags.mk** file. For example, when registering the **ls** command, add **-uls\_shellcmd** to the **build/mk/liteos\_tables\_ldflags.mk** file. **-u** is followed by the first parameter of **SHELLCMD\_ENTRY**. - 2. Dynamic registration: The prototype of the function to register is as follows: @@ -95,39 +94,38 @@ You can perform the following operations to add shell commands:

cmdType

Indicates the command type.

-
  • CMD_TYPE_EX: does not support standard command parameters and will mask the command keywords you entered. For example, if you enter ls /ramfs, only /ramfs will be passed to the registration function, and the ls command keyword will be masked.

    -
  • CMD_TYPE_STD: supports standard command parameters. All the characters you entered will be passed to the registration function after being parsed.

    +

Specifies the command type, which can be any of the following:

+
  • CMD_TYPE_EX: does not support standard command parameters and will mask the command keywords you entered. For example, if you enter ls /ramfs, only /ramfs will be passed to the registration function, and ls will be masked.

    +
  • CMD_TYPE_STD: supports standard command parameters. All the characters you entered will be passed to the registration function after being parsed.

cmdKey

Indicates the command keyword, which is the name used to access a shell function.

+

Specifies the command keyword, which is the name used to access a shell function.

paraNum

Indicates the maximum number of input parameters in the execution function to be invoked. This parameter is not supported currently. The default value is XARGS(0xFFFFFFFF).

+

Specifies the maximum number of input parameters in the execution function to be called. This parameter is not supported currently. The default value is XARGS(0xFFFFFFFF).

cmdHook

Indicates the address of the execution function, that is, the function that is actually executed by the command.

+

Specifies the address of the execution function, that is, the function executed by the command.

- For example: + Example: ``` osCmdReg(CMD_TYPE_EX, "ls", XARGS, (CMD_CBK_FUNC)osShellCmdLs) ``` - >![](../public_sys-resources/icon-note.gif) **NOTE:** - >The command keyword must be unique. Specifically, two different commands cannot share the same command keyword. Otherwise, only one command is executed. + >The command keyword must be unique. That is, two different commands cannot share the same command keyword. Otherwise, only one command is executed. >When executing user commands sharing the same keyword, the shell executes only the first command in the **help** commands. 3. Use the following function prototype to add built-in commands: @@ -139,29 +137,29 @@ You can perform the following operations to add shell commands: **Table 3** Parameters of osShellCmdLs -

Parameter

+ - - - - -

Parameter

Description

+

Description

argc

+

argc

Indicates the number of parameters in the shell command.

+

Specifies the number of parameters in the shell command.

argv

+

argv

Indicates a pointer array, where each element points to a string. You can determine whether to pass the command keyword to the registration function by specifying the command type.

+

Specifies a pointer array, where each element points to a string. You can determine whether to pass the command keyword to the registration function by specifying the command type.

4. Enter the shell command in either of the following methods: - - Enter the shell command in the serial port tool. + - Enter the shell command in a serial port tool. - - Enter the shell command in the Telnet tool. For details, see [telnet](kernel-lite-small-shell-cmd-net-tel.md). + - Enter the shell command in the Telnet tool. For details, see [telnet](kernel-small-debug-shell-net-telnet.md). diff --git a/en/device-dev/kernel/kernel-small-debug-shell-magickey.md b/en/device-dev/kernel/kernel-small-debug-shell-magickey.md new file mode 100644 index 00000000000..efe0e7d795c --- /dev/null +++ b/en/device-dev/kernel/kernel-small-debug-shell-magickey.md @@ -0,0 +1,44 @@ +# Magic Key + +- [When to Use](#section2350114718546) +- [How to Use](#section3305151511559) + +## When to Use + +When the system does not respond, you can use the magic key to check whether the system is locked and interrupted \(the magic key also does not respond\) or view the system task running status. + +If an interrupt is responded, you can use the magic key to check the task CPU usage \(**cpup**\) and find out the task with the highest CPU usage. Generally, the task with a higher priority preempts the CPU. + +## How to Use + +1. Configure the macro **LOSCFG\_ENABLE\_MAGICKEY**. + +The magic key depends on the **LOSCFG\_ENABLE\_MAGICKEY** macro. Before using the magic key, select **Enable MAGIC KEY** on **menuconfig**. + +**Enable MAGIC KEY**: **Debug** ---\> **Enable MAGIC KEY** + +The magic key cannot be used if this macro is disabled. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>On **menuconfig**, you can move the cursor to **LOSCFG\_ENABLE\_MAGICKEY** and enter a question mark \(?\) to view help information. + +2. Press **Ctrl+R** to enable the magic key. + +When the UART or USB-to-virtual serial port is connected, press **Ctrl+R**. If "Magic key on" is displayed, the magic key is enabled. + +To disable the magic key, press **Ctrl+R** again. If "Magic key off" is displayed, the magic key is disabled. + +You can use the magic key combinations as follows: + +- **Ctrl+Z**: displays help information about the related magic keys. + +- **Ctrl+T**: displays task information. + +- **Ctrl+P**: allows the system to proactively enter the panic state. After the panic-related information is printed, the system is suspended. + +- **Ctrl+E**: Checks the integrity of the memory pool. If an error is detected, the system displays an error message. If no error is detected, the system displays "system memcheck over, all passed!". + + +>![](../public_sys-resources/icon-notice.gif) **NOTICE:** +>If special characters need to be entered through the UART or USB-to-virtual serial port if magic key is enabled, avoid using characters the same as the magic keys. Otherwise, the magic key may be triggered by mistake, causing errors in the original design. + diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-net-arp.md b/en/device-dev/kernel/kernel-small-debug-shell-net-arp.md similarity index 69% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-net-arp.md rename to en/device-dev/kernel/kernel-small-debug-shell-net-arp.md index b0267af58de..f9fdd97cf15 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-net-arp.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-net-arp.md @@ -1,8 +1,8 @@ -# arp +# arp - [Command Function](#section201149459368) - [Syntax](#section579813484364) -- [Parameter Description](#section168065311366) +- [Parameters](#section168065311366) - [Usage](#section19190125723612) - [Example](#section10383416372) @@ -18,44 +18,44 @@ arp \[_-i IF_\] -s _IPADDR HWADDR_ arp \[_-i IF_\] -d _IPADDR_ -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description -

Parameter

+ - - - - - - - - - @@ -72,7 +72,7 @@ arp \[_-i IF_\] -d _IPADDR_ Example: -1. Enter **arp**. +1. Run **arp**. **Figure 1** Printing the entire ARP cache table @@ -90,17 +90,17 @@ Example: - - - - - - - - diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-net-ntp.md b/en/device-dev/kernel/kernel-small-debug-shell-net-ntpdate.md similarity index 83% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-net-ntp.md rename to en/device-dev/kernel/kernel-small-debug-shell-net-ntpdate.md index b7f6a6bb965..b2ad34fa981 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-net-ntp.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-net-ntpdate.md @@ -1,8 +1,8 @@ -# ntpdate +# ntpdate - [Command Function](#section38494293815) - [Syntax](#section5503114413387) -- [Parameter Description](#section136934472383) +- [Parameters](#section136934472383) - [Usage](#section121401651173816) - [Example](#section3431554203811) - [Output](#section18638194610115) @@ -15,9 +15,9 @@ This command is used to synchronize system time from the server. ntpdate \[_SERVER\_IP1_\] \[_SERVER\_IP2_\]... -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description

Parameter

Description

+

Description

Value Range

No parameter

+

No parameter

Prints the content of the entire ARP cache table.

+

Prints the content of the entire ARP cache table.

N/A

-i IF

+

-i IF

Indicates the network interface. This parameter is optional.

+

Specifies the network port. This parameter is optional.

N/A

-s IPADDR

+

-s IPADDR

HWADDR

Adds an ARP entry. The second parameter is the IP address and MAC address of the other host on the LAN.

+

Adds an ARP entry. The second parameter is the IP address and MAC address of the other host on the LAN.

N/A

-d IPADDR

+

-d IPADDR

Deletes an ARP entry.

+

Deletes an ARP entry.

N/A

Address

Indicates the IPv4 address of a network device.

+

IPv4 address of a network device.

HWaddress

Indicates the MAC address of a network device.

+

MAC address of a network device.

Iface

Indicates the name of the interface used by the ARP entry.

+

Name of the port used by the ARP entry.

Type

diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-net-dh.md b/en/device-dev/kernel/kernel-small-debug-shell-net-dhclient.md similarity index 93% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-net-dh.md rename to en/device-dev/kernel/kernel-small-debug-shell-net-dhclient.md index fd93fad650c..11b8dc8ebd7 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-net-dh.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-net-dhclient.md @@ -1,8 +1,8 @@ -# dhclient +# dhclient - [Command Function](#section366714216619) - [Syntax](#section8833164614615) -- [Parameter Description](#section12809111019453) +- [Parameters](#section12809111019453) - [Usage](#section15935131220717) - [Example](#section79281818476) - [Output](#section12742311179) @@ -27,9 +27,9 @@ dhclient -gd <_index_\> dhclient -sd <_dns\_ip_\> -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description - @@ -110,7 +110,7 @@ dhclient -sd 8.8.8.8 ## Example -![](figure/en-us_image_0000001053224218.png) +![](figure/en-us_image_0000001179848731.png) ## Output @@ -125,12 +125,12 @@ dhclient -sd 8.8.8.8 - - diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-net-dns.md b/en/device-dev/kernel/kernel-small-debug-shell-net-dns.md similarity index 87% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-net-dns.md rename to en/device-dev/kernel/kernel-small-debug-shell-net-dns.md index 58c31e40999..cceeb610f50 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-net-dns.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-net-dns.md @@ -1,8 +1,8 @@ -# dns +# dns - [Command Function](#section997513673713) - [Syntax](#section146015943711) -- [Parameter Description](#section5732111163716) +- [Parameters](#section5732111163716) - [Usage](#section15642141417371) - [Example](#section1995841617370) - [Output](#section1114210258917) @@ -17,9 +17,9 @@ dns <_1-2_\> <_IP_\> dns _-a_ -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description

Parameter

@@ -84,7 +84,7 @@ dhclient -sd <_dns\_ip_\>

-sd <dns_ip>

Indicates the IP address of the active DNS server.

+

Specifies the IP address of the active DNS server.

IP address of the DNS server

dhclient: set vendor info [MFSI] success

Indicates that the MFSI information is successfully set.

+

The MFSI information is successfully set.

dns[0]: 192.168.1.100

Indicates that the IP address of the DNS server is 192.168.1.100.

+

The IP address of the DNS server is 192.168.1.100.

- - @@ -63,12 +63,12 @@ None Example: 1. Check the current DNS settings. -2. Set the IP address of the second DNS server. -3. Verify the setting. +2. Set the IP address of the alternate DNS server. +3. Check the settings. ## Output -1. Checking the current DNS settings: +1. Check the current DNS settings: ``` OHOS # dns -a @@ -76,13 +76,13 @@ Example: dns2: 0.0.0.0 ``` -2. Setting the IP address of the second DNS server: +2. Set the IP address of the alternate DNS server: ``` OHOS # dns 2 192.168.1.2 ``` -3. Verifying the setting: +3. Check the settings: ``` OHOS # dns -a diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-net-ipc.md b/en/device-dev/kernel/kernel-small-debug-shell-net-ifconfig.md similarity index 54% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-net-ipc.md rename to en/device-dev/kernel/kernel-small-debug-shell-net-ifconfig.md index 4b411d67d39..bcbc940468b 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-net-ipc.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-net-ifconfig.md @@ -1,15 +1,18 @@ -# ifconfig +# ifconfig - [Command Function](#section174940284379) - [Syntax](#section136073203715) -- [Parameter Description](#section6493235203710) +- [Parameters](#section6493235203710) - [Usage](#section05763403371) - [Example](#section168802042123717) - [Output](#section124638211109) ## Command Function -This command is used to query and set parameters of a NIC, such as the IP address, subnet mask, gateway, and MAC address, and enable or disable the NIC. +This command can be used to: + +- Query and set network interface card \(NIC\) parameters, such as the IP address, network mask, gateway, and MAC address. +- Disable or enable a NIC. ## Syntax @@ -27,103 +30,103 @@ ifconfig \[_up|down_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description -

Parameter

@@ -32,14 +32,14 @@ dns _-a_

<1-2>

Indicates the DNS server to set the IP address.

+

Specifies the DNS server to set the IP address.

1 or 2

<IP>

Indicates the IP address of the server.

+

Specifies the IP address of the server.

N/A

- - - - - - - - -

Parameter

+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -143,7 +146,7 @@ ifconfig ## Output -1. Setting network parameters: +1. Set network parameters. ``` OHOS # ifconfig eth0 192.168.100.31 netmask 255.255.255.0 gateway 192.168.100.1 hw ether 00:49:cb:6c:a1:31 @@ -168,27 +171,27 @@ ifconfig - - - - - - -

Parameter

Description

+

Description

Value Range

+

Value Range

No parameter

+

No parameter

Displays information about all NICs, including the IP addresses, subnet masks, gateways, MAC addresses, maximum transmission units (MTUs), and running statuses.

+

Displays the IP addresses, network masks, gateway, MAC addresses, MTU, and running status of all NICs.

N/A

+

N/A

-a

+

-a

Displays data sent and received by the protocol stack.

+

Displays data sent and received by the protocol stack.

N/A

+

N/A

interface

+

interface

Indicates the NIC name, for example, eth0.

+

Specifies the NIC name, for example, eth0.

N/A

+

N/A

address

+

address

Indicates the IP address, for example, 192.168.1.10. The NIC name must be specified.

+

Specifies the IP address, for example, 192.168.1.10. The NIC name must be specified.

N/A

+

N/A

netmask

+

netmask

Indicates the subnet mask, for example, 255.255.255.0.

+

Specifies the subnet mask, for example, 255.255.255.0.

N/A

+

N/A

gateway

+

gateway

Indicates the gateway, for example, 192.168.1.1.

+

Specifies the gateway, for example, 192.168.1.1.

N/A

+

N/A

hw ether

+

hw ether

Indicates the MAC address, for example, 00:11:22:33:44:55. Currently, only the ether hardware type is supported.

+

Specifies the MAC address, for example, 00:11:22:33:44:55. Currently, only the ether hardware type is supported.

N/A

+

N/A

mtu

+

mtu

Indicates the MTU size, for example, 1000.

+

Specifies the maximum transmission unit (MTU) size, for example, 1000.

  • For IPv4:

    [68,1500]

    +
  • For IPv4:

    [68,1500]

  • For IPv6:

    [1280, 1500]

add

+

add

Indicates the IPv6 address, for example, 2001:a:b:c:d:e:f:d. The NIC name and inet6 must be specified.

+

Specifies the IPv6 address, for example, 2001:a:b:c:d:e:f:d. The NIC name and inet6 must be specified.

N/A

+

N/A

del

+

del

Deletes an IPv6 address. The NIC name and inet6 must be specified.

+

Deletes an IPv6 address. The NIC name and inet6 must be specified.

N/A

+

N/A

up

+

up

Enables the data processing function of the NIC. The NIC name must be specified.

+

Enables the data processing function of the NIC. The NIC name must be specified.

N/A

+

N/A

down

+

down

Disables the data processing function of the NIC. The NIC name must be specified.

+

Disables the data processing function of the NIC. The NIC name must be specified.

N/A

+

N/A

ip

Indicates the IP address of the board.

+

IP address of the board

netmask

Indicates the subnet mask.

+

Subnet mask

gateway

Indicates the gateway.

+

Gateway

HWaddr

Indicates the MAC address of the board.

+

MAC address of the board

MTU

Indicates the MTU.

+

Maximum transmission unit

Running/Stop

@@ -198,18 +201,18 @@ ifconfig

Default

Indicates that the NIC is connected to the default gateway.

+

The NIC is connected to the default gateway.

Link UP/Down

Indicates the connection status of the NIC.

+

Connection status of the NIC

-2. Obtaining protocol stack statistics: +2. Obtain protocol stack statistics. ``` OHOS # ifconfig -a @@ -232,42 +235,42 @@ ifconfig

RX packets

Indicates the number of normal packets that have been received at the IP layer.

+

Number of normal packets received at the IP layer.

RX error

Indicates the number of error packets that have been received at the IP layer. The errors include the length, verification, IP option, and IP header protocol errors.

+

Number of error packets received at the IP layer. The errors include the length, verification, IP option, and IP header protocol errors.

RX dropped

Indicates the number of packets that have been discarded at the IP layer. Packets may be discarded due to packet errors, packet forwarding failures, and disabled local NICs.

+

Number of packets discarded at the IP layer. Packets are discarded due to packet errors, packet forwarding failures, and disabled local NICs.

RX overrun

Indicates the number of packets that the MAC layer fails to deliver to the upper-layer protocol stack. The failure is mainly caused by resource insufficiency at the protocol stack.

+

Number of packets that the MAC layer fails to deliver to the upper-layer protocol stack. The failure is mainly caused by resource insufficiency at the protocol stack.

RX bytes

Indicates the total length of normal packets that have been received at the IP layer, excluding the length of the fragments that are not reassembled.

+

Total length of normal packets received at the IP layer, excluding the length of the fragments that are not reassembled.

TX packets

Indicates the number of packets that have been normally sent or forwarded at the IP layer.

+

Number of packets that have been normally sent or forwarded at the IP layer.

TX error

Indicates the number of packets that the IP layer fails to send. Packets may fail to be sent because the packets cannot be routed or the packets fail to be processed in the protocol stack.

+

Number of packets that the IP layer fails to send. Packets may fail to be sent because the packets cannot be routed or the packets fail to be processed in the protocol stack.

TX dropped

Indicates the number of packets that the MAC layer discards due to sending failures, for example, the NIC driver fails to process the packets.

+

Number of packets that the MAC layer discards due to sending failures, for example, the NIC driver fails to process the packets.

TX overrun

@@ -277,13 +280,13 @@ ifconfig

TX bytes

Indicates the total length of the packets that the IP layer has successfully sent or forwarded.

+

Total length of the packets successfully sent or forwarded at the IP layer.

-3. Setting the IPv6 address information: +3. Set the IPv6 address information. ``` OHOS # ifconfig eth0 inet6 add 2001:a:b:c:d:e:f:d @@ -298,7 +301,7 @@ ifconfig HWaddr 00 MTU:16436 Running Link UP ``` -4. Deleting the IPv6 address information: +4. Delete the IPv6 address information. ``` OHOS # ifconfig eth0 inet6 del 2001:a:b:c:d:e:f:d diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-net-ipd.md b/en/device-dev/kernel/kernel-small-debug-shell-net-ipdebug.md similarity index 95% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-net-ipd.md rename to en/device-dev/kernel/kernel-small-debug-shell-net-ipdebug.md index 2b69aa29912..2c6a01fe5ce 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-net-ipd.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-net-ipdebug.md @@ -1,4 +1,4 @@ -# ipdebug +# ipdebug - [Command Function](#section10191115553720) - [Syntax](#section124061758123713) @@ -15,7 +15,7 @@ ipdebug ## Usage -Enter the **ipdebug** command. +Run the **ipdebug** command. ## Output diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-net-net.md b/en/device-dev/kernel/kernel-small-debug-shell-net-netstat.md similarity index 85% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-net-net.md rename to en/device-dev/kernel/kernel-small-debug-shell-net-netstat.md index 362fa9a4301..3f767f81c21 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-net-net.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-net-netstat.md @@ -1,8 +1,8 @@ -# netstat +# netstat - [Command Function](#section13469162113816) - [Syntax](#section795712373812) -- [Parameter Description](#section17629431193817) +- [Parameters](#section17629431193817) - [Usage](#section5277153519380) - [Example](#section108141437163820) - [Output](#section1357015107117) @@ -15,7 +15,7 @@ The **netstat** command is a console command and is used for monitoring the TC netstat -## Parameter Description +## Parameters None @@ -25,12 +25,12 @@ Run the command directly. ## Example -Enter **netstat**. +Run **netstat**. **Figure 1** Output information -![](figure/snipaste_2021-01-26_10-38-58-20.png) +![](figure/snipaste_2021-01-26_10-38-58-25.png) ## Output @@ -45,13 +45,13 @@ Enter **netstat**.

Proto

Indicates the protocol type.

+

Protocol type.

Recv-Q

Indicates the amount of data that is not read by the user.

-

For Listen TCP, the value indicates the number of TCP connections that have completed three-way handshake but are not accepted by users.

+

Amount of data that is not read by the user.

+

For Listen TCP, the value indicates the number of TCP connections that have finished three-way handshake but are not accepted by users.

Send-Q

@@ -62,17 +62,17 @@ Enter **netstat**.

Local Address

Indicates the local IP address and port number.

+

Local IP address and port number.

Foreign Address

Indicates the remote IP address and port number.

+

Remote IP address and port number.

State

Indicates the TCP connection status. This parameter is meaningless for UDP.

+

TCP connection status. This parameter is meaningless for UDP.

- @@ -44,7 +44,7 @@ Run the **ntpdate **\[_SERVER\_IP1_\] \[_SERVER\_IP2_\]... command. **ntpdate* ## Example -To update the system time, run **ntpdate 192.168.1.3**. +Run **ntpdate 192.168.1.3 **to update the system time. ## Output @@ -53,5 +53,5 @@ OHOS # ntpdate 192.168.1.3 time server 192.168.1.3: Mon Jun 13 09:24:25 2016 ``` -The time zone of the board is different from that of the server. Therefore, the displayed time may be several hours different from the obtained server time. +If the time zone of the board is different from that of the server, the displayed time may be several hours different from the obtained server time. diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-net-ping.md b/en/device-dev/kernel/kernel-small-debug-shell-net-ping.md similarity index 84% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-net-ping.md rename to en/device-dev/kernel/kernel-small-debug-shell-net-ping.md index 0d83722cacc..7f71d8e4bec 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-net-ping.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-net-ping.md @@ -1,15 +1,15 @@ -# ping +# ping - [Command Function](#section119672573385) - [Syntax](#section869419010390) -- [Parameter Description](#section9877183173918) +- [Parameters](#section9877183173918) - [Usage](#section1097046193914) - [Example](#section14564129113911) - [Output](#section1621732891215) ## Command Function -This command is used to test whether the network connection is normal. +This command is used to test an IPv4 network connection. ## Syntax @@ -19,9 +19,9 @@ ping \[_-t_\] \[_-w interval_\] __ ping _-k_ -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description

Parameter

@@ -30,7 +30,7 @@ ntpdate \[_SERVER\_IP1_\] \[_SERVER\_IP2_\]...

SERVER_IP

Indicates the IP address of the NTP server.

+

Specifies the IP address of the NTP server.

N/A

- - - - - @@ -87,12 +86,12 @@ ping _-k_ ## Example -Enter **ping 192.168.1.10**. +Run **ping 192.168.1.10**. ## Output **Figure 1** Output of pinging the IP address of the TFTP server -![](figure/snipaste_2021-01-26_10-38-58-21.png) +![](figure/snipaste_2021-01-26_10-38-58-26.png) diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-net-ping6.md b/en/device-dev/kernel/kernel-small-debug-shell-net-ping6.md similarity index 93% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-net-ping6.md rename to en/device-dev/kernel/kernel-small-debug-shell-net-ping6.md index 94d42b51b9c..4c91d848aaf 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-net-ping6.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-net-ping6.md @@ -1,23 +1,23 @@ -# ping6 +# ping6 - [Command Function](#section1057291313393) - [Syntax](#section199901315123919) -- [Parameter Description](#section4679319113919) +- [Parameters](#section4679319113919) - [Usage](#section1127917226399) - [Example](#section7211192553917) - [Output](#section4846145221215) ## Command Function -This command is used to test whether the IPv6 network connection is normal. +This command is used to test an IPv6 network connection. ## Syntax ping6 _\[-c count\] \[-I interface / sourceAddress\] destination_ -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description

Parameter

@@ -34,36 +34,35 @@ ping _-k_

IP

Indicates the IPv4 address whose network connectivity is to be tested.

+

Specifies the IPv4 address whose network connectivity is to be tested.

N/A

-n cnt

Indicates the number of execution times. If this parameter is not specified, the default value is 4.

+

Specifies the number of execution times. If this parameter is not specified, the default value is 4.

1-65535

-w interval

Indicates the interval between two ping packets, in ms.

+

Specifies the interval (in ms) between two ping packets.

>0

-l data_len

Indicates the length of the ping packet, that is, the ICMP echo request packet.

-

The ICMP packet header is not included.

+

Specifies the data length of the ICMP echo request packet, excluding the ICMP packet header.

0-65500

-t

Indicates a permanent ping thread, which will be killed until the ping -k command is executed.

+

Specifies a permanent ping thread, which will be killed until the ping -k command is executed.

N/A

- @@ -44,14 +44,14 @@ ping6 _\[-c count\] \[-I interface / sourceAddress\] destination_ - - diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-net-tel.md b/en/device-dev/kernel/kernel-small-debug-shell-net-telnet.md similarity index 91% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-net-tel.md rename to en/device-dev/kernel/kernel-small-debug-shell-net-telnet.md index 30c190696e0..af27c72b281 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-net-tel.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-net-telnet.md @@ -1,8 +1,8 @@ -# telnet +# telnet - [Command Function](#section3551830123913) - [Syntax](#section14897133233918) -- [Parameter Description](#section977718353392) +- [Parameters](#section977718353392) - [Usage](#section134991538183916) - [Example](#section1097414426398) - [Output](#section11846624191310) @@ -15,9 +15,9 @@ This command is used to enable or disable the Telnet server service. telnet \[_on | off_\] -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description

Parameter

@@ -30,7 +30,7 @@ ping6 _\[-c count\] \[-I interface / sourceAddress\] destination_

-c count

Indicates the number of execution times. If this parameter is not specified, the default value is 4.

+

Specifies the number of execution times. If this parameter is not specified, the default value is 4.

1~65535

-I sourceAddress

Indicates the source IPv6 address to be pinged.

+

Specifies the source IPv6 address.

N/A

destination

Indicates the IP address of the destination host.

+

Specifies the IP address of the destination host.

N/A

- - - - - -

Parameter

@@ -51,12 +51,12 @@ telnet \[_on | off_\] - Currently, multiple clients \(Telnet + IP\) cannot connect to the development board at the same time. >![](../public_sys-resources/icon-notice.gif) **NOTICE:** - >Telnet is under debugging and disabled by default. Do not use it in formal products. + >Telnet is used for debugging and disabled by default. Do not use it in formal products. ## Example -Enter **telnet on**. +Run **telnet on**. ## Output diff --git a/en/device-dev/kernel/kernel-lite-small-shell-cmd-net-tftp.md b/en/device-dev/kernel/kernel-small-debug-shell-net-tftp.md similarity index 89% rename from en/device-dev/kernel/kernel-lite-small-shell-cmd-net-tftp.md rename to en/device-dev/kernel/kernel-small-debug-shell-net-tftp.md index 3da40ac274b..21983306a47 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-cmd-net-tftp.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-net-tftp.md @@ -1,8 +1,8 @@ -# tftp +# tftp - [Command Function](#section15142134573911) - [Syntax](#section20958174917394) -- [Parameter Description](#section576613532395) +- [Parameters](#section576613532395) - [Usage](#section149795134408) - [Example](#section148921918114015) - [Output](#section7872155631313) @@ -11,15 +11,15 @@ Trivial File Transfer Protocol \(TFTP\) is a protocol in the TCP/IP protocol suite for transferring files between clients and servers. TFTP provides simple and low-overhead file transfer services. The port number is 69. -The **tftp** command is used to download files from the TFTP server. +The **tftp** command is used to transfer files with a TFTP server. ## Syntax ./bin/tftp _<-g/-p\>_ _-l_ _\[FullPathLocalFile\] -r \[RemoteFile\] \[Host\]_ -## Parameter Description +## Parameters -**Table 1** Parameters +**Table 1** Parameter description - - - - @@ -69,7 +69,7 @@ The **tftp** command is used to download files from the TFTP server. 3. The size of the file to be transferred cannot exceed 32 MB. >![](../public_sys-resources/icon-notice.gif) **NOTICE:** - >TFTP is under debugging and disabled by default. Do not use it in formal products. + >TFTP is used for debugging and disabled by default. Do not use it in formal products. ## Example diff --git a/en/device-dev/kernel/kernel-small-debug-shell-net.md b/en/device-dev/kernel/kernel-small-debug-shell-net.md new file mode 100644 index 00000000000..3b0fc77fc7e --- /dev/null +++ b/en/device-dev/kernel/kernel-small-debug-shell-net.md @@ -0,0 +1,25 @@ +# Network Commands + +- **[arp](kernel-small-debug-shell-net-arp.md)** + +- **[dhclient](kernel-small-debug-shell-net-dhclient.md)** + +- **[dns](kernel-small-debug-shell-net-dns.md)** + +- **[ifconfig](kernel-small-debug-shell-net-ifconfig.md)** + +- **[ipdebug](kernel-small-debug-shell-net-ipdebug.md)** + +- **[netstat](kernel-small-debug-shell-net-netstat.md)** + +- **[ntpdate](kernel-small-debug-shell-net-ntpdate.md)** + +- **[ping](kernel-small-debug-shell-net-ping.md)** + +- **[ping6](kernel-small-debug-shell-net-ping6.md)** + +- **[telnet](kernel-small-debug-shell-net-telnet.md)** + +- **[tftp](kernel-small-debug-shell-net-tftp.md)** + + diff --git a/en/device-dev/kernel/kernel-lite-small-shell-des.md b/en/device-dev/kernel/kernel-small-debug-shell-overview.md similarity index 55% rename from en/device-dev/kernel/kernel-lite-small-shell-des.md rename to en/device-dev/kernel/kernel-small-debug-shell-overview.md index 2bbbee37a67..5f10425f3a5 100644 --- a/en/device-dev/kernel/kernel-lite-small-shell-des.md +++ b/en/device-dev/kernel/kernel-small-debug-shell-overview.md @@ -1,16 +1,16 @@ -# Introduction to the Shell +# Introduction to the Shell - [Important Notes](#section12298165312328) -The Shell provided by the OpenHarmony kernel supports commonly used commissioning commands, including those related to the system, files, networks, and dynamic loading. In addition, you can add custom commands to the shell of the OpenHarmony kernel to address your service needs. +The shell provided by the OpenHarmony kernel supports commonly used debugging commands. You can also add and custom commands to the shell of the OpenHarmony kernel to address your service needs. The common debugging commands include the following: -- System-related commands: querying information about system tasks, kernel semaphores, system software timers, CPU usage, and current interrupts +- System commands: commands used to query information, such as system tasks, semaphores, system software timers, CPU usage, and interrupts. -- File-related commands: basic functions such as **ls** and **cd** +- File commands: commands used to manage files and directories, such as **ls** and **cd**. -- Network-related commands: querying the IP addresses of other devices connected to the development board, querying the IP address of the local device, testing the network connectivity, and setting the access point \(AP\) and station modes of the development board +- Network commands: commands used to query the IP addresses of other devices connected to the development board, querying the IP address of the local device, testing network connectivity, and setting the access point \(AP\) and station modes of the development board. - For details about the process of adding commands, see [Shell Command Development Guidelines](kernel-lite-small-shell-guide.md) and [Shell Command Programming Example](kernel-lite-small-shell-sample.md). + For details about how to add a command, [Shell Command Development Guidelines](kernel-small-debug-shell-guide.md) and [Shell Command Programming Example](kernel-small-debug-shell-build.md). ## Important Notes @@ -18,7 +18,7 @@ The Shell provided by the OpenHarmony kernel supports commonly used commissionin Note the following when using the shell: - You can use the **exec** command to run executable files. -- The shell supports English input in default mode. If you enter Chinese characters in the UTF-8 format, you can delete them only by pressing the backspace key for three times. +- The shell supports English input by default. To delete the Chinese characters entered in UTF-8 format, press the backspace key for three times. - When entering shell commands, file names, and directory names, you can press **Tab** to enable automatic completion. If there are multiple completions, multiple items are printed based on the same characters they have. If more than 24 lines of completions are available, the system displays message "Display all num possibilities?\(y/n\)", asking you to determine whether to print all items. You can enter **y** to print all items or enter **n** to exit the printing. If more than 24 lines are printed after your selection, the system displays "--More--". In this case, you can press **Enter** to continue the printing or press **q** \(or **Ctrl+c**\) to exit. @@ -28,9 +28,9 @@ Note the following when using the shell: - You are not advised to run shell commands to perform operations on device files in the **/dev** directory, which may cause unexpected results. -- The shell functions do not comply with the POSIX standards and are used only for commissioning. +- The shell functions do not comply with the POSIX standards and are used only for debugging. >![](../public_sys-resources/icon-notice.gif) **NOTICE:** - >The shell functions are used for commissioning only and can be enabled only in the Debug version \(by enabling the **LOSCFG\_DEBUG\_VERSION** configuration item using **menuconfig**\). + >The shell functions are used for debugging only and can be enabled only in the Debug version \(by enabling the **LOSCFG\_DEBUG\_VERSION** configuration item using **menuconfig**\). diff --git a/en/device-dev/kernel/kernel-small-debug-shell.md b/en/device-dev/kernel/kernel-small-debug-shell.md new file mode 100644 index 00000000000..796f4774180 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-debug-shell.md @@ -0,0 +1,15 @@ +# Shell + +- **[Introduction to the Shell](kernel-small-debug-shell-overview.md)** + +- **[Shell Command Development Guidelines](kernel-small-debug-shell-guide.md)** + +- **[Shell Command Programming Example](kernel-small-debug-shell-build.md)** + +- **[Shell Command Reference](kernel-small-debug-shell-details.md)** + +- **[Magic Key](kernel-small-debug-shell-magickey.md)** + +- **[User-Space Exception Information](kernel-small-debug-shell-error.md)** + + diff --git a/en/device-dev/kernel/kernel-small-debug-trace-other-faqs.md b/en/device-dev/kernel/kernel-small-debug-trace-other-faqs.md new file mode 100644 index 00000000000..eeaa4efd5a9 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-debug-trace-other-faqs.md @@ -0,0 +1,36 @@ +# Common Fault Locating Methods + +- [Locating the Fault based on Exception Information](#section695838161711) +- [Checking Memory Pool Integrity](#section362917569179) +- [Locating Memory Overwriting for a Global Variable](#section18971311121816) + +## Locating the Fault based on Exception Information + +When the system is suspended unexpectedly, information about key registers is displayed on the serial port, as shown in the following figure. The information can be used to locate the function where the exception occurs and the related call stack. + +Exception information + +![](figure/en-us_image_0000001173429547.png) + +The exception information in the preceding figure is described as follows: + +①: indicates that the exception occurs in the kernel space. + +②: indicates the exception type. The value of **far** is the address accessed by the CPU when the exception occurs. + +③: The **pc** value indicates the location of the instruction being executed when the exception occurs. The **klr** value indicates the next instruction to be executed. \(Note: You do not need to pay attention to the value of **klr** if **traceback 0 lr** in ④ has a value.\) + +④: The **lr** values indicate the locations of the instructions to be executed by the program counter in sequence in normal cases. + +You also need to check the **OHOS\_Image.asm** file \(assembly file corresponding to the burnt system image **OHOS\_Image.bin**\) in the **out** directory to determine the locations of the instructions corresponding to **pc** and **lr**. Based on the locations of the instructions, determine the functions using the instructions and the functions where **lr**s are located in sequence. In this way, you can obtain the function call relationships when the exception occurs. + +## Checking Memory Pool Integrity + +You may not directly locate the fault only with the exception information. Sometimes, the fault cannot be located due to incorrect register values. If you suspect that the fault is caused by heap memory overwriting, you can call **LOS\_MemIntegrityCheck** to check the memory pool integrity. The **LOS\_MemIntegrityCheck** function traverses all nodes in the dynamic memory pool of the system. If all nodes are normal, the function returns **0** and no information is printed. Otherwise, error information is printed. This function uses **\(VOID \*\)OS\_SYS\_MEM\_ADDR** as the input parameter. + +Generally, **LOS\_MemIntegrityCheck** is called before and after the suspected service logic code to locate the heap memory overwriting. If the service code is correct, **LOS\_MemIntegrityCheck** can be called successfully. By doing this, you can narrow down and locate the fault. + +## Locating Memory Overwriting for a Global Variable + +If the memory of a global variable is illegally accessed, locate the address of the global variable in the **OHOS\_Image.map** file and pay special attention to the variables recently used before the address. There is a high probability that memory overwriting occurs when the preceding variables \(especially variables of the array type or variables that are forcibly converted to other types\) are used. + diff --git a/en/device-dev/kernel/kernel-small-debug-trace-other-lastwords.md b/en/device-dev/kernel/kernel-small-debug-trace-other-lastwords.md new file mode 100644 index 00000000000..632809b2a36 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-debug-trace-other-lastwords.md @@ -0,0 +1,96 @@ +# Dying Gasp + +- [When to Use](#section158501652121514) +- [Available APIs](#section1186411122215) +- [Parameters](#section1083765723015) +- [How to Develop](#section783435801510) + +## When to Use + +For a device without a serial port, save the exception information to a non-volatile storage medium to facilitate fault location during system running. + +## Available APIs + +The system provides a mechanism to save printed exception information to a non-volatile storage medium. You can register the hook functions for printing information when the read and write operations are abnormal. In this way, fault information can be saved on different storage media, facilitating fault locating for devices without serial ports. The API is **LOS\_ExcInfoRegHook**. This function is declared in **los\_config.h**. The function prototype is as follows: + +``` +typedef VOID (*log_read_write_fn)(UINT32 startAddr, UINT32 space, UINT32 rwFlag, CHAR *buf); +... +VOID LOS_ExcInfoRegHook(UINT32 startAddr, UINT32 space, CHAR *buf, log_read_write_fn hook); +``` + +## Parameters + +**Table 1** LOS\_ExcInfoRegHook parameter description + + +

Parameter

@@ -32,7 +32,7 @@ The **tftp** command is used to download files from the TFTP server.

-g/-p

Indicates the file transfer direction.

+

Specifies the file transfer direction.

  • -g: downloads files from the TFTP server.
  • -p: uploads files to the TFTP server.

N/A

@@ -40,21 +40,21 @@ The **tftp** command is used to download files from the TFTP server.

-l FullPathLocalFile

Indicates the complete path of a local file.

+

Specifies the complete path of a local file.

N/A

-r RemoteFile

Indicates the file name on the server.

+

Specifies the file name on the server.

N/A

Host

Indicates the server IP address.

+

Specifies the server IP address.

N/A

+ + + + + + + + + + + + + + + + +

Parameter

+

Description

+

startAddr

+

Start address of the physical medium to be got or set

+

space

+

Size of the space

+

buf

+

Memory buffer used to get or set the exception information

+

log_read_write_fn

+

Function used to get or set the exception information

+
+ +**Table 2** log\_read\_write\_fn parameter description + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

startAddr

+

Start address of the physical medium to be got or set

+

space

+

Size of the space

+

rwFlag

+

Read/Write flag. The value 0 indicates write, and the value 1 indicates read.

+

buf

+

Memory buffer used to get or set the exception information

+
+ +## How to Develop + +The dying gasp function depends on the macro **LOSCFG\_SAVE\_EXCINFO**. Before using this function, choose **Debug**-\> **Enable Saving Exception Information** in the configuration items to enable this macro. If this macro is disabled, this function cannot be used. Then, call **LOS\_ExcInfoRegHook** in **SystemInit** to register the position, size, memory buffer, and access function for accessing the exception information. When an exception occurs in the system, the system saves the exception information in the memory buffer passed in the registration, and then calls the registered access function to write the exception information to the physical storage medium. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- The location registered to storing the exception information cannot overlap with other storage locations. +>- The registered memory buffer should be greater than or equal to 16 KiB. Otherwise, the exception information stored may be incomplete. +>- The exception information can be accessed successfully only when the driver of the storage medium corresponding to the registered read/write function is normal. + diff --git a/en/device-dev/kernel/kernel-small-debug-trace.md b/en/device-dev/kernel/kernel-small-debug-trace.md new file mode 100644 index 00000000000..45045314597 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-debug-trace.md @@ -0,0 +1,102 @@ +# Trace + +- [Basic Concepts](#section531482192018) +- [Working Principles](#section5125124532010) +- [Usage](#section1381714413216) + +## Basic Concepts + +Trace is a functional framework provided by the kernel for tracing key processes of modules. You can implement trace at key positions for modules based on mechanism requirements, and export the traced information as files or in other modes for further analysis. + +The requirements for trace are as follows: + +1. The information needs to be recorded as soon as possible to minimize the impact on the system time sequence. +2. Use as little space as possible to store as much as possible data to reduce memory consumption. + +## Working Principles + +Initialize the trace function at the beginning of the kernel startup. When the modules that support the trace function are initialized, register the trace type and callback functions. The position of the trace point that triggers trace recording can be determined by each module. + +When a trace point is triggered, the trace module encapsulates the input information and adds the trace frame header information, including the trace type, ID of the running CPU, ID of the running task, relative timestamp of the running task, and ID of the running process. Then, the trace frame is recorded in a pre-requested cyclic buffer. + +If too many frames are recorded in the cyclic buffer, earlier frames will be overwritten to ensure that the information in the buffer is always the latest. The traced data in the cyclic buffer can be exported, for example, by using file dumping, for further analysis. The exported files are sorted by timestamp. + +![](figure/en-us_image_0000001127390512.png) + +## Usage + +1. Configure the trace macro **LOSCFG\_KERNEL\_TRACE**, which is disabled by default. You can enable it by choosing **Kernel** \> **Enable Trace Feature** on the **menuconfig**. +2. Call **OsTraceInit** to complete trace initialization. +3. Define the traceframe structure of the module in **los\_trace\_frame.h**, and implement the trace callback function of the module in **los\_trace\_frame.c**. +4. Call **LOS\_TraceReg** to register trace in the initialization or earlier phase for the modules to be traced. +5. Enable the trace function at the position where the tracing starts and disable the trace function at the position where the tracing stops. +6. Call **LOS\_Trace2File** to export traced data to a file. +7. Perform further data analysis based on the frame header and frame body structure. + +**Available APIs** + +The following table describes APIs available for the OpenHarmony LiteOS-A trace framework. For more details about the APIs, see the API reference. + +**Table 1** Trace Interface Description + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Category

+

API

+

Description

+

Tracing information

+

LOS_Trace

+

Traces information.

+

Registration and unregistration

+

LOS_TraceReg

+

Registers the trace type.

+

LOS_TraceUnreg

+

Unregisters the trace type.

+

Switch

+

LOS_TraceTypeSwitch

+

Enables or disables the specified type of trace.

+

LOS_TraceSwitch

+

Enables or disables the trace function.

+

Data export

+

LOS_TraceBufDataGet

+

Exports trace data to the heap cache. (The cache space is allocated internally and must be released explicitly.)

+

LOS_Trace2File

+

Saves the trace data to the file system (depending on the file system).

+
+ +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>- The frame buffer is a cyclic buffer. When it is full, a subsequent write will cause overwrite of the oldest data. You can configure the buffer size in the **LOS\_TRACE\_BUFFER\_SIZE** macro in **los\_config.h**. The default size is **512** KiB. +>- Although trace has completed the assembly and recording as soon as possible, it still has impact on the overall performance of the system. +>- Trace supports concurrent recording of multiple modules. You can reduce the data analysis volume by enabling or disabling the trace function for different modules on demand. +>- The task, memory, and liteipc modules of the kernel support the trace recording function. + diff --git a/en/device-dev/kernel/kernel-small-debug.md b/en/device-dev/kernel/kernel-small-debug.md new file mode 100644 index 00000000000..a9ffe18bdfc --- /dev/null +++ b/en/device-dev/kernel/kernel-small-debug.md @@ -0,0 +1,13 @@ +# Debugging and Tools + +- **[Shell](kernel-small-debug-shell.md)** + +- **[Trace](kernel-small-debug-trace.md)** + +- **[Process Commissioning](kernel-small-debug-process.md)** + +- **[Memory Debugging](kernel-small-debug-memory.md)** + +- **[Other Kernel Debugging Methods](kernel-small-debug-other.md)** + + diff --git a/en/device-dev/kernel/kernel-small-overview.md b/en/device-dev/kernel/kernel-small-overview.md new file mode 100644 index 00000000000..a4590c1e88c --- /dev/null +++ b/en/device-dev/kernel/kernel-small-overview.md @@ -0,0 +1,97 @@ +# Kernel Overview + +- [Overview](#section6614133913129) +- [Kernel Architecture](#section827143517385) + +## Overview + +The OpenHarmony lightweight kernel is a next-generation kernel developed based on the lightweight IoT operating system Huawei LiteOS. Two types of kernels are available: LiteOS-M and LiteOS-A. The LiteOS-M kernel is designed for lightweight systems, which support MCU memory of hundreds of KB and MPU isolation. FreeRTOS and ThreadX are counterparts in the industry. The LiteOS-A kernel is ideal for small systems, which support memory in MB and MMU isolation. Similar kernels include Zircon and Darwin. This development guide applies to the LiteOS-A kernel. + +To adapt to the rapid development of the IoT industry, the OpenHarmony lightweight kernel is continuously optimized and expanded to provide application developers with friendly development experience and unified and open ecosystem capabilities. The LiteOS-A has the following new features: + +- Diversified kernel mechanisms + + Mechanisms such as virtual memory, system calling, multi-core, lightweight Inter-Process Communication \(IPC\), and Discretionary Access Control \(DAC\) are added to enrich kernel capabilities. To improve compatibility with software and developer experience, multiple processes are supported to isolate memory between applications and improve system robustness. + +- Unified hardware driver foundation \(HDF\) + + The HDF provides unified driver standards and access mode for device vendors. This simplifies porting of drivers and allows one-time development for multi-device deployment. + +- 1200+ standard POSIX APIs + + The kernel supports more Portable Operating System Interface \(POSIX\) APIs, which facilitate software development and porting and improve developers' experience. + +- Decoupling between the kernel and hardware + + The lightweight kernel is highly decoupled from the hardware. New board can be added without modifying the kernel code. + + +## Kernel Architecture + +The lightweight kernel consists of the basic kernel, extension components, HDF, and POSIX interface. Different from the microkernel which is running in the user space, the extended functions, such as file system and network protocols, of the lightweight kernel are running in the kernel address space. The direct function calling between components is much faster than inter-process communication \(IPC\) or remote procedure calls \(RPCs\). + +**Figure 1** Architecture of the OpenHarmony LiteOS-A kernel + + +![](figure/en-us_image_0000001191018697.png) + +- The basic kernel implements basic kernel mechanisms, such as scheduling, memory management, and interrupts. +- Extended components include file systems, network protocols, and security functions. +- The HDF provides a unified standard framework for peripheral drivers. +- The POSIX interface allows POSIX-compliant applications to be easily ported to the OpenHarmony. + +**Basic Kernel** + +The basic kernel implements the following mechanisms: + +- Process management: supports processes and threads and task-based process implementation. Processes have independent 4 GB address space. +- Multi-core scheduling: supports task and affinity-based interrupt-core binding settings. +- Real-time scheduling: Tasks are scheduled based on priorities. The tasks of the same priority are scheduled by using the time slice round-robin. +- Virtual memory: supports page fault. The kernel space is statically mapped to 0-1 GiB addresses, and the user space is mapped to 1-4 GiB addresses. +- Kernel communication: supports events, semaphores, mutexes, and queues. +- Time management: supports software timers and system clock. + +**File systems** + +The LiteOS-A supports multiple file systems, such as FAT, JFFS2, NFS, ramfs, and procfs, and provides complete POSIX standard APIs externally. The VFS layer is used as the unified adaptation layer framework, which facilitates the porting of new file systems. Each file system can automatically use the rich functions provided by the VFS layer. + +The following features are supported: + +- Complete POSIX API support +- File-level cache \(page cache\) +- Disk-level cache \(Bcache\) +- Directory cache \(path cache\) +- DAC capability +- Nested mounting and file system stacking +- Feature tailoring and flexible configuration of resource usage + +**Network Protocols** + +The LiteOS-A network protocols are constructed based on the open-source lightweight IP \(lwIP\) and have also optimized the RAM usage and improved the transmission performance over LWIP. + +- Protocols: IP, IPv6, ICMP, ND, MLD, UDP, TCP, IGMP, ARP, PPPoS, and PPPoE +- API: socket API +- Extended features: IP forwarding based on multiple network ports, TCP congestion control, round-trip time \(RTT\) estimation, and fast recovery/retransmission +- Application programs: HTTP\(S\) service, SNTP client, SMTP\(S\) client, ping tool, NetBIOS name service, mDNS response program, MQTT client, TFTP service, DHCP client, DNS client, AutoIP/APIPA \(zero configuration\), and SNMP agent + +**HDF** + +The LiteOS-A integrates the HDF framework. The HDF framework provides a more precise and efficient development environment, aiming to realize one-time development for multi-device deployment. The HDF supports: + +- Multi-kernel platform +- User-mode drivers +- Configurable component-based driver model +- Message-based driver interface model +- Object-based driver and device management +- Unified hardware driver interface \(HDI\) +- Power management and plug and play \(PnP\) + +**Extension Components** + +Extension components provide optional but important mechanism for extending kernel functions. + +- Dynamic linking: supports standard Executable and Linkable Format \(ELF\) execution and randomization of loading addresses. +- IPC: supports LiteIPC and standard mechanisms such as Mqueue, Pipe, Fifo, and Signal. +- System calling: supports 170+ system calls and the virtual dynamic shared object \(vDSO\) mechanism. +- Permission management: supports process-based privilege division and control, and file owner, group, and owner \(UGO\) permission configuration. + diff --git a/en/device-dev/kernel/kernel-small-start-kernel.md b/en/device-dev/kernel/kernel-small-start-kernel.md new file mode 100644 index 00000000000..e097647772e --- /dev/null +++ b/en/device-dev/kernel/kernel-small-start-kernel.md @@ -0,0 +1,135 @@ +# Startup in Kernel Space + +- [Kernel Startup Process](#section9882154318299) +- [Programming Example](#section19145114703217) + - [Example Description](#section1045483642518) + + +## Kernel Startup Process + +The kernel startup process consists of the assembly startup and C language startup, as shown in the following figure. The assembly startup involves initializing CPU settings, disabling dCache/iCache, enabling the FPU and NEON, setting the MMU to establish the virtual-physical address mapping, setting the system stack, clearing the BSS segment, and calling the main function of the C language. The C language startup involves starting the OsMain function and starting scheduling. As shown in the following figure, the OsMain function is used for basic kernel initialization and architecture- and board-level initialization. The kernel startup framework leads the initialization process. The right part of the figure shows the phase in which external modules can register with the kernel startup framework and starts. The following table describes each phase. + +**Figure 1** Kernel startup process + + +![](figure/en-us_image_0000001178856385.png) + +**Table 1** Startup framework levels + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Level

+

Description

+

LOS_INIT_LEVEL_EARLIEST

+

Earliest initialization.

+

The initialization is architecture-independent. The board and subsequent modules initialize the pure software modules on which they depend.

+

Example: trace module

+

LOS_INIT_LEVEL_ARCH_EARLY

+

Early initialization of the architecture.

+

The initialization is architecture-dependent. Subsequent modules initialize the modules on which they depend. It is recommended that functions not required for startup be placed at LOS_INIT_LEVEL_ARCH.

+

LOS_INIT_LEVEL_PLATFORM_EARLY

+

Early initialization of the platform.

+

The initialization depends on the board platform and drivers. Subsequent modules initialize the modules on which they depend. It is recommended that functions required for startup be placed at LOS_INIT_LEVEL_PLATFORM.

+

Example: UART module

+

LOS_INIT_LEVEL_KMOD_PREVM

+

Kernel module initialization before memory initialization.

+

Initialize the modules that need to be enabled before memory initialization.

+

LOS_INIT_LEVEL_VM_COMPLETE

+

Initialization after the basic memory is ready.

+

After memory initialization, initialize the modules that need to be enabled and do not depend on inter-process communication (IPC) and system processes.

+

Example: shared memory function

+

LOS_INIT_LEVEL_ARCH

+

Late initialization of the architecture.

+

The initialization is related to the architecture extension functions. Subsequent modules initialize the modules on which they depend.

+

LOS_INIT_LEVEL_PLATFORM

+

Late initialization of the platform.

+

The initialization depends on the board platform and drivers. Subsequent modules initialize the modules on which they depend.

+

Example: initialization of the driver kernel abstraction layer (MMC and MTD)

+

LOS_INIT_LEVEL_KMOD_BASIC

+

Initialization of the kernel basic modules.

+

Initialize the basic modules that can be detached from the kernel.

+

Example: VFS initialization

+

LOS_INIT_LEVEL_KMOD_EXTENDED

+

Initialization of the kernel extended modules.

+

Initialize the extended modules that can be detached from the kernel.

+

Example: initialization of system call, ProcFS, Futex, HiLog, HiEvent, and LiteIPC

+

LOS_INIT_LEVEL_KMOD_TASK

+

Kernel task creation

+

Create kernel tasks (kernel thread and software timer tasks).

+

Example: creation of the resident resource reclaiming task, SystemInit task, and CPU usage statistics task.

+
+ +## Programming Example + +### Example Description + +Add a kernel module and register the initialization function of the module to the kernel startup process to complete the module initialization during the kernel initialization process. + +**Sample Code** + +``` +/* Header file of the kernel startup framework */ +#include "los_init.h" +... + +/* Initialization function of the new module */ +unsigned int OsSampleModInit(void) +{ + PRINTK("OsSampleModInit SUCCESS!\n"); + ...... +} +... +/* Register the new module at the target level of the startup framework. */ +LOS_MODULE_INIT(OsSampleModInit, LOS_INIT_LEVEL_KMOD_EXTENDED); +``` + +**Verification** + +``` +main core booting up... +OsSampleModInit SUCCESS! +releasing 1 secondary cores +cpu 1 entering scheduler +cpu 0 entering scheduler +``` + +According to the information displayed during the system startup, the kernel calls the initialization function of the registered module during the startup to initialize the module. + +>![](../public_sys-resources/icon-note.gif) **NOTE:** +>Modules at the same level cannot depend on each other. It is recommended that a new module be split based on the preceding startup phase and be registered and started as required. +>You can view the symbol table in the **.rodata.init.kernel.\*** segment of the **OHOS\_Image.map** file generated after the build is complete, so as to learn about the initialization entry of each module that has been registered with the kernel startup framework and check whether the newly registered initialization entry takes effect. + diff --git a/en/device-dev/kernel/kernel-small-start-user.md b/en/device-dev/kernel/kernel-small-start-user.md new file mode 100644 index 00000000000..106e557d153 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-start-user.md @@ -0,0 +1,82 @@ +# Startup in User Space + +- [Startup of the Root Process in User Space](#section79911135647) + - [Startup Process of the Root Process](#section1184317581349) + - [Responsibilities of the Root Process](#section1590220321759) + +- [Running Programs in User Space](#section194576310611) + +## Startup of the Root Process in User Space + +The root process is the first user-space process in the system. The process ID is 1. The root process is the ancestor of all user-space processes. + +**Figure 1** Process tree +![](figure/process-tree.png "process-tree") + +### Startup Process of the Root Process + +Use the link script to place the following init startup code to the specified location in the system image. + +``` +#define LITE_USER_SEC_ENTRY __attribute__((section(".user.entry"))) +LITE_USER_SEC_ENTRY VOID OsUserInit(VOID *args) +{ +#ifdef LOSCFG_KERNEL_DYNLOAD + sys_call3(__NR_execve, (UINTPTR)g_initPath, 0, 0); +#endif + while (true) { + } +} +``` + +During system startup, **OsUserInitProcess** is called to start the **init** process. The process is as follows: + +1. The kernel calls **OsLoadUserInit** to load the code. +2. A process space is created to start the **/bin/init** process. + +### Responsibilities of the Root Process + +- Starts key system programs or services, such as shell. + + >![](../public_sys-resources/icon-note.gif) **NOTE:** + >In OpenHarmony, the **init** process reads the **/etc/init.cfg** file and runs specified commands or starts specified processes based on configurations. For details, see [init Module](https://gitee.com/openharmony/docs/blob/master/en/device-dev/subsystems/subsys-boot-init.md). + + +- Monitors the process for reclaiming the orphan process and clears the zombie processes in child processes. + +## Running Programs in User Space + +Common compilation modes of user-space programs include: + +1. [Compilation using the framework](https://gitee.com/openharmony/docs/blob/master/en/device-dev/quick-start/quickstart-lite-steps-board3516-running.md) +2. Manual compilation + + Example: + + ``` + clang --target=arm-liteos --sysroot=prebuilts/lite/sysroot -o helloworld helloworld.c + ``` + + Before running the **clang** command, install the LLVM compiler. For details, see [Installing LLVM](https://gitee.com/openharmony/docs/blob/master/en/device-dev/quick-start/quickstart-lite-env-setup-lin.md). + + **--target=arm-liteos**: specifies that the compilation platform is arm-liteos. + + **--sysroot=$\{YOUR\_ROOT\_PATH\}/prebuilts/lite/sysroot**: specifies the directory in which you can search for the header file and the dependent standard libraries. + + +A user-space program can be started in either of the following ways: + +- Run the shell command to start the process. + + ``` + OHOS $ exec helloworld + OHOS $ ./helloworld + OHOS $ /bin/helloworld + ``` + + +- Start a new process by calling the POSIX API. + + Use the **Fork\(\)** method to create a process, and call the **exec\(\)** method to execute a new process. + + diff --git a/en/device-dev/kernel/kernel-small-start.md b/en/device-dev/kernel/kernel-small-start.md new file mode 100644 index 00000000000..2e297b9b9a6 --- /dev/null +++ b/en/device-dev/kernel/kernel-small-start.md @@ -0,0 +1,7 @@ +# Kernel Startup + +- **[Startup in Kernel Space](kernel-small-start-kernel.md)** + +- **[Startup in User Space](kernel-small-start-user.md)** + + diff --git a/en/device-dev/kernel/kernel-standard-des.md b/en/device-dev/kernel/kernel-standard-overview.md similarity index 100% rename from en/device-dev/kernel/kernel-standard-des.md rename to en/device-dev/kernel/kernel-standard-overview.md diff --git a/en/device-dev/kernel/kernel-standard.md b/en/device-dev/kernel/kernel-standard.md index cdbdf659c16..3e0b536437a 100644 --- a/en/device-dev/kernel/kernel-standard.md +++ b/en/device-dev/kernel/kernel-standard.md @@ -1,6 +1,6 @@ # Kernel for Standard Systems -- **[Linux Kernel Overview](kernel-standard-des.md)** +- **[Linux Kernel Overview](kernel-standard-overview.md)** - **[Guidelines for Using Patches on OpenHarmony Development Boards](kernel-standard-patch.md)** diff --git a/en/device-dev/porting/Readme-EN.md b/en/device-dev/porting/Readme-EN.md index abfe82c4f40..04ed726f9d1 100644 --- a/en/device-dev/porting/Readme-EN.md +++ b/en/device-dev/porting/Readme-EN.md @@ -1,33 +1,34 @@ # Porting Guide -- [Third-Party Library Porting Guide](transplant-thirdparty.md) - - [Overview](transplant-thirdparty-overview.md) - - [Porting a Library Built Using CMake](transplant-thirdparty-cmake.md) - - [Porting a Library Built Using Makefile](transplant-thirdparty-makefile.md) -- [Mini System SoC Porting Guide](transplant-minichip.md) - - [Porting Preparations](transplant-chip-prepare.md) - - [Before You Start](transplant-chip-prepare-knows.md) - - [Building Adaptation Process](transplant-chip-prepare-process.md) - - [Kernel Porting](transplant-chip-kernel.md) - - [Overview](transplant-chip-kernel-overview.md) - - [Basic Kernel Adaptation](transplant-chip-kernel-adjustment.md) - - [Kernel Porting Verification](transplant-chip-kernel-verify.md) - - [Board-Level OS Porting](transplant-chip-board.md) - - [Overview](transplant-chip-board-overview.md) - - [Board-Level Driver Adaptation](transplant-chip-board-drive.md) - - [Implementation of APIs at the HAL](transplant-chip-board-hal.md) - - [System Modules](transplant-chip-board-component.md) - - [Third-party Module Adaptation](transplant-chip-board-bundle.md) - - [XTS](transplant-chip-board-xts.md) - - [FAQ](transplant-chip-faqs.md) -- [Small System SoC Porting Guide](transplant-smallchip.md) - - [Porting Preparations](transplant-smallchip-prepare.md) - - [Before You Start](transplant-smallchip-prepare-needs.md) - - [Compilation and Building](transplant-smallchip-prepare-building.md) - - [Kernel Porting](transplant-smallchip-kernel.md) - - [LiteOS Cortex-A](transplant-smallchip-kernel-a.md) - - [Linux Kernel](transplant-smallchip-kernel-linux.md) - - [Driver Porting](transplant-smallchip-drive.md) - - [Overview](transplant-smallchip-drive-des.md) - - [Platform Driver Porting](transplant-smallchip-drive-plat.md) - - [Device Driver Porting](transplant-smallchip-drive-oom.md) \ No newline at end of file +- [Third-Party Library Porting Guide](porting-thirdparty.md) + - [Overview](porting-thirdparty-overview.md) + - [Porting a Library Built Using CMake](porting-thirdparty-cmake.md) + - [Porting a Library Built Using Makefile](porting-thirdparty-makefile.md) +- [Mini System SoC Porting Guide](porting-minichip.md) + - [Porting Preparations](porting-chip-prepare.md) + - [Before You Start](porting-chip-prepare-knows.md) + - [Building Adaptation Process](porting-chip-prepare-process.md) + - [Kernel Porting](porting-chip-kernel.md) + - [Overview](porting-chip-kernel-overview.md) + - [Basic Kernel Adaptation](porting-chip-kernel-adjustment.md) + - [Kernel Porting Verification](porting-chip-kernel-verify.md) + - [Board-Level OS Porting](porting-chip-board.md) + - [Overview](porting-chip-board-overview.md) + - [Board-Level Driver Adaptation](porting-chip-board-driver.md) + - [Implementation of APIs at the HAL](porting-chip-board-hal.md) + - [System Modules](porting-chip-board-component.md) + - [Third-party Module Adaptation](porting-chip-board-bundle.md) + - [XTS](porting-chip-board-xts.md) + - [FAQ](porting-chip-faqs.md) +- [Small System SoC Porting Guide](porting-smallchip.md) + - [Porting Preparations](porting-smallchip-prepare.md) + - [Before You Start](porting-smallchip-prepare-needs.md) + - [Compilation and Building](porting-smallchip-prepare-building.md) + - [Kernel Porting](porting-smallchip-kernel.md) + - [LiteOS Cortex-A](porting-smallchip-kernel-a.md) + - [Linux Kernel](porting-smallchip-kernel-linux.md) + - [Driver Porting](porting-smallchip-driver.md) + - [Overview](porting-smallchip-driver-overview.md) + - [Platform Driver Porting](porting-smallchip-driver-plat.md) + - [Device Driver Porting](porting-smallchip-driver-oom.md) +- [Standard System SoC Porting Guide](standard-system-porting-guide.md) \ No newline at end of file diff --git a/en/device-dev/porting/transplant-chip-board-bundle.md b/en/device-dev/porting/porting-chip-board-bundle.md similarity index 99% rename from en/device-dev/porting/transplant-chip-board-bundle.md rename to en/device-dev/porting/porting-chip-board-bundle.md index 1f0a46c450c..1553650f3b5 100644 --- a/en/device-dev/porting/transplant-chip-board-bundle.md +++ b/en/device-dev/porting/porting-chip-board-bundle.md @@ -19,7 +19,6 @@ To use third-party modules in the **third\_party** directory, you may need to } ``` - You are advised to make the preceding modifications in a new **config.h** file or **_xxx_\_alt.c** file. Do not directly edit the code in the original file. Intrusive modifications may cause a large number of scattered conflicts during subsequent version updates, increasing the update maintenance costs. 2. Create a patch. diff --git a/en/device-dev/porting/transplant-chip-board-component.md b/en/device-dev/porting/porting-chip-board-component.md similarity index 100% rename from en/device-dev/porting/transplant-chip-board-component.md rename to en/device-dev/porting/porting-chip-board-component.md diff --git a/en/device-dev/porting/transplant-chip-board-drive.md b/en/device-dev/porting/porting-chip-board-driver.md similarity index 100% rename from en/device-dev/porting/transplant-chip-board-drive.md rename to en/device-dev/porting/porting-chip-board-driver.md diff --git a/en/device-dev/porting/transplant-chip-board-hal.md b/en/device-dev/porting/porting-chip-board-hal.md similarity index 100% rename from en/device-dev/porting/transplant-chip-board-hal.md rename to en/device-dev/porting/porting-chip-board-hal.md diff --git a/en/device-dev/porting/transplant-chip-board-overview.md b/en/device-dev/porting/porting-chip-board-overview.md similarity index 93% rename from en/device-dev/porting/transplant-chip-board-overview.md rename to en/device-dev/porting/porting-chip-board-overview.md index 036de7066ae..926dbb66fe0 100644 --- a/en/device-dev/porting/transplant-chip-board-overview.md +++ b/en/device-dev/porting/porting-chip-board-overview.md @@ -17,7 +17,7 @@ After the minimum system is ported, you can port the board-level system by: ## Board-Level Directory Specifications -For details about board-level system building adaptation, see [Compilation and Building Subsystem](transplant-chip-prepare-process.md). The board-related drivers, software development software kits \(SDKs\), directories, and HAL implementation are stored in the **device** directory. The directory structure and its description are as follows: +For details about board-level system building adaptation, see [Compilation and Building Subsystem](porting-chip-prepare-process.md). The board-related drivers, software development software kits \(SDKs\), directories, and HAL implementation are stored in the **device** directory. The directory structure and its description are as follows: ``` . diff --git a/en/device-dev/porting/transplant-chip-board-xts.md b/en/device-dev/porting/porting-chip-board-xts.md similarity index 100% rename from en/device-dev/porting/transplant-chip-board-xts.md rename to en/device-dev/porting/porting-chip-board-xts.md diff --git a/en/device-dev/porting/porting-chip-board.md b/en/device-dev/porting/porting-chip-board.md new file mode 100644 index 00000000000..62d22e9cbd2 --- /dev/null +++ b/en/device-dev/porting/porting-chip-board.md @@ -0,0 +1,15 @@ +# Board-Level OS Porting + +- **[Overview](porting-chip-board-overview.md)** + +- **[Board-Level Driver Adaptation](porting-chip-board-driver.md)** + +- **[Implementation of APIs at the HAL](porting-chip-board-hal.md)** + +- **[System Modules](porting-chip-board-component.md)** + +- **[Third-party Module Adaptation](porting-chip-board-bundle.md)** + +- **[XTS](porting-chip-board-xts.md)** + + diff --git a/en/device-dev/porting/transplant-chip-faqs.md b/en/device-dev/porting/porting-chip-faqs.md similarity index 100% rename from en/device-dev/porting/transplant-chip-faqs.md rename to en/device-dev/porting/porting-chip-faqs.md diff --git a/en/device-dev/porting/transplant-chip-kernel-adjustment.md b/en/device-dev/porting/porting-chip-kernel-adjustment.md similarity index 100% rename from en/device-dev/porting/transplant-chip-kernel-adjustment.md rename to en/device-dev/porting/porting-chip-kernel-adjustment.md diff --git a/en/device-dev/porting/transplant-chip-kernel-overview.md b/en/device-dev/porting/porting-chip-kernel-overview.md similarity index 100% rename from en/device-dev/porting/transplant-chip-kernel-overview.md rename to en/device-dev/porting/porting-chip-kernel-overview.md diff --git a/en/device-dev/porting/transplant-chip-kernel-verify.md b/en/device-dev/porting/porting-chip-kernel-verify.md similarity index 98% rename from en/device-dev/porting/transplant-chip-kernel-verify.md rename to en/device-dev/porting/porting-chip-kernel-verify.md index 56aa1d19d06..0c22a72f8d1 100644 --- a/en/device-dev/porting/transplant-chip-kernel-verify.md +++ b/en/device-dev/porting/porting-chip-kernel-verify.md @@ -55,5 +55,5 @@ LITE_OS_SEC_TEXT_INIT int main(void) } ``` -If the first task is executed properly, the core process of the minimum system is valid. Due to the XTS framework's dependency on the link scripts of Utils and Bootstrap as well as the building framework, testing the kernel by executing the XTS is not supported. You can test whether the minimum system is completely ported in [XTS](transplant-chip-board-xts.md). +If the first task is executed properly, the core process of the minimum system is valid. Due to the XTS framework's dependency on the link scripts of Utils and Bootstrap as well as the building framework, testing the kernel by executing the XTS is not supported. You can test whether the minimum system is completely ported in [XTS](porting-chip-board-xts.md). diff --git a/en/device-dev/porting/porting-chip-kernel.md b/en/device-dev/porting/porting-chip-kernel.md new file mode 100644 index 00000000000..aa981df6382 --- /dev/null +++ b/en/device-dev/porting/porting-chip-kernel.md @@ -0,0 +1,9 @@ +# Kernel Porting + +- **[Overview](porting-chip-kernel-overview.md)** + +- **[Basic Kernel Adaptation](porting-chip-kernel-adjustment.md)** + +- **[Kernel Porting Verification](porting-chip-kernel-verify.md)** + + diff --git a/en/device-dev/porting/transplant-chip-prepare-knows.md b/en/device-dev/porting/porting-chip-prepare-knows.md similarity index 96% rename from en/device-dev/porting/transplant-chip-prepare-knows.md rename to en/device-dev/porting/porting-chip-prepare-knows.md index 731df255c42..7de3a048b0e 100644 --- a/en/device-dev/porting/transplant-chip-prepare-knows.md +++ b/en/device-dev/porting/porting-chip-prepare-knows.md @@ -33,7 +33,7 @@ The implementation of the OpenHarmony project directories and functions relies o

/device

Board-level code implementation, which is provided by third-party vendors based on the OpenHarmony specifications. For detailed structure about the device directory and porting process, see Board-Level OS Porting.

+

Board-level code implementation, which is provided by third-party vendors based on the OpenHarmony specifications. For detailed structure about the device directory and porting process, see Board-Level OS Porting.

/vendor

@@ -80,5 +80,5 @@ The **device** directory of OpenHarmony is the adaptation directory for the ba ## Porting Specifications - The porting must comply with the basic OpenHarmony principles described in [Contribution](https://gitee.com/openharmony/docs/blob/master/en/contribute/contribution.md). -- The code required for third-party SoC adaptation is stored in the **device**, **vendor**, and **arch** directories. Naming and usage of these directories must comply with specified naming and usage specifications. For details, see [Directory Specifications](transplant-chip-kernel-overview.md) and [Board-Level Directory Specifications](transplant-chip-board-overview.md#section6204129143013). +- The code required for third-party SoC adaptation is stored in the **device**, **vendor**, and **arch** directories. Naming and usage of these directories must comply with specified naming and usage specifications. For details, see [Directory Specifications](porting-chip-kernel-overview.md) and [Board-Level Directory Specifications](porting-chip-board-overview.md#section6204129143013). diff --git a/en/device-dev/porting/transplant-chip-prepare-process.md b/en/device-dev/porting/porting-chip-prepare-process.md similarity index 99% rename from en/device-dev/porting/transplant-chip-prepare-process.md rename to en/device-dev/porting/porting-chip-prepare-process.md index 4cca1dbced7..7c02930ff62 100644 --- a/en/device-dev/porting/transplant-chip-prepare-process.md +++ b/en/device-dev/porting/porting-chip-prepare-process.md @@ -25,7 +25,6 @@ You need to create a directory for the development board. Taking the **RTL8720* The corresponding **config.gni** file will be loaded based on the development board selected by the product. The variables in this file are globally visible to system components. - Taking the RTL8720 development board of Realtek as an example, the **device/realtek/rtl8720/liteos\_m/config.gni** file is configured as follows: ``` diff --git a/en/device-dev/porting/transplant-chip-prepare.md b/en/device-dev/porting/porting-chip-prepare.md similarity index 33% rename from en/device-dev/porting/transplant-chip-prepare.md rename to en/device-dev/porting/porting-chip-prepare.md index f981ad0f6d0..54aa1a6aa75 100644 --- a/en/device-dev/porting/transplant-chip-prepare.md +++ b/en/device-dev/porting/porting-chip-prepare.md @@ -1,7 +1,7 @@ # Porting Preparations -- **[Before You Start](transplant-chip-prepare-knows.md)** +- **[Before You Start](porting-chip-prepare-knows.md)** -- **[Building Adaptation Process](transplant-chip-prepare-process.md)** +- **[Building Adaptation Process](porting-chip-prepare-process.md)** diff --git a/en/device-dev/porting/porting-minichip.md b/en/device-dev/porting/porting-minichip.md new file mode 100644 index 00000000000..41894c11a4b --- /dev/null +++ b/en/device-dev/porting/porting-minichip.md @@ -0,0 +1,11 @@ +# Mini System SoC Porting Guide + +- **[Porting Preparations](porting-chip-prepare.md)** + +- **[Kernel Porting](porting-chip-kernel.md)** + +- **[Board-Level OS Porting](porting-chip-board.md)** + +- **[FAQ](porting-chip-faqs.md)** + + diff --git a/en/device-dev/porting/transplant-smallchip-drive-oom.md b/en/device-dev/porting/porting-smallchip-driver-oom.md similarity index 100% rename from en/device-dev/porting/transplant-smallchip-drive-oom.md rename to en/device-dev/porting/porting-smallchip-driver-oom.md diff --git a/en/device-dev/porting/transplant-smallchip-drive-des.md b/en/device-dev/porting/porting-smallchip-driver-overview.md similarity index 100% rename from en/device-dev/porting/transplant-smallchip-drive-des.md rename to en/device-dev/porting/porting-smallchip-driver-overview.md diff --git a/en/device-dev/porting/transplant-smallchip-drive-plat.md b/en/device-dev/porting/porting-smallchip-driver-plat.md similarity index 100% rename from en/device-dev/porting/transplant-smallchip-drive-plat.md rename to en/device-dev/porting/porting-smallchip-driver-plat.md diff --git a/en/device-dev/porting/porting-smallchip-driver.md b/en/device-dev/porting/porting-smallchip-driver.md new file mode 100644 index 00000000000..62033a430c2 --- /dev/null +++ b/en/device-dev/porting/porting-smallchip-driver.md @@ -0,0 +1,9 @@ +# Driver Porting + +- **[Overview](porting-smallchip-driver-overview.md)** + +- **[Platform Driver Porting](porting-smallchip-driver-plat.md)** + +- **[Device Driver Porting](porting-smallchip-driver-oom.md)** + + diff --git a/en/device-dev/porting/transplant-smallchip-kernel-a.md b/en/device-dev/porting/porting-smallchip-kernel-a.md similarity index 99% rename from en/device-dev/porting/transplant-smallchip-kernel-a.md rename to en/device-dev/porting/porting-smallchip-kernel-a.md index f64a0e832b1..6248678a89d 100644 --- a/en/device-dev/porting/transplant-smallchip-kernel-a.md +++ b/en/device-dev/porting/porting-smallchip-kernel-a.md @@ -259,5 +259,6 @@ mount netstat oom partinfo partition ping pwd reset rm rmdir sem shm stack statfs su swtmr sync systeminfo task telnet touch umount uname v2p virstatfs vmm watch writeproc + ``` diff --git a/en/device-dev/porting/transplant-smallchip-kernel-linux.md b/en/device-dev/porting/porting-smallchip-kernel-linux.md similarity index 99% rename from en/device-dev/porting/transplant-smallchip-kernel-linux.md rename to en/device-dev/porting/porting-smallchip-kernel-linux.md index 3296d239e64..b6f247ff9d6 100644 --- a/en/device-dev/porting/transplant-smallchip-kernel-linux.md +++ b/en/device-dev/porting/porting-smallchip-kernel-linux.md @@ -87,7 +87,6 @@ Based on the preceding process, the recommended verification procedure is as fol In the **_vendor_/\{_company_\}/\{_product_\}/init\_configs/etc** directory, configure startup settings, including the **fstab**, **rsS**, and **S_xxx_** files. Configure the startup settings as needed. - After the build is complete, check the **rootfs** content in the product compilation output directory to determine whether the generated **rootfs.img** file meets the expectation. 2. Debug the init process and shell. diff --git a/en/device-dev/porting/transplant-smallchip-kernel.md b/en/device-dev/porting/porting-smallchip-kernel.md similarity index 33% rename from en/device-dev/porting/transplant-smallchip-kernel.md rename to en/device-dev/porting/porting-smallchip-kernel.md index cd252f8b951..9e53fe2d2fa 100644 --- a/en/device-dev/porting/transplant-smallchip-kernel.md +++ b/en/device-dev/porting/porting-smallchip-kernel.md @@ -1,7 +1,7 @@ # Kernel Porting -- **[LiteOS Cortex-A](transplant-smallchip-kernel-a.md)** +- **[LiteOS Cortex-A](porting-smallchip-kernel-a.md)** -- **[Linux Kernel](transplant-smallchip-kernel-linux.md)** +- **[Linux Kernel](porting-smallchip-kernel-linux.md)** diff --git a/en/device-dev/porting/transplant-smallchip-prepare-building.md b/en/device-dev/porting/porting-smallchip-prepare-building.md similarity index 100% rename from en/device-dev/porting/transplant-smallchip-prepare-building.md rename to en/device-dev/porting/porting-smallchip-prepare-building.md diff --git a/en/device-dev/porting/transplant-smallchip-prepare-needs.md b/en/device-dev/porting/porting-smallchip-prepare-needs.md similarity index 100% rename from en/device-dev/porting/transplant-smallchip-prepare-needs.md rename to en/device-dev/porting/porting-smallchip-prepare-needs.md diff --git a/en/device-dev/porting/transplant-smallchip-prepare.md b/en/device-dev/porting/porting-smallchip-prepare.md similarity index 32% rename from en/device-dev/porting/transplant-smallchip-prepare.md rename to en/device-dev/porting/porting-smallchip-prepare.md index 91c9cecaa0b..dbb8cea8f28 100644 --- a/en/device-dev/porting/transplant-smallchip-prepare.md +++ b/en/device-dev/porting/porting-smallchip-prepare.md @@ -1,7 +1,7 @@ # Porting Preparations -- **[Before You Start](transplant-smallchip-prepare-needs.md)** +- **[Before You Start](porting-smallchip-prepare-needs.md)** -- **[Compilation and Building](transplant-smallchip-prepare-building.md)** +- **[Compilation and Building](porting-smallchip-prepare-building.md)** diff --git a/en/device-dev/porting/transplant-smallchip.md b/en/device-dev/porting/porting-smallchip.md similarity index 30% rename from en/device-dev/porting/transplant-smallchip.md rename to en/device-dev/porting/porting-smallchip.md index 818a9af1211..bfbe8b6af1b 100644 --- a/en/device-dev/porting/transplant-smallchip.md +++ b/en/device-dev/porting/porting-smallchip.md @@ -1,9 +1,9 @@ # Small System SoC Porting Guide -- **[Porting Preparations](transplant-smallchip-prepare.md)** +- **[Porting Preparations](porting-smallchip-prepare.md)** -- **[Kernel Porting](transplant-smallchip-kernel.md)** +- **[Kernel Porting](porting-smallchip-kernel.md)** -- **[Driver Porting](transplant-smallchip-drive.md)** +- **[Driver Porting](porting-smallchip-driver.md)** diff --git a/en/device-dev/porting/transplant-thirdparty-cmake.md b/en/device-dev/porting/porting-thirdparty-cmake.md similarity index 100% rename from en/device-dev/porting/transplant-thirdparty-cmake.md rename to en/device-dev/porting/porting-thirdparty-cmake.md diff --git a/en/device-dev/porting/transplant-thirdparty-makefile.md b/en/device-dev/porting/porting-thirdparty-makefile.md similarity index 98% rename from en/device-dev/porting/transplant-thirdparty-makefile.md rename to en/device-dev/porting/porting-thirdparty-makefile.md index a6d80725a23..738914976b9 100644 --- a/en/device-dev/porting/transplant-thirdparty-makefile.md +++ b/en/device-dev/porting/porting-thirdparty-makefile.md @@ -148,7 +148,7 @@ The following steps show how to configure and modify the toolchains for cross-co ## Library Test -The test procedure for the yxml library is similar to that for the double-conversion library. For details, see the procedure described in [Porting a Library Built Using CMake](transplant-thirdparty-cmake.md#section6686144293611). The following describes how to use the test cases of the yxml library. +The test procedure for the yxml library is similar to that for the double-conversion library. For details, see the procedure described in [Porting a Library Built Using CMake](porting-thirdparty-cmake.md#section6686144293611). The following describes how to use the test cases of the yxml library. **Table 3** Directory structure of the test directory @@ -236,7 +236,7 @@ The following operations are performed based on the assumption that the OpenHarm ## Adding the Compiled yxml Library to the OpenHarmony Project -The procedure for adding the yxml library is almost the same as that for adding the double-conversion library, except that the implementation of **build.gn** and **config.gni** files. For details, see the procedure described in [Porting a Library Built Using CMake](transplant-thirdparty-cmake.md#section1651053153715). +The procedure for adding the yxml library is almost the same as that for adding the double-conversion library, except that the implementation of **build.gn** and **config.gni** files. For details, see the procedure described in [Porting a Library Built Using CMake](porting-thirdparty-cmake.md#section1651053153715). - The implementation of the newly added **BUILD.gn** file in the yxml library is as follows: diff --git a/en/device-dev/porting/transplant-thirdparty-overview.md b/en/device-dev/porting/porting-thirdparty-overview.md similarity index 100% rename from en/device-dev/porting/transplant-thirdparty-overview.md rename to en/device-dev/porting/porting-thirdparty-overview.md diff --git a/en/device-dev/porting/porting-thirdparty.md b/en/device-dev/porting/porting-thirdparty.md new file mode 100644 index 00000000000..5d53a877975 --- /dev/null +++ b/en/device-dev/porting/porting-thirdparty.md @@ -0,0 +1,9 @@ +# Third-Party Library Porting Guide + +- **[Overview](porting-thirdparty-overview.md)** + +- **[Porting a Library Built Using CMake](porting-thirdparty-cmake.md)** + +- **[Porting a Library Built Using Makefile](porting-thirdparty-makefile.md)** + + diff --git a/en/device-dev/porting/porting.md b/en/device-dev/porting/porting.md new file mode 100644 index 00000000000..ef03a9bae81 --- /dev/null +++ b/en/device-dev/porting/porting.md @@ -0,0 +1,9 @@ +# Porting + +- **[Third-Party Library Porting Guide](porting-thirdparty.md)** + +- **[Mini System SoC Porting Guide](porting-minichip.md)** + +- **[Small System SoC Porting Guide](porting-smallchip.md)** + + diff --git a/en/device-dev/porting/standard-system-porting-guide.md b/en/device-dev/porting/standard-system-porting-guide.md new file mode 100644 index 00000000000..2cf403d1ae2 --- /dev/null +++ b/en/device-dev/porting/standard-system-porting-guide.md @@ -0,0 +1,377 @@ +# Standard System Porting Guide + + + + + +- [Defining a Development Board](#Defining-a-Development-Board) + - [1. Defining an SoC](#1-Defining-an-SoC) + - [2. Defining a Product](#2-Defining-a-Product) + - [3. Verifying the Porting](#3-Verifying-the-Porting) +- [Porting the Kernel](#Porting-the-Kernel) + - [1. Adding a Kernel-built Subsystem to the SoC](#1-Adding-a-Kernel-built-Subsystem-to-the-SoC) + - [2. Building the Kernel](#2-Building-the-Kernel) + - [3. Verifying the Porting](#3-Verifying-the-Porting-1) +- [Porting the HDF Driver](#Porting-the-HDF-Driver) + - [1. LCD](#1-lcd) + - [2. Touchscreen](#2-Touchscreen) + - [3. WLAN](#3-wlan) + + + +This document describes the general process for porting a development board, rather than the porting process specific to a System on Chip (SoC). In the future, the community will provide more development board porting examples for your reference. + +## Defining a Development Board + +This document uses the process of porting a development board named **MyProduct** as an example. This development board is provided by **MyProductVendor** and uses the SoC **MySOC** produced by **MySoCVendor**. + +### 1. Defining an SoC + +Create a JSON file named after the SoC name in the **//productdefine/common/device** directory and specify the CPU architecture. + +For example, to port **MySOC**, which uses a 32-bit ARM kernel, configure the file as follows: + +`//productdefine/common/device/MySOC.json` +```json +{ + "target_os": "ohos", + "target_cpu": "arm" +} +``` +Currently, **target_cpu** can be set to **arm** only. In the future, you can set the value depending on the CPU architecture, such as **arm64**, **riscv**, or **x86**. + +### 2. Defining a Product + +Create a JSON file named after the product name in the **//productdefine/common/products** directory. This file is used to describe the SoC used by the product and the required subsystems. +Configure the file as follows: +`//productdefine/common/products/MyProduct.json` +```json +{ + "product_name": "MyProduct", + "product_company" : "MyProductVendor", + "product_device": "MySOC", + "version": "2.0", + "type": "standard", + "parts":{ + "ace:ace_engine_standard":{}, + "ace:napi":{}, + ... + "xts:phone_tests":{} + } +} + +``` +The main configurations are as follows: + +1. **product_device**: SoC used by the product. +2. **type**: system level. In this example, set it to **standard**. +3. **parts**: subsystems to enable. A subsystem can be treated as an independently built functional block. + +You can find available subsystems in **//build/subsystem_config.json**. You can also customize subsystems. + +You are advised to copy the configuration file of Hi3516D V300 and delete the **hisilicon_products** subsystem, which is used to compile the kernel for Hi3516D V300. + +### 3. Verifying the Porting + +Run the following command to start the build of your product: + +`./build.sh --product-name MyProduct ` + +After the build is complete, you can view the built OpenHarmony image file in the following directory: + +`//out/ohos-arm-release/packages/phone/images` + +## Porting the Kernel + +Now, you need to port the Linux kernel to enable it to run successfully. + +### 1. Adding a Kernel-built Subsystem to the SoC + +Add the following subsystem configuration to the **//build/subsystem_config.json** file: + +```json + "MySOCVendor_products": { + "project": "hmf/MySOCVendor_products", + "path": "device/MySOCVendor/MySOC/build", + "name": "MySOCVendor_products", + "dir": "device/MySOCVendor" + }, +``` + +Then, open the configuration file **//productdefine/common/products/MyProduct.json**, which is used to define the product, and add the new subsystem to the product. + +### 2. Building the Kernel + +The path for building the subsystem is defined when you define the subsystem in the previous step. The path is **//device/MySOCVendor/MySOC/build**. Now, you need to create a build script in this path to instruct the build system to build the kernel. + +Currently, the OpenHarmony source code provides the Linux kernel 4.19, which is archived in **//kernel/linux-4.19**. You are advised to use this kernel. However, if the SoC vendor does not provide the kernel of this version, use that provided by the vendor. +You are advised to use patches to modify or extend the SoC kernel. + +The recommended directory structure is as follows: +``` +├── build +│   ├── kernel +│   │ ├── linux +│   │ ├──standard_patch_for_4_19.patch +│   ├── BUILD.gn +│   ├── ohos.build +``` +The **BUILD.gn** file is the only entry for building the subsystem. + +The expected build result is as follows: + +| File| Description| +|------|------| +|$root_build_dir/packages/phone/images/uImage| Kernel image| +|$root_build_dir/packages/phone/images/uboot | Bootloader image| + +### 3. Verifying the Porting + +Now start build, and check whether the kernel image is generated as expected. + +## Porting the HDF Driver + +### 1. LCD +This section describes how to port a Liquid Crystal Display (LCD) driver. The hardware driver framework (HDF) designs a driver model for the LCD. To support an LCD, you must compile a driver, generate a model instance in the driver, and register the instance. + +The LCD drivers are stored in the **//drivers/framework/model/display/driver/panel** directory. + +- Create a panel driver. + +In the **Init** method of the driver, call **RegisterPanel** to register the model instance. +```C +int32_t XXXInit(struct HdfDeviceObject *object) +{ + struct PanelData *panel = CreateYourPanel(); + + // Register the model instance. + if (RegisterPanel(panel) != HDF_SUCCESS) { + HDF_LOGE("%s: RegisterPanel failed", __func__); + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +struct HdfDriverEntry g_xxxxDevEntry = { + .moduleVersion = 1, + .moduleName = "LCD_XXXX", + .Init = XXXInit, +}; + +HDF_INIT(g_xxxxDevEntry); +``` + +- Configure and load the panel driver. +All device information about the product is defined in the **//vendor/MyProductVendor/MyProduct/config/device_info/device_info.hcs** file. Modify the file by adding configurations for the device named **device_lcd** to the host named **display**. +Note: The value of **moduleName** must be the same as that in the panel driver. + +```hcs +root { + ... + display :: host { + device_lcd :: device { + deviceN :: deviceNode { + policy = 0; + priority = 100; + preload = 2; + moduleName = "LCD_XXXX"; + } + } + } +} +``` + +For details about driver development, see [LCD](https://gitee.com/openharmony/docs/blob/master/en/device-dev/driver/driver-peripherals-lcd-des.md). + +### 2. Touchscreen +This section describes how to port a touchscreen driver. The touchscreen driver is stored in the **//drivers/framework/model/input/driver/touchscreen** directory. To port a touchscreen driver, register a **ChipDevice** model instance. + +- Create a touchscreen driver. + +Create the **touch_ic_name.c** file in the directory. Replace **ic_name** with the name of your chip. The file template is as follows: + +```C +#include "hdf_touch.h" + +static int32_t HdfXXXXChipInit(struct HdfDeviceObject *device) +{ + ChipDevice *tpImpl = CreateXXXXTpImpl(); + if(RegisterChipDevice(tpImpl) != HDF_SUCCESS) { + ReleaseXXXXTpImpl(tpImpl); + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +struct HdfDriverEntry g_touchXXXXChipEntry = { + .moduleVersion = 1, + .moduleName = "HDF_TOUCH_XXXX", + .Init = HdfXXXXChipInit, +}; + +HDF_INIT(g_touchXXXXChipEntry); +``` + +Implement the following interfaces in **ChipDevice**: +| Interface| Description| +|------|------| +|int32_t (*Init)(ChipDevice *device)| Initializes a touchscreen.| +|int32_t (*Detect)(ChipDevice *device)| Detects a touchscreen.| +|int32_t (*Suspend)(ChipDevice *device)| Suspends a touchscreen.| +|int32_t (*Resume)(ChipDevice *device)| Resumes a touchscreen.| +|int32_t (*DataHandle)(ChipDevice *device)| Reads data from a touchscreen and writes the touch point data to **device > driver > frameData**.| +|int32_t (*UpdateFirmware)(ChipDevice *device)| Upgrades the firmware.| + +- Configure the product and load the driver. + +All device information about the product is defined in the **//vendor/MyProductVendor/MyProduct/config/device_info/device_info.hcs** file. Modify the file by adding configurations for the device named **device_touch_chip** to the host named **input**. +Note: The value of **moduleName** must be the same as that in the touchscreen driver. + +```hcs + deviceN :: deviceNode { + policy = 0; + priority = 130; + preload = 0; + permission = 0660; + moduleName = "HDF_TOUCH_XXXX"; + deviceMatchAttr = "touch_XXXX_configs"; + } +``` + +For details about driver development, see [TOUCHSCREEN](https://gitee.com/openharmony/docs/blob/master/en/device-dev/driver/driver-peripherals-touch-des.md). + + +### 3. WLAN + +The WLAN driver is divided into two parts. One of the parts manages WLAN devices, and the other part manages WLAN traffic. **HDF WLAN** provides abstraction for the two parts. Currently, only the WLAN with the SDIO interface is supported. + +WLAN structure + +To support a chip, implement a **ChipDriver** for it. The major task is to implement the following interfaces provided by **HDF_WLAN_CORE** and **NetDevice**. + +| Interface| Header File| Description| +|------|------|------| +| HdfChipDriverFactory| `//drivers/framework/include/wifi/hdf_wlan_chipdriver_manager.h`| Factory of the **ChipDriver**, which is used to support multiple WLAN interfaces of a chip.| +| HdfChipDriver | `//drivers/framework/include/wifi/wifi_module.h`| Manages a specific WLAN interface. Each WLAN interface corresponds to an **HdfChipDriver**.| +|NetDeviceInterFace| `//drivers/framework/include/wifi/net_device.h`| Communicates with the protocol stack, such as sending data and setting the status of network interfaces.| + +To port a WLAN driver, perform the following steps: + +1. Create an HDF driver. + +You are advised to place the code file in the **//device/MySoCVendor/peripheral/wifi/chip_name/** directory. +The file template is as follows: + +```C +static int32_t HdfWlanHisiChipDriverInit(struct HdfDeviceObject *device) { + static struct HdfChipDriverFactory factory = CreateChipDriverFactory(); + struct HdfChipDriverManager *driverMgr = HdfWlanGetChipDriverMgr(); + if (driverMgr->RegChipDriver(&factory) != HDF_SUCCESS) { + HDF_LOGE("%s fail: driverMgr is NULL!", __func__); + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +struct HdfDriverEntry g_hdfXXXChipEntry = { + .moduleVersion = 1, + .Init = HdfWlanXXXChipDriverInit, + .Release = HdfWlanXXXChipRelease, + .moduleName = "HDF_WIFI_CHIP_XXX" +}; + +HDF_INIT(g_hdfXXXChipEntry); +``` + +Create an **HdfChipDriverFactory** in the **CreateChipDriverFactory**. The interfaces are as follows: +| Interface| Description| +|------|------| +|const char *driverName| Indicates the driver name.| +|int32_t (*InitChip)(struct HdfWlanDevice *device)| Initializes a chip.| +|int32_t (*DeinitChip)(struct HdfWlanDevice *device)| Deinitializes a chip.| +|void (*ReleaseFactory)(struct HdfChipDriverFactory *factory)| Releases the **HdfChipDriverFactory** object.| +|struct HdfChipDriver *(*Build)(struct HdfWlanDevice *device, uint8_t ifIndex)|Creates an **HdfChipDriver**. In the input parameters, **device** indicates the device information, and **ifIndex** indicates the sequence number of this interface in the chip.| +|void (*Release)(struct HdfChipDriver *chipDriver)| Releases the **HdfChipDriver**. +|uint8_t (*GetMaxIFCount)(struct HdfChipDriverFactory *factory)| Obtains the maximum number of interfaces supported by the current chip.| + +Implement the following interfaces in the **HdfChipDriver**. + +|Interface| Description| +|------|------| +|int32_t (*init)(struct HdfChipDriver *chipDriver, NetDevice *netDev)| Initializes the current network interface. The **NetDeviceInterFace** needs to be provided for the **netDev**.| +|int32_t (*deinit)(struct HdfChipDriver *chipDriver, NetDevice *netDev)| Deinitializes the current network interface.| +|struct HdfMac80211BaseOps *ops| Provides the WLAN basic capability interface set.| +|struct HdfMac80211STAOps *staOps| Provides the interface set required for supporting the standalone (STA) mode.| +|struct HdfMac80211APOps *apOps| Provides the interface set required for supporting the access point (AP) mode.| + + + +2. Compile the configuration file to describe the devices supported by the driver. + +Create the chip configuration file **//vendor/MyProductVendor/MyProduct/config/wifi/wlan_chip_chip_name.hcs** in the product configuration directory. +Replace **MyProductVendor**, **MyProduct**, and **chip_name** in the path with the actual names. +The sample code is as follows: +```hcs +root { + wlan_config { + chip_name :& chipList { + chip_name :: chipInst { + match_attr = "hdf_wlan_chips_chip_name"; /* Configure the matching attribute, which is used to provide the configuration root of the driver.*/ + driverName = "driverName"; /* The value must be the same as that of driverName in HdfChipDriverFactory.*/ + sdio { + vendorId = 0x0296; + deviceId = [0x5347]; + } + } + } + } +} +``` + +3. Edit the configuration file and load the driver. + +All device information about the product is defined in the **//vendor/MyProductVendor/MyProduct/config/device_info/device_info.hcs** file. Modify the file by adding configurations for the device named **device_wlan_chips** to the host named **network**. +Note: The value of **moduleName** must be the same as that in the touchscreen driver. +The sample code is as follows: + +```hcs + deviceN :: deviceNode { + policy = 0; + preload = 2; + moduleName = "HDF_WLAN_CHIPS"; + deviceMatchAttr = "hdf_wlan_chips_chip_name"; + serviceName = "driverName"; + } +``` + +4. Build the driver. + +- Create a kernel configuration menu. +Create a **Kconfig** file in the **//device/MySoCVendor/peripheral** directory. The file template is as follows: +``` +config DRIVERS_WLAN_XXX + bool "Enable XXX WLAN Host driver" + default n + depends on DRIVERS_HDF_WIFI + help + Answer Y to enable XXX Host driver. Support chip xxx +``` + +Add the following sample code to the end of the **//drivers/adapter/khdf/linux/model/network/wifi/Kconfig** file to add the configuration menu to the kernel: +``` +source "../../../../../device/MySoCVendor/peripheral/Kconfig" +``` + +- Create a build script. + +Add the following configuration to the end of the **//drivers/adapter/khdf/linux/model/network/wifi/Makefile** file: + +``` +HDF_DEVICE_ROOT := $(HDF_DIR_PREFIX)/../device +obj-$(CONFIG_DRIVERS_WLAN_XXX) += $(HDF_DEVICE_ROOT)/MySoCVendor/peripheral/build/standard/ +``` + +When **DRIVERS_WLAN_XXX** is enabled in the kernel, **makefile** in **//device/MySoCVendor/peripheral/build/standard/** is called. + + +For more details, see [WLAN Development](https://gitee.com/openharmony/docs/blob/master/en/device-dev/guide/device-wifi.md). diff --git a/en/device-dev/porting/transplant-chip-board.md b/en/device-dev/porting/transplant-chip-board.md deleted file mode 100644 index 4800ddd71c3..00000000000 --- a/en/device-dev/porting/transplant-chip-board.md +++ /dev/null @@ -1,15 +0,0 @@ -# Board-Level OS Porting - -- **[Overview](transplant-chip-board-overview.md)** - -- **[Board-Level Driver Adaptation](transplant-chip-board-drive.md)** - -- **[Implementation of APIs at the HAL](transplant-chip-board-hal.md)** - -- **[System Modules](transplant-chip-board-component.md)** - -- **[Third-party Module Adaptation](transplant-chip-board-bundle.md)** - -- **[XTS](transplant-chip-board-xts.md)** - - diff --git a/en/device-dev/porting/transplant-chip-kernel.md b/en/device-dev/porting/transplant-chip-kernel.md deleted file mode 100644 index 7f9366086a5..00000000000 --- a/en/device-dev/porting/transplant-chip-kernel.md +++ /dev/null @@ -1,9 +0,0 @@ -# Kernel Porting - -- **[Overview](transplant-chip-kernel-overview.md)** - -- **[Basic Kernel Adaptation](transplant-chip-kernel-adjustment.md)** - -- **[Kernel Porting Verification](transplant-chip-kernel-verify.md)** - - diff --git a/en/device-dev/porting/transplant-minichip.md b/en/device-dev/porting/transplant-minichip.md deleted file mode 100644 index 38a8e78dc15..00000000000 --- a/en/device-dev/porting/transplant-minichip.md +++ /dev/null @@ -1,11 +0,0 @@ -# Mini System SoC Porting Guide - -- **[Porting Preparations](transplant-chip-prepare.md)** - -- **[Kernel Porting](transplant-chip-kernel.md)** - -- **[Board-Level OS Porting](transplant-chip-board.md)** - -- **[FAQ](transplant-chip-faqs.md)** - - diff --git a/en/device-dev/porting/transplant-smallchip-drive.md b/en/device-dev/porting/transplant-smallchip-drive.md deleted file mode 100644 index a79db807339..00000000000 --- a/en/device-dev/porting/transplant-smallchip-drive.md +++ /dev/null @@ -1,9 +0,0 @@ -# Driver Porting - -- **[Overview](transplant-smallchip-drive-des.md)** - -- **[Platform Driver Porting](transplant-smallchip-drive-plat.md)** - -- **[Device Driver Porting](transplant-smallchip-drive-oom.md)** - - diff --git a/en/device-dev/porting/transplant-thirdparty.md b/en/device-dev/porting/transplant-thirdparty.md deleted file mode 100644 index c8b071004fa..00000000000 --- a/en/device-dev/porting/transplant-thirdparty.md +++ /dev/null @@ -1,9 +0,0 @@ -# Third-Party Library Porting Guide - -- **[Overview](transplant-thirdparty-overview.md)** - -- **[Porting a Library Built Using CMake](transplant-thirdparty-cmake.md)** - -- **[Porting a Library Built Using Makefile](transplant-thirdparty-makefile.md)** - - diff --git a/en/device-dev/porting/transplant.md b/en/device-dev/porting/transplant.md deleted file mode 100644 index 059e5ea0f84..00000000000 --- a/en/device-dev/porting/transplant.md +++ /dev/null @@ -1,9 +0,0 @@ -# Porting - -- **[Third-Party Library Porting Guide](transplant-thirdparty.md)** - -- **[Mini System SoC Porting Guide](transplant-minichip.md)** - -- **[Small System SoC Porting Guide](transplant-smallchip.md)** - - diff --git a/en/device-dev/quick-start/figure/2021-01-27_170334-17.png b/en/device-dev/quick-start/figure/2021-01-27_170334-17.png deleted file mode 100644 index 1e7dd2cdb515e871a1c5d34b3332b097bc02351b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16573 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 literal 0 HcmV?d00001 diff --git "a/en/device-dev/quick-start/figure/3516\346\255\243\351\235\242-17.png" "b/en/device-dev/quick-start/figure/3516\346\255\243\351\235\242-17.png" new file mode 100644 index 0000000000000000000000000000000000000000..1ccb47f20022261cc291e8b435f263c00e8d4a27 GIT binary patch literal 206035 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≀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 LwdY7VqmTa!DGgA3 literal 0 HcmV?d00001 diff --git a/en/device-dev/quick-start/quickstart-lite-env-setup-lin.md b/en/device-dev/quick-start/quickstart-lite-env-setup-lin.md index a5ec9aa0dae..2af1f471f0a 100644 --- a/en/device-dev/quick-start/quickstart-lite-env-setup-lin.md +++ b/en/device-dev/quick-start/quickstart-lite-env-setup-lin.md @@ -29,7 +29,7 @@ Perform the following steps to set up the build environment: >![](../public_sys-resources/icon-notice.gif) **NOTICE:** >- Docker is provided for the Ubuntu build environment, which encapsulates related build tools. If you use Docker to prepare the build environment, you do not need to perform the following steps in this section. Instead, refer to [Using Docker to Prepare the Build Environment](../get-code/gettools-acquire.md). >- By default, basic software, such as Samba and Vim, is installed in the system. Adaptation on the software is required to support file sharing between the Linux server and the Windows workstation. ->- For details about the compilation and building subsystem of OpenHarmony, see [Compilation and Building Overview](../subsystems/subsys-build-mini-lite.md). +>- For details about the compilation and building subsystem of OpenHarmony, see [Compilation and Building Overview](../subsystems/subsys-build.md). ## Obtaining Source Code and Tools @@ -160,7 +160,6 @@ You need to acquire [source code](../get-code/sourcecode-acquire.md), download ``` - 3. Set the soft link of **python** and **python3** to **python3.8**. ``` diff --git a/en/device-dev/quick-start/quickstart-lite-steps-board3861-running.md b/en/device-dev/quick-start/quickstart-lite-steps-board3861-running.md index d33056d84f2..573245e7e22 100644 --- a/en/device-dev/quick-start/quickstart-lite-steps-board3861-running.md +++ b/en/device-dev/quick-start/quickstart-lite-steps-board3861-running.md @@ -47,7 +47,7 @@ The source code needs to be modified when fixing bugs or compiling a new service SYS_RUN(HelloWorld); ``` -3. Add the **BUILD.gn** file for building services into a static library. +3. Compile the **BUILD.gn** file for building services into a static library. Create the **BUILD.gn** file in **./applications/sample/wifi-iot/app/my\_first\_app** and fill in three parts \(target, source file, and header file path\) of the **BUILD.gn** file. @@ -66,7 +66,7 @@ The source code needs to be modified when fixing bugs or compiling a new service - Specify the .c file on which a file depends and its path in **sources**. The path that contains **//** represents an absolute path \(the code root path\), otherwise it is a relative path. - Specify the path of .h file on which **sources** depends in **include\_dirs**. -4. Modify the **BUILD.gn** file and specify the feature modules to be built. +4. Compile the **BUILD.gn** file and specify the feature modules to be built. Configure the **./applications/sample/wifi-iot/app/BUILD.gn** file and add an index to the **features** field to enable the target to be involved in compilation. Specify the path and target of a service module in **features**. The following uses **my\_first\_app** as an example and the **features** is configured as follows: diff --git a/en/device-dev/quick-start/quickstart-lite-steps-board3861-setting.md b/en/device-dev/quick-start/quickstart-lite-steps-board3861-setting.md index 92d567cd5d9..2906ce5118e 100644 --- a/en/device-dev/quick-start/quickstart-lite-steps-board3861-setting.md +++ b/en/device-dev/quick-start/quickstart-lite-steps-board3861-setting.md @@ -142,13 +142,11 @@ sudo apt-get install build-essential gcc g++ make zlib* libffi-dev sudo pip3 install kconfiglib ``` - - **Installation package:** 1. Download the **.whl** file \(for example, **kconfiglib-13.2.0-py2.py3-none-any.whl**\). Download path: [https://pypi.org/project/kconfiglib\#files](https://pypi.org/project/kconfiglib#files) - 1. Install the **.whl** file. ``` @@ -156,7 +154,6 @@ sudo apt-get install build-essential gcc g++ make zlib* libffi-dev ``` - 3. Install **PyCryptodome** using either of the following methods: Install the Python component packages on which the file signature depends, including PyCryptodome, six, and ecdsa. As the installation of **ecdsa** depends on that of **six**, install **six** first. @@ -172,7 +169,6 @@ sudo apt-get install build-essential gcc g++ make zlib* libffi-dev Download path: [https://pypi.org/project/pycryptodome/\#files](https://pypi.org/project/pycryptodome/#files) - 1. Install the **.whl** file. ``` @@ -180,7 +176,6 @@ sudo apt-get install build-essential gcc g++ make zlib* libffi-dev ``` - 4. Install **six** using either of the following methods: - **Command line:** @@ -188,13 +183,11 @@ sudo apt-get install build-essential gcc g++ make zlib* libffi-dev sudo pip3 install six --upgrade --ignore-installed six ``` - - **Installation package:** 1. Download the **.whl** file, for example, **six-1.12.0-py2.py3-none-any.whl**. Download path: [https://pypi.org/project/six/\#files](https://pypi.org/project/six/#files) - 1. Install the **.whl** file. ``` @@ -202,7 +195,6 @@ sudo apt-get install build-essential gcc g++ make zlib* libffi-dev ``` - 5. Install **ecdsa** using either of the following methods: - **Command line:** @@ -215,7 +207,6 @@ sudo apt-get install build-essential gcc g++ make zlib* libffi-dev Download path: [https://pypi.org/project/ecdsa/\#files](https://pypi.org/project/ecdsa/#files) - 1. Install the **.whl** file. ``` diff --git a/en/device-dev/quick-start/quickstart-standard-burn.md b/en/device-dev/quick-start/quickstart-standard-burn.md index 5cfe9fccf98..01f052b9dd8 100644 --- a/en/device-dev/quick-start/quickstart-standard-burn.md +++ b/en/device-dev/quick-start/quickstart-standard-burn.md @@ -32,7 +32,7 @@ The Hi3516DV300 supports programming through the network port in Windows or Linu 3. Open DevEco Device Tool and go to **Projects** \> **Settings**. - ![](figure/2021-01-27_170334-17.png) + ![](figure/2021-01-27_170334-18.png) 4. On the **Partition Configuration** tab page, enter the information about the files to be programmed, including the following. @@ -186,7 +186,7 @@ The Hi3516DV300 supports programming through the network port in Windows or Linu ![](figure/en-us_image_0000001117463460.png) 8. When you finish modifying, click **Save** in the upper right corner. -9. Open the project file, go to ![](figure/2021-01-27_170334-18.png) \> **PROJECT TASKS** \> **fastboot** \> **Erase** to erase U-boot. +9. Open the project file, go to ![](figure/2021-01-27_170334-19.png) \> **PROJECT TASKS** \> **fastboot** \> **Erase** to erase U-boot. ![](figure/en-us_image_0000001163045527.png) @@ -201,5 +201,5 @@ The Hi3516DV300 supports programming through the network port in Windows or Linu ## Next -Congratulations! You have completed the quick start for the standard system. Get yourself familiar with OpenHarmony by a [Development Example for Clock App](../guide/oem_device_clockapp_des.md). +Congratulations! You have completed the quick start for the standard system. Get yourself familiar with OpenHarmony by a [Development Example for Clock App](../guide/device-clock-guide.md). diff --git a/en/device-dev/quick-start/quickstart-standard-description.md b/en/device-dev/quick-start/quickstart-standard-description.md index 75e796ec216..8c4a158c8b9 100644 --- a/en/device-dev/quick-start/quickstart-standard-description.md +++ b/en/device-dev/quick-start/quickstart-standard-description.md @@ -22,7 +22,7 @@ Hi3516D V300 is a next-generation system on chip \(SoC\) designed for the indust **Figure 2** Hi3516D V300 front view -![](figure/3516正面.png) +![](figure/3516正面-17.png) ## Development Board Specifications diff --git a/en/device-dev/quick-start/quickstart-standard-package-environment.md b/en/device-dev/quick-start/quickstart-standard-package-environment.md index ee9049108fb..6100bafbeee 100644 --- a/en/device-dev/quick-start/quickstart-standard-package-environment.md +++ b/en/device-dev/quick-start/quickstart-standard-package-environment.md @@ -92,7 +92,7 @@ Perform the following operations in the Linux environment: Files generated during the build are stored in the **out/ohos-arm-release/** directory, and the generated image is stored in the **out/ohos-arm-release/packages/phone/images/** directory. >![](../public_sys-resources/icon-note.gif) **NOTE:** - >For details about module-specific build operations, see [Building Guidelines](../subsystems/subsys-build-standard-large.md). + >For details about module-specific build operations, see [Building Guidelines](../subsystems/subsys-build.md). 3. Burn the image. For details, see [Burning Images](quickstart-standard-burn.md). diff --git a/en/device-dev/security/Readme-EN.md b/en/device-dev/security/Readme-EN.md index 09b0d20c442..fc9af4847b9 100644 --- a/en/device-dev/security/Readme-EN.md +++ b/en/device-dev/security/Readme-EN.md @@ -1,5 +1,5 @@ # Privacy and Security -- [Privacy Protection](oem_security_privacy.md) -- [Security Guidelines](safety-safeguide-security.md) +- [Privacy Protection](security-privacy-protection.md) +- [Security Guidelines](security-guidelines-overall.md) diff --git a/en/device-dev/security/safety.md b/en/device-dev/security/safety.md new file mode 100644 index 00000000000..95d81080547 --- /dev/null +++ b/en/device-dev/security/safety.md @@ -0,0 +1,7 @@ +# Privacy and Security + +- **[Privacy Protection](security-privacy-protection.md)** + +- **[Security Guidelines](security-guidelines-overall.md)** + + diff --git a/en/device-dev/security/safety-safeguide-security.md b/en/device-dev/security/security-guidelines-overall.md similarity index 100% rename from en/device-dev/security/safety-safeguide-security.md rename to en/device-dev/security/security-guidelines-overall.md diff --git a/en/device-dev/security/oem_security_privacy.md b/en/device-dev/security/security-privacy-protection.md similarity index 99% rename from en/device-dev/security/oem_security_privacy.md rename to en/device-dev/security/security-privacy-protection.md index 0a3e53c1d82..13eaf6a5528 100644 --- a/en/device-dev/security/oem_security_privacy.md +++ b/en/device-dev/security/security-privacy-protection.md @@ -195,9 +195,9 @@ You shall obtain consent from users and comply with applicable laws and regulati Data processing security shall be ensured in technical terms, which include encrypted data storage and secure data transfer. Security mechanisms or measures shall be enabled by default for a system. -- A protection mechanism shall be available for personal data access, including identity authentication and access control. Identity authentication \(such as username and password\) allows only authenticated users to access data in multi-user scenarios. Access control \(for example, [permission control](security/safety-safeguide-security.md#li201725506375)\) can be applied to restrict access to applications. +- A protection mechanism shall be available for personal data access, including identity authentication and access control. Identity authentication \(such as username and password\) allows only authenticated users to access data in multi-user scenarios. Access control \(for example, [permission control](security-guidelines-overall.md#li201725506375)\) can be applied to restrict access to applications. - Secure storage of personal data on distributed devices must meet Huawei Universal Keystore \(HUKS\) requirements, including secure storage of keys and data. -- The transfer of personal data between distributed devices must meet the trust binding relationship between devices and security requirements of data transmission channels. For details, see [Security Guidelines](security/safety-safeguide-security.md#section26153183616). +- The transfer of personal data between distributed devices must meet the trust binding relationship between devices and security requirements of data transmission channels. For details, see [Security Guidelines](security-guidelines-overall.md#section26153183616). - Authentication data \(such as passwords and fingerprints\) shall be encrypted before being stored. **Localization** diff --git a/en/device-dev/subsystems/Readme-EN.md b/en/device-dev/subsystems/Readme-EN.md index 0b5b089be53..86a43cbe70b 100644 --- a/en/device-dev/subsystems/Readme-EN.md +++ b/en/device-dev/subsystems/Readme-EN.md @@ -6,9 +6,9 @@ - [Distributed Remote Startup](subsys-remote-start.md) - [Graphics](subsys-graphics.md) - [Graphics](subsys-graphics-overview.md) - - [Development Guidelines on Container Components](subsys-graphics-bundle-guide1.md) - - [Development Guidelines on Layout Container Components](subsys-graphics-bundle-guide2.md) - - [Development Guidelines on Common Components](subsys-graphics-bundle-guide3.md) + - [Development Guidelines on Container Components](subsys-graphics-container-guide.md) + - [Development Guidelines on Layout Container Components](subsys-graphics-layout-guide.md) + - [Development Guidelines on Common Components](subsys-graphics-common-guide.md) - [Development Guidelines on Animators](subsys-graphics-animation-guide.md) - [Multimedia](subsys-multimedia.md) - [Camera](subsys-multimedia-camera.md) @@ -39,13 +39,13 @@ - [KWS SDK](subsys-aiframework-demo-sdk.md) - [KWS Plug-in](subsys-aiframework-demo-plugin.md) - [KWS Configuration File](subsys-aiframework-demo-conf.md) -- [Sensors](subsys-sensor.md) - - [Sensors Overview](subsys-sensor-overview.md) - - [Sensors Usage Guidelines](subsys-sensor-guide.md) - - [Sensors Usage Example](subsys-sensor-demo.md) +- [Sensors](subsys-densor.md) + - [Sensors Overview](subsys-densor-overview.md) + - [Sensors Usage Guidelines](subsys-densor-guide.md) + - [Sensors Usage Example](subsys-densor-demo.md) - [Application Framework](subsys-application-framework.md) - [Overview](subsys-application-framework-overview.md) - - [Setting Up a Development Environment](subsys-application-framework-builden.md) + - [Setting Up a Development Environment](subsys-application-framework-envbuild.md) - [Development Guidelines](subsys-application-framework-guide.md) - [Development Example](subsys-application-framework-demo.md) - [OTA Upgrade](subsys-ota-guide.md) @@ -68,7 +68,7 @@ - [Development Guidelines on HiLog ](subsys-dfx-hilog-rich.md) - [Development Guidelines on HiLog\_Lite](subsys-dfx-hilog-lite.md) - [Development Guidelines on HiSysEvent](subsys-dfx-hisysevent.md) -- [R&D Tools](subsys-toolchain.md) +- [R&D Tools](subsys-toolchain.md) - [bytrace Usage Guidelines](subsys-toolchain-bytrace-guide.md) - [hdc\_std Usage Guidelines](oem_subsys_toolchain_hdc_guide.md) - [XTS](subsys-xts-guide.md) \ No newline at end of file diff --git a/en/device-dev/subsystems/oem_subsys_utils_guide.md b/en/device-dev/subsystems/oem_subsys_utils_guide.md index 48a566a1a92..53e3b6eaedd 100644 --- a/en/device-dev/subsystems/oem_subsys_utils_guide.md +++ b/en/device-dev/subsystems/oem_subsys_utils_guide.md @@ -232,7 +232,6 @@ printf("UtilsDeleteValue delete ret = %d\n", ret); } ``` - - Generate a HAP file. - Add resource files in the **res/drawable** directory based on the following directory structure. @@ -241,7 +240,6 @@ printf("UtilsDeleteValue delete ret = %d\n", ret); - Compress the **libLauncher.so**, **config.json**, and resource files into a ZIP package and change the file name extension to **.hap**, for example, **Launcher.hap**. - 2. Connect the development board and send the command for installing the native KV store application to the board through the serial port. ``` diff --git a/en/device-dev/subsystems/subsys-application-framework-builden.md b/en/device-dev/subsystems/subsys-application-framework-envbuild.md similarity index 99% rename from en/device-dev/subsystems/subsys-application-framework-builden.md rename to en/device-dev/subsystems/subsys-application-framework-envbuild.md index c7497eb0103..26aaaea82d6 100644 --- a/en/device-dev/subsystems/subsys-application-framework-builden.md +++ b/en/device-dev/subsystems/subsys-application-framework-envbuild.md @@ -2,6 +2,6 @@ - Development board: Hi3516D V300 -- [Download the source code](../get-code/sourcecode-acquire.md). +- [Download the source code](../get-code/sourcecode-acquire.md) - [Build the application framework](https://gitee.com/openharmony/docs/blob/master/en/readme/application-framework.md). diff --git a/en/device-dev/subsystems/subsys-application-framework-guide.md b/en/device-dev/subsystems/subsys-application-framework-guide.md index a4f37e5be36..e02c08a8b14 100644 --- a/en/device-dev/subsystems/subsys-application-framework-guide.md +++ b/en/device-dev/subsystems/subsys-application-framework-guide.md @@ -334,7 +334,6 @@ This callback is invoked when a Service ability is destroyed. You should override this callback for your Service ability to clear its resources, such as threads and registered listeners. - 4. Override the message handling function. The **MsgHandle** function is used by Service abilities to handle messages sent from clients. **funcId** indicates the type of the message sent from the client, and **request** indicates the pointer to the serialized request parameters sent from the client. If you want to send the result back after the message is handled, serialize the result and write it into **reply**. @@ -392,7 +391,6 @@ Once created, the Service ability keeps running in the background. You can call **StopAbility\(\)** to stop the Service ability. - 7. Connect to a Service ability. - If you need to connect a Service ability to a Page ability or to a Service ability in another application, you should first create a Service ability for connection. A Service ability allows other abilities to connect to it through **ConnectAbility\(\)** by passing a **Want** object that contains information about the target Service ability to the function. You can implement callbacks in **IAbilityConnection** to be invoked when a Service ability is connected or disconnected. The **OnAbilityConnectDone\(\)** callback is invoked when an ability is connected, and **OnAbilityDisconnectDone\(\)** is invoked when an ability is disconnected. diff --git a/en/device-dev/subsystems/subsys-application-framework-overview.md b/en/device-dev/subsystems/subsys-application-framework-overview.md index a199610651d..c7127eddc22 100644 --- a/en/device-dev/subsystems/subsys-application-framework-overview.md +++ b/en/device-dev/subsystems/subsys-application-framework-overview.md @@ -136,7 +136,6 @@ As shown in the figure, the Ability Manager Service is responsible for displayin - ROM: greater than 300 KB \(for the JS application development framework and related subsystems, such as UIKit and engine\) - - Cortex-A RAM and ROM - RAM: greater than 2 MB \(recommended\) diff --git a/en/device-dev/subsystems/subsys-application-framework.md b/en/device-dev/subsystems/subsys-application-framework.md index aeca8dc7dd6..d293e2f842b 100644 --- a/en/device-dev/subsystems/subsys-application-framework.md +++ b/en/device-dev/subsystems/subsys-application-framework.md @@ -2,7 +2,7 @@ - **[Overview](subsys-application-framework-overview.md)** -- **[Setting Up a Development Environment](subsys-application-framework-builden.md)** +- **[Setting Up a Development Environment](subsys-application-framework-envbuild.md)** - **[Development Guidelines](subsys-application-framework-guide.md)** diff --git a/en/device-dev/subsystems/subsys-build-mini-lite.md b/en/device-dev/subsystems/subsys-build-mini-lite.md index 5d95a69ed43..4cd0b642ab5 100644 --- a/en/device-dev/subsystems/subsys-build-mini-lite.md +++ b/en/device-dev/subsystems/subsys-build-mini-lite.md @@ -396,7 +396,6 @@ The key directories and files are described as follows: - $\{root\_path\} - $\{fs\_dir\_name\} - >![](../public_sys-resources/icon-note.gif) **NOTE:** >**fs.yml** is optional and does not need to be configured for devices without a file system. diff --git a/en/device-dev/subsystems/subsys-sensor-demo.md b/en/device-dev/subsystems/subsys-densor-demo.md similarity index 100% rename from en/device-dev/subsystems/subsys-sensor-demo.md rename to en/device-dev/subsystems/subsys-densor-demo.md diff --git a/en/device-dev/subsystems/subsys-sensor-guide.md b/en/device-dev/subsystems/subsys-densor-guide.md similarity index 100% rename from en/device-dev/subsystems/subsys-sensor-guide.md rename to en/device-dev/subsystems/subsys-densor-guide.md diff --git a/en/device-dev/subsystems/subsys-sensor-overview.md b/en/device-dev/subsystems/subsys-densor-overview.md similarity index 100% rename from en/device-dev/subsystems/subsys-sensor-overview.md rename to en/device-dev/subsystems/subsys-densor-overview.md diff --git a/en/device-dev/subsystems/subsys-densor.md b/en/device-dev/subsystems/subsys-densor.md new file mode 100644 index 00000000000..590bc4c9665 --- /dev/null +++ b/en/device-dev/subsystems/subsys-densor.md @@ -0,0 +1,9 @@ +# Sensors + +- **[Sensors Overview](subsys-densor-overview.md)** + +- **[Sensors Usage Guidelines](subsys-densor-guide.md)** + +- **[Sensors Usage Example](subsys-densor-demo.md)** + + diff --git a/en/device-dev/subsystems/subsys-dfx-hisyseventread.md b/en/device-dev/subsystems/subsys-dfx-hisyseventread.md deleted file mode 100644 index bd59a05b872..00000000000 --- a/en/device-dev/subsystems/subsys-dfx-hisyseventread.md +++ /dev/null @@ -1,103 +0,0 @@ -# HiSysEvent订阅指导 - -- [概述](#section315316685112) -- [接口说明](#section0342191810519) -- [开发实例](#section123181432175110) - -## 概述 - -The HiSysEvent provides the cross-process subscription mechanism. You can register the subscription interface. - -## 接口说明 - -**Table 1** HiSysEvent订阅接口 - - - - - - - - - - - - - -

接口名

-

描述

-

int ISysEventService::AddListener(in SysEventRule[] rules, in ISysEventCallback callback)

-

接口功能:订阅HiSysEvent事件。

-

输入参数:

-
  • rules:事件订阅规则
  • callback:订阅回调对象
-

返回值:

-
  • 0:订阅成功,重复订阅
  • 1:订阅成功,初次订阅
  • 其他返回值:订阅失败
-

void ISysEventCallback::Handle(in String domain, in String eventName, in int eventType, in String eventDetail)

-

接口功能:订阅事件的回调接口。

-

输入参数:

-
  • domain:事件所属领域
  • eventName:事件的名称
  • eventType:事件类型
  • eventDetail:包含事件相关信息的字符串,以json的形式体现
-

返回值:无。

-
- -**Table 2** SysEventRule订阅规则对象 - - - - - - - - - - - - - - - - -

属性名称

-

描述

-

uint32_t ruleType

-

规则类型(匹配范围包括domain以及eventName):

-
  • 1:全字符匹配
  • 2:前缀匹配
  • 3:正则表达式匹配
  • 其他值:无效的匹配方式
-

std::string domain;

-
  • domain:事件所属领域,如果传入的是空字符串,则默认事件领域字段匹配成功
-

std::string eventName

-
  • eventName:事件的名称,如果传入的是空字符串,则默认事件名称字段匹配成功
-
- -## 开发实例 - -1. 源代码开发: - - 引入对应的aidl文件,包括:ISysEventService.aidl、SysEventRule.aidl、ISysEventCallback.aidl。 - - 在相应的业务逻辑里面调用ISysEventService::AddListener\(in SysEventRule\[\] rules, in ISysEventCallback callback\)接口。 - - 实现对应的回调对象: - - ISysEventCallback::Handle\(in String domain, in String eventName, in int eventType, in String eventDetail\) - - -1. 源代码开发: - - 引入对应的aidl文件,包括:ISysEventService.aidl、SysEventRule.aidl、ISysEventCallback.aidl。 - - 在相应的业务逻辑里面调用ISysEventService::AddListener\(in SysEventRule\[\] rules, in ISysEventCallback callback\)接口。 - - 实现对应的回调对象: - - ISysEventCallback::Handle\(in String domain, in String eventName, in int eventType, in String eventDetail\) - -2. 编译设置: - -在编译子系统里面,需要依赖libbinder模块 - -aosp\_deps = \[ "shared\_library:libbinder", \] - -- **[bytrace Usage Guidelines](subsys-toolchain-bytrace-guide.md)** - -- **[hdc\_std Usage Guidelines](oem_subsys_toolchain_hdc_guide.md)** - - diff --git a/en/device-dev/subsystems/subsys-graphics-bundle-guide3.md b/en/device-dev/subsystems/subsys-graphics-common-guide.md similarity index 100% rename from en/device-dev/subsystems/subsys-graphics-bundle-guide3.md rename to en/device-dev/subsystems/subsys-graphics-common-guide.md diff --git a/en/device-dev/subsystems/subsys-graphics-bundle-guide1.md b/en/device-dev/subsystems/subsys-graphics-container-guide.md similarity index 100% rename from en/device-dev/subsystems/subsys-graphics-bundle-guide1.md rename to en/device-dev/subsystems/subsys-graphics-container-guide.md diff --git a/en/device-dev/subsystems/subsys-graphics-bundle-guide2.md b/en/device-dev/subsystems/subsys-graphics-layout-guide.md similarity index 100% rename from en/device-dev/subsystems/subsys-graphics-bundle-guide2.md rename to en/device-dev/subsystems/subsys-graphics-layout-guide.md diff --git a/en/device-dev/subsystems/subsys-graphics.md b/en/device-dev/subsystems/subsys-graphics.md index bf960418374..33ec9d2591b 100644 --- a/en/device-dev/subsystems/subsys-graphics.md +++ b/en/device-dev/subsystems/subsys-graphics.md @@ -2,11 +2,11 @@ - **[Graphics](subsys-graphics-overview.md)** -- **[Development Guidelines on Container Components](subsys-graphics-bundle-guide1.md)** +- **[Development Guidelines on Container Components](subsys-graphics-container-guide.md)** -- **[Development Guidelines on Layout Container Components](subsys-graphics-bundle-guide2.md)** +- **[Development Guidelines on Layout Container Components](subsys-graphics-layout-guide.md)** -- **[Development Guidelines on Common Components](subsys-graphics-bundle-guide3.md)** +- **[Development Guidelines on Common Components](subsys-graphics-common-guide.md)** - **[Development Guidelines on Animators](subsys-graphics-animation-guide.md)** diff --git a/en/device-dev/subsystems/subsys-multimedia-camera-overview.md b/en/device-dev/subsystems/subsys-multimedia-camera-overview.md index 363f36457ac..f09aab69ccc 100644 --- a/en/device-dev/subsystems/subsys-multimedia-camera-overview.md +++ b/en/device-dev/subsystems/subsys-multimedia-camera-overview.md @@ -102,7 +102,6 @@ It is considered good practice that you understand the following concepts before ![](figure/en-us_image_0000001054101094.png) - 1. Taking a video/Previewing This process creates a **Camera** instance via **CameraKit**, and configures frame attributes via **FrameConfig** for recording or previewing. The following figure shows the time sequence. diff --git a/en/device-dev/subsystems/subsys-sensor.md b/en/device-dev/subsystems/subsys-sensor.md deleted file mode 100644 index 937d03221f5..00000000000 --- a/en/device-dev/subsystems/subsys-sensor.md +++ /dev/null @@ -1,9 +0,0 @@ -# Sensors - -- **[Sensors Overview](subsys-sensor-overview.md)** - -- **[Sensors Usage Guidelines](subsys-sensor-guide.md)** - -- **[Sensors Usage Example](subsys-sensor-demo.md)** - - diff --git a/en/device-dev/subsystems/subsys-testguide-test.md b/en/device-dev/subsystems/subsys-testguide-test.md index 215b683bd1c..8f098628225 100644 --- a/en/device-dev/subsystems/subsys-testguide-test.md +++ b/en/device-dev/subsystems/subsys-testguide-test.md @@ -466,7 +466,6 @@ The testing framework integrates the open-source unit testing framework and expa } ``` - 6. Create a resource configuration file for the test case to use static resources. 1. Create the **resource** directory in the **test** directory of a component or module. 2. Create a directory for a device type, for example, **phone**, in the **resource** directory. @@ -618,7 +617,6 @@ The code repository of the testing subsystem provides complete demo cases, which ``` - 3. \(Optional\) Modify the Developertest configuration. If a test case has been compiled, specify the compilation output path of the test case. In this case the test platform will not recompile the test case. Modify the **config/user\_config.xml** file. @@ -640,7 +638,6 @@ The code repository of the testing subsystem provides complete demo cases, which ``` - 4. \(Optional\) Prepare the test environment. If devices to be tested support only serial ports, check whether the environment is ready: - The system image and file system have been burnt into the development board and are running properly on it. For example, in system mode, if the device prompt **OHOS\#** when you log in with the shell, the system is running properly. - The development host has been connected to the serial port of the development board and the network port. @@ -661,14 +658,13 @@ The code repository of the testing subsystem provides complete demo cases, which ./start.sh ``` - - Select a device type. - + Configure the device type based on the development board in the configuration file, for example, **developertest/config/framework\_config.xml**. - + - Run test commands. 1. To query the subsystems, modules, product form, and test types supported by test cases, run the **show** commands. - + ``` Usage: show productlist Query supported product forms @@ -676,15 +672,15 @@ The code repository of the testing subsystem provides complete demo cases, which show subsystemlist Query supported subsystems show modulelist Query supported modules ``` - + 2. Run test commands. **-t** is mandatory, and **-ss** and **-tm** are optional. The following is an example: - + ``` run -t ut -ss subsystem_examples -tm calculator ``` - + 3. Specify the arguments to execute the test suite for a specific feature or module. - + ``` usage: run [-h] [-p PRODUCTFORM] [-t [TESTTYPE [TESTTYPE ...]]] [-ss SUBSYSTEM] [-tm TESTMODULE] [-ts TESTSUIT] @@ -702,24 +698,22 @@ The code repository of the testing subsystem provides complete demo cases, which -tl TESTLEVEL, --testlevel TESTLEVEL Specify test level ``` - - View the test framework help if needed. - + Run the following command query test commands that are supported by the test platform: - + ``` help ``` - + - Exit the test platform. - + Run the following command to exit the test platform: - + ``` quit ``` - 6. View the test result and logs. The test logs and reports are generated in the **developertest/reports** directory after you run the test commands. - The test result is displayed on the console. The root path of the test result is as follows: @@ -751,9 +745,8 @@ The code repository of the testing subsystem provides complete demo cases, which details_report.html ``` - - The log directory of the test platform is as follows: - + ``` reports/platform_log_xxxx-xx-xx-xx-xx-xx.log ``` diff --git a/en/device-dev/subsystems/subsys-toolchain.md b/en/device-dev/subsystems/subsys-toolchain.md index 29f4d588550..193fb093ce8 100644 --- a/en/device-dev/subsystems/subsys-toolchain.md +++ b/en/device-dev/subsystems/subsys-toolchain.md @@ -1,6 +1,7 @@ -# R&D Tools +# R&D Tools -- [bytrace Usage Guidelines](subsys-toolchain-bytrace-guide.md) -- [hdc\_std Usage Guidelines](oem_subsys_toolchain_hdc_guide.md) +- **[bytrace Usage Guidelines](subsys-toolchain-bytrace-guide.md)** + +- **[hdc\_std Usage Guidelines](oem_subsys_toolchain_hdc_guide.md)** diff --git a/en/device-dev/subsystems/subsys-xts-guide.md b/en/device-dev/subsystems/subsys-xts-guide.md index 8c39f59591f..994ff8b6096 100644 --- a/en/device-dev/subsystems/subsys-xts-guide.md +++ b/en/device-dev/subsystems/subsys-xts-guide.md @@ -696,7 +696,6 @@ Install Python 3.7 or a later version on a Windows environment and ensure that t ![](figure/en-us_image_0000001119924146.gif) - - Execute the test cases of a module \(view specific module information in **\\acts\\testcases\\**\). ``` @@ -705,7 +704,6 @@ Install Python 3.7 or a later version on a Windows environment and ensure that t ![](figure/en-us_image_0000001166643927.jpg) - Wait until the test case is complete. diff --git a/en/device-dev/subsystems/subsys.md b/en/device-dev/subsystems/subsys.md index 9d1d0bdfb4c..d6cdc8fccd7 100644 --- a/en/device-dev/subsystems/subsys.md +++ b/en/device-dev/subsystems/subsys.md @@ -12,7 +12,7 @@ - **[AI Framework](subsys-aiframework.md)** -- **[Sensors](subsys-sensor.md)** +- **[Sensors](subsys-densor.md)** - **[Application Framework](subsys-application-framework.md)** @@ -26,7 +26,7 @@ - **[DFX](subsys-dfx.md)** -- **[HiSysEvent订阅指导](subsys-dfx-hisyseventread.md)** +- **[R&D Tools](subsys-toolchain.md)** - **[XTS](subsys-xts-guide.md)** diff --git a/en/readme.md b/en/readme.md index 1dd86e1a5dd..72bcf19fab9 100644 --- a/en/readme.md +++ b/en/readme.md @@ -1,4 +1,4 @@ -# WELCOME TO OPENHARMONY +# Overview This project stores OpenHarmony documentation, including the quick start guide, development guides, and API reference. We appreciate your contribution to the OpenHarmony documentation. @@ -7,23 +7,24 @@ This project stores OpenHarmony documentation, including the quick start guide, - [OpenHarmony Overview](OpenHarmony-Overview.md) - Mini and Small System Development Guidelines \(Reference Memory < 128 MB\) - Device development - - **overview**: [device development overview](device-dev/overview.md) + - **overview**: [device development overview](device-dev/Readme-EN.md) - **quick-start**: [quick start guide](device-dev/quick-start/Readme-EN.md) \(covering environment setup, source code acquisition, build, and burning\) - Basic development capabilities - - **Kernel**: [lite kernel](device-dev/kernel/kernel-lite.md) + - **Kernel**: [Kernel for Mini Systems](device-dev/kernel/kernel-lite-mini.md) + - **Kernel:**[Kernel for Small Systems](device-dev/kernel/kernel-lite-small.md) - **Drivers**: [drivers](device-dev/driver/Readme-EN.md) - **Subsystems**: [subsystems](device-dev/subsystems/Readme-EN.md) \(such as compilation and building, graphics, DFX, and XTS\) - **Security**: [privacy and security](device-dev/security/Readme-EN.md) - **guide**: - [WLAN-connected products](device-dev/guide/device-wifi.md) \(LED peripheral control and third-party SDK integration\) - - [Screenless cameras](device-dev/guide/device-iotcamera.md) \(camera control\) + - [Screenless cameras](device-dev/guide/device-iotcamera-control.md) \(camera control\) - [Cameras with a screen](device-dev/guide/device-camera.md) \(screen and camera control, visual application development\) - **porting**: - - [Mini System SoC Porting Guide](device-dev/porting/transplant-minichip.md) - - [Small System SoC Porting Guide](device-dev/porting/transplant-smallchip.md) - - [Third-Party Library Porting Guide](device-dev/porting/transplant-thirdparty.md) + - [Mini System SoC Porting Guide](device-dev/porting/porting-minichip.md) + - [Small System SoC Porting Guide](device-dev/porting/porting-smallchip.md) + - [Third-Party Library Porting Guide](device-dev/porting/porting-thirdparty.md) - **bundles**: - [Development Specifications](device-dev/bundles/bundles-standard-rules.md) @@ -32,22 +33,23 @@ This project stores OpenHarmony documentation, including the quick start guide, - Standard System Development Guidelines \(Reference Memory ≥ 128 MB\) - Device development - - **overview**: [device development overview](device-dev/overview.md) + - **overview**: [device development overview](device-dev/Readme-EN.md) - **quick-start**: [quick start guide](device-dev/quick-start/quickstart-standard.md) \(covering environment setup, source code acquisition, build, and burning\) - Basic development capabilities - - **Kernel**: [Linux kernel](device-dev/kernel/kernel-standard.md) + - **Kernel**: [Kernel for Standard Systems](device-dev/kernel/kernel-standard.md) - **Drivers**: [drivers](device-dev/driver/Readme-EN.md) - **Subsystems**: [subsystems](device-dev/subsystems/Readme-EN.md) \(such as compilation and building, graphics, DFX, and XTS\) - **Security**: [privacy and security](device-dev/security/Readme-EN.md) - **guide**: - - [Clock apps](device-dev/guide/oem_device_clockapp_des.md) + - [Clock apps](device-dev/guide/device-clock-guide.md) - [Platform drivers](device-dev/guide/device-driver-demo.md) - [Peripheral drivers](device-dev/guide/device-outerdriver-demo.md) - **porting**: - [Third-Party Library Porting Guide](device-dev/porting/transplant-thirdparty.md) + - [Third-Party Library Porting Guide](device-dev/porting/porting-thirdparty.md) + - [Standard System SoC Porting Guide](device-dev/porting/standard-system-porting-guide.md) - **bundles**: - [Development Specifications](device-dev/bundles/bundles-standard-rules.md) diff --git a/summary.md b/summary.md deleted file mode 100644 index a36078725aa..00000000000 --- a/summary.md +++ /dev/null @@ -1,1018 +0,0 @@ -# Summary - -## zh-cn - -- [介绍](zh-cn/readme.md) -- [了解OpenHarmony](zh-cn/OpenHarmony-Overview_zh.md) -- 设备开发 - - [获取源码](zh-cn/device-dev/get-code/Readme-CN.md) - - [获取源码](zh-cn/device-dev/get-code/源码获取.md) - - [获取工具](zh-cn/device-dev/get-code/获取工具.md) - - [快速入门](zh-cn/device-dev/quick-start/Readme-CN.md) - - [导读](zh-cn/device-dev/quick-start/导读.md) - - [轻量和小型系统入门](zh-cn/device-dev/quick-start/轻量和小型系统入门.md) - - [概述](zh-cn/device-dev/quick-start/概述.md) - - [了解开发板](zh-cn/device-dev/quick-start/了解开发板.md) - - [Hi3861开发板介绍](zh-cn/device-dev/quick-start/Hi3861开发板介绍.md) - - [Hi3516开发板介绍](zh-cn/device-dev/quick-start/Hi3516开发板介绍.md) - - [Hi3518开发板介绍](zh-cn/device-dev/quick-start/Hi3518开发板介绍.md) - - [搭建系统环境](zh-cn/device-dev/quick-start/搭建系统环境.md) - - [Windows开发环境准备](zh-cn/device-dev/quick-start/Windows开发环境准备.md) - - [Ubuntu编译环境准备](zh-cn/device-dev/quick-start/Ubuntu编译环境准备.md) - - [常见问题](zh-cn/device-dev/quick-start/常见问题.md) - - [开发步骤](zh-cn/device-dev/quick-start/开发步骤.md) - - [Hi3861开发板](zh-cn/device-dev/quick-start/Hi3861开发板.md) - - [安装开发板环境](zh-cn/device-dev/quick-start/安装开发板环境.md) - - [WLAN联网](zh-cn/device-dev/quick-start/WLAN联网.md) - - [运行Hello World](zh-cn/device-dev/quick-start/运行Hello-World.md) - - [常见问题](zh-cn/device-dev/quick-start/常见问题-0.md) - - [Hi3516开发板](zh-cn/device-dev/quick-start/Hi3516开发板.md) - - [安装开发板环境](zh-cn/device-dev/quick-start/安装开发板环境-1.md) - - [运行Hello OHOS](zh-cn/device-dev/quick-start/运行Hello-OHOS.md) - - [驱动开发示例](zh-cn/device-dev/quick-start/驱动开发示例.md) - - [常见问题](zh-cn/device-dev/quick-start/常见问题-2.md) - - [Hi3518开发板](zh-cn/device-dev/quick-start/Hi3518开发板.md) - - [安装开发板环境](zh-cn/device-dev/quick-start/安装开发板环境-3.md) - - [运行Hello OHOS](zh-cn/device-dev/quick-start/运行Hello-OHOS-4.md) - - [常见问题](zh-cn/device-dev/quick-start/常见问题-5.md) - - [标准系统入门](zh-cn/device-dev/quick-start/标准系统入门.md) - - [概述](zh-cn/device-dev/quick-start/概述-6.md) - - [环境搭建](zh-cn/device-dev/quick-start/环境搭建.md) - - [概述](zh-cn/device-dev/quick-start/概述-7.md) - - [Windows开发环境准备](zh-cn/device-dev/quick-start/Windows开发环境准备-8.md) - - [Ubuntu编译环境准备](zh-cn/device-dev/quick-start/Ubuntu编译环境准备-9.md) - - [常见问题](zh-cn/device-dev/quick-start/常见问题-10.md) - - [开发步骤](zh-cn/device-dev/quick-start/开发步骤-11.md) - - 使用指南 - - [内核](zh-cn/device-dev/kernel/Readme-CN.md) - - [轻内核](zh-cn/device-dev/kernel/轻内核.md) - - [基础功能](zh-cn/device-dev/kernel/OpenHarmony轻内核基础功能.md) - - [进程](zh-cn/device-dev/kernel/进程.md) - - [线程](zh-cn/device-dev/kernel/线程.md) - - [内存](zh-cn/device-dev/kernel/内存.md) - - [网络](zh-cn/device-dev/kernel/网络.md) - - [文件系统](zh-cn/device-dev/kernel/OpenHarmony轻内核文件系统.md) - - [VFS](zh-cn/device-dev/kernel/VFS.md) - - [NFS](zh-cn/device-dev/kernel/NFS.md) - - [RAMFS](zh-cn/device-dev/kernel/RAMFS.md) - - [FAT](zh-cn/device-dev/kernel/FAT.md) - - [JFFS2](zh-cn/device-dev/kernel/JFFS2.md) - - [标准库](zh-cn/device-dev/kernel/标准库.md) - - [标准库](zh-cn/device-dev/kernel/标准库-0.md) - - [与Linux标准库的差异](zh-cn/device-dev/kernel/与Linux标准库的差异.md) - - [调测](zh-cn/device-dev/kernel/调测.md) - - [Shell介绍](zh-cn/device-dev/kernel/Shell介绍.md) - - [Shell命令开发指导](zh-cn/device-dev/kernel/Shell命令开发指导.md) - - [Shell命令编程实例](zh-cn/device-dev/kernel/Shell命令编程实例.md) - - [Shell命令使用详解](zh-cn/device-dev/kernel/Shell命令使用详解.md) - - [系统命令](zh-cn/device-dev/kernel/系统命令.md) - - [cpup](zh-cn/device-dev/kernel/cpup.md) - - [date](zh-cn/device-dev/kernel/date.md) - - [dmesg](zh-cn/device-dev/kernel/dmesg.md) - - [exec](zh-cn/device-dev/kernel/exec.md) - - [free](zh-cn/device-dev/kernel/free.md) - - [help](zh-cn/device-dev/kernel/help.md) - - [hwi](zh-cn/device-dev/kernel/hwi.md) - - [kill](zh-cn/device-dev/kernel/kill.md) - - [log](zh-cn/device-dev/kernel/log.md) - - [memcheck](zh-cn/device-dev/kernel/memcheck.md) - - [oom](zh-cn/device-dev/kernel/oom.md) - - [pmm](zh-cn/device-dev/kernel/pmm.md) - - [reset](zh-cn/device-dev/kernel/reset.md) - - [sem](zh-cn/device-dev/kernel/sem.md) - - [stack](zh-cn/device-dev/kernel/stack.md) - - [su](zh-cn/device-dev/kernel/su.md) - - [swtmr](zh-cn/device-dev/kernel/swtmr.md) - - [systeminfo](zh-cn/device-dev/kernel/systeminfo.md) - - [task](zh-cn/device-dev/kernel/task.md) - - [uname](zh-cn/device-dev/kernel/uname.md) - - [vmm](zh-cn/device-dev/kernel/vmm.md) - - [watch](zh-cn/device-dev/kernel/watch.md) - - [文件命令](zh-cn/device-dev/kernel/文件命令.md) - - [cat](zh-cn/device-dev/kernel/cat.md) - - [cd](zh-cn/device-dev/kernel/cd.md) - - [chgrp](zh-cn/device-dev/kernel/chgrp.md) - - [chmod](zh-cn/device-dev/kernel/chmod.md) - - [chown](zh-cn/device-dev/kernel/chown.md) - - [cp](zh-cn/device-dev/kernel/cp.md) - - [format](zh-cn/device-dev/kernel/format.md) - - [ls](zh-cn/device-dev/kernel/ls.md) - - [lsfd](zh-cn/device-dev/kernel/lsfd.md) - - [mkdir](zh-cn/device-dev/kernel/mkdir.md) - - [mount](zh-cn/device-dev/kernel/mount.md) - - [partinfo](zh-cn/device-dev/kernel/partinfo.md) - - [partition](zh-cn/device-dev/kernel/partition.md) - - [pwd](zh-cn/device-dev/kernel/pwd.md) - - [rm](zh-cn/device-dev/kernel/rm.md) - - [rmdir](zh-cn/device-dev/kernel/rmdir.md) - - [statfs](zh-cn/device-dev/kernel/statfs.md) - - [sync](zh-cn/device-dev/kernel/sync.md) - - [touch](zh-cn/device-dev/kernel/touch.md) - - [writeproc](zh-cn/device-dev/kernel/writeproc.md) - - [umount](zh-cn/device-dev/kernel/umount.md) - - [网络命令](zh-cn/device-dev/kernel/网络命令.md) - - [arp](zh-cn/device-dev/kernel/arp.md) - - [dhclient](zh-cn/device-dev/kernel/dhclient.md) - - [dns](zh-cn/device-dev/kernel/dns.md) - - [ifconfig](zh-cn/device-dev/kernel/ifconfig.md) - - [ipdebug](zh-cn/device-dev/kernel/ipdebug.md) - - [netstat](zh-cn/device-dev/kernel/netstat.md) - - [ntpdate](zh-cn/device-dev/kernel/ntpdate.md) - - [ping](zh-cn/device-dev/kernel/ping.md) - - [ping6](zh-cn/device-dev/kernel/ping6.md) - - [telnet](zh-cn/device-dev/kernel/telnet.md) - - [tftp](zh-cn/device-dev/kernel/tftp.md) - - [魔法键使用方法](zh-cn/device-dev/kernel/魔法键使用方法.md) - - [用户态异常信息说明](zh-cn/device-dev/kernel/用户态异常信息说明.md) - - [Linux内核](zh-cn/device-dev/kernel/Linux内核.md) - - [Linux内核概述](zh-cn/device-dev/kernel/Linux内核概述.md) - - [OpenHarmony开发板Patch使用指导](zh-cn/device-dev/kernel/OpenHarmony开发板Patch使用指导.md) - - [Linux内核编译与构建指导](zh-cn/device-dev/kernel/Linux内核编译与构建指导.md) - - [驱动](zh-cn/device-dev/driver/Readme-CN.md) - - [HDF驱动框架](zh-cn/device-dev/driver/HDF驱动框架.md) - - [HDF开发概述](zh-cn/device-dev/driver/HDF开发概述.md) - - [驱动开发](zh-cn/device-dev/driver/驱动开发.md) - - [驱动服务管理](zh-cn/device-dev/driver/驱动服务管理.md) - - [驱动消息机制管理](zh-cn/device-dev/driver/驱动消息机制管理.md) - - [配置管理](zh-cn/device-dev/driver/配置管理.md) - - [HDF开发实例](zh-cn/device-dev/driver/HDF开发实例.md) - - [驱动平台](zh-cn/device-dev/driver/驱动平台.md) - - [GPIO](zh-cn/device-dev/driver/GPIO.md) - - [GPIO概述](zh-cn/device-dev/driver/GPIO概述.md) - - [GPIO使用指导](zh-cn/device-dev/driver/GPIO使用指导.md) - - [GPIO使用实例](zh-cn/device-dev/driver/GPIO使用实例.md) - - [I2C](zh-cn/device-dev/driver/I2C.md) - - [I2C概述](zh-cn/device-dev/driver/I2C概述.md) - - [I2C使用指导](zh-cn/device-dev/driver/I2C使用指导.md) - - [I2C使用实例](zh-cn/device-dev/driver/I2C使用实例.md) - - [RTC](zh-cn/device-dev/driver/RTC.md) - - [RTC概述](zh-cn/device-dev/driver/RTC概述.md) - - [RTC使用指导](zh-cn/device-dev/driver/RTC使用指导.md) - - [RTC使用实例](zh-cn/device-dev/driver/RTC使用实例.md) - - [SDIO](zh-cn/device-dev/driver/SDIO.md) - - [SDIO概述](zh-cn/device-dev/driver/SDIO概述.md) - - [SDIO使用指导](zh-cn/device-dev/driver/SDIO使用指导.md) - - [SDIO使用实例](zh-cn/device-dev/driver/SDIO使用实例.md) - - [SPI](zh-cn/device-dev/driver/SPI.md) - - [SPI概述](zh-cn/device-dev/driver/SPI概述.md) - - [SPI使用指导](zh-cn/device-dev/driver/SPI使用指导.md) - - [SPI使用实例](zh-cn/device-dev/driver/SPI使用实例.md) - - [UART](zh-cn/device-dev/driver/UART.md) - - [UART概述](zh-cn/device-dev/driver/UART概述.md) - - [UART使用指导](zh-cn/device-dev/driver/UART使用指导.md) - - [UART使用实例](zh-cn/device-dev/driver/UART使用实例.md) - - [WATCHDOG](zh-cn/device-dev/driver/WATCHDOG.md) - - [看门狗概述](zh-cn/device-dev/driver/看门狗概述.md) - - [看门狗使用指导](zh-cn/device-dev/driver/看门狗使用指导.md) - - [看门狗使用实例](zh-cn/device-dev/driver/看门狗使用实例.md) - - [MIPI DSI](zh-cn/device-dev/driver/MIPI-DSI.md) - - [MIPI DSI概述](zh-cn/device-dev/driver/MIPI-DSI概述.md) - - [MIPI DSI使用指导](zh-cn/device-dev/driver/MIPI-DSI使用指导.md) - - [MIPI DSI使用实例](zh-cn/device-dev/driver/MIPI-DSI使用实例.md) - - [外设](zh-cn/device-dev/driver/外设.md) - - [LCD](zh-cn/device-dev/driver/LCD.md) - - [LCD开发概述](zh-cn/device-dev/driver/LCD开发概述.md) - - [LCD开发指导](zh-cn/device-dev/driver/LCD开发指导.md) - - [LCD开发实例](zh-cn/device-dev/driver/LCD开发实例.md) - - [TOUCHSCREEN](zh-cn/device-dev/driver/TOUCHSCREEN.md) - - [Touchscreen开发概述](zh-cn/device-dev/driver/Touchscreen开发概述.md) - - [Touchscreen开发指导](zh-cn/device-dev/driver/Touchscreen开发指导.md) - - [Touchscreen开发实例](zh-cn/device-dev/driver/Touchscreen开发实例.md) - - [SENSOR](zh-cn/device-dev/driver/SENSOR.md) - - [传感器驱动开发概述](zh-cn/device-dev/driver/传感器驱动开发概述.md) - - [传感器驱动开发指导](zh-cn/device-dev/driver/传感器驱动开发指导.md) - - [传感器驱动开发实例](zh-cn/device-dev/driver/传感器驱动开发实例.md) - - [传感器驱动测试指导](zh-cn/device-dev/driver/传感器驱动测试指导.md) - - [WLAN](zh-cn/device-dev/driver/WLAN.md) - - [WLAN开发概述](zh-cn/device-dev/driver/WLAN开发概述.md) - - [WLAN开发指导](zh-cn/device-dev/driver/WLAN开发指导.md) - - [WLAN开发实例](zh-cn/device-dev/driver/WLAN开发实例.md) - - [子系统](zh-cn/device-dev/subsystems/Readme-CN.md) - - [编译构建](zh-cn/device-dev/subsystems/编译构建.md) - - [轻量和小型系统编译构建指导](zh-cn/device-dev/subsystems/轻量和小型系统编译构建指导.md) - - [编译构建概述](zh-cn/device-dev/subsystems/编译构建概述.md) - - [编译构建使用指导](zh-cn/device-dev/subsystems/编译构建使用指导.md) - - [编译构建常见问题](zh-cn/device-dev/subsystems/编译构建常见问题.md) - - [标准系统编译构建指导](zh-cn/device-dev/subsystems/标准系统编译构建指导.md) - - [编译构建概述](zh-cn/device-dev/subsystems/编译构建概述-0.md) - - [编译构建使用指导](zh-cn/device-dev/subsystems/编译构建使用指导-1.md) - - [分布式远程启动](zh-cn/device-dev/subsystems/分布式远程启动.md) - - [图形图像](zh-cn/device-dev/subsystems/图形图像.md) - - [图形图像概述](zh-cn/device-dev/subsystems/图形图像概述.md) - - [容器类组件开发指导](zh-cn/device-dev/subsystems/容器类组件开发指导.md) - - [布局容器类组件开发指导](zh-cn/device-dev/subsystems/布局容器类组件开发指导.md) - - [普通组件开发指导](zh-cn/device-dev/subsystems/普通组件开发指导.md) - - [动画开发指导](zh-cn/device-dev/subsystems/动画开发指导.md) - - [媒体](zh-cn/device-dev/subsystems/媒体.md) - - [相机](zh-cn/device-dev/subsystems/相机.md) - - [相机开发概述](zh-cn/device-dev/subsystems/相机开发概述.md) - - [拍照开发指导](zh-cn/device-dev/subsystems/拍照开发指导.md) - - [录像开发指导](zh-cn/device-dev/subsystems/录像开发指导.md) - - [预览开发指导](zh-cn/device-dev/subsystems/预览开发指导.md) - - [音视频](zh-cn/device-dev/subsystems/音视频.md) - - [音视频开发概述](zh-cn/device-dev/subsystems/音视频开发概述.md) - - [音视频播放开发指导](zh-cn/device-dev/subsystems/音视频播放开发指导.md) - - [音视频录制开发指导](zh-cn/device-dev/subsystems/音视频录制开发指导.md) - - [公共基础](zh-cn/device-dev/subsystems/公共基础.md) - - [公共基础库概述](zh-cn/device-dev/subsystems/公共基础库概述.md) - - [公共基础库开发指导](zh-cn/device-dev/subsystems/公共基础库开发指导.md) - - [公共基础库常见问题](zh-cn/device-dev/subsystems/公共基础库常见问题.md) - - [AI框架](zh-cn/device-dev/subsystems/AI框架.md) - - [AI引擎框架开发指南](zh-cn/device-dev/subsystems/AI引擎框架开发指南.md) - - [搭建环境](zh-cn/device-dev/subsystems/搭建环境.md) - - [技术规范](zh-cn/device-dev/subsystems/技术规范.md) - - [代码管理规范](zh-cn/device-dev/subsystems/代码管理规范.md) - - [命名规范](zh-cn/device-dev/subsystems/命名规范.md) - - [接口开发规范](zh-cn/device-dev/subsystems/接口开发规范.md) - - [开发指导](zh-cn/device-dev/subsystems/开发指导.md) - - [SDK开发过程](zh-cn/device-dev/subsystems/SDK开发过程.md) - - [插件的开发过程](zh-cn/device-dev/subsystems/插件的开发过程.md) - - [配置文件的开发过程](zh-cn/device-dev/subsystems/配置文件的开发过程.md) - - [开发示例](zh-cn/device-dev/subsystems/开发示例.md) - - [唤醒词识别SDK的开发示例](zh-cn/device-dev/subsystems/唤醒词识别SDK的开发示例.md) - - [唤醒词识别插件的开发示例](zh-cn/device-dev/subsystems/唤醒词识别插件的开发示例.md) - - [唤醒词识别配置文件的开发示例](zh-cn/device-dev/subsystems/唤醒词识别配置文件的开发示例.md) - - [Sensor服务](zh-cn/device-dev/subsystems/Sensor服务.md) - - [Sensor服务子系概述](zh-cn/device-dev/subsystems/Sensor服务子系概述.md) - - [Sensor服务子系使用指导](zh-cn/device-dev/subsystems/Sensor服务子系使用指导.md) - - [Sensor服务子系使用实例](zh-cn/device-dev/subsystems/Sensor服务子系使用实例.md) - - [用户程序框架](zh-cn/device-dev/subsystems/用户程序框架.md) - - [概述](zh-cn/device-dev/subsystems/概述.md) - - [搭建环境](zh-cn/device-dev/subsystems/搭建环境-2.md) - - [开发指导](zh-cn/device-dev/subsystems/开发指导-3.md) - - [开发实例](zh-cn/device-dev/subsystems/开发实例.md) - - [OTA升级](zh-cn/device-dev/subsystems/OTA升级.md) - - [安全](zh-cn/device-dev/subsystems/安全.md) - - [概述](zh-cn/device-dev/subsystems/概述-7.md) - - [应用验签开发指导](zh-cn/device-dev/subsystems/应用验签开发指导.md) - - [应用权限管理开发指导](zh-cn/device-dev/subsystems/应用权限管理开发指导.md) - - [IPC通信鉴权开发指导](zh-cn/device-dev/subsystems/IPC通信鉴权开发指导.md) - - [可信设备群组管理开发指导](zh-cn/device-dev/subsystems/可信设备群组管理开发指导.md) - - [启动恢复](zh-cn/device-dev/subsystems/启动恢复.md) - - [启动恢复子系统概述](zh-cn/device-dev/subsystems/启动恢复子系统概述.md) - - [init启动引导组件](zh-cn/device-dev/subsystems/init启动引导组件.md) - - [appspawn应用孵化组件](zh-cn/device-dev/subsystems/appspawn应用孵化组件.md) - - [bootstrap服务启动组件](zh-cn/device-dev/subsystems/bootstrap服务启动组件.md) - - [syspara系统属性组件](zh-cn/device-dev/subsystems/syspara系统属性组件.md) - - [常见问题](zh-cn/device-dev/subsystems/常见问题.md) - - [参考](zh-cn/device-dev/subsystems/参考.md) - - [测试](zh-cn/device-dev/subsystems/测试.md) - - [DFX](zh-cn/device-dev/subsystems/DFX.md) - - [DFX概述](zh-cn/device-dev/subsystems/DFX概述.md) - - [HiLog开发指导](zh-cn/device-dev/subsystems/HiLog开发指导.md) - - [HiLog\_Lite开发指导](zh-cn/device-dev/subsystems/HiLog_Lite开发指导.md) - - [HiSysEvent开发指导](zh-cn/device-dev/subsystems/HiSysEvent开发指导.md) - - [研发工具链](zh-cn/device-dev/subsystems/研发工具链.md) - - [bytrace使用指导](zh-cn/device-dev/subsystems/bytrace使用指导.md) - - [hdc\_std 使用指导](zh-cn/device-dev/subsystems/hdc_std-使用指导.md) - - [XTS](zh-cn/device-dev/subsystems/XTS认证子系统开发指南.md) - - [隐私与安全](zh-cn/device-dev/security/Readme-CN.md) - - [隐私保护](zh-cn/device-dev/security/隐私保护.md) - - [安全指南](zh-cn/device-dev/security/安全指南.md) - - [开发示例](zh-cn/device-dev/guide/Readme-CN.md) - - [WLAN连接类产品](zh-cn/device-dev/guide/WLAN连接类产品.md) - - [LED外设控制](zh-cn/device-dev/guide/LED外设控制.md) - - [概述](zh-cn/device-dev/guide/概述.md) - - [开发](zh-cn/device-dev/guide/开发.md) - - [验证](zh-cn/device-dev/guide/验证.md) - - [集成三方SDK](zh-cn/device-dev/guide/集成三方SDK.md) - - [无屏摄像头类产品](zh-cn/device-dev/guide/无屏摄像头类产品.md) - - [摄像头控制](zh-cn/device-dev/guide/摄像头控制.md) - - [概述](zh-cn/device-dev/guide/概述-0.md) - - [示例开发](zh-cn/device-dev/guide/示例开发.md) - - [拍照开发指导](zh-cn/device-dev/guide/拍照开发指导.md) - - [录像开发指导](zh-cn/device-dev/guide/录像开发指导.md) - - [应用实例](zh-cn/device-dev/guide/应用实例.md) - - [带屏摄像头类产品](zh-cn/device-dev/guide/带屏摄像头类产品.md) - - [屏幕和摄像头控制](zh-cn/device-dev/guide/屏幕和摄像头控制.md) - - [概述](zh-cn/device-dev/guide/概述-1.md) - - [示例开发](zh-cn/device-dev/guide/示例开发-2.md) - - [拍照开发指导](zh-cn/device-dev/guide/拍照开发指导-3.md) - - [录像开发指导](zh-cn/device-dev/guide/录像开发指导-4.md) - - [预览开发指导](zh-cn/device-dev/guide/预览开发指导.md) - - [应用实例](zh-cn/device-dev/guide/应用实例-5.md) - - [视觉应用开发](zh-cn/device-dev/guide/视觉应用开发.md) - - [概述](zh-cn/device-dev/guide/概述-6.md) - - [开发准备](zh-cn/device-dev/guide/开发准备.md) - - [添加页面](zh-cn/device-dev/guide/添加页面.md) - - [开发首页](zh-cn/device-dev/guide/开发首页.md) - - [开发详情页](zh-cn/device-dev/guide/开发详情页.md) - - [调试打包](zh-cn/device-dev/guide/调试打包.md) - - [真机运行](zh-cn/device-dev/guide/真机运行.md) - - [常见问题](zh-cn/device-dev/guide/常见问题.md) - - [时钟应用开发示例](zh-cn/device-dev/guide/时钟应用开发示例.md) - - [概述](zh-cn/device-dev/guide/概述-7.md) - - [开发准备](zh-cn/device-dev/guide/开发准备-8.md) - - [开发步骤](zh-cn/device-dev/guide/开发步骤.md) - - [签名打包](zh-cn/device-dev/guide/签名打包.md) - - [真机运行](zh-cn/device-dev/guide/真机运行-9.md) - - - [平台驱动开发示例](zh-cn/device-dev/guide/平台驱动开发示例.md) - - [概述](zh-cn/device-dev/guide/概述-10.md) - - [环境准备](zh-cn/device-dev/guide/环境准备.md) - - [开发](zh-cn/device-dev/guide/开发-11.md) - - [编译及烧录](zh-cn/device-dev/guide/编译及烧录.md) - - - [外设驱动开发示例](zh-cn/device-dev/guide/外设驱动开发示例.md) - - [概述](zh-cn/device-dev/guide/概述-12.md) - - [硬件资源介绍](zh-cn/device-dev/guide/硬件资源介绍.md) - - [Input模型简介](zh-cn/device-dev/guide/Input模型简介.md) - - - [环境搭建](zh-cn/device-dev/guide/环境搭建.md) - - [TouchScreen器件驱动开发](zh-cn/device-dev/guide/TouchScreen器件驱动开发.md) - - [配置设备描述信息](zh-cn/device-dev/guide/配置设备描述信息.md) - - [配置Touchscreen器件信息](zh-cn/device-dev/guide/配置Touchscreen器件信息.md) - - [适配器件私有驱动](zh-cn/device-dev/guide/适配器件私有驱动.md) - - - [编译及烧录](zh-cn/device-dev/guide/编译及烧录-13.md) - - [调试验证](zh-cn/device-dev/guide/调试验证.md) - - [开机日志分析](zh-cn/device-dev/guide/开机日志分析.md) - - - [Input模型工作流程解析](zh-cn/device-dev/guide/Input模型工作流程解析.md) - - [私有配置信息解析](zh-cn/device-dev/guide/私有配置信息解析.md) - - [管理驱动层初始化及注册驱动至HDF框架](zh-cn/device-dev/guide/管理驱动层初始化及注册驱动至HDF框架.md) - - [公共驱动层初始化及注册驱动至HDF框架](zh-cn/device-dev/guide/公共驱动层初始化及注册驱动至HDF框架.md) - - [器件驱动层初始化及注册驱动至HDF框架](zh-cn/device-dev/guide/器件驱动层初始化及注册驱动至HDF框架.md) - - [具体调用逻辑串联函数](zh-cn/device-dev/guide/具体调用逻辑串联函数.md) - - - - [移植适配](zh-cn/device-dev/porting/Readme-CN.md) - - [三方库移植指导](zh-cn/device-dev/porting/三方库移植指导.md) - - [概述](zh-cn/device-dev/porting/概述.md) - - [CMake方式组织编译的库移植](zh-cn/device-dev/porting/CMake方式组织编译的库移植.md) - - [Makefile方式组织编译的库移植](zh-cn/device-dev/porting/Makefile方式组织编译的库移植.md) - - [三方芯片移植指导](zh-cn/device-dev/porting/三方芯片移植指导.md) - - [移植准备](zh-cn/device-dev/porting/移植准备.md) - - [移植须知](zh-cn/device-dev/porting/移植须知.md) - - [编译构建适配流程](zh-cn/device-dev/porting/编译构建适配流程.md) - - [内核移植](zh-cn/device-dev/porting/内核移植.md) - - [移植概述](zh-cn/device-dev/porting/移植概述.md) - - [内核基础适配](zh-cn/device-dev/porting/内核基础适配.md) - - [内核移植验证](zh-cn/device-dev/porting/内核移植验证.md) - - [板级系统移植](zh-cn/device-dev/porting/板级系统移植.md) - - [移植概述](zh-cn/device-dev/porting/移植概述-0.md) - - [板级驱动适配](zh-cn/device-dev/porting/板级驱动适配.md) - - [HAL层实现](zh-cn/device-dev/porting/HAL层实现.md) - - [系统组件调用](zh-cn/device-dev/porting/系统组件调用.md) - - [XTS认证](zh-cn/device-dev/porting/XTS认证.md) - - [常见问题](zh-cn/device-dev/porting/常见问题.md) - - [组件开发](zh-cn/device-dev/bundles/Readme-CN.md) - - [组件开发规范](zh-cn/device-dev/bundles/组件开发规范.md) - - [概述](zh-cn/device-dev/bundles/概述.md) - - [组件构成](zh-cn/device-dev/bundles/组件构成.md) - - [组件管理](zh-cn/device-dev/bundles/组件管理.md) - - [组件版本](zh-cn/device-dev/bundles/组件版本.md) - - [发行版](zh-cn/device-dev/bundles/发行版.md) - - [环境变量说明](zh-cn/device-dev/bundles/环境变量说明.md) - - [组件开发指南](zh-cn/device-dev/bundles/组件开发指南.md) - - [概述](zh-cn/device-dev/bundles/概述-0.md) - - [准备工作](zh-cn/device-dev/bundles/准备工作.md) - - [组件开发](zh-cn/device-dev/bundles/组件开发.md) - - [组件开发示例](zh-cn/device-dev/bundles/组件开发示例.md) - - [HPM介绍](zh-cn/device-dev/bundles/HPM介绍.md) - - [环境准备](zh-cn/device-dev/bundles/环境准备.md) - - [操作实例](zh-cn/device-dev/bundles/操作实例.md) - - [术语](zh-cn/device-dev/glossary/术语.md) -- 应用开发 - - [入门](zh-cn/application-dev/quick-start/Readme-CN.md) - - [DevEco Studio(OpenHarmony)使用指南](zh-cn/application-dev/quick-start/DevEco-Studio(OpenHarmony)使用指南.md) - - [概述](zh-cn/application-dev/quick-start/概述.md) - - [配置OpenHarmony SDK](zh-cn/application-dev/quick-start/配置OpenHarmony-SDK.md) - - [导入OpenHarmony工程](zh-cn/application-dev/quick-start/导入OpenHarmony工程.md) - - [配置OpenHarmony应用签名信息](zh-cn/application-dev/quick-start/配置OpenHarmony应用签名信息.md) - - [安装运行OpenHarmony应用](zh-cn/application-dev/quick-start/安装运行OpenHarmony应用.md) - - [快速入门](zh-cn/application-dev/quick-start/快速入门.md) - - [开发准备](zh-cn/application-dev/quick-start/开发准备.md) - - [使用JS语言开发](zh-cn/application-dev/quick-start/使用JS语言开发.md) - - - [UI](zh-cn/application-dev/ui/Readme-CN.md) - - [JS UI框架](zh-cn/application-dev/ui/JS-UI框架.md) - - [JS UI框架概述](zh-cn/application-dev/ui/JS-UI框架概述.md) - - [构建用户界面](zh-cn/application-dev/ui/构建用户界面.md) - - [组件介绍](zh-cn/application-dev/ui/组件介绍.md) - - [构建布局](zh-cn/application-dev/ui/构建布局.md) - - [布局说明](zh-cn/application-dev/ui/布局说明.md) - - [添加标题行和文本区域](zh-cn/application-dev/ui/添加标题行和文本区域.md) - - [添加图片区域](zh-cn/application-dev/ui/添加图片区域.md) - - [添加留言区域](zh-cn/application-dev/ui/添加留言区域.md) - - [添加容器](zh-cn/application-dev/ui/添加容器.md) - - [添加交互](zh-cn/application-dev/ui/添加交互.md) - - [动画](zh-cn/application-dev/ui/动画.md) - - [事件](zh-cn/application-dev/ui/事件.md) - - [页面路由](zh-cn/application-dev/ui/页面路由.md) - - [自定义组件](zh-cn/application-dev/ui/自定义组件.md) - - - [媒体](zh-cn/application-dev/media/Readme-CN.md) - - [音频](zh-cn/application-dev/media/音频.md) - - [音频开发概述](zh-cn/application-dev/media/音频开发概述.md) - - - [音频播放开发指导](zh-cn/application-dev/media/音频播放开发指导.md) - - [音频管理开发指导](zh-cn/application-dev/media/音频管理开发指导.md) - - - - [网络与连接](zh-cn/application-dev/connectivity/Readme-CN.md) - - - [IPC与RPC通信](zh-cn/application-dev/connectivity/IPC与RPC通信.md) - - [IPC与RPC通信概述](zh-cn/application-dev/connectivity/IPC与RPC通信概述.md) - - [IPC与RPC通信开发指导](zh-cn/application-dev/connectivity/IPC与RPC通信开发指导.md) - - [远端状态订阅开发实例](zh-cn/application-dev/connectivity/远端状态订阅开发实例.md) - - - [JS参考规范](zh-cn/application-dev/js-reference/Readme-CN.md) - - [框架说明](zh-cn/application-dev/js-reference/框架说明.md) - - [文件组织](zh-cn/application-dev/js-reference/文件组织.md) - - [js标签配置](zh-cn/application-dev/js-reference/js标签配置.md) - - [app.js](zh-cn/application-dev/js-reference/app-js.md) - - [语法](zh-cn/application-dev/js-reference/语法.md) - - [HML语法参考](zh-cn/application-dev/js-reference/HML语法参考.md) - - [CSS语法参考](zh-cn/application-dev/js-reference/CSS语法参考.md) - - [JS语法参考](zh-cn/application-dev/js-reference/JS语法参考.md) - - [组件](zh-cn/application-dev/js-reference/组件.md) - - [通用](zh-cn/application-dev/js-reference/通用.md) - - [组件方法](zh-cn/application-dev/js-reference/组件方法.md) - - [动画样式](zh-cn/application-dev/js-reference/动画样式.md) - - [渐变样式](zh-cn/application-dev/js-reference/渐变样式.md) - - [转场样式](zh-cn/application-dev/js-reference/转场样式.md) - - [自定义字体样式](zh-cn/application-dev/js-reference/自定义字体样式.md) - - [原子布局](zh-cn/application-dev/js-reference/原子布局.md) - - [容器组件](zh-cn/application-dev/js-reference/容器组件.md) - - [badge](zh-cn/application-dev/js-reference/badge.md) - - [dialog](zh-cn/application-dev/js-reference/dialog.md) - - [div](zh-cn/application-dev/js-reference/div.md) - - [list](zh-cn/application-dev/js-reference/list.md) - - [list-item](zh-cn/application-dev/js-reference/list-item.md) - - [list-item-group](zh-cn/application-dev/js-reference/list-item-group.md) - - [panel](zh-cn/application-dev/js-reference/panel.md) - - [popup](zh-cn/application-dev/js-reference/popup.md) - - [refresh](zh-cn/application-dev/js-reference/refresh.md) - - [stack](zh-cn/application-dev/js-reference/stack.md) - - [stepper](zh-cn/application-dev/js-reference/stepper.md) - - [stepper-item](zh-cn/application-dev/js-reference/stepper-item.md) - - [swiper](zh-cn/application-dev/js-reference/swiper.md) - - [tabs](zh-cn/application-dev/js-reference/tabs.md) - - [tab-bar](zh-cn/application-dev/js-reference/tab-bar.md) - - [tab-content](zh-cn/application-dev/js-reference/tab-content.md) - - [基础组件](zh-cn/application-dev/js-reference/基础组件.md) - - [button](zh-cn/application-dev/js-reference/button.md) - - [chart](zh-cn/application-dev/js-reference/chart.md) - - [divider](zh-cn/application-dev/js-reference/divider.md) - - [image](zh-cn/application-dev/js-reference/image.md) - - [image-animator](zh-cn/application-dev/js-reference/image-animator.md) - - [input](zh-cn/application-dev/js-reference/input.md) - - [label](zh-cn/application-dev/js-reference/label.md) - - [marquee](zh-cn/application-dev/js-reference/marquee.md) - - [menu](zh-cn/application-dev/js-reference/menu.md) - - [option](zh-cn/application-dev/js-reference/option.md) - - [picker](zh-cn/application-dev/js-reference/picker.md) - - [picker-view](zh-cn/application-dev/js-reference/picker-view.md) - - [piece](zh-cn/application-dev/js-reference/piece.md) - - [progress](zh-cn/application-dev/js-reference/progress.md) - - [qrcode](zh-cn/application-dev/js-reference/qrcode.md) - - [rating](zh-cn/application-dev/js-reference/rating.md) - - [select](zh-cn/application-dev/js-reference/select.md) - - [slider](zh-cn/application-dev/js-reference/slider.md) - - [span](zh-cn/application-dev/js-reference/span.md) - - [switch](zh-cn/application-dev/js-reference/switch.md) - - [text](zh-cn/application-dev/js-reference/text.md) - - [toolbar](zh-cn/application-dev/js-reference/toolbar.md) - - [toolbar-item](zh-cn/application-dev/js-reference/toolbar-item.md) - - [toggle](zh-cn/application-dev/js-reference/toggle.md) - - [画布组件](zh-cn/application-dev/js-reference/画布组件.md) - - [canvas组件](zh-cn/application-dev/js-reference/canvas组件.md) - - [CanvasRenderingContext2D对象](zh-cn/application-dev/js-reference/CanvasRenderingContext2D对象.md) - - [Image对象](zh-cn/application-dev/js-reference/Image对象.md) - - [CanvasGradient对象](zh-cn/application-dev/js-reference/CanvasGradient对象.md) - - [ImageData对象](zh-cn/application-dev/js-reference/ImageData对象.md) - - [栅格组件\(Rich\)](zh-cn/application-dev/js-reference/栅格组件(Rich).md) - - [基本概念](zh-cn/application-dev/js-reference/基本概念.md) - - [grid-container](zh-cn/application-dev/js-reference/grid-container.md) - - [grid-row](zh-cn/application-dev/js-reference/grid-row.md) - - [grid-col](zh-cn/application-dev/js-reference/grid-col.md) - - [自定义组件](zh-cn/application-dev/js-reference/自定义组件.md) - - [基本用法](zh-cn/application-dev/js-reference/基本用法.md) - - [自定义事件](zh-cn/application-dev/js-reference/自定义事件.md) - - [Props](zh-cn/application-dev/js-reference/Props.md) - - [事件参数](zh-cn/application-dev/js-reference/事件参数.md) - - [组件通用说明](zh-cn/application-dev/js-reference/组件通用说明.md) - - [通用事件](zh-cn/application-dev/js-reference/通用事件.md) - - [通用属性](zh-cn/application-dev/js-reference/通用属性.md) - - [通用样式](zh-cn/application-dev/js-reference/通用样式.md) - - [接口](zh-cn/application-dev/js-reference/接口.md) - - [日志打印](zh-cn/application-dev/js-reference/日志打印.md) - - [应用打点](zh-cn/application-dev/js-reference/应用打点.md) - - [页面路由](zh-cn/application-dev/js-reference/页面路由.md) - - [弹窗](zh-cn/application-dev/js-reference/弹窗.md) - - [定时器](zh-cn/application-dev/js-reference/定时器.md) - - [时间设置](zh-cn/application-dev/js-reference/时间设置.md) - - [音频管理](zh-cn/application-dev/js-reference/音频管理.md) - - [音频播放](zh-cn/application-dev/js-reference/音频播放.md) - - [设备信息](zh-cn/application-dev/js-reference/设备信息.md) - - [系统属性](zh-cn/application-dev/js-reference/系统属性.md) - - [电池和充电属性](zh-cn/application-dev/js-reference/电池和充电属性.md) - - [设置系统屏幕亮度](zh-cn/application-dev/js-reference/设置系统屏幕亮度.md) - - [国际化](zh-cn/application-dev/js-reference/国际化.md) - - [资源管理](zh-cn/application-dev/js-reference/资源管理.md) - - [升级](zh-cn/application-dev/js-reference/升级.md) -## en - - -* [Introduction](en/readme.md) -- [OpenHarmony Overview](en/OpenHarmony-Overview.md) -- Devices Development - - [Source Code Acquisition](en/device-dev/get-code/Readme-EN.md) - - [Source Code Acquisition](en/device-dev/get-code/source-code-acquisition.md) - - [Acquiring Tools](en/device-dev/get-code/tool-acquisition.md) - - [Getting Started](en/device-dev/quick-start/Readme-EN.md) - - [Overview](en/device-dev/quick-start/overview.md) - - [Mini and Small Systems](en/device-dev/quick-start/mini-and-small-systems.md) - - [Overview](en/device-dev/quick-start/overview-0.md) - - [Introduction to the Development Boards](en/device-dev/quick-start/introduction-to-the-development-boards.md) - - [Hi3861 Development Board](en/device-dev/quick-start/hi3861-development-board.md) - - [Hi3516 Development Board](en/device-dev/quick-start/hi3516-development-board.md) - - [Hi3518 Development Board](en/device-dev/quick-start/hi3518-development-board.md) - - [Environment Setup](en/device-dev/quick-start/environment-setup.md) - - [Windows Development Environment](en/device-dev/quick-start/windows-development-environment.md) - - [Ubuntu Build Environment](en/device-dev/quick-start/ubuntu-build-environment.md) - - [FAQ](en/device-dev/quick-start/faq.md) - - [How to Develop](en/device-dev/quick-start/how-to-develop.md) - - [Hi3861](en/device-dev/quick-start/hi3861.md) - - [Setting Up the Environment](en/device-dev/quick-start/setting-up-the-environment.md) - - [WLAN Connection](en/device-dev/quick-start/wlan-connection.md) - - [Running a Hello World Program](en/device-dev/quick-start/running-a-hello-world-program.md) - - [FAQs](en/device-dev/quick-start/faqs.md) - - [Hi3516](en/device-dev/quick-start/hi3516.md) - - [Setting Up the Environment](en/device-dev/quick-start/setting-up-the-environment-1.md) - - [Running a Hello OHOS Program](en/device-dev/quick-start/running-a-hello-ohos-program.md) - - [Developing a Driver](en/device-dev/quick-start/developing-a-driver.md) - - [FAQs](en/device-dev/quick-start/faqs-2.md) - - [Hi3518](en/device-dev/quick-start/hi3518.md) - - [Setting Up the Environment](en/device-dev/quick-start/setting-up-the-environment-3.md) - - [Running a Hello OHOS Program](en/device-dev/quick-start/running-a-hello-ohos-program-4.md) - - [FAQs](en/device-dev/quick-start/faqs-5.md) - - [Standard System](en/device-dev/quick-start/standard-system.md) - - [Overview](en/device-dev/quick-start/overview-6.md) - - [Environment Setup](en/device-dev/quick-start/environment-setup-7.md) - - [Overview](en/device-dev/quick-start/overview-8.md) - - [Windows Development Environment](en/device-dev/quick-start/windows-development-environment-9.md) - - [Ubuntu Build Environment](en/device-dev/quick-start/ubuntu-build-environment-10.md) - - [FAQs](en/device-dev/quick-start/faqs-11.md) - - [How to Develop](en/device-dev/quick-start/how-to-develop-12.md) -- Usage Guidelines - - [Kernel](en/device-dev/kernel/Readme-EN.md) - - [Lite Kernel](en/device-dev/kernel/lite-kernel.md) - - [OpenHarmony Lite Kernel Basic Functions](en/device-dev/kernel/openharmony-lite-kernel-basic-functions.md) - - [Process](en/device-dev/kernel/process.md) - - [Thread](en/device-dev/kernel/thread.md) - - [Memory](en/device-dev/kernel/memory.md) - - [Network](en/device-dev/kernel/network.md) - - [OpenHarmony Lite Kernel File System](en/device-dev/kernel/openharmony-lite-kernel-file-system.md) - - [VFS](en/device-dev/kernel/vfs.md) - - [NFS](en/device-dev/kernel/nfs.md) - - [RAMFS](en/device-dev/kernel/ramfs.md) - - [FAT](en/device-dev/kernel/fat.md) - - [JFFS2](en/device-dev/kernel/jffs2.md) - - [Standard Library](en/device-dev/kernel/standard-library.md) - - [Standard Library](en/device-dev/kernel/standard-library-0.md) - - [Differences from the Linux Standard Library](en/device-dev/kernel/differences-from-the-linux-standard-library.md) - - [Commissioning](en/device-dev/kernel/commissioning.md) - - [Introduction to the Shell](en/device-dev/kernel/introduction-to-the-shell.md) - - [Shell Command Development Guidelines](en/device-dev/kernel/shell-command-development-guidelines.md) - - [Shell Command Programming Example](en/device-dev/kernel/shell-command-programming-example.md) - - [Shell Command Reference](en/device-dev/kernel/shell-command-reference.md) - - [System Commands](en/device-dev/kernel/system-commands.md) - - [cpup](en/device-dev/kernel/cpup.md) - - [date](en/device-dev/kernel/date.md) - - [dmesg](en/device-dev/kernel/dmesg.md) - - [exec](en/device-dev/kernel/exec.md) - - [free](en/device-dev/kernel/free.md) - - [help](en/device-dev/kernel/help.md) - - [hwi](en/device-dev/kernel/hwi.md) - - [kill](en/device-dev/kernel/kill.md) - - [log](en/device-dev/kernel/log.md) - - [memcheck](en/device-dev/kernel/memcheck.md) - - [oom](en/device-dev/kernel/oom.md) - - [pmm](en/device-dev/kernel/pmm.md) - - [reset](en/device-dev/kernel/reset.md) - - [sem](en/device-dev/kernel/sem.md) - - [stack](en/device-dev/kernel/stack.md) - - [su](en/device-dev/kernel/su.md) - - [swtmr](en/device-dev/kernel/swtmr.md) - - [systeminfo](en/device-dev/kernel/systeminfo.md) - - [task](en/device-dev/kernel/task.md) - - [uname](en/device-dev/kernel/uname.md) - - [vmm](en/device-dev/kernel/vmm.md) - - [watch](en/device-dev/kernel/watch.md) - - [File Commands](en/device-dev/kernel/file-commands.md) - - [cat](en/device-dev/kernel/cat.md) - - [cd](en/device-dev/kernel/cd.md) - - [chgrp](en/device-dev/kernel/chgrp.md) - - [chmod](en/device-dev/kernel/chmod.md) - - [chown](en/device-dev/kernel/chown.md) - - [cp](en/device-dev/kernel/cp.md) - - [format](en/device-dev/kernel/format.md) - - [ls](en/device-dev/kernel/ls.md) - - [lsfd](en/device-dev/kernel/lsfd.md) - - [mkdir](en/device-dev/kernel/mkdir.md) - - [mount](en/device-dev/kernel/mount.md) - - [partinfo](en/device-dev/kernel/partinfo.md) - - [partition](en/device-dev/kernel/partition.md) - - [pwd](en/device-dev/kernel/pwd.md) - - [rm](en/device-dev/kernel/rm.md) - - [rmdir](en/device-dev/kernel/rmdir.md) - - [statfs](en/device-dev/kernel/statfs.md) - - [sync](en/device-dev/kernel/sync.md) - - [touch](en/device-dev/kernel/touch.md) - - [writeproc](en/device-dev/kernel/writeproc.md) - - [umount](en/device-dev/kernel/umount.md) - - [Network Commands](en/device-dev/kernel/network-commands.md) - - [arp](en/device-dev/kernel/arp.md) - - [dhclient](en/device-dev/kernel/dhclient.md) - - [dns](en/device-dev/kernel/dns.md) - - [ifconfig](en/device-dev/kernel/ifconfig.md) - - [ipdebug](en/device-dev/kernel/ipdebug.md) - - [netstat](en/device-dev/kernel/netstat.md) - - [ntpdate](en/device-dev/kernel/ntpdate.md) - - [ping](en/device-dev/kernel/ping.md) - - [ping6](en/device-dev/kernel/ping6.md) - - [telnet](en/device-dev/kernel/telnet.md) - - [tftp](en/device-dev/kernel/tftp.md) - - [Magic Key Usage](en/device-dev/kernel/magic-key-usage.md) - - [User-Space Exception Information](en/device-dev/kernel/user-space-exception-information.md) - - [Linux Kernel](en/device-dev/kernel/linux-kernel.md) - - [Linux Kernel Overview](en/device-dev/kernel/linux-kernel-overview.md) - - [Guidelines for Using Patches on OpenHarmony Development Boards](en/device-dev/kernel/guidelines-for-using-patches-on-openharmony-development-boards.md) - - [Guidelines for Compiling and Building the Linux Kernel](en/device-dev/kernel/guidelines-for-compiling-and-building-the-linux-kernel.md) - -- [Drivers](en/device-dev/driver/Readme-EN.md) - - [HDF](en/device-dev/driver/hdf.md) - - [HDF Overview](en/device-dev/driver/hdfoverview.md) - - [Driver Development](en/device-dev/driver/driver-development.md) - - [Driver Service Management](en/device-dev/driver/driver-service-management.md) - - [Driver Message Mechanism Management](en/device-dev/driver/driver-message-mechanism-management.md) - - [Driver Configuration Management](en/device-dev/driver/driver-configuration-management.md) - - [HDF Development Example](en/device-dev/driver/hdfdevelopment-example.md) - - [Driver Platform](en/device-dev/driver/driver-platform.md) - - [GPIO](en/device-dev/driver/gpio.md) - - [GPIO Overview](en/device-dev/driver/gpiooverview.md) - - [GPIO Usage Guidelines](en/device-dev/driver/gpiousage-guidelines.md) - - [GPIO Usage Example](en/device-dev/driver/gpiousage-example.md) - - [I2C](en/device-dev/driver/i2c.md) - - [I2C Overview](en/device-dev/driver/i2c-overview.md) - - [I2C Usage Guidelines](en/device-dev/driver/i2c-usage-guidelines.md) - - [I2C Usage Example](en/device-dev/driver/i2c-usage-example.md) - - [RTC](en/device-dev/driver/rtc.md) - - [RTC Overview](en/device-dev/driver/rtc-overview.md) - - [RTC Usage Guidelines](en/device-dev/driver/rtc-usage-guidelines.md) - - [RTC Usage Example](en/device-dev/driver/rtc-usage-example.md) - - [SDIO](en/device-dev/driver/sdio.md) - - [SDIO Overview](en/device-dev/driver/sdiooverview.md) - - [SDIO Usage Guidelines](en/device-dev/driver/sdiousage-guidelines.md) - - [SDIO Usage Example](en/device-dev/driver/sdiousage-example.md) - - [SPI](en/device-dev/driver/spi.md) - - [SPI Overview](en/device-dev/driver/spioverview.md) - - [SPI Usage Guidelines](en/device-dev/driver/spiusage-guidelines.md) - - [SPI Usage Example](en/device-dev/driver/spiusage-example.md) - - [UART](en/device-dev/driver/uart.md) - - [UART Overview](en/device-dev/driver/uartoverview.md) - - [UART Usage Guidelines](en/device-dev/driver/uartusage-guidelines.md) - - [UART Usage Example](en/device-dev/driver/uartusage-example.md) - - [WATCHDOG](en/device-dev/driver/watchdog.md) - - [Watchdog Overview](en/device-dev/driver/watchdogoverview.md) - - [Watchdog Usage Guidelines](en/device-dev/driver/watchdogusage-guidelines.md) - - [Watchdog Usage Example](en/device-dev/driver/watchdogusage-example.md) - - [MIPI DSI](en/device-dev/driver/mipi-dsi.md) - - [MIPI DSI Overview](en/device-dev/driver/mipi-dsi-overview.md) - - [Usage Guidelines](en/device-dev/driver/usage-guidelines.md) - - [Usage Example](en/device-dev/driver/usage-example.md) - - [Peripherals](en/device-dev/driver/Readme-EN.md) - - [LCD](en/device-dev/driver/lcd.md) - - [LCD Overview](en/device-dev/driver/lcdoverview.md) - - [LCD Development Guidelines](en/device-dev/driver/lcddevelopment-guidelines.md) - - [LCD Development Example](en/device-dev/driver/lcddevelopment-example.md) - - [TOUCHSCREEN](en/device-dev/driver/touchscreen.md) - - [Touchscreen Overview](en/device-dev/driver/touchscreenoverview.md) - - [Touchscreen Development Guidelines](en/device-dev/driver/touchscreendevelopment-guidelines.md) - - [Touchscreen Development Example](en/device-dev/driver/touchscreendevelopment-example.md) - - [SENSOR](en/device-dev/driver/sensor.md) - - [Sensor Driver Overview](en/device-dev/driver/sensor-driver-overview.md) - - [Sensor Driver Development Guidelines](en/device-dev/driver/sensor-driver-development-guidelines.md) - - [Sensor Driver Development Example](en/device-dev/driver/sensor-driver-development-example.md) - - [Sensor Driver Test Guidelines](en/device-dev/driver/sensor-driver-test-guidelines.md) - - [WLAN](en/device-dev/driver/wlan.md) - - [WLAN Overview](en/device-dev/driver/wlanoverview.md) - - [WLAN Development Guidelines](en/device-dev/driver/wlandevelopment-guidelines.md) - - [WLAN Development Example](en/device-dev/driver/wlandevelopment-example.md) - - - [Subsystems](en/device-dev/subsystems/Readme-EN.md) - - [Compilation and Building](en/device-dev/subsystems/compilation-and-building.md) - - [Building Guidelines for Mini and Small Systems](en/device-dev/subsystems/building-guidelines-for-mini-and-small-systems.md) - - [Compilation and Building Overview](en/device-dev/subsystems/compilation-and-building-overview.md) - - [Compilation and Building Guidelines](en/device-dev/subsystems/compilation-and-building-guidelines.md) - - [Compilation and Building FAQ](en/device-dev/subsystems/compilation-and-building-faq.md) - - [Building Guidelines for the Standard System](en/device-dev/subsystems/building-guidelines-for-the-standard-system.md) - - [Compilation and Building Overview](en/device-dev/subsystems/compilation-and-building-overview-0.md) - - [Compilation and Building Guidelines](en/device-dev/subsystems/compilation-and-building-guidelines-1.md) - - - [Distributed Remote Startup](en/device-dev/subsystems/distributed-remote-startup.md) - - [Graphics](en/device-dev/subsystems/graphics.md) - - [Graphics](en/device-dev/subsystems/graphics-2.md) - - [Development Guidelines on Container Components](en/device-dev/subsystems/development-guidelines-on-container-components.md) - - [Development Guidelines on Layout Container Components](en/device-dev/subsystems/development-guidelines-on-layout-container-components.md) - - [Development Guidelines on Common Components](en/device-dev/subsystems/development-guidelines-on-common-components.md) - - [Development Guidelines on Animators](en/device-dev/subsystems/development-guidelines-on-animators.md) - - [Multimedia](en/device-dev/subsystems/multimedia.md) - - [Camera](en/device-dev/subsystems/camera.md) - - [Overview](en/device-dev/subsystems/overview.md) - - [Development Guidelines on Photographing](en/device-dev/subsystems/development-guidelines-on-photographing.md) - - [Development Guidelines on Video Recording](en/device-dev/subsystems/development-guidelines-on-video-recording.md) - - [Development Guidelines on Previewing](en/device-dev/subsystems/development-guidelines-on-previewing.md) - - [Audio/Video](en/device-dev/subsystems/audio-video.md) - - [Overview](en/device-dev/subsystems/overview-3.md) - - [Development Guidelines on Media Playback](en/device-dev/subsystems/development-guidelines-on-media-playback.md) - - [Development Guidelines on Media Recording](en/device-dev/subsystems/development-guidelines-on-media-recording.md) - - [Utils](en/device-dev/subsystems/utils.md) - - [Utils Overview](en/device-dev/subsystems/utils-overview.md) - - [Utils Development Guidelines](en/device-dev/subsystems/utils-development-guidelines.md) - - [Utils FAQ](en/device-dev/subsystems/utils-faq.md) - - [AI Framework](en/device-dev/subsystems/ai-framework.md) - - [AI Engine Framework](en/device-dev/subsystems/ai-engine-framework.md) - - [Development Environment](en/device-dev/subsystems/development-environment.md) - - [Technical Specifications](en/device-dev/subsystems/technical-specifications.md) - - [Code Management](en/device-dev/subsystems/code-management.md) - - [Naming](en/device-dev/subsystems/naming.md) - - [API Development](en/device-dev/subsystems/api-development.md) - - [Development Guidelines](en/device-dev/subsystems/development-guidelines.md) - - [SDK](en/device-dev/subsystems/sdk.md) - - [Plug-in](en/device-dev/subsystems/plug-in.md) - - [Configuration File](en/device-dev/subsystems/configuration-file.md) - - [Development Examples](en/device-dev/subsystems/development-examples.md) - - [KWS SDK](en/device-dev/subsystems/kws-sdk.md) - - [KWS Plug-in](en/device-dev/subsystems/kws-plug-in.md) - - [KWS Configuration File](en/device-dev/subsystems/kws-configuration-file.md) - - [Sensors](en/device-dev/subsystems/sensors.md) - - [Sensors Overview](en/device-dev/subsystems/sensors-overview.md) - - [Sensors Usage Guidelines](en/device-dev/subsystems/sensors-usage-guidelines.md) - - [Sensors Usage Example](en/device-dev/subsystems/sensors-usage-example.md) - - [Application Framework](en/device-dev/subsystems/application-framework.md) - - [Overview](en/device-dev/subsystems/overview-4.md) - - [Setting Up a Development Environment](en/device-dev/subsystems/setting-up-a-development-environment.md) - - [Development Guidelines](en/device-dev/subsystems/development-guidelines-5.md) - - [Development Example](en/device-dev/subsystems/development-example.md) - - [OTA Upgrade](en/device-dev/subsystems/ota-upgrade.md) - - [Security](en/device-dev/subsystems/security.md) - - [Overview](en/device-dev/subsystems/overview-9.md) - - [Development Guidelines on Application Signature Verification](en/device-dev/subsystems/development-guidelines-on-application-signature-verification.md) - - [Development Guidelines on Application Permission Management](en/device-dev/subsystems/development-guidelines-on-application-permission-management.md) - - [Development Guidelines on IPC Authentication](en/device-dev/subsystems/development-guidelines-on-ipc-authentication.md) - - [Development Guidelines on Trusted Device Group Management](en/device-dev/subsystems/development-guidelines-on-trusted-device-group-management.md) - - [Reference](en/device-dev/subsystems/reference.md) - - [Startup](en/device-dev/subsystems/startup.md) - - [Startup](en/device-dev/subsystems/startup-10.md) - - [init Module](en/device-dev/subsystems/init-module.md) - - [appspawn Module](en/device-dev/subsystems/appspawn-module.md) - - [bootstrap Module](en/device-dev/subsystems/bootstrap-module.md) - - [syspara Module](en/device-dev/subsystems/syspara-module.md) - - [FAQs](en/device-dev/subsystems/faqs.md) - - [Reference](en/device-dev/subsystems/reference.md) - - [Testing](en/device-dev/subsystems/testing.md) - - [DFX](en/device-dev/subsystems/dfx.md) - - [DFX](en/device-dev/subsystems/dfx-11.md) - - [Development Guidelines on HiLog ](en/device-dev/subsystems/development-guidelines-on-hilog.md) - - [Development Guidelines on HiLog\_Lite](en/device-dev/subsystems/development-guidelines-on-hilog_lite.md) - - [Development Guidelines on HiSysEvent](en/device-dev/subsystems/development-guidelines-on-hisysevent.md) - - [R&D Tools](en/device-dev/subsystems/r-d-tools.md) - - [bytrace Usage Guidelines](en/device-dev/subsystems/bytrace-usage-guidelines.md) - - [hdc std Usage Guidelines](en/device-dev/subsystems/hdc_std-usage-guidelines.md) - - [XTS](en/device-dev/subsystems/xts.md) - - [Privacy and Security](en/device-dev/security/Readme-EN.md) - - [Privacy Protection](en/device-dev/security/privacy-protection.md) - - [Security Guidelines](en/device-dev/security/security-guidelines.md) - - [Development Examples](en/device-dev/guide/Readme-EN.md) - - [WLAN-connected Products](en/device-dev/guide/wlan-connected-products.md) - - [LED Peripheral Control](en/device-dev/guide/led-peripheral-control.md) - - [Overview](en/device-dev/guide/overview.md) - - [Development](en/device-dev/guide/development.md) - - [Verification](en/device-dev/guide/verification.md) - - [Third-Party SDK Integration](en/device-dev/guide/third-party-sdk-integration.md) - - [Camera Control](en/device-dev/guide/camera-control.md) - - [Overview](en/device-dev/guide/overview-0.md) - - [Development Guidelines](en/device-dev/guide/development-guidelines.md) - - [Photographing](en/device-dev/guide/photographing.md) - - [Video Recording](en/device-dev/guide/video-recording.md) - - [Use Case](en/device-dev/guide/use-case.md) - - [Cameras with a Screen](en/device-dev/guide/cameras-with-a-screen.md) - - [Screen and Camera Control](en/device-dev/guide/screen-and-camera-control.md) - - [Overview](en/device-dev/guide/overview-1.md) - - [Development Guidelines](en/device-dev/guide/development-guidelines-2.md) - - [Photographing](en/device-dev/guide/photographing-3.md) - - [Video Recording](en/device-dev/guide/video-recording-4.md) - - [Previewing](en/device-dev/guide/previewing.md) - - [Use Case](en/device-dev/guide/use-case-5.md) - - [Visual Application Development](en/device-dev/guide/visual-application-development.md) - - [Overview](en/device-dev/guide/overview-6.md) - - [Preparations](en/device-dev/guide/preparations.md) - - [Adding Pages](en/device-dev/guide/adding-pages.md) - - [Building the Home Page](en/device-dev/guide/building-the-home-page.md) - - [Building the Details Page](en/device-dev/guide/building-the-details-page.md) - - [Debugging and Packaging](en/device-dev/guide/debugging-and-packaging.md) - - [Running on the Device](en/device-dev/guide/running-on-the-device.md) - - [FAQs](en/device-dev/guide/faqs.md) - - [Development Example for Clock Apps](en/device-dev/guide/development-example-for-clock-apps.md) - - [Overview](en/device-dev/guide/overview-7.md) - - [Preparations](en/device-dev/guide/preparations-8.md) - - [How to Develop](en/device-dev/guide/how-to-develop.md) - - [Signing and Packaging](en/device-dev/guide/signing-and-packaging.md) - - [Running on the Device](en/device-dev/guide/running-on-the-device-9.md) - - [Development Example for Platform Drivers](en/device-dev/guide/development-example-for-platform-drivers.md) - - [Overview](en/device-dev/guide/overview-10.md) - - [Preparations](en/device-dev/guide/preparations-11.md) - - [Development](en/device-dev/guide/development-12.md) - - [Building and Burning](en/device-dev/guide/building-and-burning.md) - - [Development Example for Peripheral Drivers](en/device-dev/guide/development-example-for-peripheral-drivers.md) - - [Overview](en/device-dev/guide/overview-13.md) - - [Hardware Resources](en/device-dev/guide/hardware-resources.md) - - [Input Driver Model](en/device-dev/guide/input-driver-model.md) - - [Setting Up the Environment](en/device-dev/guide/setting-up-the-environment.md) - - [Developing a Touchscreen Driver](en/device-dev/guide/developing-a-touchscreen-driver.md) - - [Configuring Device Driver Descriptions](en/device-dev/guide/configuring-device-driver-descriptions.md) - - [Configuring the Touchscreen](en/device-dev/guide/configuring-the-touchscreen.md) - - [Adapting to the Private Drivers of the Touchscreen](en/device-dev/guide/adapting-to-the-private-drivers-of-the-touchscreen.md) - - [Building and Burning](en/device-dev/guide/building-and-burning-14.md) - - [Debugging and Verification](en/device-dev/guide/debugging-and-verification.md) - - [Startup Log Analysis](en/device-dev/guide/startup-log-analysis.md) - - [Input Driver Model Workflow Analysis](en/device-dev/guide/input-driver-model-workflow-analysis.md) - - [Parsing Private Configuration Data](en/device-dev/guide/parsing-private-configuration-data.md) - - [Initializing the Input Device Manager and Registering the Driver with the HDF](en/device-dev/guide/initializing-the-input-device-manager-and-registering-the-driver-with-the-hdf.md) - - [Initializing the Input Common Driver and Registering the Driver with the HDF](en/device-dev/guide/initializing-the-input-common-driver-and-registering-the-driver-with-the-hdf.md) - - [Initializing the Input Chip Driver and Registering the Driver with the HDF](en/device-dev/guide/initializing-the-input-chip-driver-and-registering-the-driver-with-the-hdf.md) - - [Function Invocation Logic](en/device-dev/guide/function-invocation-logic.md) - - [Porting Guide](en/device-dev/porting/Readme-EN.md) - - [Third-Party Library Porting Guide](en/device-dev/porting/third-party-library-porting-guide.md) - - [Overview](en/device-dev/porting/overview.md) - - [Porting a Library Built Using CMake](en/device-dev/porting/porting-a-library-built-using-cmake.md) - - [Porting a Library Built Using Makefile](en/device-dev/porting/porting-a-library-built-using-makefile.md) - - [Third-Party SoC Porting Guide](en/device-dev/porting/third-party-soc-porting-guide.md) - - [Porting Preparations](en/device-dev/porting/porting-preparations.md) - - [Before You Start](en/device-dev/porting/before-you-start.md) - - [Building Adaptation Process](en/device-dev/porting/building-adaptation-process.md) - - [Kernel Porting](en/device-dev/porting/kernel-porting.md) - - [Overview](en/device-dev/porting/overview-0.md) - - [Basic Kernel Adaptation](en/device-dev/porting/basic-kernel-adaptation.md) - - [Kernel Porting Verification](en/device-dev/porting/kernel-porting-verification.md) - - [Board-Level OS Porting](en/device-dev/porting/board-level-os-porting.md) - - [Overview](en/device-dev/porting/overview-1.md) - - [Board-Level Driver Adaptation](en/device-dev/porting/board-level-driver-adaptation.md) - - [Implementation of APIs at the HAL](en/device-dev/porting/implementation-of-apis-at-the-hal.md) - - [System Modules](en/device-dev/porting/system-modules.md) - - [XTS](en/device-dev/porting/xts.md) - - [FAQ](en/device-dev/porting/faq.md) - - [Bundle Development](en/device-dev/bundles/Readme-EN.md) - - [Development Specifications](en/device-dev/bundles/development-specifications.md) - - [Overview](en/device-dev/bundles/overview.md) - - [Bundle Composition](en/device-dev/bundles/bundle-composition.md) - - [Bundle Management](en/device-dev/bundles/bundle-management.md) - - [Bundle Version](en/device-dev/bundles/bundle-version.md) - - [Distribution](en/device-dev/bundles/distribution.md) - - [Environment Variables](en/device-dev/bundles/environment-variables.md) - - [Development Guidelines](en/device-dev/bundles/development-guidelines.md) - - [Overview](en/device-dev/bundles/overview-0.md) - - [Preparations](en/device-dev/bundles/preparations.md) - - [Bundle Development](en/device-dev/bundles/bundle-development.md) - - [HPM User Guide](en/device-dev/bundles/hpm-user-guide.md) - - [Introduction](en/device-dev/bundles/introduction.md) - - [Preparations](en/device-dev/bundles/preparations-1.md) - - [Development Example](en/device-dev/bundles/development-example.md) - - [Glossary](en/device-dev/glossary/glossary.md) - -- Application Development - - [DevEco Studio \(OpenHarmony\) User Guide](en/application-dev/quick-start/deveco-studio-(openharmony)-user-guide.md) - - [Overview](en/application-dev/quick-start/overview.md) - - [Configuring the OpenHarmony SDK](en/application-dev/quick-start/configuring-the-openharmony-sdk.md) - - [Configuring the OpenHarmony App Signature](en/application-dev/quick-start/configuring-the-openharmony-app-signature.md) -- [Installing and Running Your OpenHarmony App](en/application-dev/quick-start/installing-and-running-your-openharmony-app.md) - - [Basics ](en/application-dev/quick-start/Readme-EN.md) - - [Getting Started](en/application-dev/quick-start/getting-started.md) - - [Preparations](en/application-dev/quick-start/preparations.md) - - [Getting Started with JavaScript](en/application-dev/quick-start/getting-started-with-javascript.md) - - [UI](en/application-dev/ui/Readme-EN.md) - - [JS UI Framework](en/application-dev/ui/js-ui-framework.md) - - [JS UI Framework Overview](en/application-dev/ui/js-ui-framework-overview.md) - - [Building the UI](en/application-dev/ui/building-the-ui.md) - - [Component Overview](en/application-dev/ui/component-overview.md) - - [Building the Layout](en/application-dev/ui/building-the-layout.md) - - [Layout Description](en/application-dev/ui/layout-description.md) - - [Adding Title and Paragraph Text](en/application-dev/ui/adding-title-and-paragraph-text.md) - - [Adding an Image](en/application-dev/ui/adding-an-image.md) - - [Adding a Comment](en/application-dev/ui/adding-a-comment.md) - - [Adding a Container](en/application-dev/ui/adding-a-container.md) - - [Adding Interactions](en/application-dev/ui/adding-interactions.md) - - [Animation](en/application-dev/ui/animation.md) - - [Event](en/application-dev/ui/event.md) - - [Defining Page Routes](en/application-dev/ui/defining-page-routes.md) - - [Custom Components](en/application-dev/ui/custom-components.md) - - [Media](en/application-dev/media/Readme-EN.md) - - [Audio](en/application-dev/media/audio.md) - - [Audio Overview](en/application-dev/media/audio-overview.md) - - [Development Guidelines on Audio Playback](en/application-dev/media/development-guidelines-on-audio-playback.md) - - [Development Guidelines on Audio Management](en/application-dev/media/development-guidelines-on-audio-management.md) - - [Connectivity](en/application-dev/connectivity/Readme-EN.md) - - [IPC & RPC](en/application-dev/connectivity/ipc-rpc.md) - - [IPC & RPC Overview](en/application-dev/connectivity/ipc-rpc-overview.md) - - [IPC & RPC Development Guidelines](en/application-dev/connectivity/ipc-rpc-development-guidelines.md) - - [Subscribing to State Changes of a Remote Object](en/application-dev/connectivity/subscribing-to-state-changes-of-a-remote-object.md) - - [JS Reference](en/application-dev/js-reference/Readme-EN.md) - - - [Framework](en/application-dev/js-reference/framework.md) - - [File Organization](en/application-dev/js-reference/file-organization.md) - - ["js" Tag](en/application-dev/js-reference/js-tag.md) - - [app.js](en/application-dev/js-reference/app-js.md) - - [Syntax](en/application-dev/js-reference/syntax.md) - - [HML](en/application-dev/js-reference/hml.md) - - [CSS](en/application-dev/js-reference/css.md) - - [JavaScript](en/application-dev/js-reference/javascript.md) - - [Loading Images Based on DPI](en/application-dev/js-reference/loading-images-based-on-dpi.md) - - [Components](en/application-dev/js-reference/components.md) - - [Common](en/application-dev/js-reference/common.md) - - [Component Methods](en/application-dev/js-reference/component-methods.md) - - [Animation Styles](en/application-dev/js-reference/animation-styles.md) - - [Gradient Styles](en/application-dev/js-reference/gradient-styles.md) - - [Transition Styles](en/application-dev/js-reference/transition-styles.md) - - [Custom Font Styles](en/application-dev/js-reference/custom-font-styles.md) - - [Atomic Layout](en/application-dev/js-reference/atomic-layout.md) - - [Container Components](en/application-dev/js-reference/container-components.md) - - [badge](en/application-dev/js-reference/badge.md) - - [dialog](en/application-dev/js-reference/dialog.md) - - [div](en/application-dev/js-reference/div.md) - - [list](en/application-dev/js-reference/list.md) - - [list-item](en/application-dev/js-reference/list-item.md) - - [list-item-group](en/application-dev/js-reference/list-item-group.md) - - [panel](en/application-dev/js-reference/panel.md) - - [popup](en/application-dev/js-reference/popup.md) - - [refresh](en/application-dev/js-reference/refresh.md) - - [stack](en/application-dev/js-reference/stack.md) - - [stepper](en/application-dev/js-reference/stepper.md) - - [stepper-item](en/application-dev/js-reference/stepper-item.md) - - [swiper](en/application-dev/js-reference/swiper.md) - - [tabs](en/application-dev/js-reference/tabs.md) - - [tab-bar](en/application-dev/js-reference/tab-bar.md) - - [tab-content](en/application-dev/js-reference/tab-content.md) - - [Basic Components](en/application-dev/js-reference/basic-components.md) - - [button](en/application-dev/js-reference/button.md) - - [chart](en/application-dev/js-reference/chart.md) - - [divider](en/application-dev/js-reference/divider.md) - - [image](en/application-dev/js-reference/image.md) - - [image-animator](en/application-dev/js-reference/image-animator.md) - - [input](en/application-dev/js-reference/input.md) - - [label](en/application-dev/js-reference/label.md) - - [marquee](en/application-dev/js-reference/marquee.md) - - [menu](en/application-dev/js-reference/menu.md) - - [option](en/application-dev/js-reference/option.md) - - [picker](en/application-dev/js-reference/picker.md) - - [picker-view](en/application-dev/js-reference/picker-view.md) - - [piece](en/application-dev/js-reference/piece.md) - - [progress](en/application-dev/js-reference/progress.md) - - [qrcode](en/application-dev/js-reference/qrcode.md) - - [rating](en/application-dev/js-reference/rating.md) - - [search](en/application-dev/js-reference/search.md) - - [select](en/application-dev/js-reference/select.md) - - [slider](en/application-dev/js-reference/slider.md) - - [span](en/application-dev/js-reference/span.md) - - [switch](en/application-dev/js-reference/switch.md) - - [text](en/application-dev/js-reference/text.md) - - [textarea](en/application-dev/js-reference/textarea.md) - - [toolbar](en/application-dev/js-reference/toolbar.md) - - [toolbar-item](en/application-dev/js-reference/toolbar-item.md) - - [toggle](en/application-dev/js-reference/toggle.md) - - [Canvas Components](en/application-dev/js-reference/canvas-components.md) - - [canvas](en/application-dev/js-reference/canvas.md) - - [CanvasRenderingContext2D](en/application-dev/js-reference/canvasrenderingcontext2d.md) - - [Image](en/application-dev/js-reference/image-0.md) - - [CanvasGradient](en/application-dev/js-reference/canvasgradient.md) - - [ImageData](en/application-dev/js-reference/imagedata.md) - - [Grid Components](en/application-dev/js-reference/grid-components.md) - - [Basic Concepts](en/application-dev/js-reference/basic-concepts.md) - - [grid-container](en/application-dev/js-reference/grid-container.md) - - [grid-row](en/application-dev/js-reference/grid-row.md) - - [grid-col](en/application-dev/js-reference/grid-col.md) - - [Custom Components](en/application-dev/js-reference/custom-components.md) - - [Basic Usage](en/application-dev/js-reference/basic-usage.md) - - [Custom Events](en/application-dev/js-reference/custom-events.md) - - [Props](en/application-dev/js-reference/props.md) - - [Event Parameter](en/application-dev/js-reference/event-parameter.md) - - [Universal Description](en/application-dev/js-reference/universal-description.md) - - [Universal Events](en/application-dev/js-reference/universal-events.md) - - [Universal Attributes](en/application-dev/js-reference/universal-attributes.md) - - [Common Styles](en/application-dev/js-reference/common-styles.md) - - [APIs](en/application-dev/js-reference/apis.md) - - [Console Logs](en/application-dev/js-reference/console-logs.md) - - [HiAppEvent](en/application-dev/js-reference/hiappevent.md) - - [Page Routing](en/application-dev/js-reference/page-routing.md) - - [Pop-up Window](en/application-dev/js-reference/pop-up-window.md) - - [Timer](en/application-dev/js-reference/timer.md) - - [Audio Management](en/application-dev/js-reference/audio-management.md) - - [Audio Playback](en/application-dev/js-reference/audio-playback.md) - - [Device Information](en/application-dev/js-reference/device-information.md) - - [System Attribute](en/application-dev/js-reference/system-attribute.md) - - [Battery and Charging](en/application-dev/js-reference/battery-and-charging.md) - - [Screen Brightness](en/application-dev/js-reference/screen-brightness.md) - - [Globalization](en/application-dev/js-reference/globalization.md) - - [Resource Management](en/application-dev/js-reference/resource-management.md) - - [Updater](en/application-dev/js-reference/updater.md) diff --git a/zh-cn/device-dev/Readme-CN.md b/zh-cn/device-dev/Readme-CN.md index ed7400033a7..d755ec5d943 100644 --- a/zh-cn/device-dev/Readme-CN.md +++ b/zh-cn/device-dev/Readme-CN.md @@ -69,21 +69,21 @@ OpenHarmony也提供了一系列可选的系统组件,方便设备开发者按

使用OpenHarmony提供的基础能力

+

进阶开发

结合系统能力开发智能设备

+

移植适配

  • 针对特定芯片做移植适配
  • 对三方库进行移植适配
+

贡献Bundle

@@ -139,7 +139,7 @@ OpenHarmony也提供了一系列可选的系统组件,方便设备开发者按

使用OpenHarmony提供的基础能力

+

进阶开发

@@ -153,7 +153,7 @@ OpenHarmony也提供了一系列可选的系统组件,方便设备开发者按

对三方库进行移植适配

+

贡献Bundle

diff --git a/zh-cn/device-dev/bundles/bundles-demo-hpmdescription.md b/zh-cn/device-dev/bundles/bundles-demo-hpmdescription.md index d86b3bac418..fb91db510fb 100644 --- a/zh-cn/device-dev/bundles/bundles-demo-hpmdescription.md +++ b/zh-cn/device-dev/bundles/bundles-demo-hpmdescription.md @@ -1,4 +1,4 @@ # HPM介绍 -HPM是OpenHarmony Bundle的管理和分发工具。HPM主要是面向OpenHarmony开发者,用于获取/定制OpenHarmony源码,执行安装依赖、编译、打包、升级等操作的工具集。本文档将向开发者介绍如何使用HPM工具进行OpenHarmonyBundle的安装、编译、打包等操作。 +HPM全称HarmonyOS Package Manager,是OpenHarmonyBundle的管理和分发工具。HPM主要是面向OpenHarmony开发者,用于获取/定制OpenHarmony源码,执行安装依赖、编译、打包、升级等操作的工具集。本文档将向开发者介绍如何使用HPM工具进行OpenHarmonyBundle的安装、编译、打包等操作。 diff --git a/zh-cn/device-dev/bundles/bundles.md b/zh-cn/device-dev/bundles/bundles.md index 2df2bea5891..3b1f56198ec 100644 --- a/zh-cn/device-dev/bundles/bundles.md +++ b/zh-cn/device-dev/bundles/bundles.md @@ -1,6 +1,6 @@ # HPM bundle -- **[组件开发规范](oem_bundle_standard_des.md)** +- **[开发规范](oem_bundle_standard_des.md)** - **[开发指南](bundles-guide.md)** diff --git a/zh-cn/device-dev/driver/driver-hdf-development.md b/zh-cn/device-dev/driver/driver-hdf-development.md index 492abc6c66f..60f3a091890 100644 --- a/zh-cn/device-dev/driver/driver-hdf-development.md +++ b/zh-cn/device-dev/driver/driver-hdf-development.md @@ -66,7 +66,6 @@ HDF框架以组件化的驱动模型作为核心设计思路,为开发者提 HDF_INIT(g_sampleDriverEntry); ``` - 2. 驱动编译 - 驱动代码的编译必须要使用HDF框架提供的Makefile模板进行编译。 @@ -86,7 +85,6 @@ HDF框架以组件化的驱动模型作为核心设计思路,为开发者提 LIB_SUBDIRS += #驱动代码Makefile的目录 ``` - 3. 驱动配置 HDF使用HCS作为配置描述源码,HCS详细介绍参考[配置管理](driver-hdf-manage.md)介绍。 diff --git a/zh-cn/device-dev/driver/driver-hdf.md b/zh-cn/device-dev/driver/driver-hdf.md new file mode 100644 index 00000000000..8c8cb3c3482 --- /dev/null +++ b/zh-cn/device-dev/driver/driver-hdf.md @@ -0,0 +1,15 @@ +# HDF驱动框架 + +- **[HDF开发概述](driver-hdf-overview.md)** + +- **[驱动开发](driver-hdf-development.md)** + +- **[驱动服务管理](driver-hdf-servicemanage.md)** + +- **[驱动消息机制管理](driver-hdf-news.md)** + +- **[配置管理](driver-hdf-manage.md)** + +- **[HDF开发实例](driver-hdf-sample.md)** + + diff --git a/zh-cn/device-dev/driver/driver-peripherals-lcd-des.md b/zh-cn/device-dev/driver/driver-peripherals-lcd-des.md index 90f54e12fba..95b1bfb1032 100644 --- a/zh-cn/device-dev/driver/driver-peripherals-lcd-des.md +++ b/zh-cn/device-dev/driver/driver-peripherals-lcd-des.md @@ -66,7 +66,6 @@ Display驱动模型基于HDF驱动框架、Platform接口及OSAL接口开发, 根据LCD硬件接口,使用Platform接口层提供的I2C、SPI、MIPI等接口,下载LCD初始化序列,初始化参数序列可以参考LCD供应商提供的SPEC。 - 4. 根据需求实现HDF框架其他接口,比如Release接口。 5. 根据需求使用HDF框架可创建其他设备节点,用于业务逻辑或者调试功能。 diff --git a/zh-cn/device-dev/driver/driver-peripherals-touch-des.md b/zh-cn/device-dev/driver/driver-peripherals-touch-des.md index 5f4c46ba8ba..d2e35a9c882 100644 --- a/zh-cn/device-dev/driver/driver-peripherals-touch-des.md +++ b/zh-cn/device-dev/driver/driver-peripherals-touch-des.md @@ -68,14 +68,13 @@ Touchscreen器件的硬件接口相对简单,根据PIN脚的属性,可以简 通常情况下,touchscreen驱动IC和LCD驱动IC是相互分离的,这种情况下,touchscreen驱动IC一般同时需要1.8v和3.3v两路供电。随着芯片演进,业内已有touchscreen驱动IC和LCD驱动IC集成在一颗IC中的芯片案例,对touchscreen而言,只需要关注1.8v供电即可,其内部需要的3.3v电源,会在驱动IC内部从LCD的VSP电源(典型值5.5V)中分出来。 - 2. **IO控制接口** - Reset:reset管脚,用于在系统休眠、唤醒时,由主机侧对驱动IC进行复位操作。 - INT:中断管脚,需要在驱动初始化时,配置为输入上拉状态。在驱动IC检测到外部触摸信号后,通过操作中断管脚来触发中断,器件驱动则会在中断处理函数中进行报点数据读取等操作。 3. **通信接口** - - I2C:由于touchscreen的报点数据量相对较少,所以一般选用I2C方式传输数据。I2C的具体协议及对应操作接口,可以参考Platform接口层中的[“I2C”使用指南](drive-platform-i2c-des.md#section1695201514281)。 - - SPI:部分厂商,由于需要传递的数据不止报点坐标,而是需要获取基础容值,数据量较大,所以会选用SPI通信方式。SPI的具体协议及对应操作接口,可以参考Platform接口层中的[“SPI” 使用指南](drive-platform-spi-des.md#section71363452477)。 + - I2C:由于touchscreen的报点数据量相对较少,所以一般选用I2C方式传输数据。I2C的具体协议及对应操作接口,可以参考Platform接口层中的[“I2C”使用指南](driver-platform-i2c-des.md#section1695201514281)。 + - SPI:部分厂商,由于需要传递的数据不止报点坐标,而是需要获取基础容值,数据量较大,所以会选用SPI通信方式。SPI的具体协议及对应操作接口,可以参考Platform接口层中的[“SPI” 使用指南](driver-platform-spi-des.md#section71363452477)。 ## 开发指导 @@ -109,7 +108,7 @@ Input驱动模型是基于HDF框架、Platform接口和OSAL接口开发,不区 3. 实现器件差异化适配接口 - 根据硬件单板设计的通信接口,使用Platform接口层提供的管脚操作接口配置对应的复位管脚、中断管脚以及电源操作,对于GPIO的操作,可参考[GPIO操作接口指导](drive-platform-gpio-des.md#section259614242196) + 根据硬件单板设计的通信接口,使用Platform接口层提供的管脚操作接口配置对应的复位管脚、中断管脚以及电源操作,对于GPIO的操作,可参考[GPIO操作接口指导](driver-platform-gpio-des.md#section259614242196) ## 开发实例 diff --git a/zh-cn/device-dev/driver/driver-platform-i2c-des.md b/zh-cn/device-dev/driver/driver-platform-i2c-des.md index 915c5f440ee..ec00c3728c1 100644 --- a/zh-cn/device-dev/driver/driver-platform-i2c-des.md +++ b/zh-cn/device-dev/driver/driver-platform-i2c-des.md @@ -405,7 +405,7 @@ static int32_t TestCaseI2c(void) } OsalMSleep(10); - /* 从TP-IC的0xDO寄存器连续读7字节数据 */ + /* 从TP-IC的0xD5寄存器连续读7字节数据 */ ret = TpI2cReadReg(&tpDevice, 0xD5, bufRead, 7); if (ret != HDF_SUCCESS) { HDF_LOGE("%s: tp i2c read reg fail!:%d", __func__, ret); diff --git a/zh-cn/device-dev/driver/driver-platform-spi-des.md b/zh-cn/device-dev/driver/driver-platform-spi-des.md index 47581f9a405..b903ae469fc 100644 --- a/zh-cn/device-dev/driver/driver-platform-spi-des.md +++ b/zh-cn/device-dev/driver/driver-platform-spi-des.md @@ -224,7 +224,7 @@ int32\_t SpiGetCfg\(DevHandle handle, struct SpiCfg \*cfg\); ``` int32_t ret; struct SpiCfg cfg = {0}; /* SPI配置信息*/ -ret = SpiGetCfg(spiHandle, &cfg); /* 配置SPI设备属性 */ +ret = SpiGetCfg(spiHandle, &cfg); /* 获取SPI设备属性 */ if (ret != 0) { HDF_LOGE("SpiGetCfg: failed, ret %d\n", ret); } diff --git a/zh-cn/device-dev/driver/driver.md b/zh-cn/device-dev/driver/driver.md index a0825c12d1e..58ee5fe7bc8 100644 --- a/zh-cn/device-dev/driver/driver.md +++ b/zh-cn/device-dev/driver/driver.md @@ -1,16 +1,6 @@ # 驱动使用指南 -- **[HDF开发概述](driver-hdf-overview.md)** - -- **[驱动开发](driver-hdf-development.md)** - -- **[驱动服务管理](driver-hdf-servicemanage.md)** - -- **[驱动消息机制管理](driver-hdf-news.md)** - -- **[配置管理](driver-hdf-manage.md)** - -- **[HDF开发实例](driver-hdf-sample.md)** +- **[HDF驱动框架](driver-hdf.md)** - **[平台驱动](driver-platform.md)** diff --git a/zh-cn/device-dev/get-code/figure/3-20.png b/zh-cn/device-dev/get-code/figure/3-28.png similarity index 100% rename from zh-cn/device-dev/get-code/figure/3-20.png rename to zh-cn/device-dev/get-code/figure/3-28.png diff --git a/zh-cn/device-dev/get-code/gettools-acquire.md b/zh-cn/device-dev/get-code/gettools-acquire.md index e10ba6af345..e148884a940 100644 --- a/zh-cn/device-dev/get-code/gettools-acquire.md +++ b/zh-cn/device-dev/get-code/gettools-acquire.md @@ -180,13 +180,13 @@ hb set 1. 获取Docker镜像。 ``` - docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:0.0.2 + docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:0.0.1 ``` 2. 进入OpenHarmony代码根目录执行如下命令,从而进入Docker构建环境。 ``` - docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:0.0.2 + docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:0.0.1 ``` @@ -208,7 +208,7 @@ hb set 3. 进入OpenHarmony代码根目录执行如下命令,从而进入Docker构建环境。 ``` - docker run -it -v $(pwd):/home/openharmony openharmony-docker-standard:0.0.2 + docker run -it -v $(pwd):/home/openharmony openharmony-docker-standard:0.0.1 ``` @@ -287,9 +287,8 @@ docker\_dist是一个[HPM](https://hpm.harmonyos.com/)系统中的模板组件 hpm run docker ``` - 以上两种方式以@ohos/hispark\_taurus为例,执行成功结果如下: - + ``` ...... ohos ipcamera_hispark_taurus build success! diff --git a/zh-cn/device-dev/get-code/gettools-ide.md b/zh-cn/device-dev/get-code/gettools-ide.md index 8217ddc1222..31f93558449 100644 --- a/zh-cn/device-dev/get-code/gettools-ide.md +++ b/zh-cn/device-dev/get-code/gettools-ide.md @@ -9,7 +9,7 @@ HUAWEI DevEco Device Tool是OpenHarmony面向智能设备开发者提供的一 Huawei DevEco Device Tool支持 OpenHarmony设备开发的演进路标如下: -![](figure/3-20.png) +![](figure/3-28.png) ## 获取应用开发工具(HUAWEI DevEco Studio) diff --git a/zh-cn/device-dev/get-code/sourcecode-acquire.md b/zh-cn/device-dev/get-code/sourcecode-acquire.md index 6892d7be602..5c61d356c04 100644 --- a/zh-cn/device-dev/get-code/sourcecode-acquire.md +++ b/zh-cn/device-dev/get-code/sourcecode-acquire.md @@ -21,9 +21,6 @@ OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及 开源代码仓库地址:[https://openharmony.gitee.com](https://openharmony.gitee.com) ->![](../public_sys-resources/icon-note.gif) **说明:** ->当前的OpenHarmony源代码仅支持在Linux环境下编译。 - ## 源码获取概述 本文档将介绍如何获取OpenHarmony源码并说明OpenHarmony的源码目录结构。OpenHarmony的代码以[组件](../bundles/oem_bundle_standard_des.md)的形式开放,开发者可以通过如下其中一种方式获取: @@ -107,7 +104,7 @@ OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及 repo forall -c 'git lfs pull' ``` -- OpenHarmony其他版本源码获取方式请参考版本[Release-Notes](https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/Readme.md)。 +- OpenHarmony其他版本源码获取方式请参考版本[Release-Notes](https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-Release-Notes.md)。 ## 获取方式2:从HPM获取 @@ -159,7 +156,6 @@ OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及 ![](figure/zh-cn_image_0000001119915556.png) - 2. 了解发行版详情。 1. 仔细阅读发行版的说明信息,以了解使用场景、特性、组件构成、使用方法以及如何进行定制化,如下图所示。 @@ -182,7 +178,6 @@ OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及 ![](figure/zh-cn_image_0000001166715379.png) - 4. 下载安装组件。 1. 解压下载的压缩文件,用命令行工具CMD(Linux下的Shell终端) 2. 在解压后的文件目录下执行hpm install指令 @@ -194,7 +189,7 @@ OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及 为了获得更好的下载性能,您可以选择从以下站点的镜像库获取源码或者对应的解决方案。 >![](../public_sys-resources/icon-note.gif) **说明:** ->- 本部分只提供OpenHarmony Master最新版本和LTS最新版本的源码获取方式, 其他版本源码获取方式以及具体版本信息请参考[Release-Notes](https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/Readme.md) +>- 本部分只提供OpenHarmony Master最新版本和LTS最新版本的源码获取方式, 其他版本源码获取方式以及具体版本信息请参考[Release-Notes](https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-Release-Notes.md) >- 当前Master 1.0版本已经不再维护。 **表 1** 源码获取路径 diff --git a/zh-cn/device-dev/glossary/glossary.md b/zh-cn/device-dev/glossary/glossary.md index 7d73579241e..fd37728ae4f 100755 --- a/zh-cn/device-dev/glossary/glossary.md +++ b/zh-cn/device-dev/glossary/glossary.md @@ -1,99 +1,5 @@ -# 术语 +# 术语 -- [A](#section1679023922312) -- [B](#section62182102017) -- [D](#section1670294920236) -- [F](#section5406185415236) -- [H](#section891816813243) -- [I](#section10124052142516) -- [P](#section779354121411) -- [S](#section25661636182615) - -## A - -- **Ability** - - 应用的重要组成部分,是应用所具备能力的抽象。Ability分为两种类型,Feature Ability和Particle Ability。 - - -- **AbilitySlice** - - 切片,是单个可视化界面及其交互逻辑的总和,是Feature Ability的组成单元。一个Feature Ability可以包含一组业务关系密切的可视化界面,每一个可视化界面对应一个AbilitySlice。 - -- **AMS** - - Ability Manager Service,Ability管理服务。 - - -## B - -- **BMS** - - Bundle Manager Service,包管理服务。 - - -## D - -- **DevEco Studio for Embedded** - - 嵌入式设备开发IDE。 - -- **DMS** - - Distributed Management Service,分布式管理服务。 - - -## F - -- **FA** - - Feature Ability,代表有界面的Ability,用于与用户进行交互。 - - -## H - -- **HAP** - - OpenHarmony Ability Package,一个HAP文件包含应用的所有内容,由代码、资源、三方库及应用配置文件组成,其文件后缀名为.hap。 - -- **HCS** - - HDF Configuration Source是HDF驱动框架的配置描述语言,是为了实现配置代码与驱动代码解耦,以及便于配置的管理而设计的一种Key-Value为主体的文本格式。 - - -- **HC-GEN** - - HDF Configuration Generator是HCS配置转换工具,可以将HDF配置文件转换为软件可读取的文件格式。 - - -- **HDF** - - Hardware Driver Foundation,硬件驱动框架,用于提供统一外设访问能力和驱动开发、管理框架。 - - -## I - -- **IDN** - - Intelligent Distributed Networking,是OpenHarmony特有的分布式组网能力单元。开发者可以通过IDN获取分布式网络内的设备列表和设备状态信息,以及注册分布式网络内设备的在网状态变化信息。 - - -## P - -- **PA** - - Particle Ability,代表无界面的Ability,主要为Feature Ability提供支持,例如作为后台服务提供计算能力,或作为数据仓库提供数据访问能力。 - - -## S - -- **Super virtual device,超级虚拟终端** - - 亦称超级终端,通过分布式技术将多个终端的能力进行整合,存放在一个虚拟的硬件资源池里,根据业务需要统一管理和调度终端能力,来对外提供服务。 - -- **System Type,系统类型** - - Mini System,轻量系统:面向MCU类处理器,例如ARM Cortex-M、RISC-V 32位的设备,资源极其有限,参考内存≥128KiB,提供丰富的近距连接能力以及丰富的外设总线访问能力。典型产品有智能家居领域的联接类模组、传感器设备等。 - - Small System,小型系统:面向应用处理器,例如Arm Cortex-A的设备,参考内存≥1MiB,提供更高的安全能力,提供标准的图形框架,提供视频编解码的多媒体能力。典型产品有智能家居领域的IPCamera、电子猫眼、路由器以及智慧出行域的行车记录仪等。 - - Standard System,标准系统:面向应用处理器,例如Arm Cortex-A的设备,参考内存≥128MiB,提供增强的交互能力,提供3D GPU以及硬件合成能力,提供更多控件以及动效更丰富的图形能力,提供完整的应用框架。典型产品有高端的冰箱显示屏等。 +- **[术语](glossary.md)** diff --git a/zh-cn/device-dev/guide/Readme-CN.md b/zh-cn/device-dev/guide/Readme-CN.md index aa2470b29a0..ce9d01e0c1e 100755 --- a/zh-cn/device-dev/guide/Readme-CN.md +++ b/zh-cn/device-dev/guide/Readme-CN.md @@ -1,39 +1,34 @@ # 设备开发指南 -- [WLAN连接类产品](device-wifi.md) - - [LED外设控制](device-wifi-led-outcontrol.md) - - [集成三方SDK](device-wifi-sdk.md) - -- [无屏摄像头类产品](device-iotcamera.md) - - [概述](device-iotcamera-control-overview.md) - - [示例开发](device-iotcamera-control-demo.md) - - [拍照开发指导](device-iotcamera-control-demo-photodevguide.md) - - [录像开发指导](device-iotcamera-control-demo-videodevguide.md) - - - [应用实例](device-iotcamera-control-example.md) - -- [带屏摄像头类产品](device-camera.md) - - [屏幕和摄像头控制](device-camera-control.md) - - [概述](device-camera-control-overview.md) - - [示例开发](device-camera-control-demo.md) - - [拍照开发指导](device-camera-control-demo-photoguide.md) - - [录像开发指导](device-camera-control-demo-videoguide.md) - - [预览开发指导](device-camera-control-demo-previewguide.md) - - - [应用实例](device-camera-control-example.md) - - - [视觉应用开发](device-camera-visual.md) - - [概述](device-camera-visual-overview.md) - - [开发准备](device-camera-visual-prepare.md) - - [添加页面](device-camera-visual-addpage.md) - - [开发首页](device-camera-visual-first-page.md) - - [开发详情页](device-camera-visual-details.md) - - [调试打包](device-camera-visual-debug.md) - - [真机运行](device-camera-visual-run.md) - - [常见问题](device-camera-visual-faqs.md) - -- [时钟应用开发指导](device-clock-guide.md) -- [平台驱动开发示例](device-driver-demo.md) -- [外设驱动开发示例](device-outerdriver-demo.md) - - +- [轻量和小型系统设备](device-lite.md) + - [WLAN连接类产品](device-wlan.md) + - [LED外设控制](oem_wifi_sdk_des.md) + - [集成三方SDK](device-wlan-sdk.md) + - [无屏摄像头类产品](device-iotcamera.md) + - [摄像头控制](device-iotcamera-control.md) + - [概述](device-iotcamera-control-overview.md) + - [示例开发](device-iotcamera-control-demo.md) + - [拍照开发指导](device-iotcamera-control-demo-photodevguide.md) + - [录像开发指导](device-iotcamera-control-demo-videodevguide.md) + - [应用实例](device-iotcamera-control-example.md) + - [带屏摄像头类产品](device-camera.md) + - [屏幕和摄像头控制](device-camera-control.md) + - [概述](device-camera-control-overview.md) + - [示例开发](device-camera-control-demo.md) + - [拍照开发指导](device-camera-control-demo-photoguide.md) + - [录像开发指导](device-camera-control-demo-videoguide.md) + - [预览开发指导](device-camera-control-demo-previewguide.md) + - [应用实例](device-camera-control-example.md) + - [视觉应用开发](device-camera-visual.md) + - [概述](device-camera-visual-overview.md) + - [开发准备](device-camera-visual-prepare.md) + - [添加页面](device-camera-visual-addpage.md) + - [开发首页](device-camera-visual-firstpage.md) + - [开发详情页](device-camera-visual-details.md) + - [调试打包](device-camera-visual-debug.md) + - [真机运行](device-camera-visual-run.md) + - [常见问题](device-camera-visual-faqs.md) +- [标准系统设备](device-standard.md) + - [时钟应用开发指导](device-clock-guide.md) + - [平台驱动开发示例](device-driver-demo.md) + - [外设驱动开发示例](device-outerdriver-demo.md) \ No newline at end of file diff --git a/zh-cn/device-dev/guide/device-camera-control-example.md b/zh-cn/device-dev/guide/device-camera-control-example.md index a092908acd9..b6d605b04e6 100644 --- a/zh-cn/device-dev/guide/device-camera-control-example.md +++ b/zh-cn/device-dev/guide/device-camera-control-example.md @@ -3,7 +3,7 @@ 本示例将运行源码中的camera示例代码,通过本示例可以实现对开发板拍照、录像及预览功能的控制。 - 本示例源码路径为“applications/sample/camera/media/camera\_sample.cpp”。 -- 在运行本示例前需先完成编译烧录、运行镜像等步骤,相关操作请参考[Hi3516快速入门](../quick-start/quickstart-lite-introduction-hi3516.md#section26131214194212)。 +- 在运行本示例前需先完成编译烧录、运行镜像等步骤,相关操作请参考[Hi3516快速入门](../quick-start/oem_minitinier_des_3516.md#section26131214194212)。 >![](../public_sys-resources/icon-note.gif) **说明:** >开发板启动后默认会加载launcher应用,应用的图形界面默认显示在媒体图层上方,会影响camera\_sample的演示结果,因此需要在编译或是打包时去掉launcher应用。 diff --git a/zh-cn/device-dev/guide/device-camera-visual-first-page.md b/zh-cn/device-dev/guide/device-camera-visual-firstpage.md similarity index 99% rename from zh-cn/device-dev/guide/device-camera-visual-first-page.md rename to zh-cn/device-dev/guide/device-camera-visual-firstpage.md index 354097ab25c..bbfa60c30d6 100644 --- a/zh-cn/device-dev/guide/device-camera-visual-first-page.md +++ b/zh-cn/device-dev/guide/device-camera-visual-firstpage.md @@ -111,7 +111,6 @@ } ``` - - index="\{\{swiperPage\}\}" duration="500" onchange="swiperChange" 这些代码用来设置组件的属性和事件。其中,duration="500" 表示设置swiper的页面滑动的动画时长为500ms。 - index="\{\{swiperPage\}\}"设置了swiper子组件索引值,\{\{swiperPage\}\}这种写法表示index的值是和js代码中的swiperPage变量动态绑定的,index的值会随着swiperPage变动而改变。 - onchange="swiperChange" 设置了swiper组件的change事件和函数swiperChange绑定,对应的js代码如下: @@ -141,7 +140,6 @@ } ``` - 4. 设置一个城市的空气质量信息为一屏,在一屏内,要展示多种信息,分别使用不同的控件进行展示。 在swiper中添加两个子组件stack(绝对布局),每个stack组件内分别添加text、image、progress等组件来显示对应的信息 ,页面结构如下: diff --git a/zh-cn/device-dev/guide/device-camera-visual-run.md b/zh-cn/device-dev/guide/device-camera-visual-run.md index 3e7c3f1d165..59cea7e0993 100644 --- a/zh-cn/device-dev/guide/device-camera-visual-run.md +++ b/zh-cn/device-dev/guide/device-camera-visual-run.md @@ -1,6 +1,6 @@ # 真机运行 -应用编译打包后即可安装到开发板。安装应用前需要先完成[DevEco Device Tool的安装配置](https://device.harmonyos.com/cn/docs/ide/user-guides/service_introduction-0000001050166905),然后将OpenHarmony烧录到开发板并运行。编译烧录、运行镜像的基本操作请参考快速入门手册:[Hi3516快速入门](../quick-start/quickstart-lite-introduction-hi3516.md#section26131214194212)。完成镜像运行,系统正常启动后,执行如下步骤安装或卸载三方应用。 +应用编译打包后即可安装到开发板。安装应用前需要先完成[DevEco Device Tool的安装配置](https://device.harmonyos.com/cn/docs/ide/user-guides/service_introduction-0000001050166905),然后将OpenHarmony烧录到开发板并运行。编译烧录、运行镜像的基本操作请参考快速入门手册:[Hi3516快速入门](../quick-start/oem_minitinier_des_3516.md#section26131214194212)。完成镜像运行,系统正常启动后,执行如下步骤安装或卸载三方应用。 1. 将IDE编译的未签名应用安装包和安装工具(镜像文件生成目录中的dev\_tools)放在sdcard中,将sdcard插入开发板卡槽。 2. 应用安装默认要校验签名,需要执行以下命令,关闭签名校验。 diff --git a/zh-cn/device-dev/guide/device-camera-visual.md b/zh-cn/device-dev/guide/device-camera-visual.md index ca4e46538b7..a0b185fbb0d 100644 --- a/zh-cn/device-dev/guide/device-camera-visual.md +++ b/zh-cn/device-dev/guide/device-camera-visual.md @@ -6,7 +6,7 @@ - **[添加页面](device-camera-visual-addpage.md)** -- **[开发首页](device-camera-visual-first-page.md)** +- **[开发首页](device-camera-visual-firstpage.md)** - **[开发详情页](device-camera-visual-details.md)** diff --git a/zh-cn/device-dev/guide/device-clock-guide.md b/zh-cn/device-dev/guide/device-clock-guide.md index a615280a6e2..4905dd82865 100644 --- a/zh-cn/device-dev/guide/device-clock-guide.md +++ b/zh-cn/device-dev/guide/device-clock-guide.md @@ -177,7 +177,6 @@ ``` - - **index.css文件** ``` @@ -217,7 +216,6 @@ } ``` - - **index.js:** js文件主要用于实现App应用的逻辑交互。在本页面js文件中,需要实现如下功能:定时获取系统时间。 @@ -263,7 +261,7 @@ ## 真机运行 -应用签名打包后即可安装到开发板。安装应用前需要先完成[DevEco Device Tool的安装配置](https://device.harmonyos.com/cn/docs/ide/user-guides/service_introduction-0000001050166905),然后将OpenHarmony系统烧录到开发板并运行。编译烧录、运行镜像的基本操作请参考快速入门手册:[标准系统Hi3516快速入门](../quick-start/quickstart-standard.md)。完成镜像运行,系统正常启动后,执行如下步骤安装或卸载应用。 +应用签名打包后即可安装到开发板。安装应用前需要先完成[DevEco Device Tool的安装配置](https://device.harmonyos.com/cn/docs/ide/user-guides/service_introduction-0000001050166905),然后将OpenHarmony系统烧录到开发板并运行。编译烧录、运行镜像的基本操作请参考快速入门手册:[标准系统Hi3516快速入门](../quick-start/quickstart-standard-overview.md)。完成镜像运行,系统正常启动后,执行如下步骤安装或卸载应用。 1. 从开发者工具代码仓路径中获取hdc客户端。 diff --git a/zh-cn/device-dev/guide/device-driver-demo.md b/zh-cn/device-dev/guide/device-driver-demo.md index 73e75ffda88..1220e92265d 100644 --- a/zh-cn/device-dev/guide/device-driver-demo.md +++ b/zh-cn/device-dev/guide/device-driver-demo.md @@ -34,7 +34,7 @@ HDF驱动框架为常用外围设备提供了标准的驱动框架,驱动开 ## 环境准备 -环境准备具体操作请参考[标准系统基础环境搭建](../quick-start/quickstart-standard.md)。 +环境准备具体操作请参考[标准系统基础环境搭建](../quick-start/quickstart-standard-overview.md)。 >![](../public_sys-resources/icon-notice.gif) **须知:** >本示例针对OpenHarmony轻量系统、小型系统、标准系统都适用,本文以标准系统为例。其他系统的开发者可参考对应系统的指导文档进行环境搭建。 diff --git a/zh-cn/device-dev/guide/device-iotcamera-control-example.md b/zh-cn/device-dev/guide/device-iotcamera-control-example.md index 8f7e480ded6..56bd5df7ff3 100644 --- a/zh-cn/device-dev/guide/device-iotcamera-control-example.md +++ b/zh-cn/device-dev/guide/device-iotcamera-control-example.md @@ -1,6 +1,6 @@ # 应用实例 -- 开发板介绍、编译烧录、运行镜像等操作请参考[Hi3518快速入门](../quick-start/quickstart-lite-introduction-hi3518.md#section14815247616),编译结果包含示例,结果文件为out/ipcamera\_hi3518ev300/dev\_tools/bin/camera\_sample,可将文件通过读卡器复制至TF卡中,或者修改camera\_sample的编译脚本将结果文件复制至rootfs.img中。 +- 开发板介绍、编译烧录、运行镜像等操作请参考[Hi3518快速入门](../quick-start/oem_minitinier_des_3518.md#section14815247616),编译结果包含示例,结果文件为out/ipcamera\_hi3518ev300/dev\_tools/bin/camera\_sample,可将文件通过读卡器复制至TF卡中,或者修改camera\_sample的编译脚本将结果文件复制至rootfs.img中。 修改applications/sample/camera/media/BUILD.gn中的output\_dir。 diff --git a/zh-cn/device-dev/guide/device-lite.md b/zh-cn/device-dev/guide/device-lite.md new file mode 100644 index 00000000000..5e2ac4c8748 --- /dev/null +++ b/zh-cn/device-dev/guide/device-lite.md @@ -0,0 +1,9 @@ +# 轻量和小型系统设备 + +- **[WLAN连接类产品](device-wlan.md)** + +- **[无屏摄像头类产品](device-iotcamera.md)** + +- **[带屏摄像头类产品](device-camera.md)** + + diff --git a/zh-cn/device-dev/guide/device-outerdriver-demo.md b/zh-cn/device-dev/guide/device-outerdriver-demo.md index 9526546a58e..523d084d55a 100644 --- a/zh-cn/device-dev/guide/device-outerdriver-demo.md +++ b/zh-cn/device-dev/guide/device-outerdriver-demo.md @@ -22,7 +22,7 @@ ## 概述 -本文档将介绍如何基于Hi3516DV300开发板完成基于HDF\_Input模型的触摸屏器件驱动开发,从而使开发者快速入门,进行基于的外设驱动开发。 +本文档将介绍如何基于Hi3516DV300开发板完成基于HDF\_Input模型的触摸屏器件驱动开发,从而使开发者快速入门,进行基于OpenHarmony的外设驱动开发。 ### 硬件资源简介 @@ -44,7 +44,7 @@ Input驱动模型核心部分由设备管理层、公共驱动层、器件驱动 ## 环境搭建 -环境准备具体操作请参考[标准系统基础环境搭建](../quick-start/quickstart-standard.md)。 +环境准备具体操作请参考[标准系统基础环境搭建](../quick-start/quickstart-standard-overview.md)。 >![](../public_sys-resources/icon-notice.gif) **须知:** >本示例针对OpenHarmony轻量系统、小型系统、标准系统都适用,本文以标准系统为例。其他系统的开发者可参考对应系统的指导文档进行环境搭建。 @@ -335,7 +335,7 @@ Input模型由三层驱动组成,开发者适配一款全新触摸屏驱动只 其中touch\_gt911.o为本示例中追加的内容。 -2. 具体编译及烧录操作请参考[标准系统快速入门编译及烧录章节](../nottoctopics/zh-cn_topic_0000001135402541.md#section375234715135)。 +2. 具体编译及烧录操作请参考[标准系统快速入门编译及烧录章节](../quick-start/quickstart-standard-burn.md)。 ## 调试验证 diff --git a/zh-cn/device-dev/guide/device-standard.md b/zh-cn/device-dev/guide/device-standard.md new file mode 100644 index 00000000000..15aec1754a4 --- /dev/null +++ b/zh-cn/device-dev/guide/device-standard.md @@ -0,0 +1,9 @@ +# 标准系统设备 + +- **[时钟应用开发指导](device-clock-guide.md)** + +- **[平台驱动开发示例](device-driver-demo.md)** + +- **[外设驱动开发示例](device-outerdriver-demo.md)** + + diff --git a/zh-cn/device-dev/guide/device-wifi-sdk.md b/zh-cn/device-dev/guide/device-wlan-sdk.md similarity index 100% rename from zh-cn/device-dev/guide/device-wifi-sdk.md rename to zh-cn/device-dev/guide/device-wlan-sdk.md diff --git a/zh-cn/device-dev/guide/device-wifi.md b/zh-cn/device-dev/guide/device-wlan.md similarity index 39% rename from zh-cn/device-dev/guide/device-wifi.md rename to zh-cn/device-dev/guide/device-wlan.md index 3f85bc6f6c8..ece3a35d670 100644 --- a/zh-cn/device-dev/guide/device-wifi.md +++ b/zh-cn/device-dev/guide/device-wlan.md @@ -1,7 +1,7 @@ # WLAN连接类产品 -- **[LED外设控制](device-wifi-led-outcontrol.md)** +- **[LED外设控制](oem_wifi_sdk_des.md)** -- **[集成三方SDK](device-wifi-sdk.md)** +- **[集成三方SDK](device-wlan-sdk.md)** diff --git a/zh-cn/device-dev/guide/device.md b/zh-cn/device-dev/guide/device.md index 1cb2d60315d..f524abc29dc 100644 --- a/zh-cn/device-dev/guide/device.md +++ b/zh-cn/device-dev/guide/device.md @@ -1,15 +1,7 @@ -# 设备开发指南 +# 设备 -- **[WLAN连接类产品](device-wifi.md)** +- **[轻量和小型系统设备](device-lite.md)** -- **[无屏摄像头类产品](device-iotcamera.md)** - -- **[带屏摄像头类产品](device-camera.md)** - -- **[时钟应用开发指导](device-clock-guide.md)** - -- **[平台驱动开发示例](device-driver-demo.md)** - -- **[外设驱动开发示例](device-outerdriver-demo.md)** +- **[标准系统设备](device-standard.md)** diff --git a/zh-cn/device-dev/guide/device-wifi-led-outcontrol.md b/zh-cn/device-dev/guide/oem_wifi_sdk_des.md similarity index 91% rename from zh-cn/device-dev/guide/device-wifi-led-outcontrol.md rename to zh-cn/device-dev/guide/oem_wifi_sdk_des.md index 2d4970fa19c..678a8f2f287 100644 --- a/zh-cn/device-dev/guide/device-wifi-led-outcontrol.md +++ b/zh-cn/device-dev/guide/oem_wifi_sdk_des.md @@ -10,7 +10,7 @@ OpenHarmony WLAN模组基于Hi3861平台提供了丰富的外设操作能力, ## 开发 -1. 请先完成[《Hi3861快速入门》](../quick-start/quickstart-lite-introduction-hi3861.md#section19352114194115)。 +1. 请先完成[《Hi3861快速入门》](../quick-start/oem_minitinier_des_3861.md#section19352114194115)。 LED控制参考示例存放于applications/sample/wifi-iot/app/iothardware/led\_example.c文件中。 @@ -101,7 +101,7 @@ OpenHarmony WLAN模组基于Hi3861平台提供了丰富的外设操作能力, ## 验证 -编译过程请参考《[Hi3861快速入门-源码编译](../quick-start/quickstart-lite-steps-board3861-connection.md#section191121332125319)》,烧录过程请参考《[Hi3861快速入门-镜像烧录](../quick-start/quickstart-lite-steps-board3861-connection.md#section19458165166)》。 +编译过程请参考《[Hi3861快速入门-源码编译](../quick-start/quickstart-lite-steps-hi3861-connection.md#section191121332125319)》,烧录过程请参考《[Hi3861快速入门-镜像烧录](../quick-start/quickstart-lite-steps-hi3861-connection.md#section19458165166)》。 完成以上两步后,按下RST键复位模组,可发现LED在周期性闪烁,与预期相符,验证完毕。 diff --git a/zh-cn/device-dev/kernel/Readme-CN.md b/zh-cn/device-dev/kernel/Readme-CN.md index 622c047a249..8322ca16673 100755 --- a/zh-cn/device-dev/kernel/Readme-CN.md +++ b/zh-cn/device-dev/kernel/Readme-CN.md @@ -4,22 +4,46 @@ - [内核概述](kernel-mini-overview.md) - [基础内核](kernel-mini-basic.md) - [中断管理](kernel-mini-basic-interrupt.md) + - [基本概念](kernel-mini-basic-interrupt-concept.md) + - [开发指导](kernel-mini-basic-interrupt-guide.md) - [任务管理](kernel-mini-basic-task.md) + - [基本概念](kernel-mini-basic-task-basic.md) + - [开发指导](kernel-mini-basic-task-guide.md) - [内存管理](kernel-mini-basic-memory.md) + - [基本概念](kernel-mini-basic-memory-basic.md) + - [静态内存](kernel-mini-basic-memory-static.md) + - [动态内存](kernel-mini-basic-memory-dynamic.md) - [内核通信机制](kernel-mini-basic-ipc.md) - [事件](kernel-mini-basic-ipc-event.md) + - [基本概念](kernel-mini-basic-ipc-event-basic.md) + - [开发指导](kernel-mini-basic-ipc-event-guide.md) - [互斥锁](kernel-mini-basic-ipc-mutex.md) + - [基本概念](kernel-mini-basic-ipc-mutex-basic.md) + - [开发指导](kernel-mini-basic-ipc-mutex-guide.md) - [消息队列](kernel-mini-basic-ipc-queue.md) + - [基本概念](kernel-mini-basic-ipc-queue-basic.md) + - [开发指导](kernel-mini-basic-ipc-queue-guide.md) - [信号量](kernel-mini-basic-ipc-sem.md) + - [基本概念](kernel-mini-basic-ipc-sem-basic.md) + - [开发指导](kernel-mini-basic-ipc-sem-guide.md) - [时间管理](kernel-basic-mini-time.md) + - [基本概念](kernel-mini-basic-time-basic.md) + - [开发指导](kernel-mini-basic-time-guide.md) - [软件定时器](kernel-mini-basic-soft.md) + - [基本概念](kernel-mini-basic-soft-basic.md) + - [开发指导](kernel-mini-basic-soft-guide.md) - [扩展组件](kernel-mini-extend.md) - [C++支持](kernel-mini-extend-support.md) - [CPU占用率](kernel-mini-extend-cpup.md) - - [动态加载](kernel-mini-extend-dynamic-loading.md) + - [基本概念](kernel-mini-extend-cpup-basic.md) + - [开发指导](kernel-mini-extend-cpup-guide.md) + - [基本概念](kernel-mini-extend-dynamic-loading-basic.md) + - [开发指导](kernel-mini-extend-dynamic-loading-guide.md) - [文件系统](kernel-mini-extend-file.md) - [FAT](kernel-mini-extend-file-fat.md) - [LittleFS](kernel-mini-extend-file-lit.md) + - [基本概念](kernel-mini-extend-file-littlefs-basic.md) + - [开发指导](kernel-mini-extend-file-littlefs-guide.md) - [内核调测](kernel-memory-inner.md) - [内存调测](kernel-mini-memory-debug.md) - [内存信息统计](kernel-mini-memory-debug-mes.md) @@ -69,6 +93,11 @@ - [文件系统](kernel-small-bundles-fs.md) - [虚拟文件系统](kernel-small-bundles-fs-virtual.md) - [支持的文件系统](kernel-small-bundles-fs-support.md) + - [FAT](kernel-small-bundles-fs-support-fat.md) + - [JFFS2](kernel-small-bundles-fs-support-jffs2.md) + - [NFS](kernel-small-bundles-fs-support-nfs.md) + - [Ramfs](kernel-small-bundles-fs-support-ramfs.md) + - [Procfs](kernel-small-bundles-fs-support-procfs.md) - [适配新的文件系统](kernel-small-bundles-fs-new.md) - [调测与工具](kernel-small-debug.md) - [Shell](kernel-small-debug-shell.md) @@ -77,8 +106,62 @@ - [Shell命令编程实例](kernel-small-debug-shell-build.md) - [Shell命令使用详解](kernel-small-debug-shell-details.md) - [系统命令](kernel-small-debug-shell-cmd.md) + - [cpup](kernel-small-debug-shell-cmd-cpup.md) + - [date](kernel-small-debug-shell-cmd-date.md) + - [dmesg](kernel-small-debug-shell-cmd-dmesg.md) + - [exec](kernel-small-debug-shell-cmd-exec.md) + - [free](kernel-small-debug-shell-cmd-free.md) + - [help](kernel-small-debug-shell-cmd-help.md) + - [hwi](kernel-small-debug-shell-cmd-hwi.md) + - [kill](kernel-small-debug-shell-cmd-kill.md) + - [log](kernel-small-debug-shell-cmd-log.md) + - [memcheck](kernel-small-debug-shell-cmd-memcheck.md) + - [oom](kernel-small-debug-shell-cmd-oom.md) + - [pmm](kernel-small-debug-shell-cmd-pmm.md) + - [reset](kernel-small-debug-shell-cmd-reset.md) + - [sem](kernel-small-debug-shell-cmd-sem.md) + - [stack](kernel-small-debug-shell-cmd-stack.md) + - [su](kernel-small-debug-shell-cmd-su.md) + - [swtmr](kernel-small-debug-shell-cmd-swtmr.md) + - [systeminfo](kernel-small-debug-shell-cmd-sysinfo.md) + - [task](kernel-small-debug-shell-cmd-task.md) + - [uname](kernel-small-debug-shell-cmd-uname.md) + - [vmm](kernel-small-debug-shell-cmd-vmm.md) + - [watch](kernel-small-debug-shell-cmd-watch.md) - [文件命令](kernel-small-debug-shell-file.md) + - [cat](kernel-small-debug-shell-file-cat.md) + - [cd](kernel-small-debug-shell-file-cd.md) + - [chgrp](kernel-small-debug-shell-file-chgrp.md) + - [chmod](kernel-small-debug-shell-file-chmod.md) + - [chown](kernel-small-debug-shell-file-chown.md) + - [cp](kernel-small-debug-shell-file-cp.md) + - [format](kernel-small-debug-shell-file-format.md) + - [ls](kernel-small-debug-shell-file-ls.md) + - [lsfd](kernel-small-debug-shell-file-lsfd.md) + - [mkdir](kernel-small-debug-shell-file-mkdir.md) + - [mount](kernel-small-debug-shell-file-mount.md) + - [partinfo](kernel-small-debug-shell-file-partinfo.md) + - [partition](kernel-small-debug-shell-file-partition.md) + - [pwd](kernel-small-debug-shell-file-pwd.md) + - [rm](kernel-small-debug-shell-file-rm.md) + - [rmdir](kernel-small-debug-shell-file-rmdir.md) + - [statfs](kernel-small-debug-shell-file-statfs.md) + - [sync](kernel-small-debug-shell-file-sync.md) + - [touch](kernel-small-debug-shell-file-touch.md) + - [writeproc](kernel-small-debug-shell-file-write.md) + - [umount](kernel-small-debug-shell-file-umount.md) - [网络命令](kernel-small-debug-shell-net.md) + - [arp](kernel-small-debug-shell-net-arp.md) + - [dhclient](kernel-small-debug-shell-net-dhclient.md) + - [dns](kernel-small-debug-shell-net-dns.md) + - [ifconfig](kernel-small-debug-shell-net-ifconfig.md) + - [ipdebug](kernel-small-debug-shell-net-ipdebug.md) + - [netstat](kernel-small-debug-shell-net-netstat.md) + - [ntpdate](kernel-small-debug-shell-net-ntpdate.md) + - [ping](kernel-small-debug-shell-net-ping.md) + - [ping6](kernel-small-debug-shell-net-ping6.md) + - [telnet](kernel-small-debug-shell-net-telnet.md) + - [tftp](kernel-small-debug-shell-net-tftp.md) - [魔法键使用方法](kernel-small-debug-shell-magickey.md) - [用户态异常信息说明](kernel-small-debug-shell-error.md) - [Trace](kernel-small-debug-trace.md) diff --git a/zh-cn/device-dev/kernel/figure/zh-cn_image_0000001179063579.png b/zh-cn/device-dev/kernel/figure/zh-cn_image_0000001179063579.png deleted file mode 100644 index 6fa3ffa48167681f4b3385278bb8d75fc251a050..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38403 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 literal 0 HcmV?d00001 diff --git "a/zh-cn/device-dev/kernel/figure/\345\206\205\345\255\230\347\224\263\350\257\267\347\244\272\346\204\217\345\233\276.png" "b/zh-cn/device-dev/kernel/figure/\345\206\205\345\255\230\347\224\263\350\257\267\347\244\272\346\204\217\345\233\276.png" index 38c338c52e40023604e58e5908a78c375038036a..9d502df58aeb0e4f01c83628c82a6a9d974765ab 100644 GIT binary patch literal 22893 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 literal 28762 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 A^8f$< literal 29664 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
DYiIU+)w3t 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 EALft9X#fBK literal 49593 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 O7#W!9=bmuB{r>@e-J&Z1 diff --git a/zh-cn/device-dev/kernel/figure/zh-cn_image_0000001125101908.png "b/zh-cn/device-dev/kernel/figure/\346\226\207\344\273\266\347\263\273\347\273\237\347\232\204\346\200\273\344\275\223\347\273\223\346\236\204.png" similarity index 100% rename from zh-cn/device-dev/kernel/figure/zh-cn_image_0000001125101908.png rename to "zh-cn/device-dev/kernel/figure/\346\226\207\344\273\266\347\263\273\347\273\237\347\232\204\346\200\273\344\275\223\347\273\223\346\236\204.png" diff --git a/zh-cn/device-dev/kernel/figure/zh-cn_image_0000001132875772.png "b/zh-cn/device-dev/kernel/figure/\351\230\237\345\210\227\350\257\273\345\206\231\346\225\260\346\215\256\346\223\215\344\275\234\347\244\272\346\204\217\345\233\276.png" similarity index 100% rename from zh-cn/device-dev/kernel/figure/zh-cn_image_0000001132875772.png rename to "zh-cn/device-dev/kernel/figure/\351\230\237\345\210\227\350\257\273\345\206\231\346\225\260\346\215\256\346\223\215\344\275\234\347\244\272\346\204\217\345\233\276.png" diff --git a/zh-cn/device-dev/kernel/kernel-mini-extend-dynamic-loading.md b/zh-cn/device-dev/kernel/kernel-mini-extend-dynamic-loading.md index 809498749c5..22214ff3fb1 100644 --- a/zh-cn/device-dev/kernel/kernel-mini-extend-dynamic-loading.md +++ b/zh-cn/device-dev/kernel/kernel-mini-extend-dynamic-loading.md @@ -1,4 +1,4 @@ -# 动态加载 +# - **[基本概念](kernel-mini-extend-dynamic-loading-basic.md)** diff --git a/zh-cn/device-dev/kernel/kernel-mini-extend.md b/zh-cn/device-dev/kernel/kernel-mini-extend.md index 2c171e7ce63..f257a85a1cb 100644 --- a/zh-cn/device-dev/kernel/kernel-mini-extend.md +++ b/zh-cn/device-dev/kernel/kernel-mini-extend.md @@ -4,7 +4,7 @@ - **[CPU占用率](kernel-mini-extend-cpup.md)** -- **[动态加载](kernel-mini-extend-dynamic-loading.md)** +- **[](kernel-mini-extend-dynamic-loading.md)** - **[文件系统](kernel-mini-extend-file.md)** diff --git a/zh-cn/device-dev/kernel/kernel-small-basic-inner-reflect.md b/zh-cn/device-dev/kernel/kernel-small-basic-inner-reflect.md index 25229b427b8..4eac07d9603 100644 --- a/zh-cn/device-dev/kernel/kernel-small-basic-inner-reflect.md +++ b/zh-cn/device-dev/kernel/kernel-small-basic-inner-reflect.md @@ -18,7 +18,7 @@ 虚实映射其实就是一个建立页表的过程。MMU有多级页表,LiteOS-A内核采用二级页表描述进程空间。每个一级页表条目描述符占用4个字节,可表示1MiB的内存空间的映射关系,即1GiB用户空间(LiteOS-A内核中用户空间占用1GiB)的虚拟内存空间需要1024个。系统创建用户进程时,在内存中申请一块4KiB大小的内存块作为一级页表的存储区域,二级页表根据当前进程的需要做动态的内存申请。 -- 用户程序加载启动时,会将代码段、数据段映射进虚拟内存空间(详细可参考动态加载与链接一节),此时并没有物理页做实际的映射; +- 用户程序加载启动时,会将代码段、数据段映射进虚拟内存空间(详细可参考[动态加载与链接](kernel-small-bundles-linking.md)),此时并没有物理页做实际的映射; - 程序执行时,如下图粗箭头所示,CPU访问虚拟地址,通过MMU查找是否有对应的物理内存,若该虚拟地址无对应的物理地址则触发缺页异常,内核申请物理内存并将虚实映射关系及对应的属性配置信息写进页表,并把页表条目缓存至TLB,接着CPU可直接通过转换关系访问实际的物理内存; - 若CPU访问已缓存至TLB的页表条目,无需再访问保存在内存中的页表,可加快查找速度。 diff --git a/zh-cn/device-dev/kernel/kernel-small-basic-memory-physical.md b/zh-cn/device-dev/kernel/kernel-small-basic-memory-physical.md index 382bddc08c6..ac56ca9cbaa 100644 --- a/zh-cn/device-dev/kernel/kernel-small-basic-memory-physical.md +++ b/zh-cn/device-dev/kernel/kernel-small-basic-memory-physical.md @@ -11,7 +11,7 @@ ## 基本概念 -物理内存是计算机上最重要的资源之一,指的是实际的内存设备提供的、可以通过CPU总线直接进行寻址的内存空间,其主要作用是为操作系统及程序提供临时存储空间。LiteOS-A内核管理物理内存是通过分页实现的,除了内核堆占用的一部分内存外,其余可用内存均以4k为单位划分成页帧,内存分配和内存回收便是以页帧为单位进行操作。内核采用伙伴算法管理空闲页面,可以降低一定的内存碎片率,提高内存分配和释放的效率,但是一个很小的块往往也会阻塞一个大块的合并,导致不能分配较大的内存块。 +物理内存是计算机上最重要的资源之一,指的是实际的内存设备提供的、可以通过CPU总线直接进行寻址的内存空间,其主要作用是为操作系统及程序提供临时存储空间。LiteOS-A内核管理物理内存是通过分页实现的,除了内核堆占用的一部分内存外,其余可用内存均以4KiB为单位划分成页帧,内存分配和内存回收便是以页帧为单位进行操作。内核采用伙伴算法管理空闲页面,可以降低一定的内存碎片率,提高内存分配和释放的效率,但是一个很小的块往往也会阻塞一个大块的合并,导致不能分配较大的内存块。 ## 运行机制 @@ -24,7 +24,7 @@ - 申请内存 - 系统申请12k内存,即3个页帧时,9个内存块组中索引为3的链表挂着一块大小为8个页帧的内存块满足要求,分配出12k内存后还剩余20k内存,即5个页帧,将5个页帧分成2的幂次方之和,即4跟1,尝试查找伙伴进行合并。4个页帧的内存块没有伙伴则直接插到索引为2的链表上,继续查找1个页帧的内存块是否有伙伴,索引为0的链表上此时有1个,如果两个内存块地址连续则进行合并,并将内存块挂到索引为1的链表上,否则不做处理。 + 系统申请12KiB内存,即3个页帧时,9个内存块组中索引为3的链表挂着一块大小为8个页帧的内存块满足要求,分配出12KiB内存后还剩余20KiB内存,即5个页帧,将5个页帧分成2的幂次方之和,即4跟1,尝试查找伙伴进行合并。4个页帧的内存块没有伙伴则直接插到索引为2的链表上,继续查找1个页帧的内存块是否有伙伴,索引为0的链表上此时有1个,如果两个内存块地址连续则进行合并,并将内存块挂到索引为1的链表上,否则不做处理。 **图 2** 内存申请示意图 ![](figure/内存申请示意图.png "内存申请示意图") @@ -32,7 +32,7 @@ - 释放内存 - 系统释放12k内存,即3个页帧,将3个页帧分成2的幂次方之和,即2跟1,尝试查找伙伴进行合并,索引为1的链表上有1个内存块,若地址连续则合并,并将合并后的内存块挂到索引为2的链表上,索引为0的链表上此时也有1个,如果地址连续则进行合并,并将合并后的内存块挂到索引为1的链表上,此时继续判断是否有伙伴,重复上述操作。 + 系统释放12KiB内存,即3个页帧,将3个页帧分成2的幂次方之和,即2跟1,尝试查找伙伴进行合并,索引为1的链表上有1个内存块,若地址连续则合并,并将合并后的内存块挂到索引为2的链表上,索引为0的链表上此时也有1个,如果地址连续则进行合并,并将合并后的内存块挂到索引为1的链表上,此时继续判断是否有伙伴,重复上述操作。 **图 3** 内存释放示意图 ![](figure/内存释放示意图.png "内存释放示意图") @@ -104,11 +104,11 @@ ### 开发流程 -内存申请时根据需要调用相关接口,小内存申请建议使用堆内存申请相关接口,4k及以上内存申请可以使用上述物理内存相关接口。 +内存申请时根据需要调用相关接口,小内存申请建议使用堆内存申请相关接口,4KiB及以上内存申请可以使用上述物理内存相关接口。 >![](../public_sys-resources/icon-note.gif) **说明:** >- 物理内存申请相关接口需要在OsSysMemInit接口完成初始化之后再使用; ->- 内存申请的基本单位是页帧,即4k; +>- 内存申请的基本单位是页帧,即4KiB; >- 物理内存申请时,有地址连续要求的使用LOS\_PhysPagesAllocContiguous接口,无地址连续的要求尽量使用LOS\_PhysPagesAlloc接口,将连续的大块内存留给有需要的模块使用。 ### 编程实例 diff --git a/zh-cn/device-dev/kernel/kernel-small-basic-memory-virtual.md b/zh-cn/device-dev/kernel/kernel-small-basic-memory-virtual.md index 8d2281f3972..dd1b7d412e6 100644 --- a/zh-cn/device-dev/kernel/kernel-small-basic-memory-virtual.md +++ b/zh-cn/device-dev/kernel/kernel-small-basic-memory-virtual.md @@ -9,56 +9,40 @@ ## 基本概念 -虚拟内存管理是计算机系统管理内存的一种技术。每个进程都有连续的虚拟地址空间,虚拟地址空间的大小由CPU的位数决定,32位的硬件平台可以提供的最大的寻址空间为0-4G。整个4G空间分成两部分,LiteOS-A内核占据3G的高地址空间,1G的低地址空间留给进程使用。各个进程空间的虚拟地址空间是独立的,代码、数据互不影响。 +虚拟内存管理是计算机系统管理内存的一种技术。每个进程都有连续的虚拟地址空间,虚拟地址空间的大小由CPU的位数决定,32位的硬件平台可以提供的最大的寻址空间为0-4GiB。整个4GiB空间分成两部分,LiteOS-A内核占据3GiB的高地址空间,1GiB的低地址空间留给进程使用。各个进程空间的虚拟地址空间是独立的,代码、数据互不影响。 -系统将虚拟内存分割为称为虚拟页的内存块,大小一般为4k或64k,LiteOS-A内核默认的页的大小是4k,根据需要可以对MMU(Memory Management Units)进行配置。虚拟内存管理操作的最小单位就是一个页,LiteOS-A内核中一个虚拟地址区间region包含地址连续的多个虚拟页,也可只有一个页。同样,物理内存也会按照页大小进行分割,分割后的每个内存块称为页帧。虚拟地址空间划分:内核态占高地址3G\(0x40000000 \~ 0xFFFFFFFF\),用户态占低地址1G\(0x01000000 \~ 0x3F000000\),具体见下表,详细可以查看或配置los\_vm\_zone.h。 +系统将虚拟内存分割为称为虚拟页的内存块,大小一般为4KiB或64KiB,LiteOS-A内核默认的页的大小是4KiB,根据需要可以对MMU(Memory Management Units)进行配置。虚拟内存管理操作的最小单位就是一个页,LiteOS-A内核中一个虚拟地址区间region包含地址连续的多个虚拟页,也可只有一个页。同样,物理内存也会按照页大小进行分割,分割后的每个内存块称为页帧。虚拟地址空间划分:内核态占高地址3GiB\(0x40000000 \~ 0xFFFFFFFF\),用户态占低地址1GiB\(0x01000000 \~ 0x3F000000\),具体见下表,详细可以查看或配置los\_vm\_zone.h。 **表 1** 内核态地址规划: -

Zone名称

+ - - - - - - - - - - - - - - - - - - - @@ -67,60 +51,40 @@ **表 2** 用户态虚地址规划: -

Zone名称

起始地址

+

描述

结束地址

-

用途

-

属性

+

属性

DMA zone

-

0x40000000

+

DMA zone

0x43FFFFFF

+

供IO设备的DMA使用。

USB、网络等dma内存访问

-

Uncache

+

Uncache

Normal zone

-

0x80000000

+

Normal zone

0x83FFFFFF

+

加载内核代码段、数据段、堆和栈的地址区间。

内核代码、数据段和堆内存和栈

-

Cache

+

Cache

high mem zone

-

0x84000000

+

high mem zone

0x8BFFFFFF

+

可以分配连续的虚拟内存,但其所映射的物理内存不一定连续。

连续虚拟内存分配,物理内存不连续

-

Cache

+

Cache

-

Zone名称

-

起始地址

+ - - - - - - - - - - - - - - - - - - - - - - - @@ -130,7 +94,7 @@ 虚拟内存管理中,虚拟地址空间是连续的,但是其映射的物理内存并不一定是连续的,如下图所示。可执行程序加载运行,CPU访问虚拟地址空间的代码或数据时存在两种情况: -- CPU访问的虚拟地址所在的页,如V0,已经与具体的物理页P0做映射,CPU通过找到进程对应的页表条目(详见虚实映射一节),根据页表条目中的物理地址信息访问物理内存中的内容并返回。 +- CPU访问的虚拟地址所在的页,如V0,已经与具体的物理页P0做映射,CPU通过找到进程对应的页表条目(详见[虚实映射](kernel-small-basic-inner-reflect.md)),根据页表条目中的物理地址信息访问物理内存中的内容并返回。 - CPU访问的虚拟地址所在的页,如V2,没有与具体的物理页做映射,系统会触发缺页异常,系统申请一个物理页,并把相应的信息拷贝到物理页中,并且把物理页的起始地址更新到页表条目中。此时CPU重新执行访问虚拟内存的指令便能够访问到具体的代码或数据。 **图 1** 内存映射示意图 @@ -303,12 +267,12 @@ - - - - - - - - - - - - - diff --git a/zh-cn/device-dev/kernel/kernel-small-debug-trace-other-faqs.md b/zh-cn/device-dev/kernel/kernel-small-debug-trace-other-faqs.md index 8f1ead1f8b5..bc36a03cff4 100644 --- a/zh-cn/device-dev/kernel/kernel-small-debug-trace-other-faqs.md +++ b/zh-cn/device-dev/kernel/kernel-small-debug-trace-other-faqs.md @@ -1,7 +1,7 @@ # 常见问题定位方法 - [通过异常信息定位问题](#section695838161711) -- [内存池节点完整性验证](#section362917569179) +- [内存池完整性验证](#section362917569179) - [全局变量踩内存定位方法](#section18971311121816) ## 通过异常信息定位问题 @@ -24,7 +24,7 @@ 对于内核异常打印信息,确定PC和LR的具体位置的指令需要结合out目录下OHOS\_Image.asm(跟烧写的系统镜像OHOS\_Image.bin对应的汇编文件)查看,根据指令所在的位置可确认使用该指令的函数,依次确定LR位置所在的函数,即得到异常发生时的函数调用关系。 -## 内存池节点完整性验证 +## 内存池完整性验证 仅凭上节异常信息定位的基本方法,常常无法直接定位问题所在。并且常常会因为异常的寄存器值而无法对问题进行定位。若怀疑是堆内存越界导致的问题,可以调用内存池完整性检测函数LOS\_MemIntegrityCheck进行检查。函数LOS\_MemIntegrityCheck将会对系统动态内存池所有的节点进行遍历,如果所有节点正常则函数返回0,不会有任何打印,否则将打印相关的错误信息。该函数的入参使用\(VOID \*\)OS\_SYS\_MEM\_ADDR。 diff --git a/zh-cn/device-dev/kernel/kernel-small-debug-trace.md b/zh-cn/device-dev/kernel/kernel-small-debug-trace.md index bc83604a8bd..0d1b3b0684b 100644 --- a/zh-cn/device-dev/kernel/kernel-small-debug-trace.md +++ b/zh-cn/device-dev/kernel/kernel-small-debug-trace.md @@ -83,7 +83,7 @@ OpenHarmony LiteOS-A内核的Trace框架提供下面几种功能,接口详细 - - - - -

Zone名称

结束地址

+

描述

用途

-

属性

+

属性

代码段

-

0x0200000

-

0x09FFFFFF

+

代码段

用户态代码段地址空间

+

用户态代码段地址区间。

Cache

+

Cache

-

0x0FC00000(起始地址随机)

-

0x17BFFFFF

+

用户态堆地址空间

+

用户态堆地址区间。

Cache

+

Cache

+

0x37000000

+

用户态栈地址区间。

0x3EFFFFFF(起始地址随机)

-

用户态栈空间地址

-

Cache

+

Cache

共享库

-

0x1F800000(起始地址随机)

-

0x277FFFFF

+

共享库

用户态共享库加载地址空间,包括mmap

+

用于加载用户态共享库的地址区间,包括mmap所映射的区间。

Cache

+

Cache

LOS_KernelMalloc

申请小于16k的内存则通过堆内存池获取,否则申请多个连续物理页

+

申请小于16KiB的内存则通过堆内存池获取,否则申请多个连续物理页

LOS_KernelMallocAlign

申请具有对齐属性的内存,申请规则:申请小于16k的内存则通过堆内存池获取,否则申请多个连续物理页

+

申请具有对齐属性的内存,申请规则:申请小于16KiB的内存则通过堆内存池获取,否则申请多个连续物理页

LOS_KernelFree

diff --git a/zh-cn/device-dev/kernel/kernel-small-basic-process-process.md b/zh-cn/device-dev/kernel/kernel-small-basic-process-process.md index c2e4e581a4a..b9ee70a6187 100644 --- a/zh-cn/device-dev/kernel/kernel-small-basic-process-process.md +++ b/zh-cn/device-dev/kernel/kernel-small-basic-process-process.md @@ -25,7 +25,7 @@ - 就绪(Ready):进程在就绪列表中,等待CPU调度。 - 运行(Running):进程正在运行。 - 阻塞(Pending):进程被阻塞挂起。本进程内所有的线程均被阻塞时,进程被阻塞挂起。 -- 僵尸态(Zombies):进程运行结束,等待父进程回收其控制块资源。 +- 僵尸(Zombies):进程运行结束,等待父进程回收其控制块资源。 **图 1** 进程状态迁移示意图 ![](figure/进程状态迁移示意图.png "进程状态迁移示意图") diff --git a/zh-cn/device-dev/kernel/kernel-small-basic-trans-mutex.md b/zh-cn/device-dev/kernel/kernel-small-basic-trans-mutex.md index 6be13dd8887..cf974087d3d 100644 --- a/zh-cn/device-dev/kernel/kernel-small-basic-trans-mutex.md +++ b/zh-cn/device-dev/kernel/kernel-small-basic-trans-mutex.md @@ -12,7 +12,7 @@ 互斥锁又称互斥型信号量,用于实现对共享资源的独占式处理。当有任务持有时,这个任务获得该互斥锁的所有权。当该任务释放它时,任务失去该互斥锁的所有权。当一个任务持有互斥锁时,其他任务将不能再持有该互斥锁。多任务环境下往往存在多个任务竞争同一共享资源的应用场景,互斥锁可被用于对共享资源的保护从而实现独占式访问。 -互斥量属性包含3个属性:协议属性、优先级上限属性和类型属性。协议属性用于处理不同优先级的任务申请互斥锁,协议属性包含如下三种: +互斥锁属性包含3个属性:协议属性、优先级上限属性和类型属性。协议属性用于处理不同优先级的任务申请互斥锁,协议属性包含如下三种: - LOS\_MUX\_PRIO\_NONE @@ -118,32 +118,32 @@

LOS_MuxAttrGetType

获取互斥锁类型属性

+

获取指定互斥锁属性的类型属性

LOS_MuxAttrSetType

设置互斥锁类型属性

+

设置指定互斥锁属性的类型属性

LOS_MuxAttrGetProtocol

获取互斥锁协议属性

+

获取指定互斥锁属性的协议属性

LOS_MuxAttrSetProtocol

设置互斥锁协议属性

+

设置指定互斥锁属性的协议属性

LOS_MuxAttrGetPrioceiling

获取互斥锁优先级上限属性

+

获取指定互斥锁属性的优先级上限属性

LOS_MuxAttrSetPrioceiling

设置互斥锁优先级上限属性

+

设置指定互斥锁属性的优先级上限属性

LOS_MuxGetPrioceiling

diff --git a/zh-cn/device-dev/kernel/kernel-small-basic-trans-queue.md b/zh-cn/device-dev/kernel/kernel-small-basic-trans-queue.md index 0acd40ee2bb..af2bec2777b 100644 --- a/zh-cn/device-dev/kernel/kernel-small-basic-trans-queue.md +++ b/zh-cn/device-dev/kernel/kernel-small-basic-trans-queue.md @@ -68,9 +68,8 @@ typedef struct { - 读队列时,根据readWriteableCnt\[0\]判断队列是否有消息需要读取,对全部空闲(readWriteableCnt\[0\]为0)队列进行读操作会引起任务挂起。如果队列可以读取消息,则根据Head找到最先写入队列的消息节点进行读取。如果Head已经指向队列尾部则采用回卷方式。 - 删除队列时,根据队列ID找到对应队列,把队列状态置为未使用,把队列控制块置为初始状态,并释放队列所占内存。 -图 1 队列读写数据操作示意图 - -![](figure/zh-cn_image_0000001132875772.png) +**图 1** 队列读写数据操作示意图 +![](figure/队列读写数据操作示意图.png "队列读写数据操作示意图") 上图对读写队列做了示意,图中只画了尾节点写入方式,没有画头节点写入,但是两者是类似的。 diff --git a/zh-cn/device-dev/kernel/kernel-small-basic-trans-semaphore.md b/zh-cn/device-dev/kernel/kernel-small-basic-trans-semaphore.md index 6905259f463..69f8fae25af 100644 --- a/zh-cn/device-dev/kernel/kernel-small-basic-trans-semaphore.md +++ b/zh-cn/device-dev/kernel/kernel-small-basic-trans-semaphore.md @@ -136,10 +136,10 @@ typedef struct { 本实例实现如下功能: 1. 测试任务ExampleSem创建一个信号量,锁任务调度,创建两个任务ExampleSemTask1、ExampleSemTask2, ExampleSemTask2优先级高于ExampleSemTask1,两个任务中申请同一信号量,解锁任务调度后两任务阻塞,测试任务ExampleSem释放信号量。 -2. ExampleSemTask2得到信号量,被调度,然后任务休眠20Tick,ExampleSemTask2延迟,ExampleSemTask1被唤醒。 -3. ExampleSemTask1定时阻塞模式申请信号量,等待时间为10Tick,因信号量仍被ExampleSemTask2持有,ExampleSemTask1挂起,10Tick后仍未得到信号量,ExampleSemTask1被唤醒,试图以永久阻塞模式申请信号量,ExampleSemTask1挂起。 +2. ExampleSemTask2得到信号量,被调度,然后任务休眠20Ticks,ExampleSemTask2延迟,ExampleSemTask1被唤醒。 +3. ExampleSemTask1定时阻塞模式申请信号量,等待时间为10Ticks,因信号量仍被ExampleSemTask2持有,ExampleSemTask1挂起,10Ticks后仍未得到信号量,ExampleSemTask1被唤醒,试图以永久阻塞模式申请信号量,ExampleSemTask1挂起。 4. 20Tick后ExampleSemTask2唤醒, 释放信号量后,ExampleSemTask1得到信号量被调度运行,最后释放信号量。 -5. ExampleSemTask1执行完,40Tick后任务ExampleSem被唤醒,执行删除信号量。 +5. ExampleSemTask1执行完,400Ticks后任务ExampleSem被唤醒,执行删除信号量。 ### 编程示例 diff --git a/zh-cn/device-dev/kernel/kernel-small-basic-trans-user-signal.md b/zh-cn/device-dev/kernel/kernel-small-basic-trans-user-signal.md index d49376ae298..e99e4abe9ab 100644 --- a/zh-cn/device-dev/kernel/kernel-small-basic-trans-user-signal.md +++ b/zh-cn/device-dev/kernel/kernel-small-basic-trans-user-signal.md @@ -26,12 +26,12 @@

signal

注册系统总入口及注册和去注册某信号的回调函数。

+

注册信号总入口及注册和去注册某信号的回调函数。

sigaction

仅支持SIGINFO的选项。

+

功能同signal,但增加了信号发送相关的配置选项,目前仅支持SIGINFO结构体中的部分参数。

发送信号

@@ -69,17 +69,18 @@ >``` >void *signal(int sig, void (*func)(int))(int); >``` ->a. 31 号信号,会注册该进程的回调函数处理入口,不可重入。 ->b. 0-30 号信号,判断注册回调函数,注册与去注册回调函数。 +>a. 31 号信号,该信号用来注册该进程的回调函数处理入口,不可重复注册。 +>b. 0-30 号信号,该信号段用来注册与去注册回调函数。 +>注册回调函数: >``` >int sigaction(int, const struct sigaction *__restrict, struct sigaction *__restrict); >``` ->仅支持SIGINFO的选项,SIGINFO内容见sigtimedwait接口内描述。 +>支持信号注册的配置修改和配置获取,目前仅支持SIGINFO的选项,SIGINFO内容见sigtimedwait接口内描述。 >发送信号: ->a. 信号的默认行为不支持STOP及COTINUE,无COREDUMP功能。 ->b. 不能屏蔽SIGSTOP、SIGKILL、SIGCONT。 ->c. 杀死进程后,若父进程不回收,会产生僵尸进程。 ->d. 异步信号,发送信号给某进程后,直到该进程被调度后才会执行信号回调(为安全起见,杀死进程的动作是进程自己执行的,内核不能通过信号强制杀死对方)。 ->e. 进程消亡会发送SIGCHLD给父进程,发送动作无法取消。 ->f. 无法通过信号唤醒正在DELAY状态的进程。触发调度需要usleep\(10000\)即10ms才能完成进程调度转让。 +>a. 进程接收信号存在默认行为,单不支持POSIX标准所给出的STOP及COTINUE、COREDUMP功能。 +>b. 进程无法屏蔽SIGSTOP、SIGKILL、SIGCONT信号。 +>c. 某进程后被杀死后,若其父进程不回收该进程,其转为僵尸进程。 +>d. 进程接收到某信号后,直到该进程被调度后才会执行信号回调。 +>e. 进程结束后会发送SIGCHLD信号给父进程,该发送动作无法取消。 +>f. 无法通过信号唤醒处于DELAY状态的进程。 diff --git a/zh-cn/device-dev/kernel/kernel-small-bundles-fs-new.md b/zh-cn/device-dev/kernel/kernel-small-bundles-fs-new.md index ab54b352edf..0f50e073d96 100644 --- a/zh-cn/device-dev/kernel/kernel-small-bundles-fs-new.md +++ b/zh-cn/device-dev/kernel/kernel-small-bundles-fs-new.md @@ -155,7 +155,7 @@ int VfsJffs2Lookup(struct Vnode *parentVnode, const char *path, int len, struct /* 首先从private data中提取父节点的信息 */ parentNode = (struct jffs2_inode *)parentVnode->data; - /* 然后查询得到目标节点的信息,注意这里调用的jffs2_lookup是jffs2本身的查询函数,每个文件系统都有自己的查询函数,通过父节点的信息和VFS的查询函数对接起来 */ + /* 然后查询得到目标节点的信息,注意这里调用的jffs2_lookup是jffs2本身的查询函数 */ node = jffs2_lookup(parentNode, (const unsigned char *)path, len); if (!node) { LOS_MuxUnlock(&g_jffs2FsLock); @@ -216,7 +216,7 @@ int VfsJffs2Lookup(struct Vnode *parentVnode, const char *path, int len, struct 核心的逻辑其实在使用私有数据完成接口的功能,这些接口都是些文件系统的通用功能,文件系统在移植前本身应该都有相应实现,所以关键是归纳总结出文件系统所需的私有数据是什么,将其存储在vnode中,供之后使用。一般情况下,私有数据的内容是可以唯一定位到文件在存储介质上位置的信息,大部分文件系统本身都会有类似数据结构可以直接使用,比如JFFS2的inode数据结构。 >![](../public_sys-resources/icon-caution.gif) **注意:** ->1. 文件系统中的Lookup接口不是访问文件必经的路径,仅在上层路径缓存失效时才会调用到。 +>1. 访问文件时,不一定会调用文件系统中的Lookup接口,仅在上层的路径缓存失效时才会调用到。 >2. 通过VfsHashGet找到了已经存在的Vnode,不要直接将其作为结果返回,其储存的信息可能已经失效,请更新相应字段后再返回。 >3. Vnode会根据内存占用在后台自动释放,需要持久保存的信息,不要只保存在Vnode中。 >4. Reclaim接口在Vnode释放时会自动调用,请在这个接口中释放私有数据中的资源。 diff --git a/zh-cn/device-dev/kernel/kernel-small-bundles-fs-support-jffs2.md b/zh-cn/device-dev/kernel/kernel-small-bundles-fs-support-jffs2.md index 439c2cdeaea..8992d47a2ff 100644 --- a/zh-cn/device-dev/kernel/kernel-small-bundles-fs-support-jffs2.md +++ b/zh-cn/device-dev/kernel/kernel-small-bundles-fs-support-jffs2.md @@ -30,7 +30,7 @@ OpenHarmony内核的JFFS2主要应用于NOR FLASH闪存,其特点是:可读 **制作JFFS2文件系统镜像** -使用mkfs.jffs2工具,制作镜像默认命令见下。页大小默认为4KiB,eraseblock大小默认64KiB,镜像大小适应源目录并以0xFF填充为eraseblock大小的整数倍。若实际参数与下面不同时,修改相应参数。 +使用mkfs.jffs2工具,制作镜像默认命令如下。页大小默认为4KiB,eraseblock大小默认64KiB。若实际参数与下面不同时,修改相应参数。 ``` ./mkfs.jffs2 -d rootfs/ -o rootfs.jffs2 @@ -57,7 +57,7 @@ OpenHarmony内核的JFFS2主要应用于NOR FLASH闪存,其特点是:可读

-p

镜像大小,不指定默认适应源目录并以0xFF填充为eraseblock大小的整数倍

+

镜像大小。在镜像文件后面,用0xFF填充至指定大小,不指定则用0xFF填充至eraseblock对齐。

-d

diff --git a/zh-cn/device-dev/kernel/kernel-small-bundles-fs-virtual.md b/zh-cn/device-dev/kernel/kernel-small-bundles-fs-virtual.md index 33e469244ad..f9eb12494b2 100644 --- a/zh-cn/device-dev/kernel/kernel-small-bundles-fs-virtual.md +++ b/zh-cn/device-dev/kernel/kernel-small-bundles-fs-virtual.md @@ -34,14 +34,14 @@ OpenHarmony内核中,VFS框架是通过在内存中的树结构来实现的, ![](figure/Vnode创建流程.png "Vnode创建流程") -1. PathCache:PathCache是路径缓存,与Vnode对应。PathCache同样通过哈希链表存储,通过父Vnode中缓存的PathCache可以快速获取子Vnode,加速路径查找。下图展示了文件/目录的查找流程。 +1. PathCache:PathCache是路径缓存,它通过哈希表存储,利用父节点Vnode的地址和子节点的文件名,可以从PathCache中快速查找到子节点对应的Vnode。下图展示了文件/目录的查找流程。 **图 2** 文件查找流程 ![](figure/文件查找流程.png "文件查找流程") -1. PageCache:PageCache是文件级别的内核缓存。当前PageCache仅支持对二进制文件操作,在初次访问该文件时通过mmap映射到内存中,减少内核内存的占用,也大大提升了对同一个文件的读写操作速度。另外基于PageCache可实现以文件为基底的进程间通信。 -2. fd管理:Fd(File Description)是描述一个打开的文件/目录的描述符。当前OpenHarmony内核中,fd总规格为896,分为三种类型: +1. PageCache:PageCache是内核中文件的缓存。当前PageCache仅支持缓存二进制文件,在初次访问文件时通过mmap映射到内存中,下次再访问时,直接从PageCache中读取,可以提升对同一个文件的读写速度。另外基于PageCache可实现以文件为基底的进程间通信。 +2. fd管理:Fd(File Descriptor)是描述一个打开的文件/目录的描述符。当前OpenHarmony内核中,fd总规格为896,分为三种类型: - 普通文件描述符,系统总规格为512。 - Socket描述符,系统总规格为128。 diff --git a/zh-cn/device-dev/kernel/kernel-small-bundles-fs.md b/zh-cn/device-dev/kernel/kernel-small-bundles-fs.md index da3ede163c2..17837bc1ed8 100644 --- a/zh-cn/device-dev/kernel/kernel-small-bundles-fs.md +++ b/zh-cn/device-dev/kernel/kernel-small-bundles-fs.md @@ -4,9 +4,8 @@ 文件系统对上通过C库提供的POSIX标准的操作接口,具体可以参考C库的API文档说明。对下,通过内核态的VFS虚拟层,屏蔽了各个具体文件系统的差异。基本架构如下: -**图 1** 文件系统的总体结构 - -![](figure/zh-cn_image_0000001125101908.png) +**图 1** 文件系统的总体结构 +![](figure/文件系统的总体结构.png "文件系统的总体结构") - **[虚拟文件系统](kernel-small-bundles-fs-virtual.md)** diff --git a/zh-cn/device-dev/kernel/kernel-small-bundles-linking.md b/zh-cn/device-dev/kernel/kernel-small-bundles-linking.md index d18d59b436d..6b3b154819c 100644 --- a/zh-cn/device-dev/kernel/kernel-small-bundles-linking.md +++ b/zh-cn/device-dev/kernel/kernel-small-bundles-linking.md @@ -22,7 +22,7 @@ OpenHarmony系统的动态加载与链接机制主要是由内核加载器以及 **图 1** 动态加载流程 ![](figure/动态加载流程.png "动态加载流程") -1. 内核根据应用程序ELF文件的PT\_LOAD段信息映射至进程空间。对于ET\_EXEC类型的文件,根据PT\_LOAD段中p\_vaddr进行固定地址映射;对于ET\_DYN类型(位置无关的可执行程序,通过编译选项“-fPIE”得到)的文件,内核通过mmap接口选择base基址进行映射(load\_addr = base + p\_vaddr)。 +1. 内核将应用程序ELF文件的PT\_LOAD段信息映射至进程空间。对于ET\_EXEC类型的文件,根据PT\_LOAD段中p\_vaddr进行固定地址映射;对于ET\_DYN类型(位置无关的可执行程序,通过编译选项“-fPIE”得到)的文件,内核通过mmap接口选择base基址进行映射(load\_addr = base + p\_vaddr)。 2. 若应用程序是静态链接的(静态链接不支持编译选项“-fPIE”),设置堆栈信息后跳转至应用程序ELF文件中e\_entry指定的地址并运行;若程序是动态链接的,应用程序ELF文件中会有PT\_INTERP段,保存动态链接器的路径信息(ET\_DYN类型)。musl的动态链接器是libc-musl.so的一部分,libc-musl.so的入口即动态链接器的入口。内核通过mmap接口选择base基址进行映射,设置堆栈信息后跳转至base + e\_entry(该e\_entry为动态链接器的入口)地址并运行动态链接器。 3. 动态链接器自举并查找应用程序依赖的所有共享库并对导入符号进行重定位,最后跳转至应用程序的e\_entry(或base + e\_entry),开始运行应用程序。 @@ -32,7 +32,7 @@ OpenHarmony系统的动态加载与链接机制主要是由内核加载器以及 1. 加载器与链接器调用mmap映射PT\_LOAD段; 2. 内核调用map\_pages接口查找并映射pagecache已有的缓存; 3. 程序执行时,内存若无所需代码或数据时触发缺页中断,将elf文件内容读入内存,并将该内存块加入pagecache; -4. 映射步骤3已读入文件内容的内存块; +4. 将已读入文件内容的内存块与虚拟地址区间做映射; 5. 程序继续执行; 至此,程序将在不断地缺页中断中执行。 diff --git a/zh-cn/device-dev/kernel/kernel-small-debug-shell-cmd-free.md b/zh-cn/device-dev/kernel/kernel-small-debug-shell-cmd-free.md index 5470f71225f..7530dfc1fc3 100644 --- a/zh-cn/device-dev/kernel/kernel-small-debug-shell-cmd-free.md +++ b/zh-cn/device-dev/kernel/kernel-small-debug-shell-cmd-free.md @@ -37,14 +37,14 @@ free \[_-k | -m_\]

-k

以KB为单位显示。

+

以KiB为单位显示。

N/A

-m

以MB为单位显示。

+

以MiB为单位显示。

N/A

LOS_TraceBufDataGet

Trace数据获取到堆缓存(缓存空间内部申请,使用完需显示释放)

+

Trace数据获取到堆缓存(缓存空间内部申请,使用完需显式释放)

LOS_Trace2File

diff --git a/zh-cn/device-dev/kernel/kernel-small-overview.md b/zh-cn/device-dev/kernel/kernel-small-overview.md index 85151373f45..703cf6241c3 100644 --- a/zh-cn/device-dev/kernel/kernel-small-overview.md +++ b/zh-cn/device-dev/kernel/kernel-small-overview.md @@ -33,7 +33,7 @@ OpenHarmony 轻量级内核是基于IoT领域轻量级物联网操作系统Huawe **图 1** OpenHarmony LiteOS-A内核架构图 -![](figure/zh-cn_image_0000001179063579.png) +![](figure/zh-cn_image_0000001191018697.png) - 基础内核主要包括内核的基础机制,如调度、内存管理、中断异常等 - 扩展组件主要包括文件系统、网络协议和安全等扩展功能 diff --git a/zh-cn/device-dev/kernel/kernel-small-start-user.md b/zh-cn/device-dev/kernel/kernel-small-start-user.md index e5f2ad5e8dd..d8feb2a066d 100644 --- a/zh-cn/device-dev/kernel/kernel-small-start-user.md +++ b/zh-cn/device-dev/kernel/kernel-small-start-user.md @@ -39,7 +39,7 @@ LITE_USER_SEC_ENTRY VOID OsUserInit(VOID *args) - 启动关键系统程序或服务,如交互进程shell。 >![](../public_sys-resources/icon-note.gif) **说明:** - >在OpenHarmony 中**init**进程通过读取/etc/init.cfg,根据配置执行指定命令,或启动指定进程(详见:[init启动引导](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/init%E5%90%AF%E5%8A%A8%E5%BC%95%E5%AF%BC%E7%BB%84%E4%BB%B6.md))。 + >在OpenHarmony 中**init**进程通过读取/etc/init.cfg,根据配置执行指定命令,或启动指定进程(详见:[init启动引导](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-boot-init.md))。 - 监控回收孤儿进程,清理子进程中的僵尸进程。 @@ -48,7 +48,7 @@ LITE_USER_SEC_ENTRY VOID OsUserInit(VOID *args) 用户态程序常见编译方式有如下两种: -1. [利用框架编译用户态进程](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/%E8%BF%90%E8%A1%8CHello-OHOS.md)。 +1. [利用框架编译用户态进程](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-running.md)。 2. 手动编译 实例: @@ -57,7 +57,7 @@ LITE_USER_SEC_ENTRY VOID OsUserInit(VOID *args) clang --target=arm-liteos --sysroot=prebuilts/lite/sysroot -o helloworld helloworld.c ``` - **clang**:编译器下载:[llvm安装指导](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/Ubuntu%E7%BC%96%E8%AF%91%E7%8E%AF%E5%A2%83%E5%87%86%E5%A4%87.md#section12202192215415)。 + **clang**:参考[LLVM安装指导](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-env-setup-linux.md)安装LLVM编译器。 **--target**:--target=arm-liteos,指定编译平台为arm-liteos。 diff --git a/zh-cn/device-dev/porting/Readme-CN.md b/zh-cn/device-dev/porting/Readme-CN.md index 32f2176a2d3..71d0fcb98f2 100755 --- a/zh-cn/device-dev/porting/Readme-CN.md +++ b/zh-cn/device-dev/porting/Readme-CN.md @@ -21,12 +21,37 @@ repo init -u https://gitee.com/openharmony-sig/manifest.git -b master -m devboar ## 开始移植你的开发板 -- [轻量级系统](transplant-minichip.md) -- [小型系统](transplant-smallchip.md) -- [标准系统](standard-system-porting-guide.md) +- [轻量系统芯片移植指导](porting-minichip.md) + - [移植准备](porting-chip-prepare.md) + - [移植须知](oem_transplant_chip_prepare_knows.md) + - [编译构建适配流程](porting-chip-prepare-process.md) + - [内核移植](porting-chip-kernel.md) + - [移植概述](porting-chip-kernel-overview.md) + - [内核基础适配](porting-chip-kernel-adjustment.md) + - [内核移植验证](porting-chip-kernel-verify.md) + - [板级系统移植](porting-chip-board.md) + - [移植概述](porting-chip-board-overview.md) + - [板级驱动适配](porting-chip-board-driver.md) + - [HAL层实现](porting-chip-board-hal.md) + - [系统组件调用](porting-chip-board-component.md) + - [三方组件适配](porting-chip-board-bundle.md) + - [XTS认证](porting-chip-board-xts.md) + - [常见问题](porting-chip-faqs.md) +- [小型系统芯片移植指导](porting-smallchip.md) + - [移植准备](porting-smallchip-prepare.md) + - [移植须知](porting-smallchip-prepare-needs.md) + - [编译构建](porting-smallchip-prepare-building.md) + - [移植内核](porting-smallchip-kernel.md) + - [LiteOS-A内核](porting-smallchip-kernel-a.md) + - [Linux内核](porting-smallchip-kernel-linux.md) + - [驱动移植](porting-smallchip-driver.md) + - [移植概述](porting-smallchip-driver-overview.md) + - [平台驱动移植](porting-smallchip-driver-plat.md) + - [器件驱动移植](porting-smallchip-driver-oom.md) +- [标准系统移植指南](standard-system-porting-guide.md) # 三方库移植 -- [三方库移植指导](transplant-thirdparty.md) - - +- [概述](porting-thirdparty-overview.md) +- [CMake方式组织编译的库移植](porting-thirdparty-cmake.md) +- [Makefile方式组织编译的库移植](porting-thirdparty-makefile.md) \ No newline at end of file diff --git a/zh-cn/device-dev/porting/figure/HDF_WIFI.png b/zh-cn/device-dev/porting/figure/HDF_WIFI.png index c325922a5ee67edb81aa526de1547716fae1a04b..56e6ab3aee9a539c76afd3edac98f21bff0766d5 100644 GIT binary patch literal 60062 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 Ic0Kuj0GCJX3;+NC diff --git "a/zh-cn/device-dev/porting/figure/WLAN\350\212\257\347\211\207.png" "b/zh-cn/device-dev/porting/figure/WLAN\350\212\257\347\211\207.png" new file mode 100644 index 0000000000000000000000000000000000000000..c325922a5ee67edb81aa526de1547716fae1a04b GIT binary patch literal 22043 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 Ic0Kuj0GCJX3;+NC literal 0 HcmV?d00001 diff --git a/zh-cn/device-dev/porting/transplant-chip-prepare-knows.md b/zh-cn/device-dev/porting/oem_transplant_chip_prepare_knows.md similarity index 94% rename from zh-cn/device-dev/porting/transplant-chip-prepare-knows.md rename to zh-cn/device-dev/porting/oem_transplant_chip_prepare_knows.md index 6c0282c492b..4de0e275eef 100644 --- a/zh-cn/device-dev/porting/transplant-chip-prepare-knows.md +++ b/zh-cn/device-dev/porting/oem_transplant_chip_prepare_knows.md @@ -33,7 +33,7 @@ OpenHarmony整体工程较为复杂,目录及实现为系统本身功能,如

/device

板级相关实现,各个三方厂商按照OpenHarmony规范适配实现,device下具体目录结构及移植过程参见板级系统移植

+

板级相关实现,各个三方厂商按照OpenHarmony规范适配实现,device下具体目录结构及移植过程参见板级系统移植

/vendor

@@ -80,5 +80,5 @@ OpenHarmony的device目录是基础芯片的适配目录,如果在三方芯片 ## 移植规范 - 满足OpenHarmony[开源贡献基本规范和准则](https://gitee.com/openharmony/docs/blob/master/zh-cn/contribute/%E5%8F%82%E4%B8%8E%E8%B4%A1%E7%8C%AE.md)。 -- 三方芯片适配所需要贡献的代码主要在device、vendor和arch三个目录,参照[内核目录规范](transplant-chip-kernel-overview.md)和[板级目录规范](transplant-chip-board-overview.md#section6204129143013)满足基本目录命名和使用规范。 +- 三方芯片适配所需要贡献的代码主要在device、vendor和arch三个目录,参照[内核目录规范](porting-chip-kernel-overview.md)和[板级目录规范](porting-chip-board-overview.md#section6204129143013)满足基本目录命名和使用规范。 diff --git a/zh-cn/device-dev/porting/transplant-chip-board-bundle.md b/zh-cn/device-dev/porting/porting-chip-board-bundle.md similarity index 99% rename from zh-cn/device-dev/porting/transplant-chip-board-bundle.md rename to zh-cn/device-dev/porting/porting-chip-board-bundle.md index 8e235f7c54d..d29e4480efa 100644 --- a/zh-cn/device-dev/porting/transplant-chip-board-bundle.md +++ b/zh-cn/device-dev/porting/porting-chip-board-bundle.md @@ -19,7 +19,6 @@ } ``` - 注意,上面的修改最好都新建一个config或者新建一个xxx\_alt.c文件来修改,不要直接在原先的代码中修改,侵入式的修改会导致后续版本升级出现大量零散冲突,增加升级维护成本。 2. 制作patch diff --git a/zh-cn/device-dev/porting/transplant-chip-board-component.md b/zh-cn/device-dev/porting/porting-chip-board-component.md similarity index 100% rename from zh-cn/device-dev/porting/transplant-chip-board-component.md rename to zh-cn/device-dev/porting/porting-chip-board-component.md diff --git a/zh-cn/device-dev/porting/transplant-chip-board-drive.md b/zh-cn/device-dev/porting/porting-chip-board-driver.md old mode 100755 new mode 100644 similarity index 100% rename from zh-cn/device-dev/porting/transplant-chip-board-drive.md rename to zh-cn/device-dev/porting/porting-chip-board-driver.md diff --git a/zh-cn/device-dev/porting/transplant-chip-board-hal.md b/zh-cn/device-dev/porting/porting-chip-board-hal.md old mode 100755 new mode 100644 similarity index 100% rename from zh-cn/device-dev/porting/transplant-chip-board-hal.md rename to zh-cn/device-dev/porting/porting-chip-board-hal.md diff --git a/zh-cn/device-dev/porting/transplant-chip-board-overview.md b/zh-cn/device-dev/porting/porting-chip-board-overview.md similarity index 94% rename from zh-cn/device-dev/porting/transplant-chip-board-overview.md rename to zh-cn/device-dev/porting/porting-chip-board-overview.md index 732872af5b5..eada2b43da1 100644 --- a/zh-cn/device-dev/porting/transplant-chip-board-overview.md +++ b/zh-cn/device-dev/porting/porting-chip-board-overview.md @@ -17,7 +17,7 @@ ## 板级目录规范 -板级系统编译适配参考[编译系统介绍](transplant-chip-prepare-process.md),板级相关的驱动、SDK、目录、HAL实现存放在device目录,目录结构和具体描述如下: +板级系统编译适配参考[编译系统介绍](porting-chip-prepare-process.md),板级相关的驱动、SDK、目录、HAL实现存放在device目录,目录结构和具体描述如下: ``` . diff --git a/zh-cn/device-dev/porting/transplant-chip-board-xts.md b/zh-cn/device-dev/porting/porting-chip-board-xts.md similarity index 100% rename from zh-cn/device-dev/porting/transplant-chip-board-xts.md rename to zh-cn/device-dev/porting/porting-chip-board-xts.md diff --git a/zh-cn/device-dev/porting/porting-chip-board.md b/zh-cn/device-dev/porting/porting-chip-board.md new file mode 100644 index 00000000000..2a5223401bc --- /dev/null +++ b/zh-cn/device-dev/porting/porting-chip-board.md @@ -0,0 +1,15 @@ +# 板级系统移植 + +- **[移植概述](porting-chip-board-overview.md)** + +- **[板级驱动适配](porting-chip-board-driver.md)** + +- **[HAL层实现](porting-chip-board-hal.md)** + +- **[系统组件调用](porting-chip-board-component.md)** + +- **[三方组件适配](porting-chip-board-bundle.md)** + +- **[XTS认证](porting-chip-board-xts.md)** + + diff --git a/zh-cn/device-dev/porting/transplant-chip-faqs.md b/zh-cn/device-dev/porting/porting-chip-faqs.md old mode 100755 new mode 100644 similarity index 100% rename from zh-cn/device-dev/porting/transplant-chip-faqs.md rename to zh-cn/device-dev/porting/porting-chip-faqs.md diff --git a/zh-cn/device-dev/porting/transplant-chip-kernel-adjustment.md b/zh-cn/device-dev/porting/porting-chip-kernel-adjustment.md similarity index 100% rename from zh-cn/device-dev/porting/transplant-chip-kernel-adjustment.md rename to zh-cn/device-dev/porting/porting-chip-kernel-adjustment.md diff --git a/zh-cn/device-dev/porting/transplant-chip-kernel-overview.md b/zh-cn/device-dev/porting/porting-chip-kernel-overview.md similarity index 100% rename from zh-cn/device-dev/porting/transplant-chip-kernel-overview.md rename to zh-cn/device-dev/porting/porting-chip-kernel-overview.md diff --git a/zh-cn/device-dev/porting/transplant-chip-kernel-verify.md b/zh-cn/device-dev/porting/porting-chip-kernel-verify.md similarity index 95% rename from zh-cn/device-dev/porting/transplant-chip-kernel-verify.md rename to zh-cn/device-dev/porting/porting-chip-kernel-verify.md index fc16eeb224f..1df4bdd6f7b 100644 --- a/zh-cn/device-dev/porting/transplant-chip-kernel-verify.md +++ b/zh-cn/device-dev/porting/porting-chip-kernel-verify.md @@ -55,5 +55,5 @@ LITE_OS_SEC_TEXT_INIT int main(void) } ``` -第一个任务运行正常后,说明最小系统的核心流程基本OK;由于xts用例框架对外依赖较多,主要是utils、bootstrap的链接脚本和编译框架,暂时无法支撑内核单独跑xts;此处略过内核测试套的测试,可以通过[XTS测试套](transplant-chip-board-xts.md)来覆盖最小系统是否完整移植成功。 +第一个任务运行正常后,说明最小系统的核心流程基本OK;由于xts用例框架对外依赖较多,主要是utils、bootstrap的链接脚本和编译框架,暂时无法支撑内核单独跑xts;此处略过内核测试套的测试,可以通过[XTS测试套](porting-chip-board-xts.md)来覆盖最小系统是否完整移植成功。 diff --git a/zh-cn/device-dev/porting/porting-chip-kernel.md b/zh-cn/device-dev/porting/porting-chip-kernel.md new file mode 100644 index 00000000000..b488ca9132b --- /dev/null +++ b/zh-cn/device-dev/porting/porting-chip-kernel.md @@ -0,0 +1,9 @@ +# 内核移植 + +- **[移植概述](porting-chip-kernel-overview.md)** + +- **[内核基础适配](porting-chip-kernel-adjustment.md)** + +- **[内核移植验证](porting-chip-kernel-verify.md)** + + diff --git a/zh-cn/device-dev/porting/transplant-chip-prepare-process.md b/zh-cn/device-dev/porting/porting-chip-prepare-process.md similarity index 99% rename from zh-cn/device-dev/porting/transplant-chip-prepare-process.md rename to zh-cn/device-dev/porting/porting-chip-prepare-process.md index f8128b4735c..c9fe780d754 100644 --- a/zh-cn/device-dev/porting/transplant-chip-prepare-process.md +++ b/zh-cn/device-dev/porting/porting-chip-prepare-process.md @@ -25,7 +25,6 @@ 编译构建会按产品的选择的开发板,加载对应的config.gni,该文件中变量对系统组件全局可见。 - 以芯片解决方案厂商realtek的“rtl8720“开发板为例,device/realtek/rtl8720/liteos\_m/config.gni的内容如下: ``` diff --git a/zh-cn/device-dev/porting/transplant-chip-prepare.md b/zh-cn/device-dev/porting/porting-chip-prepare.md similarity index 31% rename from zh-cn/device-dev/porting/transplant-chip-prepare.md rename to zh-cn/device-dev/porting/porting-chip-prepare.md index 358da845b74..64ee48b8940 100644 --- a/zh-cn/device-dev/porting/transplant-chip-prepare.md +++ b/zh-cn/device-dev/porting/porting-chip-prepare.md @@ -1,7 +1,7 @@ # 移植准备 -- **[移植须知](transplant-chip-prepare-knows.md)** +- **[移植须知](oem_transplant_chip_prepare_knows.md)** -- **[编译构建适配流程](transplant-chip-prepare-process.md)** +- **[编译构建适配流程](porting-chip-prepare-process.md)** diff --git a/zh-cn/device-dev/porting/porting-minichip.md b/zh-cn/device-dev/porting/porting-minichip.md new file mode 100644 index 00000000000..cbd7bbcbda0 --- /dev/null +++ b/zh-cn/device-dev/porting/porting-minichip.md @@ -0,0 +1,11 @@ +# 轻量系统芯片移植指导 + +- **[移植准备](porting-chip-prepare.md)** + +- **[内核移植](porting-chip-kernel.md)** + +- **[板级系统移植](porting-chip-board.md)** + +- **[常见问题](porting-chip-faqs.md)** + + diff --git a/zh-cn/device-dev/porting/transplant-smallchip-drive-oom.md b/zh-cn/device-dev/porting/porting-smallchip-driver-oom.md similarity index 100% rename from zh-cn/device-dev/porting/transplant-smallchip-drive-oom.md rename to zh-cn/device-dev/porting/porting-smallchip-driver-oom.md diff --git a/zh-cn/device-dev/porting/transplant-smallchip-drive-des.md b/zh-cn/device-dev/porting/porting-smallchip-driver-overview.md similarity index 100% rename from zh-cn/device-dev/porting/transplant-smallchip-drive-des.md rename to zh-cn/device-dev/porting/porting-smallchip-driver-overview.md diff --git a/zh-cn/device-dev/porting/transplant-smallchip-drive-plat.md b/zh-cn/device-dev/porting/porting-smallchip-driver-plat.md similarity index 100% rename from zh-cn/device-dev/porting/transplant-smallchip-drive-plat.md rename to zh-cn/device-dev/porting/porting-smallchip-driver-plat.md diff --git a/zh-cn/device-dev/porting/porting-smallchip-driver.md b/zh-cn/device-dev/porting/porting-smallchip-driver.md new file mode 100644 index 00000000000..5b2a0921c90 --- /dev/null +++ b/zh-cn/device-dev/porting/porting-smallchip-driver.md @@ -0,0 +1,9 @@ +# 驱动移植 + +- **[移植概述](porting-smallchip-driver-overview.md)** + +- **[平台驱动移植](porting-smallchip-driver-plat.md)** + +- **[器件驱动移植](porting-smallchip-driver-oom.md)** + + diff --git a/zh-cn/device-dev/porting/transplant-smallchip-kernel-a.md b/zh-cn/device-dev/porting/porting-smallchip-kernel-a.md similarity index 96% rename from zh-cn/device-dev/porting/transplant-smallchip-kernel-a.md rename to zh-cn/device-dev/porting/porting-smallchip-kernel-a.md index f4de2f397db..1588a5c84a8 100644 --- a/zh-cn/device-dev/porting/transplant-smallchip-kernel-a.md +++ b/zh-cn/device-dev/porting/porting-smallchip-kernel-a.md @@ -26,10 +26,12 @@ LiteOS-A提供系统运行所需的系统初始化流程和定制化配置选项 如下图所示,LiteOS-A的初始化流程主要包含以下五步: 1. 新增target\_config.h文件,并且编写单板内存相关的配置宏DDR\_MEM\_ADDR和DDR\_MEM\_SIZE,分别表示内存起始地址和内存的长度,预链接脚本board.ld.S会根据这两个宏进行展开生成链接脚本board.ld。 -2. 链接阶段根据链接脚本board.ld生成内核镜像。 -3. 单核CPU镜像运行入口为汇编文件reset\_vector\_up.S,多核CPU的入口为reset\_vector\_mp.S,在汇编文件中进行中断向量表初始化、MMU页表初始化等操作。 -4. reset\_vector.S汇编代码最终会跳转到C语言的main函数,进行硬件时钟、软件定时器、内存和任务等初始化,这个过程会依赖target\_config.h的特性宏配置,最后会创建SystemInit任务,并且开启任务调度OsSchedStart\(\)。 -5. SystemInit任务在单板代码中实现,其中调用DeviceManagerStart函数进行HDF驱动初始化,这个过程会调用单板代码中的驱动配置文件hdf.hcs以及drivers源码实现。 +2. 新增定义MMU映射全局数组\(g\_archMmuInitMapping\),指定各个内存段属性及虚实映射关系,内核启动阶段根据该表建立内存映射关系。 +3. 如果是多核,需要新增定义从核操作函数句柄\(struct SmpOps\),其中SmpOps-\>SmpCpuOn函数需要实现唤醒从核的功能;接着定义SmpRegFunc函数,调用LOS\_SmpOpsSet接口进行句柄注册;最后通过启动框架完成注册过程,即LOS\_MODULE\_INIT\(SmpRegFunc, LOS\_INIT\_LEVEL\_EARLIEST\)。 +4. 链接阶段根据链接脚本board.ld生成内核镜像。 +5. 单核CPU镜像运行入口为汇编文件reset\_vector\_up.S,多核CPU的入口为reset\_vector\_mp.S,在汇编文件中进行中断向量表初始化、MMU页表初始化等操作。 +6. reset\_vector.S汇编代码最终会跳转到C语言的main函数,进行硬件时钟、软件定时器、内存和任务等初始化,这个过程会依赖target\_config.h的特性宏配置,最后会创建SystemInit任务,并且开启任务调度OsSchedStart\(\)。 +7. SystemInit任务在单板代码中实现,其中调用DeviceManagerStart函数进行HDF驱动初始化,这个过程会调用单板代码中的驱动配置文件hdf.hcs以及drivers源码实现 整体启动流程如下图所示: diff --git a/zh-cn/device-dev/porting/transplant-smallchip-kernel-linux.md b/zh-cn/device-dev/porting/porting-smallchip-kernel-linux.md similarity index 99% rename from zh-cn/device-dev/porting/transplant-smallchip-kernel-linux.md rename to zh-cn/device-dev/porting/porting-smallchip-kernel-linux.md index 911329dbd1b..a467d3cdf26 100644 --- a/zh-cn/device-dev/porting/transplant-smallchip-kernel-linux.md +++ b/zh-cn/device-dev/porting/porting-smallchip-kernel-linux.md @@ -87,7 +87,6 @@ Linux内核移植主要涉及基于linux内核基线合入三方芯片补丁后 启动配置在vendor/\{company\}/\{product\}/init\_configs/etc目录下,包括fstab、rsS和Sxxx文件,请按开发板实际情况配置。 - 编译完成后,可通过检查产品编译输出目录下的rootfs内容,确认rootfs.img文件生成是否符合预期。 2. 调试init进程和shell。 diff --git a/zh-cn/device-dev/porting/transplant-smallchip-kernel.md b/zh-cn/device-dev/porting/porting-smallchip-kernel.md similarity index 33% rename from zh-cn/device-dev/porting/transplant-smallchip-kernel.md rename to zh-cn/device-dev/porting/porting-smallchip-kernel.md index a1adc2dde7e..2d13c483937 100644 --- a/zh-cn/device-dev/porting/transplant-smallchip-kernel.md +++ b/zh-cn/device-dev/porting/porting-smallchip-kernel.md @@ -1,7 +1,7 @@ # 移植内核 -- **[LiteOS-A内核](transplant-smallchip-kernel-a.md)** +- **[LiteOS-A内核](porting-smallchip-kernel-a.md)** -- **[Linux内核](transplant-smallchip-kernel-linux.md)** +- **[Linux内核](porting-smallchip-kernel-linux.md)** diff --git a/zh-cn/device-dev/porting/transplant-smallchip-prepare-building.md b/zh-cn/device-dev/porting/porting-smallchip-prepare-building.md similarity index 100% rename from zh-cn/device-dev/porting/transplant-smallchip-prepare-building.md rename to zh-cn/device-dev/porting/porting-smallchip-prepare-building.md diff --git a/zh-cn/device-dev/porting/transplant-smallchip-prepare-needs.md b/zh-cn/device-dev/porting/porting-smallchip-prepare-needs.md similarity index 100% rename from zh-cn/device-dev/porting/transplant-smallchip-prepare-needs.md rename to zh-cn/device-dev/porting/porting-smallchip-prepare-needs.md diff --git a/zh-cn/device-dev/porting/transplant-smallchip-prepare.md b/zh-cn/device-dev/porting/porting-smallchip-prepare.md similarity index 32% rename from zh-cn/device-dev/porting/transplant-smallchip-prepare.md rename to zh-cn/device-dev/porting/porting-smallchip-prepare.md index 6ec4b45dff7..b76d5afe44d 100644 --- a/zh-cn/device-dev/porting/transplant-smallchip-prepare.md +++ b/zh-cn/device-dev/porting/porting-smallchip-prepare.md @@ -1,7 +1,7 @@ # 移植准备 -- **[移植须知](transplant-smallchip-prepare-needs.md)** +- **[移植须知](porting-smallchip-prepare-needs.md)** -- **[编译构建](transplant-smallchip-prepare-building.md)** +- **[编译构建](porting-smallchip-prepare-building.md)** diff --git a/zh-cn/device-dev/porting/porting-smallchip.md b/zh-cn/device-dev/porting/porting-smallchip.md new file mode 100644 index 00000000000..df2ce355915 --- /dev/null +++ b/zh-cn/device-dev/porting/porting-smallchip.md @@ -0,0 +1,9 @@ +# 小型系统芯片移植指导 + +- **[移植准备](porting-smallchip-prepare.md)** + +- **[移植内核](porting-smallchip-kernel.md)** + +- **[驱动移植](porting-smallchip-driver.md)** + + diff --git a/zh-cn/device-dev/porting/transplant-thirdparty-cmake.md b/zh-cn/device-dev/porting/porting-thirdparty-cmake.md similarity index 97% rename from zh-cn/device-dev/porting/transplant-thirdparty-cmake.md rename to zh-cn/device-dev/porting/porting-thirdparty-cmake.md index 670acc13ba9..6800ba882e2 100644 --- a/zh-cn/device-dev/porting/transplant-thirdparty-cmake.md +++ b/zh-cn/device-dev/porting/porting-thirdparty-cmake.md @@ -136,10 +136,10 @@ CMake方式可通过指定工具链进行交叉编译,修改并编译该库, set(CMAKE_LINKER clang) set(CMAKE_CXX_LINKER clang++) set(CMAKE_C_LINKER clang) - set(CMAKE_C_LINK_EXECUTABLE "${CMAKE_C_LINKER} - ${MY_LINK_FLAGS} -o ") - set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINKER} - ${MY_LINK_FLAGS} -o ") + set(CMAKE_C_LINK_EXECUTABLE + "${CMAKE_C_LINKER} ${MY_LINK_FLAGS} -o ") + set(CMAKE_CXX_LINK_EXECUTABLE + "${CMAKE_CXX_LINKER} ${MY_LINK_FLAGS} -o ") #指定链接库的查找路径。 set(CMAKE_SYSROOT ${OHOS_SYSROOT_PATH}) ``` @@ -154,7 +154,7 @@ CMake方式可通过指定工具链进行交叉编译,修改并编译该库, make -j ``` - 其中OHOS\_SYSROOT\_PATH需用绝对路径指定出sysroot目录的位置,以OpenHarmony为例即目录openHarmony/prebuilts/lite/sysroot的绝对路径。 + 其中OHOS\_SYSROOT\_PATH需用绝对路径指定出sysroot目录的位置,以OpenHarmony为例即目录out/hispark\_xxx/ipcamera\_hispark\_xxx/sysroot的绝对路径。上述目录会在全量编译后生成,因此移植前先完成一次全量编译。 3. 查看结果 diff --git a/zh-cn/device-dev/porting/transplant-thirdparty-makefile.md b/zh-cn/device-dev/porting/porting-thirdparty-makefile.md similarity index 96% rename from zh-cn/device-dev/porting/transplant-thirdparty-makefile.md rename to zh-cn/device-dev/porting/porting-thirdparty-makefile.md index ddabc1ef30a..51627f2fcbf 100644 --- a/zh-cn/device-dev/porting/transplant-thirdparty-makefile.md +++ b/zh-cn/device-dev/porting/porting-thirdparty-makefile.md @@ -98,7 +98,7 @@ CC:=clang AR:=llvm-ar #cflags中必须要添加--target及--sysroot选项 - CFLAGS:=-Wall -Wextra -Wno-unused-parameter -O2 -g --target=arm-liteos -march=armv7-a --sysroot=$(OHOS_ROOT_PATH)prebuilts/lite/sysroot + CFLAGS:=-Wall -Wextra -Wno-unused-parameter -O2 -g --target=arm-liteos -march=armv7-a --sysroot=$(OHOS_SYSROOT_PATH) ``` 原有配置 @@ -117,7 +117,7 @@ make test OHOS_SYSROOT_PATH=... ``` - 其中OHOS\_SYSROOT\_PATH需用绝对路径指定出sysroot所在目录,以OpenHarmony为例即源码根目录prebuilts/lite/sysroot/所在的绝对路径。 + 其中OHOS\_SYSROOT\_PATH需用绝对路径指定出sysroot所在目录,以OpenHarmony为例即源码根目录下out/hispark\_xxx/ipcamera\_hispark\_xxx/sysroot目录的绝对路径。上述目录会在全量编译后生成,因此移植前先完成一次全量编译。 3. 查看结果 @@ -148,7 +148,7 @@ ## 测试 -yxml库测试步骤与double-conversion库基本一致,可参考[CMake方式组织编译的库移植](transplant-thirdparty-cmake.md#section6686144293611)的测试过程,以下内容介绍yxml库测试用例的使用方法: +yxml库测试步骤与double-conversion库基本一致,可参考[CMake方式组织编译的库移植](porting-thirdparty-cmake.md#section6686144293611)的测试过程,以下内容介绍yxml库测试用例的使用方法: **表 3** 生成的test目录结构示意 @@ -236,7 +236,7 @@ echo "All tests completed successfully." ## 将该库编译添加到OpenHarmony工程中 -yxml库添加的过程除了适配文件build.gn和config.gni有些许变化外,其他和double-conversion库完全一致,参考[CMake方式组织编译的库移植](transplant-thirdparty-cmake.md#section1651053153715)的配置过程。要修改的适配文件及添加后的目录结构如下: +yxml库添加的过程除了适配文件build.gn和config.gni有些许变化外,其他和double-conversion库完全一致,参考[CMake方式组织编译的库移植](porting-thirdparty-cmake.md#section1651053153715)的配置过程。要修改的适配文件及添加后的目录结构如下: - yxml库新增的BUILD.gn实现如下: diff --git a/zh-cn/device-dev/porting/transplant-thirdparty-overview.md b/zh-cn/device-dev/porting/porting-thirdparty-overview.md old mode 100755 new mode 100644 similarity index 100% rename from zh-cn/device-dev/porting/transplant-thirdparty-overview.md rename to zh-cn/device-dev/porting/porting-thirdparty-overview.md diff --git a/zh-cn/device-dev/porting/porting-thirdparty.md b/zh-cn/device-dev/porting/porting-thirdparty.md new file mode 100644 index 00000000000..306476fd681 --- /dev/null +++ b/zh-cn/device-dev/porting/porting-thirdparty.md @@ -0,0 +1,9 @@ +# 三方库移植指导 + +- **[概述](porting-thirdparty-overview.md)** + +- **[CMake方式组织编译的库移植](porting-thirdparty-cmake.md)** + +- **[Makefile方式组织编译的库移植](porting-thirdparty-makefile.md)** + + diff --git a/zh-cn/device-dev/porting/porting.md b/zh-cn/device-dev/porting/porting.md new file mode 100644 index 00000000000..735393aaf20 --- /dev/null +++ b/zh-cn/device-dev/porting/porting.md @@ -0,0 +1,11 @@ +# 移植 + +- **[三方库移植指导](porting-thirdparty.md)** + +- **[轻量系统芯片移植指导](porting-minichip.md)** + +- **[小型系统芯片移植指导](porting-smallchip.md)** + +- **[标准系统移植指南](standard-system-porting-guide.md)** + + diff --git a/zh-cn/device-dev/porting/standard-system-porting-guide.md b/zh-cn/device-dev/porting/standard-system-porting-guide.md index ad6d4c683ad..b0013ba943a 100644 --- a/zh-cn/device-dev/porting/standard-system-porting-guide.md +++ b/zh-cn/device-dev/porting/standard-system-porting-guide.md @@ -1,377 +1,510 @@ -# 标准系统移植指南 - - - - - -- [定义开发板](#定义开发板) - - [1. 定义SOC](#1-定义soc) - - [2. 定义产品](#2-定义产品) - - [3. 移植验证](#3-移植验证) -- [内核移植](#内核移植) - - [1. 为SOC添加内核构建的子系统](#1-为soc添加内核构建的子系统) - - [2. 编译内核](#2-编译内核) - - [3. 移植验证](#3-移植验证-1) -- [HDF驱动移植](#hdf驱动移植) - - [1. LCD](#1-lcd) - - [2. 触摸屏](#2-触摸屏) - - [3. WLAN](#3-wlan) - - - -本文描述了移植一块开发板的通用步骤,和具体芯片相关的详细移植过程无法在此一一列举。后续社区还会陆续发布开发板移植的实例供开发者参考。 - -## 定义开发板 - -本文以移植名为MyProduct的开发板为例讲解移植过程,假定MyProduct是MyProductVendor公司的开发板,使用MySoCVendor公司生产的MySOC芯片作为处理器。 - -### 1. 定义SOC - -在`//productdefine/common/device`目录下创建以SOC名字命名的json文件,并指定CPU的架构。 - -如要移植一个叫MySOC的SOC,这个SOC采用32位ARM内核。配置如下: - -`//productdefine/common/device/MySOC.json` -```json -{ - "target_os": "ohos", - "target_cpu": "arm" -} -``` -根据实际情况,这里的target_cpu也可能是arm64 、riscv、 x86等。当前仅支持arm作为target_cpu。 - -### 2. 定义产品 - -在`//productdefine/common/products`目录下创建以产品名命名的json文件。该文件用于描述产品所使用的SOC 以及 所需的子系统。 -配置如下 -`//productdefine/common/products/MyProduct.json` -```json -{ - "product_name": "MyProduct", - "product_company" : "MyProductVendor", - "product_device": "MySOC", - "version": "2.0", - "type": "standard", - "parts":{ - "ace:ace_engine_standard":{}, - "ace:napi":{}, - ... - "xts:phone_tests":{} - } -} - -``` -主要的配置内容包括: - -1. `product_device`:配置所使用的SOC -2. `type`: 配置系统的级别, 这里直接standard即可 -3. `parts`: 系统需要启用的子系统。子系统可以简单理解位一块独立构建的功能块。 - -已定义的子系统可以在`//build/subsystem_config.json`中找到。当然你也可以定制子系统。 - -这里建议先拷贝Hi3516DV300 开发板的配置文件,删除掉 hisilicon_products 这个子系统。这个子系统为Hi3516DV300 SOC编译内核,显然不适合MySOC。 - -### 3. 移植验证 - -至此,你可以使用如下命令,启动你产品的构建了: - -`./build.sh --product-name MyProduct ` - -构建完成后,可以在如下目录看到构建出来的OpenHarmony镜像文件: - -`//out/ohos-arm-release/packages/phone/images` - -## 内核移植 - -这一步需要移植Linux内核,让Linux内核可以成功运行起来。 - -### 1. 为SOC添加内核构建的子系统 - -修改文件 `//build/subsystem_config.json` 增加一个子系统. 配置如下: - -```json - "MySOCVendor_products": { - "project": "hmf/MySOCVendor_products", - "path": "device/MySOCVendor/MySOC/build", - "name": "MySOCVendor_products", - "dir": "device/MySOCVendor" - }, -``` - -接着需要修改定义产品的配置文件`//productdefine/common/products/MyProduct.json`。将刚刚定义的子系统加入到产品中。 - -### 2. 编译内核 - -OpenHarmony源码中提供了Linux 4.19的内核,归档在`//kernel/linux-4.19`。本节以该内核版本为例,讲解如何编译内核。 - -在子系统的定义中,描述了子系统构建的路径path,即`//device/MySOCVendor/MySOC/build`。这一节会在这个目录创建构建脚本,告诉构建系统如何构建内核。 - -建议的目录结构如下: -``` -├── build -│   ├── kernel -│   │ ├── linux -│   │ ├──standard_patch_for_4_19.patch // 基于4.19版本内核的补丁 -│   ├── BUILD.gn -│   ├── ohos.build -``` -BUILD.gn是subsystem构建的唯一入口。 - -期望的构建结果 - -| 文件 | 文件说明| -|------|------| -|$root_build_dir/packages/phone/images/uImage| 内核镜像| -|$root_build_dir/packages/phone/images/uboot | bootloader镜像| - -### 3. 移植验证 - -启动编译,验证预期的kernel镜像是否成功生成。 - -## HDF驱动移植 - -### 1. LCD -HDF为LCD设计了驱动模型。支持一块新的LCD,需要编写一个驱动,在驱动中生成模型的实例,并完成注册。 - -这些LCD的驱动被放置在`//drivers/framework/model/display/driver/panel`目录中。 - -- 创建Panel驱动 - -在驱动的Init方法中,需要调用RegisterPanel接口注册模型实例。如: -```C -int32_t XXXInit(struct HdfDeviceObject *object) -{ - struct PanelData *panel = CreateYourPanel(); - - // 注册 - if (RegisterPanel(panel) != HDF_SUCCESS) { - HDF_LOGE("%s: RegisterPanel failed", __func__); - return HDF_FAILURE; - } - return HDF_SUCCESS; -} - -struct HdfDriverEntry g_xxxxDevEntry = { - .moduleVersion = 1, - .moduleName = "LCD_XXXX", - .Init = XXXInit, -}; - -HDF_INIT(g_xxxxDevEntry); -``` - -- 配置加载panel驱动 -产品的所有设备信息被定义在文件`//vendor/MyProductVendor/MyProduct/config/device_info/device_info.hcs`中。修改该文件,在display的host中,名为device_lcd的device中增加配置。 -注意:moduleName 要与panel驱动中的moduleName相同。 - -```hcs -root { - ... - display :: host { - device_lcd :: device { - deviceN :: deviceNode { - policy = 0; - priority = 100; - preload = 2; - moduleName = "LCD_XXXX"; - } - } - } -} -``` - -更详细的驱动开发指导,请参考 [LCD](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/driver/LCD.md)。 - -### 2. 触摸屏 -本节描述如何移植触摸屏驱动。触摸屏的驱动被放置在`//drivers/framework/model/input/driver/touchscreen`目录中。移植触摸屏驱动主要工作是向系统注册ChipDevice模型实例。 - -- 创建触摸屏器件驱动 - -在目录中创建名为`touch_ic_name.c`的文件。代码模板如下: -注意:请替换ic_name为你所适配芯片的名称。 - -```C -#include "hdf_touch.h" - -static int32_t HdfXXXXChipInit(struct HdfDeviceObject *device) -{ - ChipDevice *tpImpl = CreateXXXXTpImpl(); - if(RegisterChipDevice(tpImpl) != HDF_SUCCESS) { - ReleaseXXXXTpImpl(tpImpl); - return HDF_FAILURE; - } - return HDF_SUCCESS; -} - -struct HdfDriverEntry g_touchXXXXChipEntry = { - .moduleVersion = 1, - .moduleName = "HDF_TOUCH_XXXX", - .Init = HdfXXXXChipInit, -}; - -HDF_INIT(g_touchXXXXChipEntry); -``` - -其中ChipDevice中要提供若干方法: -| 方法| 实现说明| -|------|------| -|int32_t (*Init)(ChipDevice *device)| 器件初始化| -|int32_t (*Detect)(ChipDevice *device)| 器件探测| -|int32_t (*Suspend)(ChipDevice *device)| 器件休眠| -|int32_t (*Resume)(ChipDevice *device)| 器件唤醒| -|int32_t (*DataHandle)(ChipDevice *device)| 从器件读取数据,将触摸点数据填写入device->driver->frameData中| -|int32_t (*UpdateFirmware)(ChipDevice *device)| 固件升级| - -- 配置产品,加载器件驱动 - -产品的所有设备信息被定义在文件`//vendor/MyProductVendor/MyProduct/config/device_info/device_info.hcs`中。修改该文件,在名为input的host中,名为device_touch_chip的device中增加配置。 -注意:moduleName 要与触摸屏驱动中的moduleName相同。 - -```hcs - deviceN :: deviceNode { - policy = 0; - priority = 130; - preload = 0; - permission = 0660; - moduleName = "HDF_TOUCH_XXXX"; - deviceMatchAttr = "touch_XXXX_configs"; - } -``` - -更详细的驱动开发指导,请参考 [TOUCHSCREEN](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/driver/TOUCHSCREEN.md)。 - - -### 3. WLAN - -Wi-Fi驱动分为两部分,一部分负责管理WLAN设备,另一个部分负责处理WLAN流量。`HDF WLAN`分别为这两部分做了抽象。目前支持SDIO接口的WLAN芯片。 - -Wi-Fi结构图 - -支持一款芯片的主要工作是实现一个ChipDriver驱动。实现HDF_WLAN_CORE和NetDevice提供的接口。主要需要实现的接口有: - -| 接口| 定义头文件| 说明| -|------|------|------| -| HdfChipDriverFactory| `//drivers/framework/include/wifi/hdf_wlan_chipdriver_manager.h`| ChipDriver的Factory,用于支持一个芯片多个Wi-Fi端口| -| HdfChipDriver | `//drivers/framework/include/wifi/wifi_module.h`| 每个WLAN端口对应一个HdfChipDriver,用来管理一个特定的WLAN端口| -|NetDeviceInterFace| `//drivers/framework/include/wifi/net_device.h`| 与协议栈之间的接口,如发送数据、设置网络接口状态等| - -建议适配按如下步骤操作: - -1. 创建HDF驱动 - -建议将代码放置在`//device/MySoCVendor/peripheral/wifi/chip_name/`。 -文件模板如下: - -```C -static int32_t HdfWlanHisiChipDriverInit(struct HdfDeviceObject *device) { - static struct HdfChipDriverFactory factory = CreateChipDriverFactory(); - struct HdfChipDriverManager *driverMgr = HdfWlanGetChipDriverMgr(); - if (driverMgr->RegChipDriver(&factory) != HDF_SUCCESS) { - HDF_LOGE("%s fail: driverMgr is NULL!", __func__); - return HDF_FAILURE; - } - return HDF_SUCCESS; -} - -struct HdfDriverEntry g_hdfXXXChipEntry = { - .moduleVersion = 1, - .Init = HdfWlanXXXChipDriverInit, - .Release = HdfWlanXXXChipRelease, - .moduleName = "HDF_WIFI_CHIP_XXX" -}; - -HDF_INIT(g_hdfXXXChipEntry); -``` - -在CreateChipDriverFactory中需要创建一个HdfChipDriverFactory,接口如下: -| 接口| 说明| -|------|------| -|const char *driverName| 当前driverName | -|int32_t (*InitChip)(struct HdfWlanDevice *device)| 初始化芯片| -|int32_t (*DeinitChip)(struct HdfWlanDevice *device)| 去初始化芯片| -|void (*ReleaseFactory)(struct HdfChipDriverFactory *factory)| 释放HdfChipDriverFactory对象| -|struct HdfChipDriver *(*Build)(struct HdfWlanDevice *device, uint8_t ifIndex)|创建一个HdfChipDriver;输入参数中,device是设备信息,ifIndex是当前创建的接口在这个芯片中的序号| -|void (*Release)(struct HdfChipDriver *chipDriver)| 释放chipDriver -|uint8_t (*GetMaxIFCount)(struct HdfChipDriverFactory *factory)| 获取当前芯片支持的最大接口数| - -HdfChipDriver需要实现的接口有 - -|接口| 说明| -|------|------| -|int32_t (*init)(struct HdfChipDriver *chipDriver, NetDevice *netDev)| 初始化当前网络接口,这里需要向netDev提供接口NetDeviceInterFace| -|int32_t (*deinit)(struct HdfChipDriver *chipDriver, NetDevice *netDev)| 去初始化当前网络接口| -|struct HdfMac80211BaseOps *ops| WLAN基础能力接口集| -|struct HdfMac80211STAOps *staOps| 支持STA模式所需的接口集| -|struct HdfMac80211APOps *apOps| 支持AP模式所需要的接口集| - - - -2. 编写配置文件,描述驱动支持的设备 - -在产品配置目录下创建芯片的配置文件`//vendor/MyProductVendor/MyProduct/config/wifi/wlan_chip_chip_name.hcs`。 -注意: 路径中的vendor_name、product_name、chip_name请替换成实际名称。 -模板如下: -```hcs -root { - wlan_config { - chip_name :& chipList { - chip_name :: chipInst { - match_attr = "hdf_wlan_chips_chip_name"; /* 这是配置匹配属性,用于提供驱动的配置根 */ - driverName = "driverName"; /* 需要与HdfChipDriverFactory中的driverName相同*/ - sdio { - vendorId = 0x0296; - deviceId = [0x5347]; - } - } - } - } -} -``` - -3. 编写配置文件,加载驱动 - -产品的所有设备信息被定义在文件`//vendor/MyProductVendor/MyProduct/config/device_info/device_info.hcs`中。修改该文件,在名为network的host中,名为device_wlan_chips的device中增加配置。 -注意:moduleName 要与触摸屏驱动中的moduleName相同。 -模板如下: - -```hcs - deviceN :: deviceNode { - policy = 0; - preload = 2; - moduleName = "HDF_WLAN_CHIPS"; - deviceMatchAttr = "hdf_wlan_chips_chip_name"; - serviceName = "driverName"; - } -``` - -4. 构建驱动 - -- 创建内核菜单 -在 `//device/MySoCVendor/peripheral` 目录中创建Kconfig文件,内容模板如下: -``` -config DRIVERS_WLAN_XXX - bool "Enable XXX WLAN Host driver" - default n - depends on DRIVERS_HDF_WIFI - help - Answer Y to enable XXX Host driver. Support chip xxx -``` - -接着修改文件 `//drivers/adapter/khdf/linux/model/network/wifi/Kconfig`,在文件末尾加入如下代码将配置菜单加入内核中。如: -``` -source "../../../../../device/MySoCVendor/peripheral/Kconfig" -``` - -- 创建构建脚本 - -在`//drivers/adapter/khdf/linux/model/network/wifi/Makefile` 文件末尾增加配置,模板如下: - -``` -HDF_DEVICE_ROOT := $(HDF_DIR_PREFIX)/../device -obj-$(CONFIG_DRIVERS_WLAN_XXX) += $(HDF_DEVICE_ROOT)/MySoCVendor/peripheral/build/standard/ -``` - -当在内核中开启`DRIVERS_WLAN_XXX`开关时,会调用`//device/MySoCVendor/peripheral/build/standard/`中的makefile。 - - -更多详细的开发手册,请参考[WLAN开发](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/driver/WLAN.md)。 \ No newline at end of file +# 标准系统移植指南 + +- [定义开发板](#section132mcpsimp) + - [定义SOC](#section135mcpsimp) + - [定义产品](#section145mcpsimp) + - [移植验证](#section163mcpsimp) + +- [内核移植](#section171mcpsimp) + - [1.为SOC添加内核构建的子系统](#section174mcpsimp) + - [2. 编译内核](#section182mcpsimp) + - [3. 移植验证](#section207mcpsimp) + +- [HDF驱动移植](#section210mcpsimp) + - [1. LCD](#section212mcpsimp) + - [2. 触摸屏](#section229mcpsimp) + - [3. WLAN](#section274mcpsimp) + + +## 定义开发板 + +本文以移植名为MyProduct的开发板为例讲解移植过程,假定MyProduct是MyProductVendor公司的开发板,使用MySoCVendor公司生产的MySOC芯片作为处理器。 + +### 定义SOC + +在“//productdefine/common/device”目录下创建以SOC名字命名的json文件,并指定CPU的架构。 + +如要移植一个叫MySOC的SOC,这个SOC采用32位ARM内核。配置如下: + +//productdefine/common/device/MySOC.json + +``` +{ + "target_os": "ohos", + "target_cpu": "arm" +} +``` + +根据实际情况,这里的target\_cpu也可能是arm64 、riscv、 x86等。当前仅支持arm作为target\_cpu。 + +### 定义产品 + +在“//productdefine/common/products”目录下创建以产品名命名的json文件。该文件用于描述产品所使用的SOC 以及 所需的子系统。配置如下 + +//productdefine/common/products/MyProduct.json + +``` +{ + "product_name": "MyProduct", + "product_company" : "MyProductVendor", + "product_device": "MySOC", + "version": "2.0", + "type": "standard", + "parts":{ + "ace:ace_engine_standard":{}, + "ace:napi":{}, + ... + "xts:phone_tests":{} + } +} + +``` + +主要的配置内容包括: + +1. product\_device:配置所使用的SOC +2. type:配置系统的级别, 这里直接standard即可 +3. parts:系统需要启用的子系统。子系统可以简单理解位一块独立构建的功能块。 + +已定义的子系统可以在“//build/subsystem\_config.json”中找到。当然你也可以定制子系统。 + +这里建议先拷贝Hi3516DV300 开发板的配置文件,删除掉 hisilicon\_products 这个子系统。这个子系统为Hi3516DV300 SOC编译内核,显然不适合MySOC。 + +### 移植验证 + +至此,你可以使用如下命令,启动你产品的构建了: + +``` +./build.sh --product-name MyProduct +``` + +构建完成后,可以在“//out/ohos-arm-release/packages/phone/images”目录下看到构建出来的HarmonyOSOpenHarmony镜像文件。 + +## 内核移植 + +这一步需要移植Linux内核,让Linux内核可以成功运行起来。 + +### 1.为SOC添加内核构建的子系统 + +修改文件 //build/subsystem\_config.json增加一个子系统. 配置如下: + +``` + "MySOCVendor_products": { + "project": "hmf/MySOCVendor_products", + "path": "device/MySOCVendor/MySOC/build", + "name": "MySOCVendor_products", + "dir": "device/MySOCVendor" + }, +``` + +接着需要修改定义产品的配置文件//productdefine/common/products/MyProduct.json。将刚刚定义的子系统加入到产品中 + +### 2. 编译内核 + +在上一节定义subsystem的时候,定义了构建的路径path,即//device/MySOCVendor/MySOC/build。这一节会在这个目录创建构建脚本,告诉构建系统如何构建内核。 + +目前OpenHarmony源码中提供了Linux 4.19的内核,归档在//kernel/linux-4.19。请尽可能使用这个内核。每个SOC必然需要对内核做一些修改或扩展,建议采用补丁的方式。 + +建议的目录结构 + +``` +├── build +│   ├── kernel +│   │ ├── linux +│   │ ├──standard_patch_for_4_19.patch +│   ├── BUILD.gn +│   ├── ohos.build +``` + +BUILD.gn是subsystem构建的唯一入口。 + +期望的构建结果 + + + + + + + + + + + + +

文件

+

文件说明

+

$root_build_dir/packages/phone/images/uImage

+

内核镜像

+

$root_build_dir/packages/phone/images/uboot

+

bootloader镜像

+
+ +### 3. 移植验证 + +启动编译,验证预期的kernel镜像是否成功生成。 + +## HDF驱动移植 + +### 1. LCD + +HDF为LCD设计了驱动模型。支持一块新的LCD,需要编写一个驱动,在驱动中生成模型的实例,并完成注册。 + +这些LCD的驱动被放置在//drivers/framework/model/display/driver/panel目录中。 + +- 创建Panel驱动 + +在驱动的Init方法中,需要调用RegisterPanel接口注册模型实例。如: + +``` +int32_t XXXInit(struct HdfDeviceObject *object) +{ + struct PanelData *panel = CreateYourPanel(); + + // 注册 + if (RegisterPanel(panel) != HDF_SUCCESS) { + HDF_LOGE("%s: RegisterPanel failed", __func__); + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +struct HdfDriverEntry g_xxxxDevEntry = { + .moduleVersion = 1, + .moduleName = "LCD_XXXX", + .Init = XXXInit, +}; + +HDF_INIT(g_xxxxDevEntry); +``` + +- 配置加载panel驱动产品的所有设备信息被定义在文件//vendor/MyProductVendor/MyProduct/config/device\_info/device\_info.hcs中。修改该文件,在display的host中,名为device\_lcd的device中增加配置。注意:moduleName 要与panel驱动中的moduleName相同。 + +``` +root { + ... + display :: host { + device_lcd :: device { + deviceN :: deviceNode { + policy = 0; + priority = 100; + preload = 2; + moduleName = "LCD_XXXX"; + } + } + } +} +``` + +更详细的驱动开发指导,请参考 [LCD](../driver/driver-peripherals-lcd-des.md) + +### 2. 触摸屏 + +本节描述如何移植触摸屏驱动。触摸屏的驱动被放置在//drivers/framework/model/input/driver/touchscreen目录中。移植触摸屏驱动主要工作是向系统注册ChipDevice模型实例。 + +- 创建触摸屏器件驱动 + +在目录中创建名为 + +``` +touch_ic_name.c +``` + +的文件。代码模板如下:注意:请替换ic\_name为你所适配芯片的名称 + +``` +#include "hdf_touch.h" + +static int32_t HdfXXXXChipInit(struct HdfDeviceObject *device) +{ + ChipDevice *tpImpl = CreateXXXXTpImpl(); + if(RegisterChipDevice(tpImpl) != HDF_SUCCESS) { + ReleaseXXXXTpImpl(tpImpl); + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +struct HdfDriverEntry g_touchXXXXChipEntry = { + .moduleVersion = 1, + .moduleName = "HDF_TOUCH_XXXX", + .Init = HdfXXXXChipInit, +}; + +HDF_INIT(g_touchXXXXChipEntry); +``` + +其中ChipDevice中要提供若干方法 + + + + + + + + + + + + + + + + + + + + + + + + +

方法

+

实现说明

+

int32_t (*Init)(ChipDevice *device)

+

器件初始化

+

int32_t (*Detect)(ChipDevice *device)

+

器件探测

+

int32_t (*Suspend)(ChipDevice *device)

+

器件休眠

+

int32_t (*Resume)(ChipDevice *device)

+

器件唤醒

+

int32_t (*DataHandle)(ChipDevice *device)

+

从器件读取数据,将触摸点数据填写入device->driver->frameData中

+

int32_t (*UpdateFirmware)(ChipDevice *device)

+

固件升级

+
+ +- 配置产品,加载器件驱动 + + 产品的所有设备信息被定义在文件//vendor/MyProductVendor/MyProduct/config/device\_info/device\_info.hcs中。修改该文件,在名为input的host中,名为device\_touch\_chip的device中增加配置。注意:moduleName 要与触摸屏驱动中的moduleName相同。 + + +``` + deviceN :: deviceNode { + policy = 0; + priority = 130; + preload = 0; + permission = 0660; + moduleName = "HDF_TOUCH_XXXX"; + deviceMatchAttr = "touch_XXXX_configs"; + } +``` + +更详细的驱动开发指导,请参考 [TOUCHSCREEN](../driver/driver-peripherals-touch-des.md) + +### 3. WLAN + +Wi-Fi驱动分为两部分,一部分负责管理WLAN设备,另一个部分负责处理WLAN流量。HDF WLAN分别为这两部分做了抽象。目前支持SDIO接口的WLAN芯片。 + +**图 1** WLAN芯片 +![](figure/WLAN芯片.png "WLAN芯片") + +支持一款芯片的主要工作是实现一个ChipDriver驱动。实现HDF\_WLAN\_CORE和NetDevice提供的接口。主要需要实现的接口有: + + + + + + + + + + + + + + + + + + + +

接口

+

定义头文件

+

说明

+

HdfChipDriverFactory

+
//drivers/framework/include/wifi/hdf_wlan_chipdriver_manager.h
+

ChipDriver的Factory,用于支持一个芯片多个Wi-Fi端口

+

HdfChipDriver

+
//drivers/framework/include/wifi/wifi_module.h
+

每个WLAN端口对应一个HdfChipDriver,用来管理一个特定的WLAN端口

+

NetDeviceInterFace

+
//drivers/framework/include/wifi/net_device.h
+

与协议栈之间的接口,如发送数据、设置网络接口状态等

+
+ +建议适配按如下步骤操作: + +1.创建HDF驱动建议将代码放置在//device/MySoCVendor/peripheral/wifi/chip\_name/ + +``` +static int32_t HdfWlanHisiChipDriverInit(struct HdfDeviceObject *device) { + static struct HdfChipDriverFactory factory = CreateChipDriverFactory(); + struct HdfChipDriverManager *driverMgr = HdfWlanGetChipDriverMgr(); + if (driverMgr->RegChipDriver(&factory) != HDF_SUCCESS) { + HDF_LOGE("%s fail: driverMgr is NULL!", __func__); + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +struct HdfDriverEntry g_hdfXXXChipEntry = { + .moduleVersion = 1, + .Init = HdfWlanXXXChipDriverInit, + .Release = HdfWlanXXXChipRelease, + .moduleName = "HDF_WIFI_CHIP_XXX" +}; + +HDF_INIT(g_hdfXXXChipEntry); +``` + +在CreateChipDriverFactory中,需要创建一个HdfChipDriverFactory + + + + + + + + + + + + + + + + + + + + + + + + + + + +

接口

+

说明

+

const char *driverName

+

当前driverName

+

int32_t (*InitChip)(struct HdfWlanDevice *device)

+

初始化芯片

+

int32_t (*DeinitChip)(struct HdfWlanDevice *device)

+

去初始化芯片

+

void (_ReleaseFactory)(struct HdfChipDriverFactory _factory)

+

释放HdfChipDriverFactory对象

+

struct HdfChipDriver _(_Build)(struct HdfWlanDevice *device, uint8_t ifIndex)

+

创建一个HdfChipDriver;输入参数中,device是设备信息,ifIndex是当前创建的接口在这个芯片中的序号

+

void (_Release)(struct HdfChipDriver _chipDriver)

+

释放chipDriver

+

uint8_t (*GetMaxIFCount)(struct HdfChipDriverFactory *factory)

+

获取当前芯片支持的最大接口数

+
+ +HdfChipDriver需要实现的接口有 + + + + + + + + + + + + + + + + + + + + + +

接口

+

说明

+

int32_t (*init)(struct HdfChipDriver *chipDriver, NetDevice *netDev)

+

初始化当前网络接口,这里需要向netDev提供接口NetDeviceInterFace

+

int32_t (*deinit)(struct HdfChipDriver *chipDriver, NetDevice *netDev)

+

去初始化当前网络接口

+

struct HdfMac80211BaseOps *ops

+

WLAN基础能力接口集

+

struct HdfMac80211STAOps *staOps

+

支持STA模式所需的接口集

+

struct HdfMac80211APOps *apOps

+

支持AP模式所需要的接口集

+
+ +2.编写配置文件,描述驱动支持的设备 + +在产品配置目录下创建芯片的配置文件//vendor/MyProductVendor/MyProduct/config/wifi/wlan\_chip\_chip\_name.hcs + +注意: 路径中的vendor\_name、product\_name、chip\_name请替换成实际名称 + +``` +root { + wlan_config { + chip_name :& chipList { + chip_name :: chipInst { + match_attr = "hdf_wlan_chips_chip_name"; /* 这是配置匹配属性,用于提供驱动的配置根 */ + driverName = "driverName"; /* 需要与HdfChipDriverFactory中的driverName相同*/ + sdio { + vendorId = 0x0296; + deviceId = [0x5347]; + } + } + } + } +} +``` + +3.编写配置文件,加载驱动 + +产品的所有设备信息被定义在文件//vendor/MyProductVendor/MyProduct/config/device\_info/device\_info.hcs中。修改该文件,在名为network的host中,名为device\_wlan\_chips的device中增加配置。注意:moduleName 要与触摸屏驱动中的moduleName相同。 + +``` + deviceN :: deviceNode { + policy = 0; + preload = 2; + moduleName = "HDF_WLAN_CHIPS"; + deviceMatchAttr = "hdf_wlan_chips_chip_name"; + serviceName = "driverName"; + } +``` + +4.构建驱动 + +- 创建内核菜单在//device/MySoCVendor/peripheral目录中创建Kconfig文件,内容模板如下: + +``` +config DRIVERS_WLAN_XXX + bool "Enable XXX WLAN Host driver" + default n + depends on DRIVERS_HDF_WIFI + help + Answer Y to enable XXX Host driver. Support chip xxx +``` + +接着修改文件//drivers/adapter/khdf/linux/model/network/wifi/Kconfig,在文件末尾加入如下代码将配置菜单加入内核中。 + +``` +source "../../../../../device/MySoCVendor/peripheral/Kconfig" +``` + +- 创建构建脚本 + + 在//drivers/adapter/khdf/linux/model/network/wifi/Makefile文件末尾增加配置,模板如下 + + +``` +HDF_DEVICE_ROOT := $(HDF_DIR_PREFIX)/../device +obj-$(CONFIG_DRIVERS_WLAN_XXX) += $(HDF_DEVICE_ROOT)/MySoCVendor/peripheral/build/standard/ +``` + +当在内核中开启DRIVERS\_WLAN\_XXX开关时,会调用//device/MySoCVendor/peripheral/build/standard/中的makefile更多详细的开发手册,请参考[WLAN开发](../guide/oem_wifi_sdk_des.md)。 + diff --git a/zh-cn/device-dev/porting/transplant-chip-board.md b/zh-cn/device-dev/porting/transplant-chip-board.md deleted file mode 100644 index f5d7b754b53..00000000000 --- a/zh-cn/device-dev/porting/transplant-chip-board.md +++ /dev/null @@ -1,15 +0,0 @@ -# 板级系统移植 - -- **[移植概述](transplant-chip-board-overview.md)** - -- **[板级驱动适配](transplant-chip-board-drive.md)** - -- **[HAL层实现](transplant-chip-board-hal.md)** - -- **[系统组件调用](transplant-chip-board-component.md)** - -- **[三方组件适配](transplant-chip-board-bundle.md)** - -- **[XTS认证](transplant-chip-board-xts.md)** - - diff --git a/zh-cn/device-dev/porting/transplant-chip-kernel.md b/zh-cn/device-dev/porting/transplant-chip-kernel.md deleted file mode 100644 index e27fea3d596..00000000000 --- a/zh-cn/device-dev/porting/transplant-chip-kernel.md +++ /dev/null @@ -1,9 +0,0 @@ -# 内核移植 - -- **[移植概述](transplant-chip-kernel-overview.md)** - -- **[内核基础适配](transplant-chip-kernel-adjustment.md)** - -- **[内核移植验证](transplant-chip-kernel-verify.md)** - - diff --git a/zh-cn/device-dev/porting/transplant-chip.md b/zh-cn/device-dev/porting/transplant-chip.md deleted file mode 100644 index d0fbee119dd..00000000000 --- a/zh-cn/device-dev/porting/transplant-chip.md +++ /dev/null @@ -1,11 +0,0 @@ -# 三方芯片移植指导 - -- **[移植准备](transplant-chip-prepare.md)** - -- **[内核移植](transplant-chip-kernel.md)** - -- **[板级系统移植](transplant-chip-board.md)** - -- **[常见问题](transplant-chip-faqs.md)** - - diff --git a/zh-cn/device-dev/porting/transplant-minichip.md b/zh-cn/device-dev/porting/transplant-minichip.md deleted file mode 100644 index 58bebe026e8..00000000000 --- a/zh-cn/device-dev/porting/transplant-minichip.md +++ /dev/null @@ -1,11 +0,0 @@ -# 轻量系统芯片移植指导 - -- **[移植准备](transplant-chip-prepare.md)** - -- **[内核移植](transplant-chip-kernel.md)** - -- **[板级系统移植](transplant-chip-board.md)** - -- **[常见问题](transplant-chip-faqs.md)** - - diff --git a/zh-cn/device-dev/porting/transplant-smallchip-drive.md b/zh-cn/device-dev/porting/transplant-smallchip-drive.md deleted file mode 100644 index 8d265ae4d08..00000000000 --- a/zh-cn/device-dev/porting/transplant-smallchip-drive.md +++ /dev/null @@ -1,9 +0,0 @@ -# 驱动移植 - -- **[移植概述](transplant-smallchip-drive-des.md)** - -- **[平台驱动移植](transplant-smallchip-drive-plat.md)** - -- **[器件驱动移植](transplant-smallchip-drive-oom.md)** - - diff --git a/zh-cn/device-dev/porting/transplant-smallchip.md b/zh-cn/device-dev/porting/transplant-smallchip.md deleted file mode 100644 index 4ba38ff4484..00000000000 --- a/zh-cn/device-dev/porting/transplant-smallchip.md +++ /dev/null @@ -1,9 +0,0 @@ -# 小型系统芯片移植指导 - -- **[移植准备](../porting/transplant-smallchip-prepare.md)** - -- **[移植内核](../porting/transplant-smallchip-kernel.md)** - -- **[驱动移植](../porting/transplant-smallchip-drive.md)** - - diff --git a/zh-cn/device-dev/porting/transplant-thirdparty.md b/zh-cn/device-dev/porting/transplant-thirdparty.md deleted file mode 100644 index ca27b2d3398..00000000000 --- a/zh-cn/device-dev/porting/transplant-thirdparty.md +++ /dev/null @@ -1,9 +0,0 @@ -# 三方库移植指导 - -- **[概述](transplant-thirdparty-overview.md)** - -- **[CMake方式组织编译的库移植](transplant-thirdparty-cmake.md)** - -- **[Makefile方式组织编译的库移植](transplant-thirdparty-makefile.md)** - - diff --git a/zh-cn/device-dev/porting/transplant.md b/zh-cn/device-dev/porting/transplant.md deleted file mode 100644 index bc8d8a3ad12..00000000000 --- a/zh-cn/device-dev/porting/transplant.md +++ /dev/null @@ -1,9 +0,0 @@ -# 移植 - -- **[三方库移植指导](transplant-thirdparty.md)** - -- **[轻量系统芯片移植指导](transplant-minichip.md)** - -- **[小型系统芯片移植指导](transplant-smallchip.md)** - - 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 index fbc4cb84329..afb05fbff25 100644 --- 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 @@ -155,5 +155,5 @@ wifi init success! ## 下一步学习 -恭喜,您已完成Hi3861 WLAN模组快速上手!建议您下一步进入[WLAN产品开发](../guide/device-wifi.md)的学习 。 +恭喜,您已完成Hi3861 WLAN模组快速上手!建议您下一步进入[WLAN产品开发](../guide/device-wlan.md)的学习 。 diff --git a/zh-cn/device-dev/security/Readme-CN.md b/zh-cn/device-dev/security/Readme-CN.md index 9a8e221f7fe..4c79f16371f 100755 --- a/zh-cn/device-dev/security/Readme-CN.md +++ b/zh-cn/device-dev/security/Readme-CN.md @@ -1,5 +1,5 @@ # 隐私与安全 -- [隐私保护](safety-protection-privacyguide.md) -- [安全指南](safety-safeguide-security.md) +- [隐私保护](security-privacy-protection.md) +- [安全指南](security-guidelines-overall.md) diff --git a/zh-cn/device-dev/security/safety-safeguide-security.md b/zh-cn/device-dev/security/security-guidelines-overall.md similarity index 100% rename from zh-cn/device-dev/security/safety-safeguide-security.md rename to zh-cn/device-dev/security/security-guidelines-overall.md diff --git a/zh-cn/device-dev/security/safety-protection-privacyguide.md b/zh-cn/device-dev/security/security-privacy-protection.md similarity index 98% rename from zh-cn/device-dev/security/safety-protection-privacyguide.md rename to zh-cn/device-dev/security/security-privacy-protection.md index 95e5eccca8a..ae8f6bcae40 100644 --- a/zh-cn/device-dev/security/safety-protection-privacyguide.md +++ b/zh-cn/device-dev/security/security-privacy-protection.md @@ -195,9 +195,9 @@ 从技术上保证数据处理活动的安全性,包括个人数据的加密存储、安全传输等安全机制,系统应默认开启或采取安全保护措施。 -- 对于个人数据的访问需要有保护机制,主要包括身份认证和访问控制。身份认证(如用户名、密码)限定只有经过认证的用户才能访问数据,可应用于多用户场景;访问控制(如[权限控制](safety-safeguide-security.md#li201725506375))可应用于对应用程序的限制。 +- 对于个人数据的访问需要有保护机制,主要包括身份认证和访问控制。身份认证(如用户名、密码)限定只有经过认证的用户才能访问数据,可应用于多用户场景;访问控制(如[权限控制](security-guidelines-overall.md#li201725506375))可应用于对应用程序的限制。 - 分布式设备个人数据安全存储要满足密钥管理和存储服务(HUKS:Huawei Universal Keystore)的要求,包括:密钥安全存储、数据安全存储。 -- 个人数据在分布式设备间传输要满足设备间的信任绑定关系和数据传输通道的安全性要求。详细信息可以参考[设备互联安全](safety-safeguide-security.md#section26153183616)。 +- 个人数据在分布式设备间传输要满足设备间的信任绑定关系和数据传输通道的安全性要求。详细信息可以参考[设备互联安全](security-guidelines-overall.md#section26153183616)。 - 认证凭证数据(密码、口令、指纹等)须加密存储。 **本地化处理** diff --git a/zh-cn/device-dev/security/safety.md b/zh-cn/device-dev/security/security.md similarity index 36% rename from zh-cn/device-dev/security/safety.md rename to zh-cn/device-dev/security/security.md index 72bbe83ac0c..1d9db4c8610 100644 --- a/zh-cn/device-dev/security/safety.md +++ b/zh-cn/device-dev/security/security.md @@ -1,7 +1,7 @@ # 隐私与安全 -- **[隐私保护](safety-protection-privacyguide.md)** +- **[隐私保护](security-privacy-protection.md)** -- **[安全指南](safety-safeguide-security.md)** +- **[安全指南](security-guidelines-overall.md)** diff --git a/zh-cn/device-dev/subsystems/Readme-CN.md b/zh-cn/device-dev/subsystems/Readme-CN.md index 843563ec81e..fbecac93866 100755 --- a/zh-cn/device-dev/subsystems/Readme-CN.md +++ b/zh-cn/device-dev/subsystems/Readme-CN.md @@ -1,78 +1,74 @@ # 子系统开发指南 -- [编译构建](subsys-build.md) - - [轻量和小型系统编译构建指导](subsys-build-mini-lite.md) - - [标准系统编译构建指导](subsys-build-standard-large.md) -- [分布式远程启动](subsys-remote-start.md) -- [图形图像](subsys-graphics.md) - - [图形图像概述](subsys-graphics-overview.md) - - [容器类组件开发指导](subsys-graphics-bundle-guide1.md) - - [布局容器类组件开发指导](subsys-graphics-bundle-guide2.md) - - [普通组件开发指导](subsys-graphics-bundle-guide3.md) - - [动画开发指导](subsys-graphics-animation-guide.md) -- [媒体](subsys-multimedia.md) - - [相机](subsys-multimedia-camera.md) - - [相机开发概述](subsys-multimedia-camera-overview.md) - - [拍照开发指导](subsys-multimedia-camera-photo-guide.md) - - [录像开发指导](subsys-multimedia-camera-record-guide.md) - - [预览开发指导](subsys-multimedia-camera-preview-guide.md) - - - [音视频](subsys-multimedia-video.md) - - [音视频开发概述](subsys-multimedia-video-overview.md) - - [音视频播放开发指导](subsys-multimedia-video-play-guide.md) - - [音视频录制开发指导](subsys-multimedia-video-record-guide.md) -- [公共基础](subsys-utils.md) - - [公共基础库概述](subsys-utils-overview.md) - - [公共基础库开发指导](subsys-utils-guide.md) - - [公共基础库常见问题](subsys-utils-faqs.md) -- [AI框架](subsys-aiframework.md) - - [AI引擎框架开发指南](subsys-aiframework-guide.md) - - [搭建环境](subsys-aiframework-envbuild.md) - - [技术规范](subsys-aiframework-tech.md) - - [代码管理规范](subsys-aiframework-tech-codemanage.md) - - [命名规范](subsys-aiframework-tech-name.md) - - [接口开发规范](subsys-aiframework-tech-interface.md) - - - [开发指导](subsys-aiframework-devguide.md) - - [SDK开发过程](subsys-aiframework-devguide-sdk.md) - - [插件的开发过程](subsys-aiframework-devguide-plugin.md) - - [配置文件的开发过程](subsys-aiframework-devguide-conf.md) - - - [开发示例](subsys-aiframework-demo.md) - - [唤醒词识别SDK的开发示例](subsys-aiframework-demo-sdk.md) - - [唤醒词识别插件的开发示例](subsys-aiframework-demo-plugin.md) - - [唤醒词识别配置文件的开发示例](subsys-aiframework-demo-conf.md) -- [Sensor服务](subsys-sensor.md) - - [Sensor服务子系概述](subsys-sensor-overview.md) - - [Sensor服务子系使用指导](subsys-sensor-guide.md) - - [Sensor服务子系使用实例](subsys-sensor-demo.md) -- [用户程序框架](subsys-application-framework.md) - - [概述](subsys-application-framework-overview.md) - - [搭建环境](subsys-application-framework-builden.md) - - [开发指导](subsys-application-framework-guide.md) - - [开发实例](subsys-application-framework-demo.md) -- [OTA升级](subsys-ota-guide.md) -- [安全](subsys-security.md) - - [概述](subsys-security-overview.md) - - [应用验签开发指导](subsys-security-sigverify.md) - - [应用权限管理开发指导](subsys-security-rightmanagement.md) - - [IPC通信鉴权开发指导](subsys-security-communicationverify.md) -- [启动恢复](subsys-boot.md) - - [启动恢复子系统概述](subsys-boot-overview.md) - - [init启动引导组件](subsys-boot-init.md) - - [appspawn应用孵化组件](subsys-boot-appspawn.md) - - [bootstrap服务启动组件](subsys-boot-bootstrap.md) - - [syspara系统属性组件](subsys-boot-syspara.md) - - [常见问题](subsys-boot-faqs.md) - - [参考](subsys-boot-ref.md) -- [测试](subsys-testguide-test.md) -- [DFX](subsys-dfx.md) - - [DFX概述](subsys-dfx-overview.md) - - [HiLog开发指导](subsys-dfx-hilog-rich.md) - - [HiLog\_Lite开发指导](subsys-dfx-hilog-lite.md) - - [HiSysEvent开发指导](subsys-dfx-hisysevent.md) -- [研发工具链](subsys-toolchain.md) - - [bytrace使用指导](subsys-toolchain-bytrace-guide.md) - - [hdc\_std 使用指导](subsys-toolchain-hdc-guide.md) -- [XTS认证子系统开发指南](subsys-xts-guide.md) - +- [编译构建](subsys-build.md) + - [轻量和小型系统编译构建指导](subsys-build-mini-lite.md) + - [标准系统编译构建指导](subsys-build-standard-large.md) +- [分布式远程启动](subsys-remote-start.md) +- [图形图像](subsys-graphics.md) + - [图形图像概述](subsys-graphics-overview.md) + - [容器类组件开发指导](subsys-graphics-container-guide.md) + - [布局容器类组件开发指导](subsys-graphics-layout-guide.md) + - [普通组件开发指导](subsys-graphics-common-guide.md) + - [动画开发指导](subsys-graphics-animation-guide.md) +- [媒体](subsys-multimedia.md) + - [相机](subsys-multimedia-camera.md) + - [相机开发概述](subsys-multimedia-camera-overview.md) + - [拍照开发指导](subsys-multimedia-camera-photo-guide.md) + - [录像开发指导](subsys-multimedia-camera-record-guide.md) + - [预览开发指导](subsys-multimedia-camera-preview-guide.md) + - [音视频](subsys-multimedia-video.md) + - [音视频开发概述](subsys-multimedia-video-overview.md) + - [音视频播放开发指导](subsys-multimedia-video-play-guide.md) + - [音视频录制开发指导](subsys-multimedia-video-record-guide.md) +- [公共基础](subsys-utils.md) + - [公共基础库概述](subsys-utils-overview.md) + - [公共基础库开发指导](subsys-utils-guide.md) + - [公共基础库常见问题](subsys-utils-faqs.md) +- [AI框架](subsys-aiframework.md) + - [AI引擎框架开发指南](subsys-aiframework-guide.md) + - [搭建环境](subsys-aiframework-envbuild.md) + - [技术规范](subsys-aiframework-tech.md) + - [代码管理规范](subsys-aiframework-tech-codemanage.md) + - [命名规范](subsys-aiframework-tech-name.md) + - [接口开发规范](subsys-aiframework-tech-interface.md) + - [开发指导](subsys-aiframework-devguide.md) + - [SDK开发过程](subsys-aiframework-devguide-sdk.md) + - [插件的开发过程](subsys-aiframework-devguide-plugin.md) + - [配置文件的开发过程](subsys-aiframework-devguide-conf.md) + - [开发示例](subsys-aiframework-demo.md) + - [唤醒词识别SDK的开发示例](subsys-aiframework-demo-sdk.md) + - [唤醒词识别插件的开发示例](subsys-aiframework-demo-plugin.md) + - [唤醒词识别配置文件的开发示例](subsys-aiframework-demo-conf.md) +- [Sensor服务](subsys-densor.md) + - [Sensor服务子系概述](subsys-densor-overview.md) + - [Sensor服务子系使用指导](subsys-densor-guide.md) + - [Sensor服务子系使用实例](subsys-densor-demo.md) +- [用户程序框架](subsys-application-framework.md) + - [概述](subsys-application-framework-overview.md) + - [搭建环境](subsys-application-framework-envbuild.md) + - [开发指导](subsys-application-framework-guide.md) + - [开发实例](subsys-application-framework-demo.md) +- [OTA升级](subsys-ota-guide.md) +- [安全](subsys-security.md) + - [概述](subsys-security-overview.md) + - [应用验签开发指导](subsys-security-sigverify.md) + - [应用权限管理开发指导](subsys-security-rightmanagement.md) + - [IPC通信鉴权开发指导](subsys-security-communicationverify.md) +- [启动恢复](subsys-boot.md) + - [启动恢复子系统概述](subsys-boot-overview.md) + - [init启动引导组件](subsys-boot-init.md) + - [appspawn应用孵化组件](subsys-boot-appspawn.md) + - [bootstrap服务启动组件](subsys-boot-bootstrap.md) + - [syspara系统属性组件](subsys-boot-syspara.md) + - [常见问题](subsys-boot-faqs.md) + - [参考](subsys-boot-ref.md) +- [测试用例开发指导](subsys-testguide-test.md) +- [DFX](subsys-dfx.md) + - [DFX概述](subsys-dfx-overview.md) + - [HiLog开发指导](subsys-dfx-hilog-rich.md) + - [HiLog\_Lite开发指导](subsys-dfx-hilog-lite.md) + - [HiSysEvent开发指导](subsys-dfx-hisysevent.md) +- [研发工具链](subsys-toolchain.md) + - [bytrace使用指导](subsys-toolchain-bytrace-guide.md) + - [hdc\_std 使用指导](subsys-toolchain-hdc-guide.md) +- [XTS认证用例开发指导](subsys-xts-guide.md) \ No newline at end of file diff --git a/zh-cn/device-dev/subsystems/figure/zh-cn_image_0000001181934155.png b/zh-cn/device-dev/subsystems/figure/zh-cn_image_0000001181934155.png new file mode 100644 index 0000000000000000000000000000000000000000..8a3b4daf5fdd4d78948488046bc404bc9ffedbbd GIT binary patch literal 16919 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 Xy)mDAS%IIkpwibi)~dL5H}ro2_G;)g diff --git a/zh-cn/device-dev/subsystems/subsys-application-framework-builden.md b/zh-cn/device-dev/subsystems/subsys-application-framework-envbuild.md similarity index 100% rename from zh-cn/device-dev/subsystems/subsys-application-framework-builden.md rename to zh-cn/device-dev/subsystems/subsys-application-framework-envbuild.md diff --git a/zh-cn/device-dev/subsystems/subsys-application-framework-guide.md b/zh-cn/device-dev/subsystems/subsys-application-framework-guide.md index b132c23b938..630bf13450e 100644 --- a/zh-cn/device-dev/subsystems/subsys-application-framework-guide.md +++ b/zh-cn/device-dev/subsystems/subsys-application-framework-guide.md @@ -334,7 +334,6 @@ 在Service销毁时调用。Service应通过实现此方法来清理任何资源,如关闭线程、注册的侦听器等。 - 4. 重写消息处理方法。 MsgHandle是Service用来处理客户端消息的方法。其中funcId是客户端传过来的消息类型,request是客户端传过来的序列化请求参数。如果用户在处理完成之后想要把结果传回去,需要把结果序列化后写入reply中。 @@ -392,7 +391,6 @@ Service一旦创建就会一直保持在后台运行,开发者可以通过调用StopAbility\(\)来停止Service。 - 7. 连接Service。 - 如果Service需要与Page Ability或其他应用组件中的Service进行交互,则应创建用于连接的Service。Service支持其他Ability通过ConnectAbility\(\)与其进行连接,ConnectAbility\(\)需要传入目标Service的Want,以及IAbilityConnection的实例来处理回调。IAbilityConnection提供了两个方法供用户实现,OnAbilityConnectDone\(\)用来处理连接的回调,OnAbilityDisconnectDone\(\)用来处理断开连接的回调。 diff --git a/zh-cn/device-dev/subsystems/subsys-application-framework-overview.md b/zh-cn/device-dev/subsystems/subsys-application-framework-overview.md index a0ab8c2d1bb..7809336cf53 100644 --- a/zh-cn/device-dev/subsystems/subsys-application-framework-overview.md +++ b/zh-cn/device-dev/subsystems/subsys-application-framework-overview.md @@ -129,7 +129,6 @@ Ability管理服务和包管理服务启动后,就可以安装OpenHarmony应 - ROM: \> 300K (包含JS应用开发框架,UIKit及引擎等强相关子系统) - - Cortex-A RAM/ROM: - RAM:建议大于2M diff --git a/zh-cn/device-dev/subsystems/subsys-application-framework.md b/zh-cn/device-dev/subsystems/subsys-application-framework.md index 99997047ffc..178c2f17a9c 100644 --- a/zh-cn/device-dev/subsystems/subsys-application-framework.md +++ b/zh-cn/device-dev/subsystems/subsys-application-framework.md @@ -2,7 +2,7 @@ - **[概述](subsys-application-framework-overview.md)** -- **[搭建环境](subsys-application-framework-builden.md)** +- **[搭建环境](subsys-application-framework-envbuild.md)** - **[开发指导](subsys-application-framework-guide.md)** diff --git a/zh-cn/device-dev/subsystems/subsys-build-mini-lite.md b/zh-cn/device-dev/subsystems/subsys-build-mini-lite.md index dc07da91d5c..858b9424b86 100644 --- a/zh-cn/device-dev/subsystems/subsys-build-mini-lite.md +++ b/zh-cn/device-dev/subsystems/subsys-build-mini-lite.md @@ -396,7 +396,6 @@ vendor - $\{root\_path\} - $\{fs\_dir\_name\} - >![](../public_sys-resources/icon-note.gif) **说明:** >fs.yml是可选的,对于没有文件系统的设备可不配置。 @@ -616,7 +615,7 @@ optional arguments: 1. 创建芯片解决方案目录。 - 按照[芯片解决方案配置规则](#section1625463413327)创建目录,以芯片厂商realtek的“rtl8720“开发板为例, 在代码根目录执行: + 按照[芯片解决方案配置规则](#section2345183962710)创建目录,以芯片厂商realtek的“rtl8720“开发板为例, 在代码根目录执行: ``` mkdir -p device/realtek/rtl8720 @@ -683,7 +682,7 @@ optional arguments: 1. 创建产品目录 - 按照[产品解决方案配置规则](#section1625463413327)创建产品目录,以基于“rtl8720“开发板的wifiiot模组为例,在代码根目录执行: + 按照[产品解决方案配置规则](#section2345183962710)创建产品目录,以基于“rtl8720“开发板的wifiiot模组为例,在代码根目录执行: ``` mkdir -p vendor/my_company/wifiiot diff --git a/zh-cn/device-dev/subsystems/subsys-build-mini.md b/zh-cn/device-dev/subsystems/subsys-build-mini.md deleted file mode 100644 index df6e2e0c54c..00000000000 --- a/zh-cn/device-dev/subsystems/subsys-build-mini.md +++ /dev/null @@ -1,5 +0,0 @@ -# 轻量和小型系统编译构建指导 - -- **[编译构建子系统—轻量和小型系统](subsys-build-mini-lite.md)** - - diff --git a/zh-cn/device-dev/subsystems/subsys-build-standard.md b/zh-cn/device-dev/subsystems/subsys-build-standard.md deleted file mode 100644 index d5d5ce6278b..00000000000 --- a/zh-cn/device-dev/subsystems/subsys-build-standard.md +++ /dev/null @@ -1,5 +0,0 @@ -# 标准系统编译构建指导 - -- **[编译构建子系统—标准系统](subsys-build-standard-large.md)** - - diff --git a/zh-cn/device-dev/subsystems/subsys-sensor-demo.md b/zh-cn/device-dev/subsystems/subsys-densor-demo.md old mode 100755 new mode 100644 similarity index 100% rename from zh-cn/device-dev/subsystems/subsys-sensor-demo.md rename to zh-cn/device-dev/subsystems/subsys-densor-demo.md diff --git a/zh-cn/device-dev/subsystems/subsys-sensor-guide.md b/zh-cn/device-dev/subsystems/subsys-densor-guide.md similarity index 100% rename from zh-cn/device-dev/subsystems/subsys-sensor-guide.md rename to zh-cn/device-dev/subsystems/subsys-densor-guide.md diff --git a/zh-cn/device-dev/subsystems/subsys-sensor-overview.md b/zh-cn/device-dev/subsystems/subsys-densor-overview.md similarity index 100% rename from zh-cn/device-dev/subsystems/subsys-sensor-overview.md rename to zh-cn/device-dev/subsystems/subsys-densor-overview.md diff --git a/zh-cn/device-dev/subsystems/subsys-densor.md b/zh-cn/device-dev/subsystems/subsys-densor.md new file mode 100644 index 00000000000..2c5ea0dbbee --- /dev/null +++ b/zh-cn/device-dev/subsystems/subsys-densor.md @@ -0,0 +1,9 @@ +# Sensor服务 + +- **[Sensor服务子系概述](subsys-densor-overview.md)** + +- **[Sensor服务子系使用指导](subsys-densor-guide.md)** + +- **[Sensor服务子系使用实例](subsys-densor-demo.md)** + + diff --git a/zh-cn/device-dev/subsystems/subsys-dfx-hisyseventread.md b/zh-cn/device-dev/subsystems/subsys-dfx-hisyseventread.md deleted file mode 100644 index 333dd112b45..00000000000 --- a/zh-cn/device-dev/subsystems/subsys-dfx-hisyseventread.md +++ /dev/null @@ -1,103 +0,0 @@ -# HiSysEvent订阅指导 - -- [概述](#section315316685112) -- [接口说明](#section0342191810519) -- [开发实例](#section123181432175110) - -## 概述 - -HiSysEvent提供了跨进程订阅机制,用户可以通过注册订阅接口。 - -## 接口说明 - -**表 1** HiSysEvent订阅接口 - - - - - - - - - - - - - -

接口名

-

描述

-

int ISysEventService::AddListener(in SysEventRule[] rules, in ISysEventCallback callback)

-

接口功能:订阅HiSysEvent事件。

-

输入参数:

-
  • rules:事件订阅规则
  • callback:订阅回调对象
-

返回值:

-
  • 0:订阅成功,重复订阅
  • 1:订阅成功,初次订阅
  • 其他返回值:订阅失败
-

void ISysEventCallback::Handle(in String domain, in String eventName, in int eventType, in String eventDetail)

-

接口功能:订阅事件的回调接口。

-

输入参数:

-
  • domain:事件所属领域
  • eventName:事件的名称
  • eventType:事件类型
  • eventDetail:包含事件相关信息的字符串,以json的形式体现
-

返回值:无。

-
- -**表 2** SysEventRule订阅规则对象 - - - - - - - - - - - - - - - - -

属性名称

-

描述

-

uint32_t ruleType

-

规则类型(匹配范围包括domain以及eventName):

-
  • 1:全字符匹配
  • 2:前缀匹配
  • 3:正则表达式匹配
  • 其他值:无效的匹配方式
-

std::string domain;

-
  • domain:事件所属领域,如果传入的是空字符串,则默认事件领域字段匹配成功
-

std::string eventName

-
  • eventName:事件的名称,如果传入的是空字符串,则默认事件名称字段匹配成功
-
- -## 开发实例 - -1. 源代码开发: - - 引入对应的aidl文件,包括:ISysEventService.aidl、SysEventRule.aidl、ISysEventCallback.aidl。 - - 在相应的业务逻辑里面调用ISysEventService::AddListener\(in SysEventRule\[\] rules, in ISysEventCallback callback\)接口。 - - 实现对应的回调对象: - - ISysEventCallback::Handle\(in String domain, in String eventName, in int eventType, in String eventDetail\) - - -1. 源代码开发: - - 引入对应的aidl文件,包括:ISysEventService.aidl、SysEventRule.aidl、ISysEventCallback.aidl。 - - 在相应的业务逻辑里面调用ISysEventService::AddListener\(in SysEventRule\[\] rules, in ISysEventCallback callback\)接口。 - - 实现对应的回调对象: - - ISysEventCallback::Handle\(in String domain, in String eventName, in int eventType, in String eventDetail\) - -2. 编译设置: - -在编译子系统里面,需要依赖libbinder模块 - -aosp\_deps = \[ "shared\_library:libbinder", \] - -- **[bytrace使用指导](subsys-toolchain-bytrace-guide.md)** - -- **[hdc\_std 使用指导](subsys-toolchain-hdc-guide.md)** - - diff --git a/zh-cn/device-dev/subsystems/subsys-graphics-bundle-guide3.md b/zh-cn/device-dev/subsystems/subsys-graphics-common-guide.md similarity index 100% rename from zh-cn/device-dev/subsystems/subsys-graphics-bundle-guide3.md rename to zh-cn/device-dev/subsystems/subsys-graphics-common-guide.md diff --git a/zh-cn/device-dev/subsystems/subsys-graphics-bundle-guide1.md b/zh-cn/device-dev/subsystems/subsys-graphics-container-guide.md similarity index 100% rename from zh-cn/device-dev/subsystems/subsys-graphics-bundle-guide1.md rename to zh-cn/device-dev/subsystems/subsys-graphics-container-guide.md diff --git a/zh-cn/device-dev/subsystems/subsys-graphics-bundle-guide2.md b/zh-cn/device-dev/subsystems/subsys-graphics-layout-guide.md similarity index 100% rename from zh-cn/device-dev/subsystems/subsys-graphics-bundle-guide2.md rename to zh-cn/device-dev/subsystems/subsys-graphics-layout-guide.md diff --git a/zh-cn/device-dev/subsystems/subsys-graphics.md b/zh-cn/device-dev/subsystems/subsys-graphics.md index bb255fa159a..27feed54e90 100644 --- a/zh-cn/device-dev/subsystems/subsys-graphics.md +++ b/zh-cn/device-dev/subsystems/subsys-graphics.md @@ -2,11 +2,11 @@ - **[图形图像概述](subsys-graphics-overview.md)** -- **[容器类组件开发指导](subsys-graphics-bundle-guide1.md)** +- **[容器类组件开发指导](subsys-graphics-container-guide.md)** -- **[布局容器类组件开发指导](subsys-graphics-bundle-guide2.md)** +- **[布局容器类组件开发指导](subsys-graphics-layout-guide.md)** -- **[普通组件开发指导](subsys-graphics-bundle-guide3.md)** +- **[普通组件开发指导](subsys-graphics-common-guide.md)** - **[动画开发指导](subsys-graphics-animation-guide.md)** diff --git a/zh-cn/device-dev/subsystems/subsys-multimedia-camera-overview.md b/zh-cn/device-dev/subsystems/subsys-multimedia-camera-overview.md index 75b2033e9c7..824d3461ea0 100644 --- a/zh-cn/device-dev/subsystems/subsys-multimedia-camera-overview.md +++ b/zh-cn/device-dev/subsystems/subsys-multimedia-camera-overview.md @@ -102,7 +102,6 @@ ![](figure/zh-cn_image_0000001054101094.png) - 1. Camera录像/预览流程 开发者首先通过CameraKit创建Camera,然后FrameConfig类对录像或者预览帧属性进行配置。录像/预览时序如下: diff --git a/zh-cn/device-dev/subsystems/subsys-security-communicationverify.md b/zh-cn/device-dev/subsystems/subsys-security-communicationverify.md index a0c52fc9c75..7b6da780217 100755 --- a/zh-cn/device-dev/subsystems/subsys-security-communicationverify.md +++ b/zh-cn/device-dev/subsystems/subsys-security-communicationverify.md @@ -41,7 +41,7 @@ IPC通信鉴权提供的API,仅供Samgr调用,开发者在开发服务时需 本部分以BMS服务通过IPC通信方式对外开放接口为例,讲解如何通过IPC通信鉴权组件配置对应接口的访问策略。这里BMS在Samgr中注册的service为bundlems,为开放的接口注册的Feature为BmsFeature。 -1. 在源码路径下的头文件base/security/permission/services/permission\_lite/ipc\_auth/include/policy\_preset.h中配置相应的访问策略,访问策略主要有三种类型: +1. 鸿蒙侧在源码路径下的头文件base/security/permission/services/permission\_lite/ipc\_auth/include/policy\_preset.h中配置相应的访问策略,产品侧独有的在vendor/hisilicon/产品名称/hals/security/permission\_lite/ipc\_auth/include/policy\_preset\_product.h中配置相应的访问策略,配置策略后将头文件中的宏POLICY\_PRODUCT 配置为1;访问策略主要有三种类型: (1)type为RANGE类型:允许某个特定范围UID的进程访问,需要指定uidMin和uidMax; diff --git a/zh-cn/device-dev/subsystems/subsys-security-overview.md b/zh-cn/device-dev/subsystems/subsys-security-overview.md index 5c47b308081..5ce4e86cbcb 100644 --- a/zh-cn/device-dev/subsystems/subsys-security-overview.md +++ b/zh-cn/device-dev/subsystems/subsys-security-overview.md @@ -13,10 +13,6 @@ OpenHarmony安全子系统目前提供给开发者的安全能力主要包含应 应用权限是管理应用访问系统资源和使用系统能力的一种通用方式,应用在开发阶段需要在profile.json中指明此应用在运行过程中可能会调用哪些权限,其中静态权限表示只需要在安装阶段注册就可以,而动态权限一般表示涉及到敏感信息,所以需要用户进行动态授权。 -- IPC通信鉴权 - - 系统服务通过IPC暴露接口给其他进程访问,这些接口需要配置相应的访问策略,当其他进程访问这些接口时,将会触发IPC通信鉴权机制校验访问进程是否拥有权限访问该接口,若无权限,则拒绝访问该接口。 - - 可信设备群组管理 提供基于群组概念的同华为账号群组、点对点群组(如二维码、碰一碰等)的设备安全可信关系的创建和查询,分布式应用可基于该能力进行设备间的可信认证,然后向分布式软总线请求设备间安全会话。 @@ -36,41 +32,28 @@ OpenHarmony安全子系统目前提供给开发者的安全能力主要包含应 BMS\(Bundle Manager Service\)包管理管理,在OpenHarmony上主要负责应用的安装、卸载和数据管理。 -- 描述文件 - - 本文中的描述文件,指HarmonyAppProvision,简称profile。HarmonyAppProvision采用json文件格式进行描述。 - +- 授权文件 -- 叶子证书 - - 最终用于为整包或profile签名的证书称为叶子证书,位于数字证书链的最末端。 + 本文中的授权文件,指HarmonyAppProvision,简称profile。HarmonyAppProvision采用json文件格式进行描述。 - 调试应用 - 指开发者从应用市场申请调试证书与调试描述文件,并以此签名的hap包。 - - -- 待上架应用 - - 指开发者从应用市场申请发布证书与发布描述文件,以此签名,未通过应用市场正式发布的hap包。 + 指开发者从应用市场申请调试证书与调试授权文件,并以此签名的hap包。 - 发布应用 - 指开发者从应用市场申请发布证书与发布描述文件,以此签名的hap包,上传至应用市场,并由应用市场正式发布的hap包。 + 指开发者从应用市场申请发布证书与发布授权文件,以此签名的hap包,上传至应用市场,并由应用市场正式发布的hap包。 -- OpenHarmony自签名应用 +- OpenHarmony签名应用 - 当开发者自行编译OpenHarmony系统应用后,采用原应用描述文件,以及公开的OpenHarmony公私钥对和证书进行自签名产生的hap包。 + OpenHarmony开源了一个根CA的证书和密钥,以此根CA签发的签名证书和授权文件签名的应用。 ## 约束与限制 -- 仅支持以下三类应用的验签:应用市场调试应用、应用市场发布应用、OpenHarmony自签名应用的验签。 -- 若对应用市场调试应用验签,则本机UDID需要在描述文件包含的UDID列表中。 -- 待上架应用无法验签通过。 -- 验签组件提供的接口都位于security\_interfaces\_innerkits\_app\_verify仓[app\_verify\_pub.h](https://gitee.com/fork_ohos_wj/security_interfaces_innerkits_app_verify/blob/master/app_verify_pub.h)中,仅支持系统应用开发者调用。 -- 可信设备群组管理接口,目前只对系统签名权限才可以使用。 +- 仅支持以下三类应用的验签:应用市场调试应用、应用市场发布应用、OpenHarmony签名应用。 +- 若对应用市场调试应用验签,则本机UDID需要在授权文件授权调试的UDID列表中。 diff --git a/zh-cn/device-dev/subsystems/subsys-security-sigverify.md b/zh-cn/device-dev/subsystems/subsys-security-sigverify.md index a7e2f85b64e..7c46ac23f5d 100644 --- a/zh-cn/device-dev/subsystems/subsys-security-sigverify.md +++ b/zh-cn/device-dev/subsystems/subsys-security-sigverify.md @@ -3,57 +3,47 @@ - [场景介绍](#section18502174174019) - [验签流程](#section554632717226) - [接口说明](#section1633115419401) -- [开发步骤(场景一)](#section4207112818418) - - [验签指导](#section11470123816297) - - [生成OpenHarmony自签名应用](#section167151429133312) - - [开发示例](#section174318361353) +- [开发步骤](#section4207112818418) + - [生成OpenHarmony签名应用](#section167151429133312) -- [开发步骤(场景二)](#section81272563427) - - [验签指导](#section07028210442) - - [开发示例](#section1930711345445) - -- [调测验证](#section427316292411) ## 场景介绍 -当需要验证调试应用、发布应用,OpenHarmony自签名应用的完整性是否被破坏时,可以调用验签组件的接口进行验证。如有需要还可通过验签接口获取部分描述文件信息,如appid。对于调试应用,还可通过验签接口验证应用和设备的UDID是否匹配,确保应用安装在了正确的设备上。 +为了确保应用的完整性和来源可靠,OpenHarmony需要对应用进行签名和验签。 + +- 应用开发阶段:开发者完成开发并生成安装包后,需要开发者对安装包进行签名,以证明安装包发布到设备的过程中没有被篡改。OpenHarmony的应用完整性校验模块提供了签名工具、签名证书生成规范,以及签名所需的公钥证书等完整的机制,支撑开发者对应用安装包签名。为了方便开源社区开发者,版本中预置了公钥证书和对应的私钥,为开源社区提供离线签名和校验能力;在OpenHarmony商用版本中应替换此公钥证书和对应的私钥。 +- 应用安装阶段:OpenHarmony用户程序框架子系统负责应用的安装。在接收到应用安装包之后,应用程序框架子系统需要解析安装包的签名数据,然后使用应用完整性校验模块的API对签名进行验证,只有校验成功之后才允许安装此应用. 应用完整性校验模块在校验安装包签名数据时,会使用系统预置的公钥证书进行验签。 ## 验签流程 未经签名的Hap包的压缩方式是ZIP格式,简单分为文件块,中心目录(Central directory)块,中心目录结尾(EOCD,End of central directory record)块。 -经过签名的Hap包,在文件块,和中心目录块之间,插入了签名块。签名块由文件签名数据块(data sign block)、描述文件签名数据块(profile sign block)和签名头(sign head)组成,如下图所示。 +经过签名的Hap包,在文件块,和中心目录块之间,插入了签名块。签名块由整包签名数据块(data sign block)、授权文件签名数据块(profile sign block)和签名头(sign head)组成,如下图所示。 **图 1** 经过签名的Hap包结构 -![](figure/安全子系统.png) +![](figure/zh-cn_image_0000001181934155.png) -整个验签流程,主要分为三部分:整包验签、描述文件签名块验签,以及描述文件内容校验。 +整个验签流程,主要分为三部分:整包验签、授权文件验签,以及授权文件内容校验。 **整包验签** -用设备的预置根证书,通过证书链来证明叶子证书本身是可信的,然后用叶子证书的公钥解密出的摘要证明整包是未篡改的。 - -具体操作步骤如下: - -1. 对文件签名数据块中的证书链进行校验,确定其叶子证书是可信的。 -2. 用叶子证书中的公钥对文件签名块进行验签,证明其未被篡改。 -3. 计算并合并文件块,中心目录块和中心目录结尾块的摘要。然后将计算结果,再与签名块中的描述文件签名块的摘要合并,将最终合并的摘要与文件签名块中包含的摘要对比,如果两者相等,则整包验签通过。 +整包签名数据块是一个PKCS7格式的签名块(signed data),验签过程包括PKSC7签名验证、哈希比较、证书链验证以及证书链与设备预置根证书的匹配校验。 -**描述文件签名块验签** +**授权文件验签** -首先判断文件签名的签发单位,如果是应用市场签发的发布应用,则无需对描述文件进行验签,直接信任,否则要对其验签。先取出整个描述文件签名块,然后验证证书链,最后用叶子证书对描述文件数据块验签,证明其未被篡改。 +授权文件数据块是一个PKCS7格式的签名块(signed data),其中PKCS7签名块的内容信息\(contentinfo\)是授权文件的内容。验签过程包括:PKCS7签名验证、哈希比较、证书链验证以及签发授权文件证书的合法性校验。 -**描述文件内容校验** +**授权文件内容校验** -取出描述文件,并对其内容进行合法性检查。其中若hap包为调试应用,则会比对本机UDID与描述文件中包含的UDID列表,如果本机UDID在描述文件的UDID列表中包含,则验证通过。比较描述文件中包含的证书(如果是应用市场发布应用或OpenHarmony自签名则无需比较),和整包校验时使用的叶子证书,如果相同,认为整个验签流程完成。 +验签模块将对授权文件内容进行合法性检查。如果授权文件是调试类型,则会比对本机UDID是否在授权文件授权调试的UDID列表中,如果本机UDID在授权文件授权调试的UDID列表中,则会进一步比较授权文件中的调试证书和整包签名使用的证书是否相同,如果相同,则验证通过。 ## 接口说明 验签组件当前提供innerkits接口,仅供系统应用调用,相关接口及功能描述如下: -**表 1** 验签组件API接口功能介绍 +**表 1** 轻量级系统验签组件API接口功能介绍

接口名

@@ -81,192 +71,26 @@
-## 开发步骤(场景一) - -### 验签指导 - -对应用市场发布应用、基于应用市场调试证书签发的调试应用、OpenHarmony自签名应用的校验。 - -1. 定义出参结构体变量VerifyResult; - - ``` - VerifyResult verifyResult = {0}; - ``` - -2. 以文件路径及VerifyResult为入参,调用APPVERI\_AppVerify进行文件校验; - - ``` - int32_t ret = APPVERI_AppVerify(hapFilepath.c_str(), &verifyResult); - ``` - -3. 判断返回结果,如果校验通过的话,获取VerifyResult中的数据,进行业务处理; - - ``` - signatureInfo.appId = verifyResult.profile.appid; - signatureInfo.provisionBundleName = verifyResult.profile.bundleInfo.bundleName; - ``` - -4. 调用APPVERI\_FreeVerifyRst,释放VerifyResult中申请的内存。 - - ``` - APPVERI_FreeVerifyRst(&verifyResult); - ``` - - -### 生成OpenHarmony自签名应用 - -如果是OpenHarmony自签名应用的校验,开发者可通过以下方式生成OpenHarmony自签名应用。 - -1. 材料备齐。 - - 生成自签名应用需要的材料有:签名工具、系统应用hap包、系统应用profile文件\(\*.p7b\)、签名证书\(\*.cer\)、签名公私钥对\(\*.jks\)。 - -2. 将所有材料放在同一个目录下,打开shell。 -3. 根据应用、描述文件的实际名称修改指令,并在shell中输入,完成签名。 - - ``` - java -jar hapsigntoolv2.jar sign -mode localjks -privatekey "OpenHarmony Software Signature" -inputFile camera.hap -outputFile signed_camera.hap -signAlg SHA256withECDSA -keystore OpenHarmony.jks -keystorepasswd 123456 -keyaliaspasswd 123456 -profile camera_release.p7b -certpath OpenHarmony.cer -profileSigned 1 - ``` - - 关键字段说明: - - -jar:签名工具,[hapsigntool](https://repo.huaweicloud.com/harmonyos/develop_tools/hapsigntoolv2.jar) - - -mode:本地签名标记位,固定为localjks - - -privatekey:密钥对别名,签名公私钥对的别名为OpenHarmony Software Signature - - -inputFile:待签名应用,通过编译产生 - - -outputFile:签名后应用,最终输出 - - -signAlg:签名算法,当前固定为SHA256withECDSA +**表 2** 标准系统验签组件API接口功能介绍 - -keystore:公私钥对,使用签名公私钥对,位于开源库security\_services\_app\_verify仓中OpenHarmonyCer目录下,[OpenHarmony.jks](https://gitee.com/openharmony/security_appverify/blob/master/interfaces/innerkits/appverify_lite/OpenHarmonyCer/OpenHarmony.jks)。默认密码为123456 ,用户可采用工具\(例如keytool\)更改默认密码 - - -keystorepasswd:公私钥对密码,默认签名公私钥对密码为123456 - - -keyaliaspasswd:公私钥对别名密码,默认签名公私钥对别名密码为123456 - - -profile:描述文件,应用的描述文件位于对应源代码目录中 - - -certpath:使用签名证书,位于开源库security\_services\_app\_verify仓中OpenHarmonyCer目录下,[OpenHarmony.cer](https://gitee.com/openharmony/security_appverify/blob/master/interfaces/innerkits/appverify_lite/OpenHarmonyCer/OpenHarmony.cer) - - -profileSigned:签名块中是否包含描述文件\(profile\)。固定为1(包含) - - -### 开发示例 - -以应用管理框架组件在应用安装时进行验签的实际调用为例: - -``` -uint8_t HapSignVerify::VerifySignature(const std::string &hapFilepath, SignatureInfo &signatureInfo) -{ - bool mode = ManagerService::GetInstance().IsDebugMode(); - HILOG_INFO(HILOG_MODULE_APP, "current mode is %d!", mode); - // 定义结果结构体 - VerifyResult verifyResult = {0}; - // 输入待验签文件路径进行验签 - int32_t ret = APPVERI_AppVerify(hapFilepath.c_str(), &verifyResult); - uint8_t errorCode = SwitchErrorCode(ret); - if (errorCode != ERR_OK) { - return errorCode; - } - // 从结果结构体中获取appid - signatureInfo.appId = verifyResult.profile.appid; - // 从结果结构体中获取描述文件中书写的应用名 - signatureInfo.provisionBundleName = verifyResult.profile.bundleInfo.bundleName; - int32_t restricNum = verifyResult.profile.permission.restricNum; - for (int32_t i = 0; i < restricNum; i++) { - signatureInfo.restrictedPermissions.emplace_back((verifyResult.profile.permission.restricPermission)[i]); - } - // 释放结果结构体中申请的内存 - APPVERI_FreeVerifyRst(&verifyResult); - return ERR_OK; -} -``` - -## 开发步骤(场景二) - -### 验签指导 - -对采用基于测试根密钥证书签名的应用的校验。 - -1. 调用APPVERI\_SetDebugMode\(true\)开启测试模式; - - ``` - ManagerService::SetDebugMode(true); - ... - uint8_t ManagerService::SetDebugMode(bool enable) - { - int32_t ret = APPVERI_SetDebugMode(enable); - if (ret < 0) { - HILOG_ERROR(HILOG_MODULE_APP, "set signature debug mode failed"); - return ERR_APPEXECFWK_SET_DEBUG_MODE_ERROR; - } - isDebugMode_ = enable; - HILOG_INFO(HILOG_MODULE_APP, "current sign debug mode is %d", isDebugMode_); - return ERR_OK; - } - ``` - -2. 同场景一中步骤一至四,定义结构体,校验、释放结构体; -3. 调用APPVERI\_SetDebugMode\(false\)关闭测试模式。 - - ``` - ManagerService::SetDebugMode(false); - ``` - - -### 开发示例 - -完整开发示例如下(在场景一代码示例的基础上进行补充): + + + + + + + + + +

接口名

+

描述

+

nt HapVerify(const std::string& filePath, HapVerifyResult& hapVerifyResult)

+

校验应用完整性,识别应用来源。

+
-``` -uint8_t ManagerService::SetDebugMode(bool enable) -{ - int32_t ret = APPVERI_SetDebugMode(enable); - if (ret < 0) { - HILOG_ERROR(HILOG_MODULE_APP, "set signature debug mode failed"); - return ERR_APPEXECFWK_SET_DEBUG_MODE_ERROR; - } - isDebugMode_ = enable; - HILOG_INFO(HILOG_MODULE_APP, "current sign debug mode is %d", isDebugMode_); - return ERR_OK; -} -uint8_t HapSignVerify::VerifySignature(const std::string &hapFilepath, SignatureInfo &signatureInfo) -{ - // 开启支持测试服务器签名应用验证 - ManagerService::SetDebugMode(true); - bool mode = ManagerService::GetInstance().IsDebugMode(); - HILOG_INFO(HILOG_MODULE_APP, "current mode is %d!", mode); - // 定义结果结构体 - VerifyResult verifyResult = {0}; - // 输入待验签文件路径进行验签 - int32_t ret = APPVERI_AppVerify(hapFilepath.c_str(), &verifyResult); - uint8_t errorCode = SwitchErrorCode(ret); - if (errorCode != ERR_OK) { - return errorCode; - } - // 从结果结构体中获取appid - signatureInfo.appId = verifyResult.profile.appid; - // 从结果结构体中获取描述文件中书写的应用名 - signatureInfo.provisionBundleName = verifyResult.profile.bundleInfo.bundleName; - int32_t restricNum = verifyResult.profile.permission.restricNum; - for (int32_t i = 0; i < restricNum; i++) { - signatureInfo.restrictedPermissions.emplace_back((verifyResult.profile.permission.restricPermission)[i]); - } - // 释放结果结构体中申请的内存 - APPVERI_FreeVerifyRst(&verifyResult); - // 关闭支持测试服务器签名应用验证 - ManagerService::SetDebugMode(false); - return ERR_OK; -} -``` +## 开发步骤 -## 调测验证 +### 生成OpenHarmony签名应用 -1. 选取一个在OpenHarmony上能够正常安装的应用A。 -2. 根据开发指导开发。 -3. 对应用A,采用自开发程序进行验签,验签通过,能获取到appid。即为开发成功。 +参考文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/quick-start/%E9%85%8D%E7%BD%AEOpenHarmony%E5%BA%94%E7%94%A8%E7%AD%BE%E5%90%8D%E4%BF%A1%E6%81%AF.md diff --git a/zh-cn/device-dev/subsystems/subsys-sensor.md b/zh-cn/device-dev/subsystems/subsys-sensor.md deleted file mode 100644 index 415eec2bde7..00000000000 --- a/zh-cn/device-dev/subsystems/subsys-sensor.md +++ /dev/null @@ -1,9 +0,0 @@ -# Sensor服务 - -- **[Sensor服务子系概述](subsys-sensor-overview.md)** - -- **[Sensor服务子系使用指导](subsys-sensor-guide.md)** - -- **[Sensor服务子系使用实例](subsys-sensor-demo.md)** - - diff --git a/zh-cn/device-dev/subsystems/subsys-testguide-test.md b/zh-cn/device-dev/subsystems/subsys-testguide-test.md index 2403929934b..1797e29f6a3 100644 --- a/zh-cn/device-dev/subsystems/subsys-testguide-test.md +++ b/zh-cn/device-dev/subsystems/subsys-testguide-test.md @@ -1,4 +1,4 @@ -# 测试 +# 测试用例开发指导 - [概述](#section12403172115920) - [基本概念](#section53632272090) @@ -237,7 +237,7 @@ ### 场景介绍 -针对对开发的业务代码进行白盒测试验证。 +针对开发的业务代码进行白盒测试验证。 ### 接口说明 @@ -466,7 +466,6 @@ } ``` - 6. 编写测试用例资源配置,当测试用例需要使用静态测试资源文件时使用该配置。 1. 在部件或者模块的test目录下创建resource目录。 2. 在resource目录下创建形态目录,如phone。 @@ -620,7 +619,6 @@ ``` - 3. (可选)修改developertest组件配置。如果测试用例已完成编译,可以直接指定测试用例的编译输出路径,测试平台执行用例时即不会重新编译测试用例。 配置文件:config/user\_config.xml @@ -642,7 +640,6 @@ ``` - 4. (可选)测试环境准备。当被测设备仅支持串口时,需要检查。 - 系统镜像与文件系统已烧录进开发板,开发板上系统正常运行,在系统模式下,如使用shell登录时,设备提示符是“OHOS\#”。 - 开发主机和开发板串口连接正常,网口连接正常。 @@ -663,7 +660,6 @@ ./start.sh ``` - - 设备形态选择。 根据实际的开发板选择,设备形态配置:developertest/config/framework\_config.xml。 @@ -704,7 +700,6 @@ -tl TESTLEVEL, --testlevel TESTLEVEL Specify test level ``` - - 测试框架帮助。 帮助指令,用于查询测试平台支持哪些测试指令,如下: @@ -721,7 +716,6 @@ quit ``` - 6. (必选)查看测试结果与日志,通过在测试平台中执行测试指令,即可在developertest/reports目录下生成测试日志和测试报告。 - 测试用例的结果会直接显示在控制台上,执行一次的测试结果根路径如下: @@ -753,7 +747,6 @@ details_report.html ``` - - 测试平台日志目录如下: ``` diff --git a/zh-cn/device-dev/subsystems/subsys-toolchain-hdc-guide.md b/zh-cn/device-dev/subsystems/subsys-toolchain-hdc-guide.md index 93b76538939..1f57ac737f3 100644 --- a/zh-cn/device-dev/subsystems/subsys-toolchain-hdc-guide.md +++ b/zh-cn/device-dev/subsystems/subsys-toolchain-hdc-guide.md @@ -22,7 +22,7 @@ hdc\_std(OpenHarmony Device Connector)是OpenHarmony为开发人员提供的 **hdc\_std 工具获取方式:** -从开源仓developtools\_hdc\_standard中获取,具体位置在该开源仓的prebuilt目录。 +从开源仓developtools\_hdc\_standard中获取,具体位置在该开源仓的prebuilt目录,开源仓链接如下:https://gitee.com/openharmony/developtools\_hdc\_standard **使用举例:** diff --git a/zh-cn/device-dev/subsystems/subsys-toolchain.md b/zh-cn/device-dev/subsystems/subsys-toolchain.md index fcf4e3ed14c..9f71a36d323 100644 --- a/zh-cn/device-dev/subsystems/subsys-toolchain.md +++ b/zh-cn/device-dev/subsystems/subsys-toolchain.md @@ -1,6 +1,7 @@ -# 研发工具链 +# 研发工具链 -- [bytrace使用指导](subsys-toolchain-bytrace-guide.md) -- [hdc\_std 使用指导](subsys-toolchain-hdc-guide.md) +- **[bytrace使用指导](subsys-toolchain-bytrace-guide.md)** + +- **[hdc\_std 使用指导](subsys-toolchain-hdc-guide.md)** diff --git a/zh-cn/device-dev/subsystems/subsys-utils-guide.md b/zh-cn/device-dev/subsystems/subsys-utils-guide.md index 1cabae57341..98866eec08e 100644 --- a/zh-cn/device-dev/subsystems/subsys-utils-guide.md +++ b/zh-cn/device-dev/subsystems/subsys-utils-guide.md @@ -237,7 +237,6 @@ printf("UtilsDeleteValue delete ret = %d\n", ret); } ``` - - 生成hap包。 - 按照如下目录结构存放文件,res/drawable下面放置资源文件: @@ -246,7 +245,6 @@ printf("UtilsDeleteValue delete ret = %d\n", ret); - 将上述文件打包生成zip包,修改后缀为.hap,例如Launcher.hap - 2. 连接单板,通过串口向单板发送安装KV存储native应用的命令。 ``` diff --git a/zh-cn/device-dev/subsystems/subsys-xts-guide.md b/zh-cn/device-dev/subsystems/subsys-xts-guide.md index 1240c60b9d6..896f7db9e7d 100644 --- a/zh-cn/device-dev/subsystems/subsys-xts-guide.md +++ b/zh-cn/device-dev/subsystems/subsys-xts-guide.md @@ -1,4 +1,4 @@ -# XTS认证子系统开发指南 +# XTS认证用例开发指导 - [简介](#section465982318513) - [系统类型](#section125090457443) @@ -12,7 +12,6 @@ - [C++语言用例执行指导(适用于小型系统、标准系统用例开发)](#section128222336544) - [JS语言用例开发指导(适用于标准系统)](#section159801435165220) - [JS语言用例编译打包指导(适用于标准系统)](#section445519106559) - - [\#ZH-CN\_TOPIC\_0000001126156429/section191521423950](#section191521423950) - [全量编译指导(适用于标准系统)](#section1519992743415) - [全量用例执行指导(适用于小型系统、标准系统)](#section118149111426) @@ -695,7 +694,6 @@ Windows工作台下安装python3.7及以上版本,确保工作台和测试设 ![](figure/zh-cn_image_0000001119924146.gif) - - 模块执行\(具体模块可以查看\\acts\\testcases\\\) ``` @@ -704,7 +702,6 @@ Windows工作台下安装python3.7及以上版本,确保工作台和测试设 ![](figure/zh-cn_image_0000001166643927.jpg) - 等待执行完成。 diff --git a/zh-cn/device-dev/subsystems/subsys.md b/zh-cn/device-dev/subsystems/subsys.md index b301414e122..b36d4325c6d 100644 --- a/zh-cn/device-dev/subsystems/subsys.md +++ b/zh-cn/device-dev/subsystems/subsys.md @@ -1,4 +1,4 @@ -# 子系统开发指南 +# 子系统 - **[编译构建](subsys-build.md)** @@ -12,7 +12,7 @@ - **[AI框架](subsys-aiframework.md)** -- **[Sensor服务](subsys-sensor.md)** +- **[Sensor服务](subsys-densor.md)** - **[用户程序框架](subsys-application-framework.md)** @@ -22,12 +22,12 @@ - **[启动恢复](subsys-boot.md)** -- **[测试](subsys-testguide-test.md)** +- **[测试用例开发指导](subsys-testguide-test.md)** - **[DFX](subsys-dfx.md)** -- **[HiSysEvent订阅指导](subsys-dfx-hisyseventread.md)** +- **[研发工具链](subsys-toolchain.md)** -- **[XTS认证子系统开发指南](subsys-xts-guide.md)** +- **[XTS认证用例开发指导](subsys-xts-guide.md)** diff --git a/zh-cn/readme.md b/zh-cn/readme.md index e2e5a096466..b06bd9e00c6 100644 --- a/zh-cn/readme.md +++ b/zh-cn/readme.md @@ -17,14 +17,14 @@ - Security:[隐私与安全](device-dev/security/Readme-CN.md) - guide:开发示例 - - [WLAN连接类产品](device-dev/guide/device-wifi.md)(LED外设控制、集成三方SDK) + - [WLAN连接类产品](device-dev/guide/device-wlan.md)(LED外设控制、集成三方SDK) - [无屏摄像头类产品](device-dev/guide/device-iotcamera-control.md)(摄像头控制) - [带屏摄像头类产品](device-dev/guide/device-camera.md)(屏幕和摄像头控制、视觉应用开发) - porting:移植适配 - - [三方库移植指导](device-dev/porting/transplant-thirdparty.md) - - [轻量系统芯片移植指导](device-dev/porting/transplant-minichip.md) - - [小型系统芯片移植指导](device-dev/porting/transplant-smallchip.md) + - [三方库移植指导](device-dev/porting/porting-thirdparty.md) + - [轻量系统芯片移植指导](device-dev/porting/porting-minichip.md) + - [小型系统芯片移植指导](device-dev/porting/porting-smallchip.md) - bundles:Bundle开发 - [Bundle开发规范](device-dev/bundles/oem_bundle_standard_des.md) @@ -47,7 +47,7 @@ - [外设驱动](device-dev/guide/device-outerdriver-demo.md) - porting:移植适配 - - [三方库移植指导](device-dev/porting/transplant-thirdparty.md) + - [三方库移植指导](device-dev/porting/porting-thirdparty.md) - [标准系统芯片移植指导](device-dev/porting/standard-system-porting-guide.md) - bundles:Bundle开发 -- Gitee From 750764c1259f4010da55ff69b609b68d54847a3c Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Fri, 13 Aug 2021 10:44:44 +0000 Subject: [PATCH 02/22] update zh-cn/device-dev/get-code/gettools-acquire.md. Signed-off-by: duangavin123 --- zh-cn/device-dev/get-code/gettools-acquire.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/zh-cn/device-dev/get-code/gettools-acquire.md b/zh-cn/device-dev/get-code/gettools-acquire.md index e148884a940..f18b6c2ce05 100644 --- a/zh-cn/device-dev/get-code/gettools-acquire.md +++ b/zh-cn/device-dev/get-code/gettools-acquire.md @@ -52,7 +52,7 @@ OpenHarmony为开发者提供了两种Docker环境,以帮助开发者快速完

swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard

0.0.1

+

0.0.2

HPM Docker环境

@@ -180,13 +180,13 @@ hb set 1. 获取Docker镜像。 ``` - docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:0.0.1 + docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:0.0.2 ``` 2. 进入OpenHarmony代码根目录执行如下命令,从而进入Docker构建环境。 ``` - docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:0.0.1 + docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:0.0.2 ``` @@ -208,7 +208,7 @@ hb set 3. 进入OpenHarmony代码根目录执行如下命令,从而进入Docker构建环境。 ``` - docker run -it -v $(pwd):/home/openharmony openharmony-docker-standard:0.0.1 + docker run -it -v $(pwd):/home/openharmony openharmony-docker-standard:0.0.2 ``` -- Gitee From c3ea903e7cb3295bbc556fccc09212f890760bdc Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Fri, 13 Aug 2021 10:48:28 +0000 Subject: [PATCH 03/22] update en/device-dev/Readme-EN.md. Signed-off-by: duangavin123 --- en/device-dev/Readme-EN.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/device-dev/Readme-EN.md b/en/device-dev/Readme-EN.md index 59e9959accb..cc51cf1ea93 100644 --- a/en/device-dev/Readme-EN.md +++ b/en/device-dev/Readme-EN.md @@ -139,7 +139,7 @@ In addition, OpenHarmony provides a series of optional system components that ca

Using basic capabilities of OpenHarmony

+

Advanced development

-- Gitee From 0c28caa1fab56c5281427ab86b28c5533e179be5 Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Fri, 13 Aug 2021 10:49:46 +0000 Subject: [PATCH 04/22] update en/device-dev/get-code/gettools-acquire.md. Signed-off-by: duangavin123 --- en/device-dev/get-code/gettools-acquire.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/en/device-dev/get-code/gettools-acquire.md b/en/device-dev/get-code/gettools-acquire.md index 63f4da06cd6..b28068971ed 100644 --- a/en/device-dev/get-code/gettools-acquire.md +++ b/en/device-dev/get-code/gettools-acquire.md @@ -52,7 +52,7 @@ OpenHarmony provides the following two types of Docker environments for you to q

swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard

0.0.1

+

0.0.2

HPM-based Docker environment

@@ -180,13 +180,13 @@ hb set 1. Obtain the Docker image. ``` - docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:0.0.1 + docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:0.0.2 ``` 2. Go to the root directory of OpenHarmony code and run the following command to access the Docker build environment: ``` - docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:0.0.1 + docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:0.0.2 ``` @@ -208,7 +208,7 @@ hb set 3. Go to the root directory of OpenHarmony code and run the following command to access the Docker build environment: ``` - docker run -it -v $(pwd):/home/openharmony openharmony-docker-standard:0.0.1 + docker run -it -v $(pwd):/home/openharmony openharmony-docker-standard:0.0.2 ``` -- Gitee From 5ed39961ac5ad77c1276467b13e2f3763c611bdd Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Mon, 16 Aug 2021 03:35:56 +0000 Subject: [PATCH 05/22] update zh-cn/device-dev/get-code/sourcecode-acquire.md. Signed-off-by: duangavin123 --- zh-cn/device-dev/get-code/sourcecode-acquire.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/device-dev/get-code/sourcecode-acquire.md b/zh-cn/device-dev/get-code/sourcecode-acquire.md index 5c61d356c04..34ec29314c3 100644 --- a/zh-cn/device-dev/get-code/sourcecode-acquire.md +++ b/zh-cn/device-dev/get-code/sourcecode-acquire.md @@ -104,7 +104,7 @@ OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及 repo forall -c 'git lfs pull' ``` -- OpenHarmony其他版本源码获取方式请参考版本[Release-Notes](https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-Release-Notes.md)。 +- OpenHarmony其他版本源码获取方式请参考版本[Release-Notes](https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/Readme.md)。 ## 获取方式2:从HPM获取 @@ -189,7 +189,7 @@ OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及 为了获得更好的下载性能,您可以选择从以下站点的镜像库获取源码或者对应的解决方案。 >![](../public_sys-resources/icon-note.gif) **说明:** ->- 本部分只提供OpenHarmony Master最新版本和LTS最新版本的源码获取方式, 其他版本源码获取方式以及具体版本信息请参考[Release-Notes](https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-Release-Notes.md) +>- 本部分只提供OpenHarmony Master最新版本和LTS最新版本的源码获取方式, 其他版本源码获取方式以及具体版本信息请参考[Release-Notes](https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/Readme.md) >- 当前Master 1.0版本已经不再维护。 **表 1** 源码获取路径 -- Gitee From 503b7a42b3d7b67e10938424265cde895d18b93d Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Mon, 16 Aug 2021 03:39:25 +0000 Subject: [PATCH 06/22] update en/device-dev/get-code/sourcecode-acquire.md. Signed-off-by: duangavin123 --- en/device-dev/get-code/sourcecode-acquire.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/en/device-dev/get-code/sourcecode-acquire.md b/en/device-dev/get-code/sourcecode-acquire.md index 7605710422b..7185d78f6c1 100644 --- a/en/device-dev/get-code/sourcecode-acquire.md +++ b/en/device-dev/get-code/sourcecode-acquire.md @@ -109,7 +109,7 @@ This document describes how to acquire OpenHarmony source code and provides its - Obtaining the source code of other OpenHarmony releases - For details about how to obtain the source code of other OpenHarmony releases, see the [Release Notes](https://gitee.com/openharmony/docs/blob/master/en/release-notes/OpenHarmony-Release-Notes.md). + For details about how to obtain the source code of other OpenHarmony releases, see the [Release Notes](https://gitee.com/openharmony/docs/blob/master/en/release-notes/Readme.md). ## Method 2: Acquiring Source Code from HPM @@ -195,7 +195,7 @@ You must install **Node.js** and HPM on your local PC. The installation proced To ensure the download performance, you are advised to download the source code or the corresponding solution from the image library of the respective site listed in the table below. >![](../public_sys-resources/icon-note.gif) **NOTE:** ->- The table below provides only the sites for downloading the latest OpenHarmony master and LTS code. For details about how to obtain the source code of earlier versions, see the [Release Notes](https://gitee.com/openharmony/docs/tree/master/en/release-notes). +>- The table below provides only the sites for downloading the latest OpenHarmony master and LTS code. For details about how to obtain the source code of earlier versions, see the [Release Notes](https://gitee.com/openharmony/docs/tree/master/en/release-notes/Readme.md). >- The Master 1.0 version is no longer maintained. **Table 1** Sites for acquiring source code from image sites -- Gitee From 63671fac459a23f7d1dc2cf276d26c843e87d9df Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Mon, 16 Aug 2021 03:40:24 +0000 Subject: [PATCH 07/22] update en/device-dev/get-code/sourcecode-acquire.md. Signed-off-by: duangavin123 --- en/device-dev/get-code/sourcecode-acquire.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/device-dev/get-code/sourcecode-acquire.md b/en/device-dev/get-code/sourcecode-acquire.md index 7185d78f6c1..3560b5acc25 100644 --- a/en/device-dev/get-code/sourcecode-acquire.md +++ b/en/device-dev/get-code/sourcecode-acquire.md @@ -51,7 +51,7 @@ This document describes how to acquire OpenHarmony source code and provides its 1. Register your account with Gitee. 2. Register an SSH public key for access to Gitee. -3. Install the [git client](http://git-scm.com/book/en/v2/Getting-Started-Installing-Git) and [git-lfs](https://gitee.com/vcs-all-in-one/git-lfs?_from=gitee_search#downloading)), and configure basic user information. +3. Install the [git client](http://git-scm.com/book/en/v2/Getting-Started-Installing-Git) and [git-lfs](https://gitee.com/vcs-all-in-one/git-lfs?_from=gitee_search#downloading), and configure basic user information. ``` git config --global user.name "yourname" -- Gitee From 8ce6180e56d61811b4f8e6eb77c254ef217ecbb9 Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Mon, 16 Aug 2021 03:44:05 +0000 Subject: [PATCH 08/22] rename en/device-dev/driver/drive-hdf.md to en/device-dev/driver/driver-hdf.md. Signed-off-by: duangavin123 --- en/device-dev/driver/{drive-hdf.md => driver-hdf.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename en/device-dev/driver/{drive-hdf.md => driver-hdf.md} (100%) diff --git a/en/device-dev/driver/drive-hdf.md b/en/device-dev/driver/driver-hdf.md similarity index 100% rename from en/device-dev/driver/drive-hdf.md rename to en/device-dev/driver/driver-hdf.md -- Gitee From c43fc029bceeb669592de3036c7a6a96c667151a Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Mon, 16 Aug 2021 03:44:31 +0000 Subject: [PATCH 09/22] rename en/device-dev/driver/drive-peripherals.md to en/device-dev/driver/driver-peripherals.md. Signed-off-by: duangavin123 --- .../driver/{drive-peripherals.md => driver-peripherals.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename en/device-dev/driver/{drive-peripherals.md => driver-peripherals.md} (100%) diff --git a/en/device-dev/driver/drive-peripherals.md b/en/device-dev/driver/driver-peripherals.md similarity index 100% rename from en/device-dev/driver/drive-peripherals.md rename to en/device-dev/driver/driver-peripherals.md -- Gitee From a25fa36c55889d82145998b149c3da2f8ece5a72 Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Mon, 16 Aug 2021 03:44:51 +0000 Subject: [PATCH 10/22] rename en/device-dev/driver/drive-platform.md to en/device-dev/driver/driver-platform.md. Signed-off-by: duangavin123 --- en/device-dev/driver/{drive-platform.md => driver-platform.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename en/device-dev/driver/{drive-platform.md => driver-platform.md} (100%) diff --git a/en/device-dev/driver/drive-platform.md b/en/device-dev/driver/driver-platform.md similarity index 100% rename from en/device-dev/driver/drive-platform.md rename to en/device-dev/driver/driver-platform.md -- Gitee From d63cd30dbefa5ca95bdd6af6a6a9030da0239bbc Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Mon, 16 Aug 2021 03:45:07 +0000 Subject: [PATCH 11/22] rename en/device-dev/driver/drive.md to en/device-dev/driver/driver.md. Signed-off-by: duangavin123 --- en/device-dev/driver/{drive.md => driver.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename en/device-dev/driver/{drive.md => driver.md} (100%) diff --git a/en/device-dev/driver/drive.md b/en/device-dev/driver/driver.md similarity index 100% rename from en/device-dev/driver/drive.md rename to en/device-dev/driver/driver.md -- Gitee From 9c91f66012f6659a44de54b131b696efc2af4272 Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Mon, 16 Aug 2021 03:50:10 +0000 Subject: [PATCH 12/22] update en/device-dev/driver/Readme-EN.md. Signed-off-by: duangavin123 --- en/device-dev/driver/Readme-EN.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/en/device-dev/driver/Readme-EN.md b/en/device-dev/driver/Readme-EN.md index 3f9bef19fb8..f5533c8d345 100644 --- a/en/device-dev/driver/Readme-EN.md +++ b/en/device-dev/driver/Readme-EN.md @@ -1,13 +1,13 @@ -# drivers +# Drivers -- [HDF](drive-hdf.md) +- [HDF](driver-hdf.md) - [HDF Overview](driver-hdf-overview.md) - [Driver Development](driver-hdf-development.md) - [Driver Service Management](driver-hdf-servicemanage.md) - [Driver Message Mechanism Management](driver-hdf-news.md) - [Driver Configuration Management](driver-hdf-manage.md) - [HDF Development Example](driver-hdf-sample.md) -- [Platform Drivers](drive-platform.md) +- [Platform Drivers](driver-platform.md) - [GPIO](driver-platform-gpio-des.md) - [I2C](driver-platform-i2c-des.md) - [RTC](driver-platform-rtc-des.md) @@ -16,7 +16,7 @@ - [UART](driver-platform-uart-des.md) - [Watchdog](driver-platform-watchdog-des.md) - [MIPI DSI](driver-platform-mipidsi-des.md) -- [Peripherals](drive-peripherals.md) +- [Peripherals](driver-peripherals.md) - [LCD](driver-peripherals-lcd-des.md) - [TOUCHSCREEN](driver-peripherals-touch-des.md) - [Sensor](driver-peripherals-sensor-des.md) -- Gitee From df39a8b3e142d09a5d6f8e944ea72a46d0be0247 Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Mon, 16 Aug 2021 06:32:09 +0000 Subject: [PATCH 13/22] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20zh?= =?UTF-8?q?-cn/device-dev/glossary/glossary.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zh-cn/device-dev/glossary/glossary.md | 5 ----- 1 file changed, 5 deletions(-) delete mode 100755 zh-cn/device-dev/glossary/glossary.md diff --git a/zh-cn/device-dev/glossary/glossary.md b/zh-cn/device-dev/glossary/glossary.md deleted file mode 100755 index fd37728ae4f..00000000000 --- a/zh-cn/device-dev/glossary/glossary.md +++ /dev/null @@ -1,5 +0,0 @@ -# 术语 - -- **[术语](glossary.md)** - - -- Gitee From 29526f76c5ee1d9f8123686da30319be93c86753 Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Mon, 16 Aug 2021 06:32:36 +0000 Subject: [PATCH 14/22] =?UTF-8?q?update=20term/=E6=9C=AF=E8=AF=AD.md.=20Si?= =?UTF-8?q?gned-off-by:=20duangavin123=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zh-cn/device-dev/glossary/glossary.md | 99 +++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 zh-cn/device-dev/glossary/glossary.md diff --git a/zh-cn/device-dev/glossary/glossary.md b/zh-cn/device-dev/glossary/glossary.md new file mode 100644 index 00000000000..7d73579241e --- /dev/null +++ b/zh-cn/device-dev/glossary/glossary.md @@ -0,0 +1,99 @@ +# 术语 + +- [A](#section1679023922312) +- [B](#section62182102017) +- [D](#section1670294920236) +- [F](#section5406185415236) +- [H](#section891816813243) +- [I](#section10124052142516) +- [P](#section779354121411) +- [S](#section25661636182615) + +## A + +- **Ability** + + 应用的重要组成部分,是应用所具备能力的抽象。Ability分为两种类型,Feature Ability和Particle Ability。 + + +- **AbilitySlice** + + 切片,是单个可视化界面及其交互逻辑的总和,是Feature Ability的组成单元。一个Feature Ability可以包含一组业务关系密切的可视化界面,每一个可视化界面对应一个AbilitySlice。 + +- **AMS** + + Ability Manager Service,Ability管理服务。 + + +## B + +- **BMS** + + Bundle Manager Service,包管理服务。 + + +## D + +- **DevEco Studio for Embedded** + + 嵌入式设备开发IDE。 + +- **DMS** + + Distributed Management Service,分布式管理服务。 + + +## F + +- **FA** + + Feature Ability,代表有界面的Ability,用于与用户进行交互。 + + +## H + +- **HAP** + + OpenHarmony Ability Package,一个HAP文件包含应用的所有内容,由代码、资源、三方库及应用配置文件组成,其文件后缀名为.hap。 + +- **HCS** + + HDF Configuration Source是HDF驱动框架的配置描述语言,是为了实现配置代码与驱动代码解耦,以及便于配置的管理而设计的一种Key-Value为主体的文本格式。 + + +- **HC-GEN** + + HDF Configuration Generator是HCS配置转换工具,可以将HDF配置文件转换为软件可读取的文件格式。 + + +- **HDF** + + Hardware Driver Foundation,硬件驱动框架,用于提供统一外设访问能力和驱动开发、管理框架。 + + +## I + +- **IDN** + + Intelligent Distributed Networking,是OpenHarmony特有的分布式组网能力单元。开发者可以通过IDN获取分布式网络内的设备列表和设备状态信息,以及注册分布式网络内设备的在网状态变化信息。 + + +## P + +- **PA** + + Particle Ability,代表无界面的Ability,主要为Feature Ability提供支持,例如作为后台服务提供计算能力,或作为数据仓库提供数据访问能力。 + + +## S + +- **Super virtual device,超级虚拟终端** + + 亦称超级终端,通过分布式技术将多个终端的能力进行整合,存放在一个虚拟的硬件资源池里,根据业务需要统一管理和调度终端能力,来对外提供服务。 + +- **System Type,系统类型** + - Mini System,轻量系统:面向MCU类处理器,例如ARM Cortex-M、RISC-V 32位的设备,资源极其有限,参考内存≥128KiB,提供丰富的近距连接能力以及丰富的外设总线访问能力。典型产品有智能家居领域的联接类模组、传感器设备等。 + - Small System,小型系统:面向应用处理器,例如Arm Cortex-A的设备,参考内存≥1MiB,提供更高的安全能力,提供标准的图形框架,提供视频编解码的多媒体能力。典型产品有智能家居领域的IPCamera、电子猫眼、路由器以及智慧出行域的行车记录仪等。 + - Standard System,标准系统:面向应用处理器,例如Arm Cortex-A的设备,参考内存≥128MiB,提供增强的交互能力,提供3D GPU以及硬件合成能力,提供更多控件以及动效更丰富的图形能力,提供完整的应用框架。典型产品有高端的冰箱显示屏等。 + + -- Gitee From ca07a6cd011d7d3e54c59321832ec1e303e3de3b Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Mon, 16 Aug 2021 06:33:56 +0000 Subject: [PATCH 15/22] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20en?= =?UTF-8?q?/device-dev/glossary/glossary.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- en/device-dev/glossary/glossary.md | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 en/device-dev/glossary/glossary.md diff --git a/en/device-dev/glossary/glossary.md b/en/device-dev/glossary/glossary.md deleted file mode 100644 index 8ece9abda66..00000000000 --- a/en/device-dev/glossary/glossary.md +++ /dev/null @@ -1,5 +0,0 @@ -# Glossary - -- **[Glossary](glossary.md)** - - -- Gitee From 1ad22b3acf3440e63367bcaa1a85cb82257beb14 Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Mon, 16 Aug 2021 06:34:33 +0000 Subject: [PATCH 16/22] =?UTF-8?q?update=20term/=E6=9C=AF=E8=AF=AD.md.=20Si?= =?UTF-8?q?gned-off-by:=20duangavin123=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- en/device-dev/glossary/glossary.md | 100 +++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 en/device-dev/glossary/glossary.md diff --git a/en/device-dev/glossary/glossary.md b/en/device-dev/glossary/glossary.md new file mode 100644 index 00000000000..662188c5f97 --- /dev/null +++ b/en/device-dev/glossary/glossary.md @@ -0,0 +1,100 @@ +# Glossary + +- [A](#en-us_topic_0000001050749051_section1679023922312) +- [B](#en-us_topic_0000001050749051_section62182102017) +- [D](#en-us_topic_0000001050749051_section1670294920236) +- [F](#en-us_topic_0000001050749051_section5406185415236) +- [H](#en-us_topic_0000001050749051_section891816813243) +- [I](#en-us_topic_0000001050749051_section10124052142516) +- [P](#en-us_topic_0000001050749051_section779354121411) +- [S](#en-us_topic_0000001050749051_section25661636182615) + +## A + +- **Ability** + + An ability is an abstraction of a functionality that an application can provide. Abilities of applications are classified into two types: Feature Ability \(FA\) and Particle Ability \(PA\). + + +- **AbilitySlice** + + An AbilitySlice is the combination of a single visualized UI and its interactive logic. AbilitySlice is the fundamental unit of a Feature Ability. A Feature Ability can contain a group of UIs representing closely associated services, and each UI corresponds to one AbilitySlice. + +- **AMS** + + Ability Manager Service, a service that manages abilities + + +## B + +- **BMS** + + Bundle Manager Service, a service that manages application bundles + + +## D + +- **DevEco Studio for Embedded** + + Integrated development environment \(IDE\) for developing embedded devices + +- **DMS** + + Distributed Management Service, a service used for distributed data management + + +## F + +- **FA** + + Feature Ability, representing an ability with a UI for interacting with users + + +## H + +- **HAP** + + OpenHarmony Ability Package, released as a HAP file. One HAP file describes all content of an application, including code, resources, third-party libraries, and a configuration file. + +- **HCS** + + HDF Configuration Source \(HCS\) describes the HDF configuration using key-value pairs. HCS is designed to decouple configuration code from driver code, thereby facilitating configuration management. + + +- **HC-GEN** + + HDF Configuration Generator \(HC-GEN\) is a tool for converting a configuration file into a file that can be read by the target software. + + +- **HDF** + + Hardware Driver Foundation that allows unified access from peripheral devices and provides foundation for driver development and management in OpenHarmony + + +## I + +- **IDN** + + Intelligent Distributed Networking, a distributed networking capability unit specific to OpenHarmony. You can use IDN to obtain the device list and device states and subscribe to the connection state changes of devices on the distributed network. + + +## P + +- **PA** + + Particle Ability, representing an ability without a UI. PAs are invoked to implement Feature Ability \(FA\) functionalities. For example, a PA runs in the background to provide the computing capability or acts as a data warehouse to provide the data access capability. + + +## S + +- **Super virtual device** + + Also called super device. It integrates the capabilities of multiple devices through the distributed technology into a virtual hardware resource pool and then centrally manages and schedules these capabilities based on application requirements. + +- **System type** + - Mini system: refers to a system running on the devices whose memory is greater than or equal to 128 KB and that are equipped with only limited resources and MCU processors such as ARM Cortex-M and 32-bit RISC-V. This system provides rich short-distance connection capabilities and a bus for accessing peripherals. This system applies to smart home products such as LinkIoT module devices and sensors. + - Small system: refers to a system running on the devices whose memory is greater than or equal to 1 MB and that are equipped with application processors such as ARM Cortex-A. This system provides higher security capabilities, standard graphics frameworks, and video encoding and decoding capabilities. This system applies to smart home products such as IP cameras, peephole cameras, and routers as well as smart travel products such as event data recorders \(EDRs\). + - Standard system: refers to a system running on the devices whose memory is greater than or equal to 128 MB and that are equipped with application processors such as ARM Cortex-A. This system provides a complete application framework supporting the enhanced interaction, 3D GPU, hardware composer, diverse components, and rich animations. This system applies to high-end refrigerator displays. + - Large system: refers to a system running on the devices whose memory is greater than or equal to 1 GB and that are equipped with application processors such as ARM Cortex-A. This system provides a complete compatible application framework. This system applies to smart TVs and watches. + + -- Gitee From 0231ab1af600bb999552453cd29094b8aecba485 Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Mon, 16 Aug 2021 06:41:48 +0000 Subject: [PATCH 17/22] update en/device-dev/quick-start/quickstart-standard-docker-environment.md. Signed-off-by: duangavin123 --- .../quick-start/quickstart-standard-docker-environment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/device-dev/quick-start/quickstart-standard-docker-environment.md b/en/device-dev/quick-start/quickstart-standard-docker-environment.md index c9f27fb455f..c8cc2135d3d 100644 --- a/en/device-dev/quick-start/quickstart-standard-docker-environment.md +++ b/en/device-dev/quick-start/quickstart-standard-docker-environment.md @@ -19,7 +19,7 @@ The standard OpenHarmony system provides a Docker environment which encapsulates 1. Register your account with Gitee. 2. Register an SSH public key for access to Gitee. -3. Install the [git client](http://git-scm.com/book/en/v2/Getting-Started-Installing-Git) and [git-lfs](https://gitee.com/vcs-all-in-one/git-lfs?_from=gitee_search#downloading)), and configure basic user information. +3. Install the [git client](http://git-scm.com/book/en/v2/Getting-Started-Installing-Git) and [git-lfs](https://gitee.com/vcs-all-in-one/git-lfs?_from=gitee_search#downloading), and configure basic user information. ``` git config --global user.name "yourname" -- Gitee From 82b4cf99ef188501aa20acdbe490dd20121d8c6a Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Mon, 16 Aug 2021 06:42:25 +0000 Subject: [PATCH 18/22] update en/device-dev/quick-start/quickstart-standard-package-environment.md. Signed-off-by: duangavin123 --- .../quick-start/quickstart-standard-package-environment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/device-dev/quick-start/quickstart-standard-package-environment.md b/en/device-dev/quick-start/quickstart-standard-package-environment.md index 6100bafbeee..4ea30679f86 100644 --- a/en/device-dev/quick-start/quickstart-standard-package-environment.md +++ b/en/device-dev/quick-start/quickstart-standard-package-environment.md @@ -25,7 +25,7 @@ sudo apt-get update && sudo apt-get install binutils git git-lfs gnupg flex biso 1. Register your account with Gitee. 2. Register an SSH public key for access to Gitee. -3. Install the [git client](http://git-scm.com/book/en/v2/Getting-Started-Installing-Git) and [git-lfs](https://gitee.com/vcs-all-in-one/git-lfs?_from=gitee_search#downloading)), and configure basic user information. +3. Install the [git client](http://git-scm.com/book/en/v2/Getting-Started-Installing-Git) and [git-lfs](https://gitee.com/vcs-all-in-one/git-lfs?_from=gitee_search#downloading), and configure basic user information. ``` git config --global user.name "yourname" -- Gitee From 013014d5e6dfe65d4d59379682b93061b3647eac Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Mon, 16 Aug 2021 06:51:35 +0000 Subject: [PATCH 19/22] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20zh?= =?UTF-8?q?-cn/device-dev/glossary/glossary.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zh-cn/device-dev/glossary/glossary.md | 99 --------------------------- 1 file changed, 99 deletions(-) delete mode 100644 zh-cn/device-dev/glossary/glossary.md diff --git a/zh-cn/device-dev/glossary/glossary.md b/zh-cn/device-dev/glossary/glossary.md deleted file mode 100644 index 7d73579241e..00000000000 --- a/zh-cn/device-dev/glossary/glossary.md +++ /dev/null @@ -1,99 +0,0 @@ -# 术语 - -- [A](#section1679023922312) -- [B](#section62182102017) -- [D](#section1670294920236) -- [F](#section5406185415236) -- [H](#section891816813243) -- [I](#section10124052142516) -- [P](#section779354121411) -- [S](#section25661636182615) - -## A - -- **Ability** - - 应用的重要组成部分,是应用所具备能力的抽象。Ability分为两种类型,Feature Ability和Particle Ability。 - - -- **AbilitySlice** - - 切片,是单个可视化界面及其交互逻辑的总和,是Feature Ability的组成单元。一个Feature Ability可以包含一组业务关系密切的可视化界面,每一个可视化界面对应一个AbilitySlice。 - -- **AMS** - - Ability Manager Service,Ability管理服务。 - - -## B - -- **BMS** - - Bundle Manager Service,包管理服务。 - - -## D - -- **DevEco Studio for Embedded** - - 嵌入式设备开发IDE。 - -- **DMS** - - Distributed Management Service,分布式管理服务。 - - -## F - -- **FA** - - Feature Ability,代表有界面的Ability,用于与用户进行交互。 - - -## H - -- **HAP** - - OpenHarmony Ability Package,一个HAP文件包含应用的所有内容,由代码、资源、三方库及应用配置文件组成,其文件后缀名为.hap。 - -- **HCS** - - HDF Configuration Source是HDF驱动框架的配置描述语言,是为了实现配置代码与驱动代码解耦,以及便于配置的管理而设计的一种Key-Value为主体的文本格式。 - - -- **HC-GEN** - - HDF Configuration Generator是HCS配置转换工具,可以将HDF配置文件转换为软件可读取的文件格式。 - - -- **HDF** - - Hardware Driver Foundation,硬件驱动框架,用于提供统一外设访问能力和驱动开发、管理框架。 - - -## I - -- **IDN** - - Intelligent Distributed Networking,是OpenHarmony特有的分布式组网能力单元。开发者可以通过IDN获取分布式网络内的设备列表和设备状态信息,以及注册分布式网络内设备的在网状态变化信息。 - - -## P - -- **PA** - - Particle Ability,代表无界面的Ability,主要为Feature Ability提供支持,例如作为后台服务提供计算能力,或作为数据仓库提供数据访问能力。 - - -## S - -- **Super virtual device,超级虚拟终端** - - 亦称超级终端,通过分布式技术将多个终端的能力进行整合,存放在一个虚拟的硬件资源池里,根据业务需要统一管理和调度终端能力,来对外提供服务。 - -- **System Type,系统类型** - - Mini System,轻量系统:面向MCU类处理器,例如ARM Cortex-M、RISC-V 32位的设备,资源极其有限,参考内存≥128KiB,提供丰富的近距连接能力以及丰富的外设总线访问能力。典型产品有智能家居领域的联接类模组、传感器设备等。 - - Small System,小型系统:面向应用处理器,例如Arm Cortex-A的设备,参考内存≥1MiB,提供更高的安全能力,提供标准的图形框架,提供视频编解码的多媒体能力。典型产品有智能家居领域的IPCamera、电子猫眼、路由器以及智慧出行域的行车记录仪等。 - - Standard System,标准系统:面向应用处理器,例如Arm Cortex-A的设备,参考内存≥128MiB,提供增强的交互能力,提供3D GPU以及硬件合成能力,提供更多控件以及动效更丰富的图形能力,提供完整的应用框架。典型产品有高端的冰箱显示屏等。 - - -- Gitee From 7380fd3a4acec5f99c7b7f8b6420bc4b41cc3a03 Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Mon, 16 Aug 2021 06:52:46 +0000 Subject: [PATCH 20/22] update glossary Signed-off-by: duangavin123 --- zh-cn/device-dev/glossary/glossary.md | 99 +++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 zh-cn/device-dev/glossary/glossary.md diff --git a/zh-cn/device-dev/glossary/glossary.md b/zh-cn/device-dev/glossary/glossary.md new file mode 100644 index 00000000000..7d73579241e --- /dev/null +++ b/zh-cn/device-dev/glossary/glossary.md @@ -0,0 +1,99 @@ +# 术语 + +- [A](#section1679023922312) +- [B](#section62182102017) +- [D](#section1670294920236) +- [F](#section5406185415236) +- [H](#section891816813243) +- [I](#section10124052142516) +- [P](#section779354121411) +- [S](#section25661636182615) + +## A + +- **Ability** + + 应用的重要组成部分,是应用所具备能力的抽象。Ability分为两种类型,Feature Ability和Particle Ability。 + + +- **AbilitySlice** + + 切片,是单个可视化界面及其交互逻辑的总和,是Feature Ability的组成单元。一个Feature Ability可以包含一组业务关系密切的可视化界面,每一个可视化界面对应一个AbilitySlice。 + +- **AMS** + + Ability Manager Service,Ability管理服务。 + + +## B + +- **BMS** + + Bundle Manager Service,包管理服务。 + + +## D + +- **DevEco Studio for Embedded** + + 嵌入式设备开发IDE。 + +- **DMS** + + Distributed Management Service,分布式管理服务。 + + +## F + +- **FA** + + Feature Ability,代表有界面的Ability,用于与用户进行交互。 + + +## H + +- **HAP** + + OpenHarmony Ability Package,一个HAP文件包含应用的所有内容,由代码、资源、三方库及应用配置文件组成,其文件后缀名为.hap。 + +- **HCS** + + HDF Configuration Source是HDF驱动框架的配置描述语言,是为了实现配置代码与驱动代码解耦,以及便于配置的管理而设计的一种Key-Value为主体的文本格式。 + + +- **HC-GEN** + + HDF Configuration Generator是HCS配置转换工具,可以将HDF配置文件转换为软件可读取的文件格式。 + + +- **HDF** + + Hardware Driver Foundation,硬件驱动框架,用于提供统一外设访问能力和驱动开发、管理框架。 + + +## I + +- **IDN** + + Intelligent Distributed Networking,是OpenHarmony特有的分布式组网能力单元。开发者可以通过IDN获取分布式网络内的设备列表和设备状态信息,以及注册分布式网络内设备的在网状态变化信息。 + + +## P + +- **PA** + + Particle Ability,代表无界面的Ability,主要为Feature Ability提供支持,例如作为后台服务提供计算能力,或作为数据仓库提供数据访问能力。 + + +## S + +- **Super virtual device,超级虚拟终端** + + 亦称超级终端,通过分布式技术将多个终端的能力进行整合,存放在一个虚拟的硬件资源池里,根据业务需要统一管理和调度终端能力,来对外提供服务。 + +- **System Type,系统类型** + - Mini System,轻量系统:面向MCU类处理器,例如ARM Cortex-M、RISC-V 32位的设备,资源极其有限,参考内存≥128KiB,提供丰富的近距连接能力以及丰富的外设总线访问能力。典型产品有智能家居领域的联接类模组、传感器设备等。 + - Small System,小型系统:面向应用处理器,例如Arm Cortex-A的设备,参考内存≥1MiB,提供更高的安全能力,提供标准的图形框架,提供视频编解码的多媒体能力。典型产品有智能家居领域的IPCamera、电子猫眼、路由器以及智慧出行域的行车记录仪等。 + - Standard System,标准系统:面向应用处理器,例如Arm Cortex-A的设备,参考内存≥128MiB,提供增强的交互能力,提供3D GPU以及硬件合成能力,提供更多控件以及动效更丰富的图形能力,提供完整的应用框架。典型产品有高端的冰箱显示屏等。 + + -- Gitee From c4b1eca02e45eb4b86eac07785a37140c781803d Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Mon, 16 Aug 2021 06:54:01 +0000 Subject: [PATCH 21/22] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20en?= =?UTF-8?q?/device-dev/glossary/glossary.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- en/device-dev/glossary/glossary.md | 100 ----------------------------- 1 file changed, 100 deletions(-) delete mode 100644 en/device-dev/glossary/glossary.md diff --git a/en/device-dev/glossary/glossary.md b/en/device-dev/glossary/glossary.md deleted file mode 100644 index 662188c5f97..00000000000 --- a/en/device-dev/glossary/glossary.md +++ /dev/null @@ -1,100 +0,0 @@ -# Glossary - -- [A](#en-us_topic_0000001050749051_section1679023922312) -- [B](#en-us_topic_0000001050749051_section62182102017) -- [D](#en-us_topic_0000001050749051_section1670294920236) -- [F](#en-us_topic_0000001050749051_section5406185415236) -- [H](#en-us_topic_0000001050749051_section891816813243) -- [I](#en-us_topic_0000001050749051_section10124052142516) -- [P](#en-us_topic_0000001050749051_section779354121411) -- [S](#en-us_topic_0000001050749051_section25661636182615) - -## A - -- **Ability** - - An ability is an abstraction of a functionality that an application can provide. Abilities of applications are classified into two types: Feature Ability \(FA\) and Particle Ability \(PA\). - - -- **AbilitySlice** - - An AbilitySlice is the combination of a single visualized UI and its interactive logic. AbilitySlice is the fundamental unit of a Feature Ability. A Feature Ability can contain a group of UIs representing closely associated services, and each UI corresponds to one AbilitySlice. - -- **AMS** - - Ability Manager Service, a service that manages abilities - - -## B - -- **BMS** - - Bundle Manager Service, a service that manages application bundles - - -## D - -- **DevEco Studio for Embedded** - - Integrated development environment \(IDE\) for developing embedded devices - -- **DMS** - - Distributed Management Service, a service used for distributed data management - - -## F - -- **FA** - - Feature Ability, representing an ability with a UI for interacting with users - - -## H - -- **HAP** - - OpenHarmony Ability Package, released as a HAP file. One HAP file describes all content of an application, including code, resources, third-party libraries, and a configuration file. - -- **HCS** - - HDF Configuration Source \(HCS\) describes the HDF configuration using key-value pairs. HCS is designed to decouple configuration code from driver code, thereby facilitating configuration management. - - -- **HC-GEN** - - HDF Configuration Generator \(HC-GEN\) is a tool for converting a configuration file into a file that can be read by the target software. - - -- **HDF** - - Hardware Driver Foundation that allows unified access from peripheral devices and provides foundation for driver development and management in OpenHarmony - - -## I - -- **IDN** - - Intelligent Distributed Networking, a distributed networking capability unit specific to OpenHarmony. You can use IDN to obtain the device list and device states and subscribe to the connection state changes of devices on the distributed network. - - -## P - -- **PA** - - Particle Ability, representing an ability without a UI. PAs are invoked to implement Feature Ability \(FA\) functionalities. For example, a PA runs in the background to provide the computing capability or acts as a data warehouse to provide the data access capability. - - -## S - -- **Super virtual device** - - Also called super device. It integrates the capabilities of multiple devices through the distributed technology into a virtual hardware resource pool and then centrally manages and schedules these capabilities based on application requirements. - -- **System type** - - Mini system: refers to a system running on the devices whose memory is greater than or equal to 128 KB and that are equipped with only limited resources and MCU processors such as ARM Cortex-M and 32-bit RISC-V. This system provides rich short-distance connection capabilities and a bus for accessing peripherals. This system applies to smart home products such as LinkIoT module devices and sensors. - - Small system: refers to a system running on the devices whose memory is greater than or equal to 1 MB and that are equipped with application processors such as ARM Cortex-A. This system provides higher security capabilities, standard graphics frameworks, and video encoding and decoding capabilities. This system applies to smart home products such as IP cameras, peephole cameras, and routers as well as smart travel products such as event data recorders \(EDRs\). - - Standard system: refers to a system running on the devices whose memory is greater than or equal to 128 MB and that are equipped with application processors such as ARM Cortex-A. This system provides a complete application framework supporting the enhanced interaction, 3D GPU, hardware composer, diverse components, and rich animations. This system applies to high-end refrigerator displays. - - Large system: refers to a system running on the devices whose memory is greater than or equal to 1 GB and that are equipped with application processors such as ARM Cortex-A. This system provides a complete compatible application framework. This system applies to smart TVs and watches. - - -- Gitee From 4cdaba57f3f984fe5a501a5744038c4e59888fb1 Mon Sep 17 00:00:00 2001 From: duangavin123 Date: Mon, 16 Aug 2021 06:54:42 +0000 Subject: [PATCH 22/22] update glossary-en Signed-off-by: duangavin123 --- en/device-dev/glossary/glossary.md | 100 +++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 en/device-dev/glossary/glossary.md diff --git a/en/device-dev/glossary/glossary.md b/en/device-dev/glossary/glossary.md new file mode 100644 index 00000000000..662188c5f97 --- /dev/null +++ b/en/device-dev/glossary/glossary.md @@ -0,0 +1,100 @@ +# Glossary + +- [A](#en-us_topic_0000001050749051_section1679023922312) +- [B](#en-us_topic_0000001050749051_section62182102017) +- [D](#en-us_topic_0000001050749051_section1670294920236) +- [F](#en-us_topic_0000001050749051_section5406185415236) +- [H](#en-us_topic_0000001050749051_section891816813243) +- [I](#en-us_topic_0000001050749051_section10124052142516) +- [P](#en-us_topic_0000001050749051_section779354121411) +- [S](#en-us_topic_0000001050749051_section25661636182615) + +## A + +- **Ability** + + An ability is an abstraction of a functionality that an application can provide. Abilities of applications are classified into two types: Feature Ability \(FA\) and Particle Ability \(PA\). + + +- **AbilitySlice** + + An AbilitySlice is the combination of a single visualized UI and its interactive logic. AbilitySlice is the fundamental unit of a Feature Ability. A Feature Ability can contain a group of UIs representing closely associated services, and each UI corresponds to one AbilitySlice. + +- **AMS** + + Ability Manager Service, a service that manages abilities + + +## B + +- **BMS** + + Bundle Manager Service, a service that manages application bundles + + +## D + +- **DevEco Studio for Embedded** + + Integrated development environment \(IDE\) for developing embedded devices + +- **DMS** + + Distributed Management Service, a service used for distributed data management + + +## F + +- **FA** + + Feature Ability, representing an ability with a UI for interacting with users + + +## H + +- **HAP** + + OpenHarmony Ability Package, released as a HAP file. One HAP file describes all content of an application, including code, resources, third-party libraries, and a configuration file. + +- **HCS** + + HDF Configuration Source \(HCS\) describes the HDF configuration using key-value pairs. HCS is designed to decouple configuration code from driver code, thereby facilitating configuration management. + + +- **HC-GEN** + + HDF Configuration Generator \(HC-GEN\) is a tool for converting a configuration file into a file that can be read by the target software. + + +- **HDF** + + Hardware Driver Foundation that allows unified access from peripheral devices and provides foundation for driver development and management in OpenHarmony + + +## I + +- **IDN** + + Intelligent Distributed Networking, a distributed networking capability unit specific to OpenHarmony. You can use IDN to obtain the device list and device states and subscribe to the connection state changes of devices on the distributed network. + + +## P + +- **PA** + + Particle Ability, representing an ability without a UI. PAs are invoked to implement Feature Ability \(FA\) functionalities. For example, a PA runs in the background to provide the computing capability or acts as a data warehouse to provide the data access capability. + + +## S + +- **Super virtual device** + + Also called super device. It integrates the capabilities of multiple devices through the distributed technology into a virtual hardware resource pool and then centrally manages and schedules these capabilities based on application requirements. + +- **System type** + - Mini system: refers to a system running on the devices whose memory is greater than or equal to 128 KB and that are equipped with only limited resources and MCU processors such as ARM Cortex-M and 32-bit RISC-V. This system provides rich short-distance connection capabilities and a bus for accessing peripherals. This system applies to smart home products such as LinkIoT module devices and sensors. + - Small system: refers to a system running on the devices whose memory is greater than or equal to 1 MB and that are equipped with application processors such as ARM Cortex-A. This system provides higher security capabilities, standard graphics frameworks, and video encoding and decoding capabilities. This system applies to smart home products such as IP cameras, peephole cameras, and routers as well as smart travel products such as event data recorders \(EDRs\). + - Standard system: refers to a system running on the devices whose memory is greater than or equal to 128 MB and that are equipped with application processors such as ARM Cortex-A. This system provides a complete application framework supporting the enhanced interaction, 3D GPU, hardware composer, diverse components, and rich animations. This system applies to high-end refrigerator displays. + - Large system: refers to a system running on the devices whose memory is greater than or equal to 1 GB and that are equipped with application processors such as ARM Cortex-A. This system provides a complete compatible application framework. This system applies to smart TVs and watches. + + -- Gitee