Commit Graph

1342 Commits

Author SHA1 Message Date
Jan Beran
858e3fe5ec docs(esp-idf-monitor): Add information about ESP_IDF_MONITOR_NO_RESET 2024-01-31 09:35:44 +01:00
Mo Fei Fei
af0d1c6945 Docs: update cn trans for config wdt desc 2024-01-31 15:19:17 +08:00
KonstantinKondrashov
c40afaf4ad feat(doc): Update the WDT article
Closes https://github.com/espressif/esp-idf/issues/12995
2024-01-31 15:19:17 +08:00
Tomas Rezucha
f13ae0fc08 feat(esp32p4): Add USB-OTG support for ESP32-P4 2024-01-30 15:07:11 +01:00
Linda
6af8643d06 docs: format table for generated pdf document 2024-01-29 14:36:04 +08:00
kirill.chalov
22a053f1fc docs(sphinx-lint): Fix issues reported by sphinx-lint before adding it to pre-commit 2024-01-23 15:22:29 +08:00
Mahavir Jain
fd9cf82965 Merge branch 'docs/add_read_otadata_documentation' into 'master'
docs: Add documentation for `idf.py read-otadata`

See merge request espressif/esp-idf!28141
2024-01-15 13:00:23 +08:00
Harshit Malpani
18947904bc
docs: Add documentation for idf.py read-otadata 2024-01-12 18:58:14 +05:30
nilesh.kale
50ca5227fa fix: renamed partool.py -> parttool.py 2024-01-12 11:15:38 +05:30
Kapil Gupta
685fcf4278 Merge branch 'feature/supplicant_bss_extmem' into 'master'
WiFi: Add support to move supplicant BSS to external memory

See merge request espressif/esp-idf!27891
2024-01-11 15:55:14 +08:00
Erhan Kurubas
f5934dea31 Merge branch 'feature/esp32p4_coredump_support' into 'master'
feat(coredump): add esp32p4 chip support and doc update

Closes IDF-6521 and IDF-7756

See merge request espressif/esp-idf!28226
2024-01-10 20:07:29 +08:00
Mahavir Jain
c0bd52898f Merge branch 'contrib/github_pr_12915' into 'master'
docs: Correct coap IPV6 support requirement comments (GitHub PR)

Closes IDFGH-11821

See merge request espressif/esp-idf!28297
2024-01-08 11:29:59 +08:00
Jon Shallow
35f553f84d
docs: Correct coap IPV6 support requirement comments
coap (libcoap) can now be built with or without IPV6.
2024-01-05 12:35:41 +05:30
jgujarathi
8ab5cee34a docs(esp_wifi): Add docs for additional authmode incompatible situation
- Adds documentation for additional situations where authmode incompatible disconnect
  reason code will be reported
2024-01-04 11:56:42 +05:30
Erhan Kurubas
c3916927c9 feat(esp-coredump): add esp32p4 chip support and doc update 2024-01-03 12:05:34 +01:00
Abhik Roy
0c99a58ff6 Merge branch 'lwip/acceptmbox_config' into 'master'
change(lwip): Added macro to configure TCP accept mailbox size

See merge request espressif/esp-idf!27276
2024-01-03 15:55:12 +08:00
mofeifei
009e6945aa docs: Updated cn trans for esp_http_client and external_ram 2024-01-02 16:06:03 +08:00
Kapil Gupta
14ee656993 docs(wifi): Add documentation for ESP defined disconnect reasoncodes 2023-12-28 15:23:29 +05:30
Armando
7e0f298608 change(psram): update doc about ldo 2023-12-26 11:43:33 +08:00
David Cermak
e3a02d78c8 docs(network): Update network/proto API refs and guides for ESP32P4 2023-12-20 23:07:35 +08:00
Mo Fei Fei
3140fcadf2 Merge branch 'docs/update_cn_trans_usb-serial-jtag-console' into 'master'
docs: Update cn trans for use-serial-jtag-console

Closes DOC-6815

See merge request espressif/esp-idf!28004
2023-12-20 16:42:09 +08:00
mofeifei
07d0266c88 docs: Update cn trans for use-serial-jtag-console 2023-12-20 14:08:27 +08:00
Ivan Grokhotkov
3a340b385f Merge branch 'feature/qemu_lcd' into 'master'
feat(qemu): add a CLI option for graphics output

