docs: add translation for dedic_gpio

This commit is contained in:
daiziyan
2022-05-19 16:56:38 +08:00
parent 7f884dc966
commit 3a2da53e2a
2 changed files with 168 additions and 5 deletions

View File

@@ -1,6 +1,8 @@
Dedicated GPIO
==============
:link_to_translation:`zh_CN:[中文]`
Overview
--------
@@ -67,13 +69,15 @@ GPIO Bundle Operations
- Functions
* - Write to GPIOs in the bundle by mask
- :cpp:func:`dedic_gpio_bundle_write`
* - Read the value that input to bundle
* - Read the value that output from the given GPIO bundle
- :cpp:func:`dedic_gpio_bundle_read_out`
* - Read the value that output from bundle
* - Read the value that input to the given GPIO bundle
- :cpp:func:`dedic_gpio_bundle_read_in`
.. note::
Using the above functions might not get a high GPIO flip speed because of the overhead of function calls and the bit operations involved inside. Users can try `Manipulate GPIOs by Assembly Code <#manipulate-gpios-by-writing-assembly-code>`__ instead to reduce the overhead but should take care of the thread safety by themselves.
Using the above functions might not get a high GPIO flip speed because of the overhead of function calls and the bit operations involved inside. Users can try :ref:`manipulate_gpios_by_writing_assembly_code` instead to reduce the overhead but should take care of the thread safety by themselves.
.. _manipulate_gpios_by_writing_assembly_code:
Manipulate GPIOs by Writing Assembly Code
------------------------------------------
@@ -109,7 +113,7 @@ For advanced users, they can always manipulate the GPIOs by writing assembly cod
For details of supported dedicated GPIO instructions, please refer to *{IDF_TARGET_NAME} Technical Reference Manual* > *ESP-RISC-V CPU* [`PDF <{IDF_TARGET_TRM_EN_URL}#riscvcpu>`__].
Some of the dedicated CPU instructions are also wrapped inside `soc/cpu_ll.h` as helper inline functions.
Some of the dedicated CPU instructions are also wrapped inside `hal/dedic_gpio_ll.h` as helper inline functions.
.. note::
Writing assembly code in application could make your code hard to port between targets, because those customized instructions are not guaranteed to remain the same format on different targets.