See merge request espressif/esp-idf!27874
2023-12-19 20:07:29 +08:00
Roland Dobai
539425ff99 Merge branch 'feature/doc_update_idf_file_args_plus_idftoolspath_setup' into 'master'
feat(tools): Documentation update about setting IDF_TOOLS_PATH and idf.py argument file parsing

Closes IDF-8527 and IDFGH-11401

See merge request espressif/esp-idf!27080
2023-12-19 16:32:58 +08:00
Ivan Grokhotkov
d9983c0039
feat(qemu): add a CLI option for graphics output 2023-12-18 11:47:15 +01:00
Armando
92e19af4ea doc(psram): updated voltage supply for psram programming guide 2023-12-18 15:18:07 +08:00
Shang Zhou
c1e3440352 docs: Update CN translation for idf-py.rst and linux-macos-setup.rst 2023-12-15 11:50:38 +00:00
Marek Fiala
9757c8f7c9 docs(tools): Add idf.py file argument parsing to idf.py doc 2023-12-15 11:50:38 +00:00
Abhik Roy
0c41c4e1da change(lwip): Added macro to configure TCP accept mailbox size 2023-12-15 21:11:44 +11:00
Mahavir Jain
8ef201be80 Merge branch 'bugfix/fix_partition_table_gen' into 'master'
fix(partition_table): Check partition size for type APP

See merge request espressif/esp-idf!26755
2023-12-14 18:41:52 +08:00
Kapil Gupta
36c38943c8 fix(wifi): Add support to move supplicant BSS to external memory 2023-12-13 16:07:13 +00:00
Harshit Malpani
bbbede07d0
fix(partition_table): Check partition size for type APP
The size of partition of type APP should be multiple of 4 KB. Partition
generation tool now make this as a mandatory requirement. This is
minimum flash erase size. If the size of the APP type partition is not
aligned to 4 KB then the last erase operation could go beyond the allocated
partition and hence may fail. This issue would only be observed when the
firmware size grows very close to the allocated partition size, and hence
causing the OTA update to fail.

For already deployed devices on-field with the size of APP partition not
aligned to flash sector boundary, it is best to ensure that firmware
size always remains within the lower 4 KB boundary of the total
allocated space. While migrating to ESP-IDF 5.3 release, partition table
for an existing project can be adjusted accordingly for the build to
succeed.

Found during discussion in https://github.com/espressif/esp-idf/pull/12460
2023-12-11 10:14:57 +05:30
Marius Vikhammer
ac3915f092 docs(esp32p4): update misc docs for esp32p4 2023-12-09 09:09:55 +08:00
Roland Dobai
b486466339 Merge branch 'monitor_custom_reset' into 'master'
docs(tools/monitor): custom reset sequence from esptool

See merge request espressif/esp-idf!26834
2023-12-08 16:00:24 +08:00
daiziyan
17dfe49416 docs: provide CN trans for idf-monitor 2023-12-07 10:06:36 +01:00
Peter Dragun
0022803ed6 docs(tools/monitor): custom reset sequence from esptool 2023-12-07 10:06:24 +01:00
Ivan Grokhotkov
918c0ce4ac
feat(tools): update qemu to esp-develop-8.1.3-20231206
https://github.com/espressif/qemu/releases/tag/esp-develop-8.1.3-20231206
2023-12-07 10:54:29 +08:00
Sudeep Mohanty
356b77ce84 Merge branch 'contrib/github_pr_12461' into 'master'
Enables VERSION argument for project() macro in cmake

Closes IDFGH-11310

See merge request espressif/esp-idf!27369
2023-12-06 20:57:17 +08:00
Chen Jian Xing
f0353350d0 Merge branch 'docs/Separate_low-power_documents' into 'master'
docs:Separate low-power documents

Closes WIFI-6310

See merge request espressif/esp-idf!27273
2023-12-06 16:59:56 +08:00
Krzysztof Budzynski
58713b0b8a Apply 2 suggestion(s) to 2 file(s) 2023-12-06 10:57:35 +08:00
daiziyan
e85feafa0f docs: add CN trans for idf-docker-image.rst 2023-12-05 14:52:14 +01:00
timoxd7
db1584a568 feat(docker): Add Dockerfile argument for variable clone depth
Closes https://github.com/espressif/esp-idf/pull/12637
2023-12-05 14:52:14 +01:00
kohait00
9beda4ce48 feat(tools/cmake): Added VERSION argument to the project() macro in cmake
This commit enables the standad VERSION argument for the project() macro
in ESP-IDF. The VERSION argument is compilant with the requirements of
cmake 3.16. This commit also adds new test cases for verifying the
validity of the version argument.

Merges https://github.com/espressif/esp-idf/pull/12461

Co-authored-by: Sudeep Mohanty <sudeep.mohanty@espressif.com>
2023-12-05 11:29:43 +01:00
Darian
105f6dd22c Merge branch 'refactor/soc_caps_multiple_cores' into 'master'
change(docs): Update multicore tags to SOC_CPU_HAS_MULTIPLE_CORES

See merge request espressif/esp-idf!27523
2023-12-05 18:20:21 +08:00
Darian Leung
024eb7218d change(docs): Update multicore tags to SOC_HP_CPU_HAS_MULTIPLE_CORES
Previously, documentation sections that were only meant for multicore ESP
targets would use tags that depend on CONFIG_FREERTOS_UNICORE or
CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE. This is not ideal as project configuration
can be changed by the user.

This commit updates those tags to use SOC_HP_CPU_HAS_MULTIPLE_CORES which is
always defined in multicore targets regardless of project configuration.
2023-12-05 10:56:48 +08:00
Ivan Grokhotkov
71153c7dbb
feat(tools): add 'idf.py qemu' extension
This extension allows running programs in QEMU similar to running
them on a real chip:

- 'idf.py qemu' — builds and runs the program in QEMU. User gets
  a QEMU instance launched, and can work with it as a normal QEMU
  instance.
- 'idf.py qemu monitor' — same, but QEMU is launched in the
  background, and idf_monitor runs in the foreground, showing QEMU
  output. Compared to only running 'idf.py qemu' this enables, for
  example, automatic backtrace decoding.
- 'idf.py qemu gdb' — launches QEMU in the background and opens an
  interactive GDB prompt, connecting it to QEMU.
- 'idf.py qemu --gdb monitor' and 'idf.py gdb' in another shell:
  launches QEMU in the background, keeps it suspended until GDB is
  connected, and opens idf_monitor. GDB can be used in another shell
  to debug the application.
2023-12-03 07:45:19 +01:00
Darian
cc34c4fc08 Merge branch 'contrib/github_pr_12481' into 'master'
Many places in the ESP_SYSTEM are using CONFIG_FREERTOS_UNICORE instead of CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE (GitHub PR)

Closes IDFGH-11333

See merge request espressif/esp-idf!27435
2023-12-01 19:33:19 +08:00
wangtao@espressif.com
0d0de9da6b docs:Separate low-power documents 2023-12-01 10:13:19 +08:00
mofeifei
43bfffd85e docs: update cn trans idf-docker-image 2023-11-30 12:18:40 +01:00
Frantisek Hrbata
647c485a76 feat(docker): allow to add paths into git's safe.directory
With 8959555cee7e[1] ("setup_git_directory(): add an owner check for the top..")
git added an ownership check of the git directory and refuses to
run any git commands, even parsing the config file, if the git directory
is not owned by the current user. The "fatal: detected dubious ownership in repository"
is reported.

This fixes CVE-2022-24765[2], which allows to compromise user account. On a
multi-user system or e.g. on a shared file system, one user may create a "rogue"
git repository with e.g. core.fsmonitor set to an arbitrary command. Other user
may unwillingly execute this command by running e.g. git-diff or
git-status within the "rogue" git repository, which may be in one of the parent
directories. If e.g. PS1 is set to display information about a git
repository in CWD, as suggested in Git in Bash[3], the user do not need to run
any git command to trigger this, just entering some subdirectory under
this "rogue" git repository is enough, because the git command will be
started transparently through the script used in PS1. The core.fsmonitor
can be set to arbitrary command. It's purpose is to help git to identify changed files
and speed up the scanning for changed files.

rogue
├── .git     # owned by user1
└── dir1     # owned by user2
    ├── dir2 # owned by user2
    └── .git # owned by user2

user1 sets core.fsmonitor for git repository in rogue directory
$ git config --add core.fsmonitor "bash -c 'rm -rf \$HOME'"

user2 enters dir1 and runs e.g. git diff and triggers the core.fsmonitor command.

The ownership check may cause problems when running git commands in
ESP-IDF Docker container. For example user may run the container as
root, but the mounted project may be owned by a particular user.

In this case git will refuse to execute any git command within the
"/project" directory, because it's not owned by root. To overcome this,
git allows to set safe.directories, for which the ownership check is
skipped. The security check may be completely disabled by setting
safe.directories to "*". This solution was proposed in PR 12636[4], but
it would allow make it possible to exploit this vulnerability again.

This fix allows user to specify git's safe.directory in IDF_GIT_SAFE_DIR
environmental variable, which may be set during container startup.

The IDF_GIT_SAFE_DIR has same format as PATH and multiple directories can be
specified by using a ":" separator. To entirely disable this git security check
within the container, user may set IDF_GIT_SAFE_DIR='*'. This might be
heplfull in CI.

Closes https://github.com/espressif/esp-idf/pull/12636

[1] - 8959555cee
[2] - https://nvd.nist.gov/vuln/detail/cve-2022-24765
[3] - https://git-scm.com/book/en/v2/Appendix-A%3A-Git-in-Other-Environments-Git-in-Bash
[4] - https://github.com/espressif/esp-idf/pull/12636

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-11-30 12:18:40 +01:00
Omar Chebib
dc8fdae31b docs(freertos): revert usage of hidden option CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE when :ref: is used 2023-11-30 16:33:28 +08:00
fl0wl0w
d149c1b26f Use configuration option instead of in components not related to FreeRTOS
Mergeshttps://github.com/espressif/esp-idf/pull/12481
2023-11-28 07:49:20 +00:00
Jeroen Domburg
3f08e5c91a fix(driver): Add docs and driver fix for the case where a full EP does not cause the host to pickup the data 2023-11-27 12:04:30 +08:00
Shu Chen
db84b88d14 Merge branch 'fix/add_docs_for_coex' into 'master'
feat(docs) Add RF Coexist docs for H2

Closes IDF-8550

See merge request espressif/esp-idf!27150
2023-11-22 21:23:33 +08:00
David Čermák
17f6528718 Merge branch 'bugfix/lwip_dns_docs' into 'master'
fix(lwip): Document DNS limitation in lwIP

See merge request espressif/esp-idf!27099
2023-11-22 20:39:22 +08:00
zwx
da9972183c feat(docs): Add RF Coexist docs for H2 2023-11-22 16:54:55 +08:00
David Cermak
1f6a927e33 fix(lwip): Document DNS limitation in lwIP
* Add a note that DNS server config is global in lwIP
* Add a section about defining LWIP config macros from CMake
* Mention the DNS limitation in ESP-IDF additions to lwIP
* Update CN for lwIP DNS limitation

Co-Authored-By: Wang Ziyan <wangziyan@espressif.com>
2023-11-22 08:48:33 +01:00
Shang Zhou
a0edece25a docs: Update CN translation for api-guides/tools/idf-monitor.rst 2023-11-16 09:20:48 +01:00
Peter Dragun
18ddb86c7f fix(tools/monitor): fix PRINT_FILTER env variable usage 2023-11-16 09:20:48 +01:00
Roland Dobai
dd1247f313 Merge branch 'fix/docs_tools' into 'master'
fix(tools): Remove idf.py dependencies from documentation

See merge request espressif/esp-idf!27101
2023-11-14 16:37:44 +08:00
Roland Dobai
6f50b02a3a fix(tools): Remove idf.py dependencies from documentation
Those dependencies are always satisfied because:
- ESP-IDF supports Python 3.8+ at this moment,
- click version is checked and ensured by the install scripts.
2023-11-13 14:33:54 +01:00
Jakob Hasse
ed5a7dfa82 docs: Added C documentation page
Closes https://github.com/espressif/esp-idf/issues/12439
Closes https://github.com/espressif/esp-idf/issues/12001
2023-11-13 10:47:15 +08:00
Sudeep Mohanty
348206fc65 fix(docs/build_system): Remove duplication about project_include.cmake usage
This commit fixes a duplication regarding the usage of the
project_include.cmake file in the build_system.rst doc.
2023-11-10 16:12:59 +01:00
Song Ruo Jing
9461993ec5 refactor(gpio): make gpio driver as component, and fix astyle 2023-11-03 15:42:23 +08:00
Shang Zhou
8b1a494cd3 docs: Fix typo in get-started/index.rst and thread-local-storage.rst based on customer feedback 2023-11-02 14:10:34 +08:00
Armando (Dou Yiwen)
100ba9f375 Merge branch 'doc/added_adc_calibration_efuse_error_info' into 'master'
doc(adc): added efuse related failure doc

Closes IDFGH-11205

See merge request espressif/esp-idf!26741
2023-10-31 11:11:32 +08:00
Armando
95b0152637 doc(adc): added efuse related failure doc
Closes https://github.com/espressif/esp-idf/issues/12372
2023-10-30 14:20:24 +08:00
radim.karnis
0349f471af docs(idf-clang-tidy): Mention the need for a clang based toolchain
Closes https://github.com/espressif/clang-tidy-runner/issues/32
2023-10-30 11:10:11 +08:00
Jiang Guang Ming
ff17d16821 docs: add the description of CONFIG_MBEDTLS_USE_CRYPTO_ROM_IMPL 2023-10-23 13:10:44 +08:00
Ren Pei Ying
fa13977275 Merge branch 'docs/update_format_for_kconfig_and_external-ram.rst' into 'master'
docs: Update Chinese translation for external-ram.rst and kconfig.rst

See merge request espressif/esp-idf!26517
2023-10-19 18:05:32 +08:00
Zim Kalinowski
fa1a3ce0b5 Merge branch 'refactor/components_linux_compatible' into 'master'
Exclude all currently incompatible components from Linux build

Closes IDF-8318 and IDF-5996

See merge request espressif/esp-idf!25598
2023-10-18 20:17:49 +08:00
renpeiying
f341f04146 docs: Update Chinese translation for external-ram.rst and kconfig.rst 2023-10-18 16:02:04 +08:00
Xu Xiao
ed9f9021cc Merge branch 'revert_tcpip_task_priority_macro' into 'master'
revert(lwip): Revert changes to LWIP task priority macro from MR 25020

See merge request espressif/esp-idf!26420
2023-10-17 13:28:19 +08:00
Jakob Hasse
548022fbe6 refactor(linux): excluded all non-Linux components from build
* All components which won't build (yet) on Linux are excluded.
  This enables switching to Linux in an application without
  explicitly setting COMPONENTS to main in the main
  CMakeLists.txt.
* ESP Timer provides headers for Linux now
* automatically disabling LWIP in Kconfig if it is not available

doc(linux): brought section
  "Component Linux/Mock Support Overview" up to date
2023-10-16 17:06:54 +08:00
Cai Xin Ying
01209e459c docs: update document format issues 2023-10-14 03:55:41 +08:00
Armando (Dou Yiwen)
f57dd0a815 Merge branch 'doc/esp32p4_psram_programming_guide' into 'master'
psram: updated psram programming guide to esp32p4

Closes IDF-7711

See merge request espressif/esp-idf!26434
2023-10-13 14:20:52 +08:00
Martin Vychodil
64befdca3a Merge branch 'feature/partition_readonly_flag' into 'master'
feat(partition_table): Add read-only partition flag and functionality

Closes IDF-6421

See merge request espressif/esp-idf!24855
2023-10-13 11:11:07 +08:00
Armando
f519e036eb doc(psram): updated psram programming guide to esp32p4 2023-10-12 19:36:21 +08:00
Jiang Jiang Jian
59417a4049 Merge branch 'feature/free_bt_memory' into 'master'
feat(bt): Frees BLE memory when no longer in use

See merge request espressif/esp-idf!22795
2023-10-12 18:35:15 +08:00
Peter Dragun
aa9f81cfc6 Merge branch 'feat/monitor-config' into 'master'
docs(tools/idf-monitor): add info about custom keystrokes

See merge request espressif/esp-idf!26129
2023-10-12 16:02:34 +08:00
Shang Zhou
37dbce301e docs: Provide CN translation for partition-tables.rst 2023-10-11 12:03:12 +02:00
xuxiao
31bb66813a revert(lwip): Revert changes to LWIP task priority macro from MR 25020 2023-10-11 17:54:27 +08:00
Adam Múdry
ab1eb37fe8 feat(partition_table): Add read-only partition flag and functionality 2023-10-11 00:01:05 +02:00
renpeiying
c744d3d5fd docs: Update Chinese translation for idf-monitor 2023-10-10 12:07:36 +08:00
Anton Maklakov
02802ea20a feat(tools): Add QEMU 8.0.0_20230522 to tools.json
Process wildcards in the install and download lists of idf_tools
    Fix the install and download handlers to get common behaviour
2023-10-10 09:59:38 +07:00
Alexey Lapshin
2585e53d54 Merge branch 'feature/update-toolchain-to-esp-13.1.0_new_newlib' into 'master'
Update toolchain to esp-13.2.0_20230919

Closes GCC-250, GCC-322, GCC-324, GCC-327, GCC-330, and IDF-8287

See merge request espressif/esp-idf!25073
2023-10-10 08:18:33 +08:00
Darian
a10121491f Merge branch 'change/freertos_make_task_snapshot_private' into 'master'
refactor(freertos/task_snapshot): Make task snapshot private

Closes IDF-8182

See merge request espressif/esp-idf!26115
2023-10-09 16:32:18 +08:00
Alexey Lapshin
98199d50d6 change(tools): update gcc toolchain version to 13.2.0
Add Kconfig option to supress new gcc warnings
Update docs with migration guide
2023-10-09 12:13:00 +04:00
Ren Pei Ying
8dbff6a5fe docs: Update translations for ESP-IDF unsynchronized files 2023-10-09 10:25:19 +08:00
zhaokeke
a39869416c feat(bt): Frees BLE memory when no longer in use
It will free libble.a & libbt all txt, data and bss segment memory.
This memory is combined into one large memory and put into the heap
pool.
2023-10-08 16:08:47 +08:00
Darian Leung
9968a48c36 refactor(freertos/task_snapshot): Make task snapshot private
Task snapshot API were never intended to be called from user code. This commit
makes task snapshot a private API thus moves `#include "freertos/task_snapshot.h"`
to `#include "esp_private/freertos_debug.h"`.

Task snapshot related Kconfig options have also been hidden.

Note: Added 'freertos_common' mapping to ldgen mapping execptions lists due to
inlining of 'freertos_debug.h' functions.
2023-10-07 13:14:55 +08:00
Alexey Gerenkov
acc04fc2cf Merge branch 'doc/refer_gdbstub_indebug_section' into 'master'
docs(jtag-debugging): Add links to gdbstub for convenience

Closes IDFGH-10898

See merge request espressif/esp-idf!25751
2023-10-04 17:09:12 +08:00
Peter Dragun
000266c417 docs(tools/idf-monitor): add info about custom keystrokes 2023-10-03 15:48:25 +02:00
Fu Hanxi
4dbe541f80
ci: replace internal clang-tidy runner with the pypi project 2023-09-27 10:25:49 +02:00
Alexey Gerenkov
3b23dc8792 Merge branch 'bugfix/docs_hw_breakpoints_num' into 'master'
fix(docs/jtag): Fix hard-coded HW breakpoints/watchpoints number

Closes IDFGH-10772

See merge request espressif/esp-idf!25750
2023-09-27 14:57:29 +08:00
Wang Zi Yan
7729144f1a docs: Update CN for speed.rst 2023-09-25 11:20:30 +08:00
Jiang Jiang Jian
d42306c317 Merge branch 'docs/eth_opt' into 'master'
docs(esp_eth): added Ethernet to Improving Network Speed section

See merge request espressif/esp-idf!25839
2023-09-25 10:09:28 +08:00
renpeiying
c17d9ff684 docs: Update Chinese translation for api-guides/jtag-debugging/index.rst 2023-09-20 10:47:42 +08:00
Chip Weinberger
195524efa8 docs(jtag-debugging): Add links to gdbstub for convenience
Closes https://github.com/espressif/esp-idf/pull/12097
2023-09-20 10:31:09 +08:00
wangjialiang
8eed3a2467 fix(ble_mesh): Miscellaneous update for ble mesh 2023-09-16 15:58:14 +08:00